{"version":3,"file":"index.cjs","sources":["../src/array.ts","../src/array-buffer.ts","../src/base64.ts","../src/has-own-property.ts","../src/is-simple-match.ts","../src/nanoid.ts","../src/object.ts","../src/pick.ts","../src/scalar.ts","../src/serialize.ts","../src/template.ts","../src/uuid.ts","../src/url.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function toArray<T>(input?: T | T[]): T[] {\n    if (!input) {\n        return [];\n    }\n\n    return Array.isArray(input) ? input : [input];\n}\n\nexport function toStringArray<T>(input?: T | T[]) : string[] {\n    return toArray(input)\n        .filter((el) => typeof el === 'string') as string[];\n}\n\nexport function toArrayElement<T>(input?: T | T[]): T | undefined {\n    return Array.isArray(input) ? input[0] : input;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function arrayBufferToBase64(buffer: ArrayBuffer) {\n    return btoa(String.fromCharCode(...new Uint8Array(buffer)));\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function base64ToArrayBuffer(base64: string) : ArrayBuffer {\n    const bin = atob(base64);\n    const len = bin.length;\n    const bytes = new Uint8Array(len);\n\n    for (let i = 0; i < len; i++) {\n        bytes[i] = bin.charCodeAt(i);\n    }\n\n    return bytes.buffer;\n}\n\n/**\n * @see https://thewoods.blog/base64url/\n *\n * @param input\n */\nexport function base64URLEncode(input: string): string {\n    return btoa(input)\n        .replace(/\\+/g, '-')\n        .replace(/\\//g, '_')\n        .replace(/=+$/, '');\n}\n\n/**\n * @see https://thewoods.blog/base64url/\n *\n * @param value\n */\nexport function base64URLDecode(value: string): string {\n    const m = value.length % 4;\n\n    return atob(\n        value.replace(/-/g, '+')\n            .replace(/_/g, '/')\n            .padEnd(value.length + (m === 0 ? 0 : 4 - m), '='),\n    );\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function hasOwnProperty<X extends {}, Y extends PropertyKey>(obj: X, prop: Y): obj is X & Record<Y, unknown> {\n    return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function isPropertySet<X extends Record<string, any>, K extends keyof X>(\n    obj: X,\n    prop: K,\n) : boolean {\n    return hasOwnProperty(obj, prop);\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isSimpleMatch(\n    value: string,\n    pattern: string | string[],\n) {\n    if (Array.isArray(pattern)) {\n        for (let i = 0; i < pattern.length; i++) {\n            if (isSimpleMatch(value, pattern[i])) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n    if (value === pattern) {\n        return true;\n    }\n\n    const maxLength = Math.max(value.length, pattern.length);\n\n    for (let i = 0; i < maxLength; i++) {\n        if (value[i] === pattern[i]) {\n            continue;\n        }\n\n        if (pattern[i] === '*') {\n            if (pattern[i + 1] === '*') {\n                return true;\n            }\n\n            let sI : number = -1;\n            for (let j = i; j < value.length; j++) {\n                if (value[j] === '/') {\n                    sI = j + 1;\n                    break;\n                }\n            }\n\n            if (sI === -1) {\n                return true;\n            }\n\n            continue;\n        }\n\n        return !value[i] &&\n            pattern[i] === '/' &&\n            pattern[i + 1] === '*';\n    }\n\n    return false;\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { customAlphabet } from 'nanoid';\n\nexport function createNanoID(alphabet?: string) : string;\nexport function createNanoID(len?: number) : string;\nexport function createNanoID(alphabet?: string, len?: number) : string;\nexport function createNanoID(alphabetOrLen?: string | number, len?: number) : string {\n    if (typeof alphabetOrLen === 'string') {\n        return customAlphabet(alphabetOrLen, len || 21)();\n    }\n\n    if (typeof alphabetOrLen === 'number') {\n        return customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', alphabetOrLen)();\n    }\n\n    return customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', len || 21)();\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isObject(input: unknown) : input is Record<string, any> {\n    return !!input &&\n        typeof input === 'object' &&\n        !Array.isArray(input);\n}\n\nexport function extendObject<T extends Record<string, any>>(\n    target: T,\n    source: Partial<T>,\n) : T {\n    const keys = Object.keys(source);\n    for (let i = 0; i < keys.length; i++) {\n        target[keys[i] as keyof T] = source[keys[i]] as T[keyof T];\n    }\n\n    return target;\n}\n\nexport function flattenObject(input: Record<string, any>) : Record<string, any> {\n    const output : Record<string, any> = {};\n\n    const keys = Object.keys(input);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        const value = input[key];\n        if (isObject(value)) {\n            const childAttributes = flattenObject(value);\n            const childAttributeKeys = Object.keys(childAttributes);\n            for (let j = 0; j < childAttributeKeys.length; j++) {\n                output[`${key}.${childAttributeKeys[j]}`] = childAttributes[childAttributeKeys[j]];\n            }\n\n            continue;\n        }\n\n        output[key] = input[key];\n    }\n\n    return output;\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\ntype PickRecord<T extends Record<string, any>, S extends keyof T> = {\n    [K in S]: K extends keyof T ? T[K] : never\n};\n\nexport function pickRecord<\n    T extends Record<string, any>,\n    K extends keyof T,\n>(data: T, keys: K[]) : PickRecord<T, K> {\n    const output : PickRecord<T, K> = {} as PickRecord<T, K>;\n    for (let i = 0; i < keys.length; i++) {\n        output[keys[i]] = data[keys[i]];\n    }\n\n    return output;\n}\n\ntype OmitRecord<T extends Record<string, any>, S extends keyof T> = {\n    [K in Exclude<keyof T, S>]: T[K]\n};\n\nexport function omitRecord<\n    T extends Record<string, any>,\n    K extends keyof T,\n>(data: T, keys: K[]) : OmitRecord<T, K> {\n    const dataKeys = Object.keys(data) as K[];\n\n    let index : number;\n    const output = {} as OmitRecord<T, K>;\n    for (let i = 0; i < dataKeys.length; i++) {\n        index = keys.indexOf(dataKeys[i]);\n        if (index !== -1) {\n            continue;\n        }\n\n        output[dataKeys[i] as unknown as keyof OmitRecord<T, K>] = data[dataKeys[i]] as unknown as T[Exclude<keyof T, K>];\n    }\n\n    return output;\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isScalar(\n    value: unknown,\n) : value is string | number | boolean | null | undefined {\n    return (\n        typeof value === 'string' ||\n        typeof value === 'number' ||\n        typeof value === 'boolean' ||\n        value === null ||\n        value === undefined\n    );\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { destr } from 'destr';\n\nexport function serialize(input: unknown) : string {\n    if (typeof input === 'boolean') {\n        return input ? 'true' : 'false';\n    }\n\n    if (typeof input === 'undefined') {\n        return 'undefined';\n    }\n\n    if (input === null) {\n        return 'null';\n    }\n\n    if (typeof input === 'number') {\n        return `${input}`;\n    }\n\n    if (typeof input === 'string') {\n        return input;\n    }\n\n    return JSON.stringify(input, (key, value) => {\n        if (value instanceof RegExp) {\n            return value.toString();\n        }\n\n        return value;\n    });\n}\n\nexport function deserialize<T = any>(input: any) : T {\n    return destr(input);\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function template(\n    str: string,\n    data: Record<string, any>,\n    regex = /\\{\\{(.+?)\\}\\}/g,\n) : string {\n    return Array.from(str.matchAll(regex))\n        .reduce((\n            acc,\n            match,\n        ) => {\n            if (typeof data[match[1]] !== 'undefined') {\n                return acc.replace(match[0], data[match[1]]);\n            }\n\n            return acc;\n        }, str);\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nconst regexp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nexport function isUUID(input: string) : boolean {\n    return regexp.test(input);\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function makeURLPublicAccessible(url: string) {\n    return url.replace('0.0.0.0', '127.0.0.1');\n}\n"],"names":["toArray","input","Array","isArray","toStringArray","filter","el","toArrayElement","arrayBufferToBase64","buffer","btoa","String","fromCharCode","Uint8Array","base64ToArrayBuffer","base64","bin","atob","len","length","bytes","i","charCodeAt","base64URLEncode","replace","base64URLDecode","value","m","padEnd","hasOwnProperty","obj","prop","Object","prototype","call","isPropertySet","isSimpleMatch","pattern","maxLength","Math","max","sI","j","createNanoID","alphabetOrLen","customAlphabet","isObject","extendObject","target","source","keys","flattenObject","output","key","childAttributes","childAttributeKeys","pickRecord","data","omitRecord","dataKeys","index","indexOf","isScalar","undefined","serialize","JSON","stringify","RegExp","toString","deserialize","destr","template","str","regex","from","matchAll","reduce","acc","match","regexp","isUUID","test","makeURLPublicAccessible","url"],"mappings":"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"}