🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@robinpath/api

Package Overview
Dependencies
Maintainers
4
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@robinpath/api - npm Package Compare versions

Comparing version
0.1.1
to
0.1.2
+15
-3
package.json
{
"name": "@robinpath/api",
"version": "0.1.1",
"version": "0.1.2",
"publishConfig": {

@@ -23,8 +23,20 @@ "access": "public"

"peerDependencies": {
"@wiredwp/robinpath": ">=0.20.0"
"@robinpath/core": ">=0.20.0"
},
"devDependencies": {
"@wiredwp/robinpath": "^0.30.1",
"@robinpath/core": "^0.30.1",
"typescript": "^5.6.0"
},
"description": "HTTP client for making requests to external APIs with profiles, auth, download/upload, and auto-JSON parsing",
"keywords": [
"api",
"web"
],
"license": "MIT",
"robinpath": {
"category": "web",
"type": "utility",
"auth": "api-key",
"functionCount": 12
}
}
-165
import type { BuiltinHandler } from "@wiredwp/robinpath";
export declare const ApiFunctions: Record<string, BuiltinHandler>;
export declare const ApiFunctionMetadata: {
get: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
post: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
put: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
patch: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
delete: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
head: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
download: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
upload: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
createProfile: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
setAuth: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
setHeaders: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
request: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
};
export declare const ApiModuleMetadata: {
description: string;
methods: string[];
};
//# sourceMappingURL=api.d.ts.map
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAC;AA2Z3F,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAavD,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkI/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAQ7B,CAAC"}
import { readFileSync, writeFileSync } from "node:fs";
import { basename } from "node:path";
const profiles = new Map();
function getProfile(id) {
if (id && profiles.has(id))
return profiles.get(id);
return { baseUrl: "", headers: {}, auth: null, timeout: 30000 };
}
// ── Core Request Helper ─────────────────────────────────────────────
async function doRequest(method, url, body, opts) {
const profileId = typeof opts.profile === "string" ? opts.profile : undefined;
const profile = getProfile(profileId);
// Resolve URL
let resolvedUrl = url;
if (!/^https?:\/\//i.test(resolvedUrl) && profile.baseUrl) {
const base = profile.baseUrl.endsWith("/") ? profile.baseUrl : profile.baseUrl + "/";
const path = resolvedUrl.startsWith("/") ? resolvedUrl.slice(1) : resolvedUrl;
resolvedUrl = base + path;
}
// Merge headers: profile defaults < opts.headers
const headers = { ...profile.headers };
if (typeof opts.headers === "object" && opts.headers !== null) {
for (const [k, v] of Object.entries(opts.headers)) {
headers[k] = String(v);
}
}
// Apply auth
const auth = profile.auth;
if (auth) {
switch (auth.type) {
case "bearer":
headers["Authorization"] = `Bearer ${auth.token}`;
break;
case "basic":
headers["Authorization"] = `Basic ${Buffer.from(auth.token).toString("base64")}`;
break;
case "apikey":
headers[auth.headerName ?? "X-API-Key"] = auth.token;
break;
}
}
// Prepare body
let requestBody;
if (body !== undefined && body !== null) {
if (typeof body === "object") {
if (!headers["Content-Type"])
headers["Content-Type"] = "application/json";
requestBody = JSON.stringify(body);
}
else {
requestBody = String(body);
}
}
// Timeout
const timeout = typeof opts.timeout === "number" ? opts.timeout : profile.timeout;
// Execute request
const response = await fetch(resolvedUrl, {
method: method.toUpperCase(),
headers,
body: requestBody,
signal: AbortSignal.timeout(timeout),
});
// Parse response body
const contentType = response.headers.get("content-type") ?? "";
let responseBody;
if (contentType.includes("json")) {
responseBody = (await response.json());
}
else {
responseBody = await response.text();
}
// Full response or body-only
if (opts.fullResponse === true) {
return {
status: response.status,
ok: response.ok,
headers: Object.fromEntries(response.headers.entries()),
body: responseBody,
};
}
return responseBody;
}
// ── Function Handlers ───────────────────────────────────────────────
const get = async (args) => {
const url = String(args[0] ?? "");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
if (!url)
throw new Error("URL is required");
return doRequest("GET", url, undefined, opts);
};
const post = async (args) => {
const url = String(args[0] ?? "");
const body = args[1] ?? null;
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!url)
throw new Error("URL is required");
return doRequest("POST", url, body, opts);
};
const put = async (args) => {
const url = String(args[0] ?? "");
const body = args[1] ?? null;
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!url)
throw new Error("URL is required");
return doRequest("PUT", url, body, opts);
};
const patch = async (args) => {
const url = String(args[0] ?? "");
const body = args[1] ?? null;
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!url)
throw new Error("URL is required");
return doRequest("PATCH", url, body, opts);
};
const del = async (args) => {
const url = String(args[0] ?? "");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
if (!url)
throw new Error("URL is required");
return doRequest("DELETE", url, undefined, opts);
};
const head = async (args) => {
const url = String(args[0] ?? "");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
if (!url)
throw new Error("URL is required");
const profileId = typeof opts.profile === "string" ? opts.profile : undefined;
const profile = getProfile(profileId);
let resolvedUrl = url;
if (!/^https?:\/\//i.test(resolvedUrl) && profile.baseUrl) {
const base = profile.baseUrl.endsWith("/") ? profile.baseUrl : profile.baseUrl + "/";
const path = resolvedUrl.startsWith("/") ? resolvedUrl.slice(1) : resolvedUrl;
resolvedUrl = base + path;
}
const headers = { ...profile.headers };
if (typeof opts.headers === "object" && opts.headers !== null) {
for (const [k, v] of Object.entries(opts.headers)) {
headers[k] = String(v);
}
}
const auth = profile.auth;
if (auth) {
switch (auth.type) {
case "bearer":
headers["Authorization"] = `Bearer ${auth.token}`;
break;
case "basic":
headers["Authorization"] = `Basic ${Buffer.from(auth.token).toString("base64")}`;
break;
case "apikey":
headers[auth.headerName ?? "X-API-Key"] = auth.token;
break;
}
}
const timeout = typeof opts.timeout === "number" ? opts.timeout : profile.timeout;
const response = await fetch(resolvedUrl, {
method: "HEAD",
headers,
signal: AbortSignal.timeout(timeout),
});
return Object.fromEntries(response.headers.entries());
};
const download = async (args) => {
const url = String(args[0] ?? "");
const filePath = String(args[1] ?? "");
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!url)
throw new Error("URL is required");
if (!filePath)
throw new Error("File path is required");
const profileId = typeof opts.profile === "string" ? opts.profile : undefined;
const profile = getProfile(profileId);
let resolvedUrl = url;
if (!/^https?:\/\//i.test(resolvedUrl) && profile.baseUrl) {
const base = profile.baseUrl.endsWith("/") ? profile.baseUrl : profile.baseUrl + "/";
const path = resolvedUrl.startsWith("/") ? resolvedUrl.slice(1) : resolvedUrl;
resolvedUrl = base + path;
}
const headers = { ...profile.headers };
if (typeof opts.headers === "object" && opts.headers !== null) {
for (const [k, v] of Object.entries(opts.headers)) {
headers[k] = String(v);
}
}
const auth = profile.auth;
if (auth) {
switch (auth.type) {
case "bearer":
headers["Authorization"] = `Bearer ${auth.token}`;
break;
case "basic":
headers["Authorization"] = `Basic ${Buffer.from(auth.token).toString("base64")}`;
break;
case "apikey":
headers[auth.headerName ?? "X-API-Key"] = auth.token;
break;
}
}
const timeout = typeof opts.timeout === "number" ? opts.timeout : profile.timeout;
const response = await fetch(resolvedUrl, {
method: "GET",
headers,
signal: AbortSignal.timeout(timeout),
});
if (!response.ok) {
throw new Error(`Download failed: ${response.status} ${response.statusText}`);
}
const arrayBuffer = await response.arrayBuffer();
const buffer = Buffer.from(arrayBuffer);
writeFileSync(filePath, buffer);
return {
path: filePath,
size: buffer.length,
contentType: response.headers.get("content-type") ?? "application/octet-stream",
};
};
const upload = async (args) => {
const url = String(args[0] ?? "");
const filePath = String(args[1] ?? "");
const fieldName = typeof args[2] === "string" ? args[2] : "file";
const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {});
if (!url)
throw new Error("URL is required");
if (!filePath)
throw new Error("File path is required");
const profileId = typeof opts.profile === "string" ? opts.profile : undefined;
const profile = getProfile(profileId);
let resolvedUrl = url;
if (!/^https?:\/\//i.test(resolvedUrl) && profile.baseUrl) {
const base = profile.baseUrl.endsWith("/") ? profile.baseUrl : profile.baseUrl + "/";
const path = resolvedUrl.startsWith("/") ? resolvedUrl.slice(1) : resolvedUrl;
resolvedUrl = base + path;
}
const headers = { ...profile.headers };
if (typeof opts.headers === "object" && opts.headers !== null) {
for (const [k, v] of Object.entries(opts.headers)) {
headers[k] = String(v);
}
}
const auth = profile.auth;
if (auth) {
switch (auth.type) {
case "bearer":
headers["Authorization"] = `Bearer ${auth.token}`;
break;
case "basic":
headers["Authorization"] = `Basic ${Buffer.from(auth.token).toString("base64")}`;
break;
case "apikey":
headers[auth.headerName ?? "X-API-Key"] = auth.token;
break;
}
}
const timeout = typeof opts.timeout === "number" ? opts.timeout : profile.timeout;
// Read file and create FormData
const fileBuffer = readFileSync(filePath);
const fileName = basename(filePath);
const blob = new Blob([fileBuffer]);
const formData = new FormData();
formData.append(fieldName, blob, fileName);
// Append extra fields if provided
if (typeof opts.fields === "object" && opts.fields !== null) {
for (const [k, v] of Object.entries(opts.fields)) {
formData.append(k, String(v));
}
}
// Do NOT set Content-Type — fetch sets multipart boundary automatically
delete headers["Content-Type"];
const response = await fetch(resolvedUrl, {
method: "POST",
headers,
body: formData,
signal: AbortSignal.timeout(timeout),
});
const contentType = response.headers.get("content-type") ?? "";
let responseBody;
if (contentType.includes("json")) {
responseBody = (await response.json());
}
else {
responseBody = await response.text();
}
return {
status: response.status,
ok: response.ok,
body: responseBody,
};
};
const createProfile = (args) => {
const id = String(args[0] ?? "");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
if (!id)
throw new Error("Profile ID is required");
const config = {
baseUrl: typeof opts.baseUrl === "string" ? opts.baseUrl : "",
headers: (typeof opts.headers === "object" && opts.headers !== null
? Object.fromEntries(Object.entries(opts.headers).map(([k, v]) => [k, String(v)]))
: {}),
auth: null,
timeout: typeof opts.timeout === "number" ? opts.timeout : 30000,
};
profiles.set(id, config);
return { id, ...config };
};
const setAuth = (args) => {
const profileId = String(args[0] ?? "");
const type = String(args[1] ?? "");
const token = String(args[2] ?? "");
const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {});
if (!profileId)
throw new Error("Profile ID is required");
if (!type)
throw new Error("Auth type is required");
if (!token)
throw new Error("Token is required");
if (!["bearer", "basic", "apikey"].includes(type)) {
throw new Error(`Invalid auth type "${type}". Must be "bearer", "basic", or "apikey".`);
}
const profile = profiles.get(profileId);
if (!profile)
throw new Error(`Profile "${profileId}" not found. Create it first with api.createProfile.`);
profile.auth = {
type,
token,
...(type === "apikey" && typeof opts.headerName === "string" ? { headerName: opts.headerName } : {}),
};
return { profileId, auth: profile.auth };
};
const setHeaders = (args) => {
const profileId = String(args[0] ?? "");
const newHeaders = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
if (!profileId)
throw new Error("Profile ID is required");
const profile = profiles.get(profileId);
if (!profile)
throw new Error(`Profile "${profileId}" not found. Create it first with api.createProfile.`);
for (const [k, v] of Object.entries(newHeaders)) {
profile.headers[k] = String(v);
}
return { profileId, headers: profile.headers };
};
const request = async (args) => {
const method = String(args[0] ?? "GET").toUpperCase();
const url = String(args[1] ?? "");
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!url)
throw new Error("URL is required");
const body = opts.body;
return doRequest(method, url, body, opts);
};
// ── Exports ─────────────────────────────────────────────────────────
export const ApiFunctions = {
get,
post,
put,
patch,
delete: del,
head,
download,
upload,
createProfile,
setAuth,
setHeaders,
request,
};
export const ApiFunctionMetadata = {
get: {
description: "Send a GET request to a URL and return the response body (auto-parses JSON)",
parameters: [
{ name: "url", dataType: "string", description: "Request URL (absolute, or relative if profile has baseUrl)", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout, fullResponse}", formInputType: "json", required: false },
],
returnType: "any",
returnDescription: "Parsed JSON body, text string, or full response object if fullResponse is true",
example: 'api.get "https://api.example.com/users"',
},
post: {
description: "Send a POST request with a JSON body",
parameters: [
{ name: "url", dataType: "string", description: "Request URL", formInputType: "text", required: true },
{ name: "body", dataType: "any", description: "Request body (objects auto-serialized to JSON)", formInputType: "json", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout, fullResponse}", formInputType: "json", required: false },
],
returnType: "any",
returnDescription: "Parsed JSON body or text string",
example: 'api.post "https://api.example.com/users" {"name": "Alice", "email": "alice@example.com"}',
},
put: {
description: "Send a PUT request with a JSON body",
parameters: [
{ name: "url", dataType: "string", description: "Request URL", formInputType: "text", required: true },
{ name: "body", dataType: "any", description: "Request body (objects auto-serialized to JSON)", formInputType: "json", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout, fullResponse}", formInputType: "json", required: false },
],
returnType: "any",
returnDescription: "Parsed JSON body or text string",
example: 'api.put "https://api.example.com/users/1" {"name": "Bob"}',
},
patch: {
description: "Send a PATCH request with a partial JSON body",
parameters: [
{ name: "url", dataType: "string", description: "Request URL", formInputType: "text", required: true },
{ name: "body", dataType: "any", description: "Partial update body", formInputType: "json", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout, fullResponse}", formInputType: "json", required: false },
],
returnType: "any",
returnDescription: "Parsed JSON body or text string",
example: 'api.patch "https://api.example.com/users/1" {"email": "new@example.com"}',
},
delete: {
description: "Send a DELETE request",
parameters: [
{ name: "url", dataType: "string", description: "Request URL", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout, fullResponse}", formInputType: "json", required: false },
],
returnType: "any",
returnDescription: "Parsed JSON body or text string",
example: 'api.delete "https://api.example.com/users/1"',
},
head: {
description: "Send a HEAD request and return response headers only",
parameters: [
{ name: "url", dataType: "string", description: "Request URL", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout}", formInputType: "json", required: false },
],
returnType: "object",
returnDescription: "Response headers as key-value object",
example: 'api.head "https://api.example.com/files/doc.pdf"',
},
download: {
description: "Download a file from a URL and save it to disk",
parameters: [
{ name: "url", dataType: "string", description: "URL of the file to download", formInputType: "text", required: true },
{ name: "filePath", dataType: "string", description: "Local path to save the file", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{profile, headers, timeout}", formInputType: "json", required: false },
],
returnType: "object",
returnDescription: "{path, size, contentType}",
example: 'api.download "https://example.com/report.pdf" "./report.pdf"',
},
upload: {
description: "Upload a file as multipart/form-data",
parameters: [
{ name: "url", dataType: "string", description: "Upload endpoint URL", formInputType: "text", required: true },
{ name: "filePath", dataType: "string", description: "Local path of the file to upload", formInputType: "text", required: true },
{ name: "fieldName", dataType: "string", description: "Form field name (default: 'file')", formInputType: "text", required: false },
{ name: "options", dataType: "object", description: "{profile, headers, timeout, fields}", formInputType: "json", required: false },
],
returnType: "object",
returnDescription: "{status, ok, body}",
example: 'api.upload "https://api.example.com/upload" "./photo.jpg" "image"',
},
createProfile: {
description: "Create a named API profile with base URL, default headers, and timeout",
parameters: [
{ name: "id", dataType: "string", description: "Unique profile identifier", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{baseUrl, headers, timeout}", formInputType: "json", required: true },
],
returnType: "object",
returnDescription: "The created profile configuration",
example: 'api.createProfile "github" {"baseUrl": "https://api.github.com", "headers": {"Accept": "application/vnd.github.v3+json"}}',
},
setAuth: {
description: "Set authentication on an existing profile",
parameters: [
{ name: "profileId", dataType: "string", description: "Profile ID to configure", formInputType: "text", required: true },
{ name: "type", dataType: "string", description: "Auth type: 'bearer', 'basic', or 'apikey'", formInputType: "text", required: true },
{ name: "token", dataType: "string", description: "Auth token or credentials (for basic: 'user:pass')", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{headerName} — custom header name for apikey auth", formInputType: "json", required: false },
],
returnType: "object",
returnDescription: "{profileId, auth}",
example: 'api.setAuth "github" "bearer" "ghp_xxxxxxxxxxxx"',
},
setHeaders: {
description: "Merge additional default headers into an existing profile",
parameters: [
{ name: "profileId", dataType: "string", description: "Profile ID to update", formInputType: "text", required: true },
{ name: "headers", dataType: "object", description: "Headers to merge into profile defaults", formInputType: "json", required: true },
],
returnType: "object",
returnDescription: "{profileId, headers}",
example: 'api.setHeaders "github" {"X-Custom": "value"}',
},
request: {
description: "Send a generic HTTP request with an explicit method string",
parameters: [
{ name: "method", dataType: "string", description: "HTTP method (GET, POST, PUT, PATCH, DELETE, etc.)", formInputType: "text", required: true },
{ name: "url", dataType: "string", description: "Request URL", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{body, profile, headers, timeout, fullResponse}", formInputType: "json", required: false },
],
returnType: "any",
returnDescription: "Parsed JSON body, text string, or full response object",
example: 'api.request "OPTIONS" "https://api.example.com/resource"',
},
};
export const ApiModuleMetadata = {
description: "HTTP client for making requests to external APIs with profiles, auth, download/upload, and auto-JSON parsing",
methods: [
"get", "post", "put", "patch", "delete", "head",
"download", "upload",
"createProfile", "setAuth", "setHeaders",
"request",
],
};
//# sourceMappingURL=api.js.map
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
import type { ModuleAdapter } from "@wiredwp/robinpath";
declare const ApiModule: ModuleAdapter;
export default ApiModule;
export { ApiModule };
export { ApiFunctions, ApiFunctionMetadata, ApiModuleMetadata } from "./api.js";
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,SAAS,EAAE,aAMhB,CAAC;AAEF,eAAe,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
import { ApiFunctions, ApiFunctionMetadata, ApiModuleMetadata } from "./api.js";
const ApiModule = {
name: "api",
functions: ApiFunctions,
functionMetadata: ApiFunctionMetadata,
moduleMetadata: ApiModuleMetadata,
global: false,
}; // as ModuleAdapter
export default ApiModule;
export { ApiModule };
export { ApiFunctions, ApiFunctionMetadata, ApiModuleMetadata } from "./api.js";
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,SAAS,GAAkB;IAC/B,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,YAAY;IACvB,gBAAgB,EAAE,mBAA0B;IAC5C,cAAc,EAAE,iBAAwB;IACxC,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}