docs: 仓库链接指向本镜像仓库
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run

This commit is contained in:
TanTan committed 2026-11-13 09:27:07 +08:00
1 parent fa9c73363d
commit 2a69b23b47
18210 files changed
+5101211 -16

No files matched your search

@@ -0,0 +1,93 @@
{
"name": "use-sidecar",
"version": "1.1.3",
"description": "Sidecar code splitting utils",
"module:es2019": "dist/es2019/index.js",
"main": "dist/es5/index.js",
"module": "dist/es2015/index.js",
"types": "dist/es5/index.d.ts",
"devDependencies": {
"@size-limit/preset-small-lib": "^11.0.2",
"size-limit": "^11.0.2",
"@theuiteam/lib-builder": "^0.1.4",
"@types/enzyme-adapter-react-16": "^1.0.6",
"enzyme-adapter-react-16": "^1.15.6",
"react": "^16.8.6",
"react-dom": "^16.8.6"
},
"engines": {
"node": ">=10"
},
"scripts": {
"dev": "lib-builder dev",
"test": "jest",
"test:ci": "jest --runInBand --coverage",
"build": "lib-builder build && yarn size:report",
"release": "yarn build && yarn test",
"size": "npx size-limit",
"size:report": "npx size-limit --json > .size.json",
"lint": "lib-builder lint",
"format": "lib-builder format",
"update": "lib-builder update",
"prepublish": "yarn build && yarn changelog",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
"changelog:rewrite": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
},
"peerDependencies": {
"@types/react": "*",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
},
"sideEffects": [
"**/medium.js"
],
"files": [
"dist"
],
"keywords": [
"code spliting",
"react",
"sidecar"
],
"homepage": "https://github.com/theKashey/use-sidecar",
"author": "theKashey <thekashey@gmail.com>",
"license": "MIT",
"dependencies": {
"detect-node-es": "^1.1.0",
"tslib": "^2.0.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/theKashey/use-sidecar"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{ts,tsx}": [
"prettier --write",
"eslint --fix",
"git add"
],
"*.{js,css,json,md}": [
"prettier --write",
"git add"
]
},
"resolutions": {
"@types/react": "^19.0.0"
},
"prettier": {
"printWidth": 120,
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true
}
}
@@ -0,0 +1,80 @@
{
"name": "flatted",
"version": "3.4.2",
"description": "A super light and fast circular JSON parser.",
"unpkg": "min.js",
"main": "./cjs/index.js",
"scripts": {
"build": "npm run cjs && npm run rollup:esm && npm run rollup:es && npm run rollup:babel && npm run min && npm run test && npm run size",
"cjs": "ascjs esm cjs",
"rollup:es": "rollup --config rollup/es.config.js && sed -i.bck 's/^var /self./' es.js && rm -rf es.js.bck",
"rollup:esm": "rollup --config rollup/esm.config.js",
"rollup:babel": "rollup --config rollup/babel.config.js && sed -i.bck 's/^var /self./' index.js && rm -rf index.js.bck",
"min": "terser index.js -c -m -o min.js",
"size": "cat index.js | wc -c;cat min.js | wc -c;gzip -c9 min.js | wc -c;cat min.js | brotli | wc -c; cat es.js | brotli | wc -c; cat esm.js | brotli | wc -c",
"test": "c8 node test/index.js",
"test:php": "php php/test.php",
"test:py": "python python/test.py",
"ts": "tsc -p .",
"coverage": "mkdir -p ./coverage; c8 report --reporter=text-lcov > ./coverage/lcov.info"
},
"repository": {
"type": "git",
"url": "git+https://github.com/WebReflection/flatted.git"
},
"files": [
"LICENSE",
"README.md",
"cjs/",
"es.js",
"esm.js",
"esm/",
"index.js",
"min.js",
"php/flatted.php",
"python/flatted.py",
"golang/pkg/flatted/flatted.go",
"types/"
],
"keywords": [
"circular",
"JSON",
"fast",
"parser",
"minimal"
],
"author": "Andrea Giammarchi",
"license": "ISC",
"bugs": {
"url": "https://github.com/WebReflection/flatted/issues"
},
"homepage": "https://github.com/WebReflection/flatted#readme",
"devDependencies": {
"@babel/core": "^7.29.0",
"@babel/preset-env": "^7.29.0",
"@rollup/plugin-babel": "^7.0.0",
"@rollup/plugin-terser": "^1.0.0",
"@ungap/structured-clone": "^1.3.0",
"ascjs": "^6.0.3",
"c8": "^11.0.0",
"circular-json": "^0.5.9",
"circular-json-es6": "^2.0.2",
"flatted-view": "^0.1.1",
"jsan": "^3.1.14",
"rollup": "^4.59.0",
"terser": "^5.46.0",
"typescript": "^5.9.3"
},
"module": "./esm/index.js",
"type": "module",
"exports": {
".": {
"types": "./types/index.d.ts",
"import": "./esm/index.js",
"default": "./cjs/index.js"
},
"./esm": "./esm.js",
"./package.json": "./package.json"
},
"types": "./types/index.d.ts"
}
@@ -0,0 +1,30 @@
{
"parserOptions": {
"ecmaVersion": 2020
},
"extends": [
"eslint:all",
"prettier",
"plugin:node/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"rules": {
"capitalized-comments": "off",
"camelcase": "off",
"curly": ["error", "all"],
"id-length": "off",
"max-lines-per-function": "off",
"max-statements": "off",
"multiline-comment-style": "off",
"no-bitwise": "off",
"no-magic-numbers": "off",
"no-param-reassign": "off",
"no-plusplus": "off",
"node/no-unsupported-features/es-syntax": "off",
"one-var": "off",
"padded-blocks": "off"
}
}
@@ -0,0 +1,375 @@
import { K as isSingleLine, a as isDOMComponent, f as createRule, i as getPropName } from "../utils.js";
function isCallbackPropName(name) {
return /^on[A-Z]/.test(name);
}
const RESERVED_PROPS_LIST = [
"children",
"dangerouslySetInnerHTML",
"key",
"ref"
];
function getReservedPropIndex(name, list) {
return list.indexOf(name.split(":")[0]);
}
let attributeMap;
function shouldSortToEnd(node) {
const attr = attributeMap.get(node);
return !!attr && !!attr.hasComment;
}
function contextCompare(sourceCode, a, b, options) {
let aProp = getPropName(sourceCode, a);
let bProp = getPropName(sourceCode, b);
const aPropNamespace = aProp.split(":")[0];
const bPropNamespace = bProp.split(":")[0];
const aSortToEnd = shouldSortToEnd(a);
const bSortToEnd = shouldSortToEnd(b);
if (aSortToEnd && !bSortToEnd) return 1;
if (!aSortToEnd && bSortToEnd) return -1;
if (options.reservedFirst) {
const aIndex = getReservedPropIndex(aProp, options.reservedList);
const bIndex = getReservedPropIndex(bProp, options.reservedList);
if (aIndex > -1 && bIndex === -1) return -1;
if (aIndex === -1 && bIndex > -1) return 1;
if (aIndex > -1 && bIndex > -1 && aPropNamespace !== bPropNamespace) return aIndex > bIndex ? 1 : -1;
}
if (options.reservedLast.length > 0) {
const aLastIndex = getReservedPropIndex(aProp, options.reservedLast);
const bLastIndex = getReservedPropIndex(bProp, options.reservedLast);
if (aLastIndex > -1 && bLastIndex === -1) return 1;
if (aLastIndex === -1 && bLastIndex > -1) return -1;
if (aLastIndex > -1 && bLastIndex > -1 && aPropNamespace !== bPropNamespace) return aLastIndex > bLastIndex ? -1 : 1;
}
if (options.callbacksLast) {
const aIsCallback = isCallbackPropName(aProp);
const bIsCallback = isCallbackPropName(bProp);
if (aIsCallback && !bIsCallback) return 1;
if (!aIsCallback && bIsCallback) return -1;
}
if (options.shorthandFirst || options.shorthandLast) {
const shorthandSign = options.shorthandFirst ? -1 : 1;
if (!a.value && b.value) return shorthandSign;
if (a.value && !b.value) return -shorthandSign;
}
if (options.multiline !== "ignore") {
const multilineSign = options.multiline === "first" ? -1 : 1;
const aIsMultiline = !isSingleLine(a);
const bIsMultiline = !isSingleLine(b);
if (aIsMultiline && !bIsMultiline) return multilineSign;
if (!aIsMultiline && bIsMultiline) return -multilineSign;
}
if (options.noSortAlphabetically) return 0;
const actualLocale = options.locale === "auto" ? void 0 : options.locale;
if (options.ignoreCase) {
aProp = aProp.toLowerCase();
bProp = bProp.toLowerCase();
return aProp.localeCompare(bProp, actualLocale);
}
if (aProp === bProp) return 0;
if (options.locale === "auto") return aProp < bProp ? -1 : 1;
return aProp.localeCompare(bProp, actualLocale);
}
function getGroupsOfSortableAttributes(attributes, context) {
const sourceCode = context.sourceCode;
const sortableAttributeGroups = [];
let groupCount = 0;
function addtoSortableAttributeGroups(attribute) {
sortableAttributeGroups[groupCount - 1].push(attribute);
}
for (let i = 0; i < attributes.length; i++) {
const attribute = attributes[i];
const nextAttribute = attributes[i + 1];
const attributeline = attribute.loc.start.line;
let comment = [];
try {
comment = sourceCode.getCommentsAfter(attribute);
} catch {}
const lastAttr = attributes[i - 1];
const attrIsSpread = attribute.type === "JSXSpreadAttribute";
if (!lastAttr || lastAttr.type === "JSXSpreadAttribute" && !attrIsSpread) {
groupCount += 1;
sortableAttributeGroups[groupCount - 1] = [];
}
if (!attrIsSpread) if (comment.length === 0) {
attributeMap.set(attribute, {
end: attribute.range[1],
hasComment: false
});
addtoSortableAttributeGroups(attribute);
} else {
const firstComment = comment[0];
const commentline = firstComment.loc.start.line;
if (comment.length === 1) {
if (attributeline + 1 === commentline && nextAttribute) {
attributeMap.set(attribute, {
end: nextAttribute.range[1],
hasComment: true
});
addtoSortableAttributeGroups(attribute);
i += 1;
} else if (attributeline === commentline) {
if (firstComment.type === "Block" && nextAttribute) {
attributeMap.set(attribute, {
end: nextAttribute.range[1],
hasComment: true
});
i += 1;
} else if (firstComment.type === "Block") attributeMap.set(attribute, {
end: firstComment.range[1],
hasComment: true
});
else attributeMap.set(attribute, {
end: firstComment.range[1],
hasComment: false
});
addtoSortableAttributeGroups(attribute);
}
} else if (comment.length > 1 && attributeline + 1 === comment[1].loc.start.line && nextAttribute) {
const commentNextAttribute = sourceCode.getCommentsAfter(nextAttribute);
attributeMap.set(attribute, {
end: nextAttribute.range[1],
hasComment: true
});
if (commentNextAttribute.length === 1 && nextAttribute.loc.start.line === commentNextAttribute[0].loc.start.line) attributeMap.set(attribute, {
end: commentNextAttribute[0].range[1],
hasComment: true
});
addtoSortableAttributeGroups(attribute);
i += 1;
}
}
}
return sortableAttributeGroups;
}
function generateFixerFunction(node, context, reservedList) {
const sourceCode = context.sourceCode;
const attributes = node.attributes.slice(0);
const configuration = context.options[0] || {};
const options = {
ignoreCase: configuration.ignoreCase || false,
callbacksLast: configuration.callbacksLast || false,
shorthandFirst: configuration.shorthandFirst || false,
shorthandLast: configuration.shorthandLast || false,
multiline: configuration.multiline || "ignore",
noSortAlphabetically: configuration.noSortAlphabetically || false,
reservedFirst: configuration.reservedFirst || false,
reservedList,
reservedLast: configuration.reservedLast || [],
locale: configuration.locale || "auto"
};
const sortableAttributeGroups = getGroupsOfSortableAttributes(attributes, context);
const sortedAttributeGroups = sortableAttributeGroups.slice(0).map((group) => [...group].sort((a, b) => contextCompare(context.sourceCode, a, b, options)));
return function fixFunction(fixer) {
const fixers = [];
let source = sourceCode.getText();
sortableAttributeGroups.forEach((sortableGroup, ii) => {
sortableGroup.forEach((attr, jj) => {
const sortedAttr = sortedAttributeGroups[ii][jj];
const sortedAttrText = source.slice(sortedAttr.range[0], attributeMap.get(sortedAttr).end);
fixers.push({
range: [attr.range[0], attributeMap.get(attr).end],
text: sortedAttrText
});
});
});
fixers.sort((a, b) => b.range[0] - a.range[0]);
const firstFixer = fixers[0];
const lastFixer = fixers[fixers.length - 1];
const rangeStart = lastFixer ? lastFixer.range[0] : 0;
const rangeEnd = firstFixer ? firstFixer.range[1] : -0;
fixers.forEach((fix) => {
source = `${source.slice(0, fix.range[0])}${fix.text}${source.slice(fix.range[1])}`;
});
return fixer.replaceTextRange([rangeStart, rangeEnd], source.slice(rangeStart, rangeEnd));
};
}
function validateReservedFirstConfig(context, reservedFirst) {
if (reservedFirst) {
if (Array.isArray(reservedFirst)) {
if (reservedFirst.length === 0) return function Report(decl) {
context.report({
node: decl,
messageId: "listIsEmpty"
});
};
}
}
}
const reportedNodeAttributes = /* @__PURE__ */ new WeakMap();
function reportNodeAttribute(nodeAttribute, errorType, node, context, reservedList) {
const errors = reportedNodeAttributes.get(nodeAttribute) || [];
if (errors.includes(errorType)) return;
errors.push(errorType);
reportedNodeAttributes.set(nodeAttribute, errors);
context.report({
node: nodeAttribute.name ?? "",
messageId: errorType,
fix: generateFixerFunction(node, context, reservedList)
});
}
var jsx_sort_props_default = createRule({
name: "jsx-sort-props",
meta: {
type: "layout",
docs: { description: "Enforce props alphabetical sorting" },
fixable: "code",
deprecated: {
message: "We recommend using the `eslint-plugin-perfectionist` plugin instead.",
deprecatedSince: "5.7.0",
replacedBy: [{
plugin: {
name: "eslint-plugin-perfectionist",
url: "https://perfectionist.dev"
},
rule: {
name: "sort-jsx-props",
url: "https://perfectionist.dev/rules/sort-jsx-props"
}
}]
},
schema: [{
type: "object",
properties: {
callbacksLast: { type: "boolean" },
shorthandFirst: { type: "boolean" },
shorthandLast: { type: "boolean" },
multiline: {
type: "string",
enum: [
"ignore",
"first",
"last"
]
},
ignoreCase: { type: "boolean" },
noSortAlphabetically: { type: "boolean" },
reservedFirst: { oneOf: [{
type: "array",
items: { type: "string" }
}, { type: "boolean" }] },
reservedLast: {
type: "array",
items: { type: "string" }
},
locale: { type: "string" }
},
additionalProperties: false
}],
defaultOptions: [{
ignoreCase: false,
callbacksLast: false,
shorthandFirst: false,
shorthandLast: false,
multiline: "ignore",
noSortAlphabetically: false,
reservedFirst: false,
reservedLast: [],
locale: "auto"
}],
messages: {
listIsEmpty: "A customized reserved first list must not be empty",
listReservedPropsFirst: "Reserved props must be listed before all other props",
listReservedPropsLast: "Reserved props must be listed after all other props",
listCallbacksLast: "Callbacks must be listed after all other props",
listShorthandFirst: "Shorthand props must be listed before all other props",
listShorthandLast: "Shorthand props must be listed after all other props",
listMultilineFirst: "Multiline props must be listed before all other props",
listMultilineLast: "Multiline props must be listed after all other props",
sortPropsByAlpha: "Props should be sorted alphabetically"
}
},
create(context, [options]) {
const { sourceCode } = context;
const { ignoreCase, callbacksLast, shorthandFirst, shorthandLast, multiline, noSortAlphabetically, reservedFirst, reservedLast, locale } = options;
const reservedFirstError = validateReservedFirstConfig(context, reservedFirst);
const reservedList = Array.isArray(reservedFirst) ? reservedFirst : RESERVED_PROPS_LIST;
return {
Program() {
attributeMap = /* @__PURE__ */ new WeakMap();
},
JSXOpeningElement(node) {
const nodeReservedList = reservedFirst && !isDOMComponent(node) ? reservedList.filter((prop) => prop !== "dangerouslySetInnerHTML") : reservedList;
node.attributes.reduce((memo, decl, idx, attrs) => {
if (decl.type === "JSXSpreadAttribute") return attrs[idx + 1];
let previousPropName = getPropName(sourceCode, memo);
let currentPropName = getPropName(sourceCode, decl);
const previousReservedNamespace = previousPropName.split(":")[0];
const currentReservedNamespace = currentPropName.split(":")[0];
const previousValue = memo.value;
const currentValue = decl.value;
const previousIsCallback = isCallbackPropName(previousPropName);
const currentIsCallback = isCallbackPropName(currentPropName);
if (ignoreCase) {
previousPropName = previousPropName.toLowerCase();
currentPropName = currentPropName.toLowerCase();
}
if (reservedFirst) {
if (reservedFirstError) {
reservedFirstError(decl);
return memo;
}
const previousReservedIndex = getReservedPropIndex(previousPropName, nodeReservedList);
const currentReservedIndex = getReservedPropIndex(currentPropName, nodeReservedList);
if (previousReservedIndex > -1 && currentReservedIndex === -1) return decl;
if (reservedFirst !== true && previousReservedIndex > currentReservedIndex || previousReservedIndex === -1 && currentReservedIndex > -1) {
reportNodeAttribute(decl, "listReservedPropsFirst", node, context, nodeReservedList);
return memo;
}
if (previousReservedIndex > -1 && currentReservedIndex > -1 && currentReservedIndex > previousReservedIndex && previousReservedNamespace !== currentReservedNamespace) return decl;
}
if (reservedLast.length > 0) {
const previousReservedIndex = getReservedPropIndex(previousPropName, reservedLast);
const currentReservedIndex = getReservedPropIndex(currentPropName, reservedLast);
if (previousReservedIndex === -1 && currentReservedIndex > -1) return decl;
if (previousReservedIndex < currentReservedIndex || previousReservedIndex > -1 && currentReservedIndex === -1) {
reportNodeAttribute(decl, "listReservedPropsLast", node, context, nodeReservedList);
return memo;
}
if (previousReservedIndex > -1 && currentReservedIndex > -1 && currentReservedIndex > previousReservedIndex && previousReservedNamespace !== currentReservedNamespace) return decl;
}
if (callbacksLast) {
if (!previousIsCallback && currentIsCallback) return decl;
if (previousIsCallback && !currentIsCallback) {
reportNodeAttribute(memo, "listCallbacksLast", node, context, nodeReservedList);
return memo;
}
}
if (shorthandFirst) {
if (currentValue && !previousValue) return decl;
if (!currentValue && previousValue) {
reportNodeAttribute(decl, "listShorthandFirst", node, context, nodeReservedList);
return memo;
}
}
if (shorthandLast) {
if (!currentValue && previousValue) return decl;
if (currentValue && !previousValue) {
reportNodeAttribute(memo, "listShorthandLast", node, context, nodeReservedList);
return memo;
}
}
const previousIsMultiline = !isSingleLine(memo);
const currentIsMultiline = !isSingleLine(decl);
if (multiline === "first") {
if (previousIsMultiline && !currentIsMultiline) return decl;
if (!previousIsMultiline && currentIsMultiline) {
reportNodeAttribute(decl, "listMultilineFirst", node, context, nodeReservedList);
return memo;
}
} else if (multiline === "last") {
if (!previousIsMultiline && currentIsMultiline) return decl;
if (previousIsMultiline && !currentIsMultiline) {
reportNodeAttribute(memo, "listMultilineLast", node, context, nodeReservedList);
return memo;
}
}
if (!noSortAlphabetically && (ignoreCase || locale !== "auto" ? previousPropName.localeCompare(currentPropName, locale === "auto" ? void 0 : locale) > 0 : previousPropName > currentPropName)) {
reportNodeAttribute(decl, "sortPropsByAlpha", node, context, nodeReservedList);
return memo;
}
return decl;
}, node.attributes[0]);
}
};
}
});
export { jsx_sort_props_default as t };
@@ -0,0 +1 @@
{"version":3,"file":"mic-vocal.js","sources":["../../../src/icons/mic-vocal.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MicVocal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiIgLz4KICA8cGF0aCBkPSJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iNyIgcj0iNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mic-vocal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MicVocal = createLucideIcon('MicVocal', [\n [\n 'path',\n {\n d: 'm11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12',\n key: '80a601',\n },\n ],\n [\n 'path',\n {\n d: 'M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5',\n key: 'j0ngtp',\n },\n ],\n ['circle', { cx: '16', cy: '7', r: '5', key: 'd08jfb' }],\n]);\n\nexport default MicVocal;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,iBAAiB,UAAY,CAAA,CAAA,CAAA;AAAA,CAC5C,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAI,CAAA,CAAA,CAAA,GAAA,CAAK,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA;AACzD,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,33 @@
<a href="https://promisesaplus.com/"><img src="https://promisesaplus.com/assets/logo-small.png" align="right" /></a>
# is-promise
Test whether an object looks like a promises-a+ promise
[![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise)
[![Dependency Status](https://img.shields.io/david/then/is-promise.svg)](https://david-dm.org/then/is-promise)
[![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise)
## Installation
$ npm install is-promise
You can also use it client side via npm.
## API
```typescript
import isPromise from 'is-promise';
isPromise(Promise.resolve());//=>true
isPromise({then:function () {...}});//=>true
isPromise(null);//=>false
isPromise({});//=>false
isPromise({then: true})//=>false
```
## License
MIT
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/portal.tsx"],
"sourcesContent": ["import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef<PortalElement, PortalProps>((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(<Primitive.div {...portalProps} ref={forwardedRef} />, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n"],
"mappings": ";;;AAAA,YAAY,WAAW;AACvB,OAAO,cAAc;AACrB,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAuBJ;AAjB5B,IAAM,cAAc;AAWpB,IAAM,SAAe,iBAAuC,CAAC,OAAO,iBAAiB;AACnF,QAAM,EAAE,WAAW,eAAe,GAAG,YAAY,IAAI;AACrD,QAAM,CAAC,SAAS,UAAU,IAAU,eAAS,KAAK;AAClD,kBAAgB,MAAM,WAAW,IAAI,GAAG,CAAC,CAAC;AAC1C,QAAM,YAAY,iBAAkB,WAAW,YAAY,UAAU;AACrE,SAAO,YACH,SAAS,aAAa,oBAAC,UAAU,KAAV,EAAe,GAAG,aAAa,KAAK,cAAc,GAAI,SAAS,IACtF;AACN,CAAC;AAED,OAAO,cAAc;AAIrB,IAAM,OAAO;",
"names": []
}
@@ -0,0 +1,59 @@
let parts = [process.platform, process.arch];
if (process.platform === 'linux') {
const { MUSL, familySync } = require('detect-libc');
const family = familySync();
if (family === MUSL) {
parts.push('musl');
} else if (process.arch === 'arm') {
parts.push('gnueabihf');
} else {
parts.push('gnu');
}
} else if (process.platform === 'win32') {
parts.push('msvc');
}
let native;
try {
native = require(`lightningcss-${parts.join('-')}`);
} catch (err) {
native = require(`../lightningcss.${parts.join('-')}.node`);
}
module.exports.transform = wrap(native.transform);
module.exports.transformStyleAttribute = wrap(native.transformStyleAttribute);
module.exports.bundle = wrap(native.bundle);
module.exports.bundleAsync = wrap(native.bundleAsync);
module.exports.browserslistToTargets = require('./browserslistToTargets');
module.exports.composeVisitors = require('./composeVisitors');
module.exports.Features = require('./flags').Features;
function wrap(call) {
return (options) => {
if (typeof options.visitor === 'function') {
let deps = [];
options.visitor = options.visitor({
addDependency(dep) {
deps.push(dep);
}
});
let result = call(options);
if (result instanceof Promise) {
result = result.then(res => {
if (deps.length) {
res.dependencies ??= [];
res.dependencies.push(...deps);
}
return res;
});
} else if (deps.length) {
result.dependencies ??= [];
result.dependencies.push(...deps);
}
return result;
} else {
return call(options);
}
};
}
@@ -0,0 +1 @@
{"version":3,"file":"circle-gauge.js","sources":["../../../src/icons/circle-gauge.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleGauge\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNiAyLjdhMTAgMTAgMCAxIDAgNS43IDUuNyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMy40IDEwLjYgMTkgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-gauge\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleGauge = createLucideIcon('CircleGauge', [\n ['path', { d: 'M15.6 2.7a10 10 0 1 0 5.7 5.7', key: '1e0p6d' }],\n ['circle', { cx: '12', cy: '12', r: '2', key: '1c9p78' }],\n ['path', { d: 'M13.4 10.6 19 5', key: '1kr7tw' }],\n]);\n\nexport default CircleGauge;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,iBAAiB,aAAe,CAAA,CAAA,CAAA;AAAA,CAAA,CAClD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAC9D,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAI,CAAA,CAAA,CAAA,IAAA,CAAM,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA;AAAA,CAAA,CACxD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAClD,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1 @@
module.exports={A:{A:{"2":"_E"},B:{"1":"_J"},C:{"1":"_YO","2":"_q G _L","132":"_IE _TJ","260":"_NB","516":"oB"},D:{"1":"_GN _SG","2":"_aL","1028":"_jC _KH"},E:{"1":"_PB","2":"_UB"},F:{"1":"_tN _vB","2":"_T","1028":"_fF"},G:{"1":"_s","2":"_3"},H:{"2":"1D"},I:{"1":"I","2":"_BO","1028":"_yI"},J:{"2":"_B"},K:{"1":"H","2":"_D"},L:{"1":"I"},M:{"1":"YC"},N:{"2":"_A"},O:{"1":"bC"},P:{"1":"_F"},Q:{"1":"JE"},R:{"1":"KE"},S:{"1":"_C"}},B:6,C:"ES6 Number",D:true};
@@ -0,0 +1,2 @@
'use strict';
module.exports = require('./globals.json');
@@ -0,0 +1,19 @@
#!/usr/bin/env node
process.env.NODE_ENV = 'test'
var path = require('path')
var test = null
try {
var pkg = require(path.join(process.cwd(), 'package.json'))
if (pkg.name && process.env[pkg.name.toUpperCase().replace(/-/g, '_')]) {
process.exit(0)
}
test = pkg.prebuild.test
} catch (err) {
// do nothing
}
if (test) require(path.join(process.cwd(), test))
else require('./')()
@@ -0,0 +1 @@
{"version":3,"file":"boom-box.js","sources":["../../../src/icons/boom-box.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name BoomBox\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQiIC8+CiAgPHBhdGggZD0iTTggOHYxIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djEiIC8+CiAgPHBhdGggZD0iTTE2IDh2MSIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxNSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/boom-box\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BoomBox = createLucideIcon('BoomBox', [\n ['path', { d: 'M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4', key: 'vvzvr1' }],\n ['path', { d: 'M8 8v1', key: 'xcqmfk' }],\n ['path', { d: 'M12 8v1', key: '1rj8u4' }],\n ['path', { d: 'M16 8v1', key: '1q12zr' }],\n ['rect', { width: '20', height: '12', x: '2', y: '9', rx: '2', key: 'igpb89' }],\n ['circle', { cx: '8', cy: '15', r: '2', key: 'fa4a8s' }],\n ['circle', { cx: '16', cy: '15', r: '2', key: '14c3ya' }],\n]);\n\nexport default BoomBox;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,iBAAiB,SAAW,CAAA,CAAA,CAAA;AAAA,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAA2C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACvC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAC9E,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAI,CAAA,CAAA,CAAA,IAAA,CAAM,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA;AAAA,CACvD,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAI,CAAA,CAAA,CAAA,IAAA,CAAM,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA;AAC1D,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,67 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasRef = void 0;
const compile_1 = require("../../compile");
const codegen_1 = require("../../compile/codegen");
const ref_error_1 = require("../../compile/ref_error");
const names_1 = require("../../compile/names");
const ref_1 = require("../core/ref");
const metadata_1 = require("./metadata");
const def = {
keyword: "ref",
schemaType: "string",
code(cxt) {
(0, metadata_1.checkMetadata)(cxt);
const { gen, data, schema: ref, parentSchema, it } = cxt;
const { schemaEnv: { root }, } = it;
const valid = gen.name("valid");
if (parentSchema.nullable) {
gen.var(valid, (0, codegen_1._) `${data} === null`);
gen.if((0, codegen_1.not)(valid), validateJtdRef);
}
else {
gen.var(valid, false);
validateJtdRef();
}
cxt.ok(valid);
function validateJtdRef() {
var _a;
const refSchema = (_a = root.schema.definitions) === null || _a === void 0 ? void 0 : _a[ref];
if (!refSchema) {
throw new ref_error_1.default(it.opts.uriResolver, "", ref, `No definition ${ref}`);
}
if (hasRef(refSchema) || !it.opts.inlineRefs)
callValidate(refSchema);
else
inlineRefSchema(refSchema);
}
function callValidate(schema) {
const sch = compile_1.compileSchema.call(it.self, new compile_1.SchemaEnv({ schema, root, schemaPath: `/definitions/${ref}` }));
const v = (0, ref_1.getValidate)(cxt, sch);
const errsCount = gen.const("_errs", names_1.default.errors);
(0, ref_1.callRef)(cxt, v, sch, sch.$async);
gen.assign(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);
}
function inlineRefSchema(schema) {
const schName = gen.scopeValue("schema", it.opts.code.source === true ? { ref: schema, code: (0, codegen_1.stringify)(schema) } : { ref: schema });
cxt.subschema({
schema,
dataTypes: [],
schemaPath: codegen_1.nil,
topSchemaRef: schName,
errSchemaPath: `/definitions/${ref}`,
}, valid);
}
},
};
function hasRef(schema) {
for (const key in schema) {
let sch;
if (key === "ref" || (typeof (sch = schema[key]) == "object" && hasRef(sch)))
return true;
}
return false;
}
exports.hasRef = hasRef;
exports.default = def;
//# sourceMappingURL=ref.js.map
@@ -0,0 +1,103 @@
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const DescriptionFileUtils = require("./DescriptionFileUtils");
const getInnerRequest = require("./getInnerRequest");
/** @typedef {import("./Resolver")} Resolver */
/** @typedef {import("./Resolver").JsonPrimitive} JsonPrimitive */
/** @typedef {import("./Resolver").ResolveRequest} ResolveRequest */
/** @typedef {import("./Resolver").ResolveStepHook} ResolveStepHook */
module.exports = class AliasFieldPlugin {
/**
* @param {string | ResolveStepHook} source source
* @param {string | string[]} field field
* @param {string | ResolveStepHook} target target
*/
constructor(source, field, target) {
this.source = source;
this.field = field;
this.target = target;
}
/**
* @param {Resolver} resolver the resolver
* @returns {void}
*/
apply(resolver) {
const target = resolver.ensureHook(this.target);
resolver
.getHook(this.source)
.tapAsync("AliasFieldPlugin", (request, resolveContext, callback) => {
if (!request.descriptionFileData) return callback();
const innerRequest = getInnerRequest(resolver, request);
if (!innerRequest) return callback();
const fieldData = DescriptionFileUtils.getField(
request.descriptionFileData,
this.field,
);
if (fieldData === null || typeof fieldData !== "object") {
if (resolveContext.log) {
resolveContext.log(
`Field '${this.field}' doesn't contain a valid alias configuration`,
);
}
return callback();
}
/** @type {JsonPrimitive | undefined} */
const data = Object.prototype.hasOwnProperty.call(
fieldData,
innerRequest,
)
? /** @type {{ [Key in string]: JsonPrimitive }} */ (fieldData)[
innerRequest
]
: innerRequest.startsWith("./")
? /** @type {{ [Key in string]: JsonPrimitive }} */ (fieldData)[
innerRequest.slice(2)
]
: undefined;
if (data === innerRequest) return callback();
if (data === undefined) return callback();
if (data === false) {
/** @type {ResolveRequest} */
const ignoreObj = {
...request,
path: false,
};
if (typeof resolveContext.yield === "function") {
resolveContext.yield(ignoreObj);
return callback(null, null);
}
return callback(null, ignoreObj);
}
/** @type {ResolveRequest} */
const obj = {
...request,
path: /** @type {string} */ (request.descriptionFileRoot),
request: /** @type {string} */ (data),
fullySpecified: false,
};
resolver.doResolve(
target,
obj,
`aliased from description file ${
request.descriptionFilePath
} with mapping '${innerRequest}' to '${/** @type {string} */ data}'`,
resolveContext,
(err, result) => {
if (err) return callback(err);
// Don't allow other aliasing or raw request
if (result === undefined) return callback(null, null);
callback(null, result);
},
);
});
}
};
@@ -0,0 +1,17 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const PanelRightOpen = createLucideIcon("PanelRightOpen", [
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
["path", { d: "M15 3v18", key: "14nvp0" }],
["path", { d: "m10 15-3-3 3-3", key: "1pgupc" }]
]);
export { PanelRightOpen as default };
//# sourceMappingURL=panel-right-open.js.map
@@ -0,0 +1,42 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = validate;
exports.validateChild = validateChild;
exports.validateField = validateField;
exports.validateInternal = validateInternal;
var _index = require("../definitions/index.js");
function validate(node, key, val) {
if (!node) return;
const fields = _index.NODE_FIELDS[node.type];
if (!fields) return;
const field = fields[key];
validateField(node, key, val, field);
validateChild(node, key, val);
}
function validateInternal(field, node, key, val, maybeNode) {
if (!(field != null && field.validate)) return;
if (field.optional && val == null) return;
field.validate(node, key, val);
if (maybeNode) {
var _NODE_PARENT_VALIDATI;
const type = val.type;
if (type == null) return;
(_NODE_PARENT_VALIDATI = _index.NODE_PARENT_VALIDATIONS[type]) == null || _NODE_PARENT_VALIDATI.call(_index.NODE_PARENT_VALIDATIONS, node, key, val);
}
}
function validateField(node, key, val, field) {
if (!(field != null && field.validate)) return;
if (field.optional && val == null) return;
field.validate(node, key, val);
}
function validateChild(node, key, val) {
var _NODE_PARENT_VALIDATI2;
const type = val == null ? void 0 : val.type;
if (type == null) return;
(_NODE_PARENT_VALIDATI2 = _index.NODE_PARENT_VALIDATIONS[type]) == null || _NODE_PARENT_VALIDATI2.call(_index.NODE_PARENT_VALIDATIONS, node, key, val);
}
//# sourceMappingURL=validate.js.map
@@ -0,0 +1,484 @@
#include <stdint.h>
#include <sstream>
#include <cstring>
#include <string>
#include <sqlite3.h>
#include "macros.h"
#include "database.h"
#include "statement.h"
#include "backup.h"
#include "session.h"
#include "blob.h"
using namespace node_sqlite3;
// The native-interface revision. lib/sqlite3-binding.js requires this
// exact number (NATIVE_INTERFACE_EXPECTED there) and throws when the
// binary it loaded reports another one, or none at all.
//
// Bump both, in the same commit, whenever lib/ starts depending on
// something this addon did not export before. That turns "a stale .node
// was resolved ahead of the current build" — which otherwise presents as
// unexplained missing APIs on the namespace, e.g. a 9.0 binary shadowing
// a 9.1 checkout and reporting `rebaseChangeset === undefined` — into a
// load-time error naming the file.
#define NODE_SQLITE3_NATIVE_INTERFACE 1
namespace {
// setRowFactoryGenerator(fn): installs the JS half of the row builder.
//
// The generator takes (columnNames, arrayShape) and returns a function that
// builds one row from its arguments — see makeRowFactory in lib/sqlite3.js.
// It lives in JS so the generated source is escaped by JSON.stringify rather
// than by a hand-rolled C++ escaper, and so a realm that forbids code
// generation from strings fails in one catchable place.
Napi::Value SetRowFactoryGenerator(const Napi::CallbackInfo& info) {
auto env = info.Env();
if (info.Length() < 1 || !info[0].IsFunction()) {
Napi::TypeError::New(env, "setRowFactoryGenerator requires a function")
.ThrowAsJavaScriptException();
return env.Undefined();
}
auto* addon = env.GetInstanceData<Database::AddonData>();
if (addon == NULL) return env.Undefined();
if (addon->row_factory_generator != NULL) {
napi_delete_reference(env, addon->row_factory_generator);
addon->row_factory_generator = NULL;
}
napi_create_reference(env, info[0], 1, &addon->row_factory_generator);
return env.Undefined();
}
// complete(sql): sqlite3_complete — true when a SQL string is a complete
// statement (balanced quotes/semicolons). The REPL/CLI helper; a pure
// string function with no connection.
Napi::Value Complete(const Napi::CallbackInfo& info) {
auto env = info.Env();
if (info.Length() < 1 || !info[0].IsString()) {
Napi::TypeError::New(env, "complete() requires a SQL string")
.ThrowAsJavaScriptException();
return env.Null();
}
std::string sql = info[0].As<Napi::String>().Utf8Value();
return Napi::Boolean::New(env,
sqlite3_complete(sql.c_str()) != 0);
}
// compileOptions(): the SQLITE_COMPILE_OPTIONS this build was configured
// with (sqlite3_compileoption_get) — what "is FTS5 compiled in" can be
// answered from, at runtime.
Napi::Value CompileOptions(const Napi::CallbackInfo& info) {
auto env = info.Env();
Napi::Array result = Napi::Array::New(env);
uint32_t i = 0;
for (const char* opt = sqlite3_compileoption_get(0); opt != NULL;
opt = sqlite3_compileoption_get(++i)) {
result.Set(i, Napi::String::New(env, opt));
}
return result;
}
Napi::Object RegisterModule(Napi::Env env, Napi::Object exports) {
Napi::HandleScope scope(env);
Database::Init(env, exports);
Statement::Init(env, exports);
Backup::Init(env, exports);
Session::Init(env, exports);
ChangesetIter::Init(env, exports);
Blob::Init(env, exports);
exports.Set("setRowFactoryGenerator",
Napi::Function::New(env, SetRowFactoryGenerator));
exports.Set("invertChangeset",
Napi::Function::New(env, InvertChangeset));
exports.Set("concatChangeset",
Napi::Function::New(env, ConcatChangeset));
exports.Set("iterateChangeset",
Napi::Function::New(env, IterateChangeset));
exports.Set("rebaseChangeset",
Napi::Function::New(env, RebaseChangeset));
exports.Set("complete",
Napi::Function::New(env, Complete));
exports.Set("compileOptions",
Napi::Function::New(env, CompileOptions));
exports.Set("NATIVE_INTERFACE_VERSION",
Napi::Number::New(env, NODE_SQLITE3_NATIVE_INTERFACE));
exports.DefineProperties({
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_READONLY, OPEN_READONLY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_READWRITE, OPEN_READWRITE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_CREATE, OPEN_CREATE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_FULLMUTEX, OPEN_FULLMUTEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_URI, OPEN_URI)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_SHAREDCACHE, OPEN_SHAREDCACHE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_PRIVATECACHE, OPEN_PRIVATECACHE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_NOMUTEX, OPEN_NOMUTEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_MEMORY, OPEN_MEMORY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OPEN_EXRESCODE, OPEN_EXRESCODE)
DEFINE_CONSTANT_STRING(exports, SQLITE_VERSION, VERSION)
#ifdef SQLITE_SOURCE_ID
DEFINE_CONSTANT_STRING(exports, SQLITE_SOURCE_ID, SOURCE_ID)
#endif
DEFINE_CONSTANT_INTEGER(exports, SQLITE_VERSION_NUMBER, VERSION_NUMBER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_OK, OK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR, ERROR)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_INTERNAL, INTERNAL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_PERM, PERM)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ABORT, ABORT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_BUSY, BUSY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LOCKED, LOCKED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_NOMEM, NOMEM)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY, READONLY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_INTERRUPT, INTERRUPT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR, IOERR)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CORRUPT, CORRUPT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_NOTFOUND, NOTFOUND)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_FULL, FULL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN, CANTOPEN)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_PROTOCOL, PROTOCOL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_EMPTY, EMPTY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_SCHEMA, SCHEMA)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_TOOBIG, TOOBIG)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT, CONSTRAINT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_MISMATCH, MISMATCH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_MISUSE, MISUSE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_NOLFS, NOLFS)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_AUTH, AUTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_FORMAT, FORMAT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_RANGE, RANGE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_NOTADB, NOTADB)
// Extended result codes (Deliverable 02). Enabled per connection by
// sqlite3_extended_result_codes() in Work_Open; err.code carries the
// extended name and err.primaryCode the primary one.
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR_MISSING_COLLSEQ, ERROR_MISSING_COLLSEQ)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR_RETRY, ERROR_RETRY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR_SNAPSHOT, ERROR_SNAPSHOT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR_RESERVESIZE, ERROR_RESERVESIZE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR_KEY, ERROR_KEY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ERROR_UNABLE, ERROR_UNABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_READ, IOERR_READ)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_SHORT_READ, IOERR_SHORT_READ)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_WRITE, IOERR_WRITE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_FSYNC, IOERR_FSYNC)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_DIR_FSYNC, IOERR_DIR_FSYNC)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_TRUNCATE, IOERR_TRUNCATE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_FSTAT, IOERR_FSTAT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_UNLOCK, IOERR_UNLOCK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_RDLOCK, IOERR_RDLOCK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_DELETE, IOERR_DELETE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_BLOCKED, IOERR_BLOCKED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_NOMEM, IOERR_NOMEM)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_ACCESS, IOERR_ACCESS)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_CHECKRESERVEDLOCK, IOERR_CHECKRESERVEDLOCK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_LOCK, IOERR_LOCK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_CLOSE, IOERR_CLOSE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_DIR_CLOSE, IOERR_DIR_CLOSE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_SHMOPEN, IOERR_SHMOPEN)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_SHMSIZE, IOERR_SHMSIZE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_SHMLOCK, IOERR_SHMLOCK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_SHMMAP, IOERR_SHMMAP)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_SEEK, IOERR_SEEK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_DELETE_NOENT, IOERR_DELETE_NOENT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_MMAP, IOERR_MMAP)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_GETTEMPPATH, IOERR_GETTEMPPATH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_CONVPATH, IOERR_CONVPATH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_VNODE, IOERR_VNODE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_AUTH, IOERR_AUTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_BEGIN_ATOMIC, IOERR_BEGIN_ATOMIC)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_COMMIT_ATOMIC, IOERR_COMMIT_ATOMIC)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_ROLLBACK_ATOMIC, IOERR_ROLLBACK_ATOMIC)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_DATA, IOERR_DATA)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_CORRUPTFS, IOERR_CORRUPTFS)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_IN_PAGE, IOERR_IN_PAGE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_BADKEY, IOERR_BADKEY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IOERR_CODEC, IOERR_CODEC)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LOCKED_SHAREDCACHE, LOCKED_SHAREDCACHE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LOCKED_VTAB, LOCKED_VTAB)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_BUSY_RECOVERY, BUSY_RECOVERY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_BUSY_SNAPSHOT, BUSY_SNAPSHOT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_BUSY_TIMEOUT, BUSY_TIMEOUT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN_NOTEMPDIR, CANTOPEN_NOTEMPDIR)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN_ISDIR, CANTOPEN_ISDIR)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN_FULLPATH, CANTOPEN_FULLPATH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN_CONVPATH, CANTOPEN_CONVPATH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN_DIRTYWAL, CANTOPEN_DIRTYWAL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CANTOPEN_SYMLINK, CANTOPEN_SYMLINK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CORRUPT_VTAB, CORRUPT_VTAB)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CORRUPT_SEQUENCE, CORRUPT_SEQUENCE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CORRUPT_INDEX, CORRUPT_INDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY_RECOVERY, READONLY_RECOVERY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY_CANTLOCK, READONLY_CANTLOCK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY_ROLLBACK, READONLY_ROLLBACK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY_DBMOVED, READONLY_DBMOVED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY_CANTINIT, READONLY_CANTINIT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READONLY_DIRECTORY, READONLY_DIRECTORY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ABORT_ROLLBACK, ABORT_ROLLBACK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_CHECK, CONSTRAINT_CHECK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_COMMITHOOK, CONSTRAINT_COMMITHOOK)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_FOREIGNKEY, CONSTRAINT_FOREIGNKEY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_FUNCTION, CONSTRAINT_FUNCTION)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_NOTNULL, CONSTRAINT_NOTNULL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_PRIMARYKEY, CONSTRAINT_PRIMARYKEY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_TRIGGER, CONSTRAINT_TRIGGER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_UNIQUE, CONSTRAINT_UNIQUE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_VTAB, CONSTRAINT_VTAB)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_ROWID, CONSTRAINT_ROWID)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_PINNED, CONSTRAINT_PINNED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CONSTRAINT_DATATYPE, CONSTRAINT_DATATYPE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_AUTH_USER, AUTH_USER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_LENGTH, LIMIT_LENGTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_SQL_LENGTH, LIMIT_SQL_LENGTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_COLUMN, LIMIT_COLUMN)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_EXPR_DEPTH, LIMIT_EXPR_DEPTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_COMPOUND_SELECT, LIMIT_COMPOUND_SELECT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_VDBE_OP, LIMIT_VDBE_OP)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_FUNCTION_ARG, LIMIT_FUNCTION_ARG)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_ATTACHED, LIMIT_ATTACHED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_LIKE_PATTERN_LENGTH, LIMIT_LIKE_PATTERN_LENGTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_VARIABLE_NUMBER, LIMIT_VARIABLE_NUMBER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_TRIGGER_DEPTH, LIMIT_TRIGGER_DEPTH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_LIMIT_WORKER_THREADS, LIMIT_WORKER_THREADS)
// Authorizer action codes and decisions (Deliverable 07). The
// codes collide numerically with result codes (SQLITE_INSERT is
// 18) but never under these names; OK is the result-code OK.
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_INDEX, CREATE_INDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_TABLE, CREATE_TABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_TEMP_INDEX, CREATE_TEMP_INDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_TEMP_TABLE, CREATE_TEMP_TABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_TEMP_TRIGGER, CREATE_TEMP_TRIGGER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_TEMP_VIEW, CREATE_TEMP_VIEW)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_TRIGGER, CREATE_TRIGGER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_VIEW, CREATE_VIEW)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DELETE, DELETE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_INDEX, DROP_INDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_TABLE, DROP_TABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_TEMP_INDEX, DROP_TEMP_INDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_TEMP_TABLE, DROP_TEMP_TABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_TEMP_TRIGGER, DROP_TEMP_TRIGGER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_TEMP_VIEW, DROP_TEMP_VIEW)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_TRIGGER, DROP_TRIGGER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_VIEW, DROP_VIEW)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_INSERT, INSERT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_PRAGMA, PRAGMA)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_READ, READ)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_SELECT, SELECT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_TRANSACTION, TRANSACTION)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_UPDATE, UPDATE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ATTACH, ATTACH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DETACH, DETACH)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ALTER_TABLE, ALTER_TABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_REINDEX, REINDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_ANALYZE, ANALYZE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CREATE_VTABLE, CREATE_VTABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DROP_VTABLE, DROP_VTABLE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_FUNCTION, FUNCTION)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_SAVEPOINT, SAVEPOINT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_RECURSIVE, RECURSIVE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DENY, DENY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_IGNORE, IGNORE)
// sqlite3_stmt_status counters (Statement#status).
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_FULLSCAN_STEP, STMTSTATUS_FULLSCAN_STEP)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_SORT, STMTSTATUS_SORT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_AUTOINDEX, STMTSTATUS_AUTOINDEX)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_VM_STEP, STMTSTATUS_VM_STEP)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_REPREPARE, STMTSTATUS_REPREPARE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_RUN, STMTSTATUS_RUN)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_FILTER_MISS, STMTSTATUS_FILTER_MISS)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_STMTSTATUS_FILTER_HIT, STMTSTATUS_FILTER_HIT)
// sqlite3_db_status counters (db.status). The process-wide memory
// counters read zero in this build (SQLITE_DEFAULT_MEMSTATUS=0);
// the cache and schema counters are the useful ones.
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_LOOKASIDE_USED, DBSTATUS_LOOKASIDE_USED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_CACHE_USED, DBSTATUS_CACHE_USED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_SCHEMA_USED, DBSTATUS_SCHEMA_USED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_STMT_USED, DBSTATUS_STMT_USED)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_LOOKASIDE_HIT, DBSTATUS_LOOKASIDE_HIT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, DBSTATUS_LOOKASIDE_MISS_SIZE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL, DBSTATUS_LOOKASIDE_MISS_FULL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_CACHE_HIT, DBSTATUS_CACHE_HIT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_CACHE_MISS, DBSTATUS_CACHE_MISS)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_CACHE_WRITE, DBSTATUS_CACHE_WRITE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_CACHE_SPILL, DBSTATUS_CACHE_SPILL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBSTATUS_DEFERRED_FKS, DBSTATUS_DEFERRED_FKS)
// The sqlite3_db_config subset Database#dbConfig exposes.
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_ENABLE_FKEY, DBCONFIG_ENABLE_FKEY)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_ENABLE_TRIGGER, DBCONFIG_ENABLE_TRIGGER)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_ENABLE_VIEW, DBCONFIG_ENABLE_VIEW)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, DBCONFIG_ENABLE_LOAD_EXTENSION)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_DEFENSIVE, DBCONFIG_DEFENSIVE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_WRITABLE_SCHEMA, DBCONFIG_WRITABLE_SCHEMA)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_DBCONFIG_TRUSTED_SCHEMA, DBCONFIG_TRUSTED_SCHEMA)
// sqlite3_wal_checkpoint_v2 modes (Database#checkpoint; the JS
// layer also accepts the mode as a string).
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHECKPOINT_PASSIVE, CHECKPOINT_PASSIVE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHECKPOINT_FULL, CHECKPOINT_FULL)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHECKPOINT_RESTART, CHECKPOINT_RESTART)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHECKPOINT_TRUNCATE, CHECKPOINT_TRUNCATE)
// Changeset conflict-handler decisions (Deliverable 08): what
// db.applyChangeset does when a change cannot be applied. The
// conflict codes below describe why the handler fired.
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_OMIT, CHANGESET_OMIT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_REPLACE, CHANGESET_REPLACE)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_ABORT, CHANGESET_ABORT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_DATA, CHANGESET_DATA)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_NOTFOUND, CHANGESET_NOTFOUND)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_CONFLICT, CHANGESET_CONFLICT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_CONSTRAINT, CHANGESET_CONSTRAINT)
DEFINE_CONSTANT_INTEGER(exports, SQLITE_CHANGESET_FOREIGN_KEY, CHANGESET_FOREIGN_KEY)
});
return exports;
}
}
// Names of the 26 primary result codes. Used directly and as the
// code & 0xff fallback for unrecognised extended codes.
static const char* sqlite_primary_code_string(int code) {
switch (code) {
case SQLITE_OK: return "SQLITE_OK";
case SQLITE_ERROR: return "SQLITE_ERROR";
case SQLITE_INTERNAL: return "SQLITE_INTERNAL";
case SQLITE_PERM: return "SQLITE_PERM";
case SQLITE_ABORT: return "SQLITE_ABORT";
case SQLITE_BUSY: return "SQLITE_BUSY";
case SQLITE_LOCKED: return "SQLITE_LOCKED";
case SQLITE_NOMEM: return "SQLITE_NOMEM";
case SQLITE_READONLY: return "SQLITE_READONLY";
case SQLITE_INTERRUPT: return "SQLITE_INTERRUPT";
case SQLITE_IOERR: return "SQLITE_IOERR";
case SQLITE_CORRUPT: return "SQLITE_CORRUPT";
case SQLITE_NOTFOUND: return "SQLITE_NOTFOUND";
case SQLITE_FULL: return "SQLITE_FULL";
case SQLITE_CANTOPEN: return "SQLITE_CANTOPEN";
case SQLITE_PROTOCOL: return "SQLITE_PROTOCOL";
case SQLITE_EMPTY: return "SQLITE_EMPTY";
case SQLITE_SCHEMA: return "SQLITE_SCHEMA";
case SQLITE_TOOBIG: return "SQLITE_TOOBIG";
case SQLITE_CONSTRAINT: return "SQLITE_CONSTRAINT";
case SQLITE_MISMATCH: return "SQLITE_MISMATCH";
case SQLITE_MISUSE: return "SQLITE_MISUSE";
case SQLITE_NOLFS: return "SQLITE_NOLFS";
case SQLITE_AUTH: return "SQLITE_AUTH";
case SQLITE_FORMAT: return "SQLITE_FORMAT";
case SQLITE_RANGE: return "SQLITE_RANGE";
case SQLITE_NOTADB: return "SQLITE_NOTADB";
case SQLITE_ROW: return "SQLITE_ROW";
case SQLITE_DONE: return "SQLITE_DONE";
default: return NULL;
}
}
// Maps a result code — primary or extended — to its SQLite name.
// Extended result codes are enabled per connection (Work_Open), so step
// failures report e.g. SQLITE_CONSTRAINT_UNIQUE rather than bare
// SQLITE_CONSTRAINT. Unknown codes degrade to the primary name of
// code & 0xff, then to SQLITE_UNKNOWN(<code>).
std::string sqlite_code_string(int code) {
switch (code) {
case SQLITE_ERROR_MISSING_COLLSEQ: return "SQLITE_ERROR_MISSING_COLLSEQ";
case SQLITE_ERROR_RETRY: return "SQLITE_ERROR_RETRY";
case SQLITE_ERROR_SNAPSHOT: return "SQLITE_ERROR_SNAPSHOT";
case SQLITE_ERROR_RESERVESIZE: return "SQLITE_ERROR_RESERVESIZE";
case SQLITE_ERROR_KEY: return "SQLITE_ERROR_KEY";
case SQLITE_ERROR_UNABLE: return "SQLITE_ERROR_UNABLE";
case SQLITE_IOERR_READ: return "SQLITE_IOERR_READ";
case SQLITE_IOERR_SHORT_READ: return "SQLITE_IOERR_SHORT_READ";
case SQLITE_IOERR_WRITE: return "SQLITE_IOERR_WRITE";
case SQLITE_IOERR_FSYNC: return "SQLITE_IOERR_FSYNC";
case SQLITE_IOERR_DIR_FSYNC: return "SQLITE_IOERR_DIR_FSYNC";
case SQLITE_IOERR_TRUNCATE: return "SQLITE_IOERR_TRUNCATE";
case SQLITE_IOERR_FSTAT: return "SQLITE_IOERR_FSTAT";
case SQLITE_IOERR_UNLOCK: return "SQLITE_IOERR_UNLOCK";
case SQLITE_IOERR_RDLOCK: return "SQLITE_IOERR_RDLOCK";
case SQLITE_IOERR_DELETE: return "SQLITE_IOERR_DELETE";
case SQLITE_IOERR_BLOCKED: return "SQLITE_IOERR_BLOCKED";
case SQLITE_IOERR_NOMEM: return "SQLITE_IOERR_NOMEM";
case SQLITE_IOERR_ACCESS: return "SQLITE_IOERR_ACCESS";
case SQLITE_IOERR_CHECKRESERVEDLOCK: return "SQLITE_IOERR_CHECKRESERVEDLOCK";
case SQLITE_IOERR_LOCK: return "SQLITE_IOERR_LOCK";
case SQLITE_IOERR_CLOSE: return "SQLITE_IOERR_CLOSE";
case SQLITE_IOERR_DIR_CLOSE: return "SQLITE_IOERR_DIR_CLOSE";
case SQLITE_IOERR_SHMOPEN: return "SQLITE_IOERR_SHMOPEN";
case SQLITE_IOERR_SHMSIZE: return "SQLITE_IOERR_SHMSIZE";
case SQLITE_IOERR_SHMLOCK: return "SQLITE_IOERR_SHMLOCK";
case SQLITE_IOERR_SHMMAP: return "SQLITE_IOERR_SHMMAP";
case SQLITE_IOERR_SEEK: return "SQLITE_IOERR_SEEK";
case SQLITE_IOERR_DELETE_NOENT: return "SQLITE_IOERR_DELETE_NOENT";
case SQLITE_IOERR_MMAP: return "SQLITE_IOERR_MMAP";
case SQLITE_IOERR_GETTEMPPATH: return "SQLITE_IOERR_GETTEMPPATH";
case SQLITE_IOERR_CONVPATH: return "SQLITE_IOERR_CONVPATH";
case SQLITE_IOERR_VNODE: return "SQLITE_IOERR_VNODE";
case SQLITE_IOERR_AUTH: return "SQLITE_IOERR_AUTH";
case SQLITE_IOERR_BEGIN_ATOMIC: return "SQLITE_IOERR_BEGIN_ATOMIC";
case SQLITE_IOERR_COMMIT_ATOMIC: return "SQLITE_IOERR_COMMIT_ATOMIC";
case SQLITE_IOERR_ROLLBACK_ATOMIC: return "SQLITE_IOERR_ROLLBACK_ATOMIC";
case SQLITE_IOERR_DATA: return "SQLITE_IOERR_DATA";
case SQLITE_IOERR_CORRUPTFS: return "SQLITE_IOERR_CORRUPTFS";
case SQLITE_IOERR_IN_PAGE: return "SQLITE_IOERR_IN_PAGE";
case SQLITE_IOERR_BADKEY: return "SQLITE_IOERR_BADKEY";
case SQLITE_IOERR_CODEC: return "SQLITE_IOERR_CODEC";
case SQLITE_LOCKED_SHAREDCACHE: return "SQLITE_LOCKED_SHAREDCACHE";
case SQLITE_LOCKED_VTAB: return "SQLITE_LOCKED_VTAB";
case SQLITE_BUSY_RECOVERY: return "SQLITE_BUSY_RECOVERY";
case SQLITE_BUSY_SNAPSHOT: return "SQLITE_BUSY_SNAPSHOT";
case SQLITE_BUSY_TIMEOUT: return "SQLITE_BUSY_TIMEOUT";
case SQLITE_CANTOPEN_NOTEMPDIR: return "SQLITE_CANTOPEN_NOTEMPDIR";
case SQLITE_CANTOPEN_ISDIR: return "SQLITE_CANTOPEN_ISDIR";
case SQLITE_CANTOPEN_FULLPATH: return "SQLITE_CANTOPEN_FULLPATH";
case SQLITE_CANTOPEN_CONVPATH: return "SQLITE_CANTOPEN_CONVPATH";
case SQLITE_CANTOPEN_DIRTYWAL: return "SQLITE_CANTOPEN_DIRTYWAL";
case SQLITE_CANTOPEN_SYMLINK: return "SQLITE_CANTOPEN_SYMLINK";
case SQLITE_CORRUPT_VTAB: return "SQLITE_CORRUPT_VTAB";
case SQLITE_CORRUPT_SEQUENCE: return "SQLITE_CORRUPT_SEQUENCE";
case SQLITE_CORRUPT_INDEX: return "SQLITE_CORRUPT_INDEX";
case SQLITE_READONLY_RECOVERY: return "SQLITE_READONLY_RECOVERY";
case SQLITE_READONLY_CANTLOCK: return "SQLITE_READONLY_CANTLOCK";
case SQLITE_READONLY_ROLLBACK: return "SQLITE_READONLY_ROLLBACK";
case SQLITE_READONLY_DBMOVED: return "SQLITE_READONLY_DBMOVED";
case SQLITE_READONLY_CANTINIT: return "SQLITE_READONLY_CANTINIT";
case SQLITE_READONLY_DIRECTORY: return "SQLITE_READONLY_DIRECTORY";
case SQLITE_ABORT_ROLLBACK: return "SQLITE_ABORT_ROLLBACK";
case SQLITE_CONSTRAINT_CHECK: return "SQLITE_CONSTRAINT_CHECK";
case SQLITE_CONSTRAINT_COMMITHOOK: return "SQLITE_CONSTRAINT_COMMITHOOK";
case SQLITE_CONSTRAINT_FOREIGNKEY: return "SQLITE_CONSTRAINT_FOREIGNKEY";
case SQLITE_CONSTRAINT_FUNCTION: return "SQLITE_CONSTRAINT_FUNCTION";
case SQLITE_CONSTRAINT_NOTNULL: return "SQLITE_CONSTRAINT_NOTNULL";
case SQLITE_CONSTRAINT_PRIMARYKEY: return "SQLITE_CONSTRAINT_PRIMARYKEY";
case SQLITE_CONSTRAINT_TRIGGER: return "SQLITE_CONSTRAINT_TRIGGER";
case SQLITE_CONSTRAINT_UNIQUE: return "SQLITE_CONSTRAINT_UNIQUE";
case SQLITE_CONSTRAINT_VTAB: return "SQLITE_CONSTRAINT_VTAB";
case SQLITE_CONSTRAINT_ROWID: return "SQLITE_CONSTRAINT_ROWID";
case SQLITE_CONSTRAINT_PINNED: return "SQLITE_CONSTRAINT_PINNED";
case SQLITE_CONSTRAINT_DATATYPE: return "SQLITE_CONSTRAINT_DATATYPE";
case SQLITE_AUTH_USER: return "SQLITE_AUTH_USER";
default: break;
}
const char* primary = sqlite_primary_code_string(code & 0xff);
if (primary != NULL) return std::string(primary);
return "SQLITE_UNKNOWN(" + std::to_string(code) + ")";
}
const char* sqlite_authorizer_string(int type) {
switch (type) {
case SQLITE_INSERT: return "insert";
case SQLITE_UPDATE: return "update";
case SQLITE_DELETE: return "delete";
default: return "";
}
}
NODE_API_MODULE(node_sqlite3, RegisterModule)
@@ -0,0 +1,67 @@
import type { ReactiveNode } from './alien'
export type Selection<TSelected> = Readable<TSelected>
export interface InteropSubscribable<T> {
subscribe: (observer: Observer<T>) => Subscription
}
// Based on RxJS types
export type Observer<T> = {
next?: (value: T) => void
error?: (err: unknown) => void
complete?: () => void
}
export interface Subscription {
unsubscribe: () => void
}
export interface Subscribable<T> extends InteropSubscribable<T> {
subscribe: ((observer: Observer<T>) => Subscription) &
((
next: (value: T) => void,
error?: (error: any) => void,
complete?: () => void,
) => Subscription)
}
export interface Readable<T> extends Subscribable<T> {
get: () => T
}
export interface BaseAtom<T> extends Subscribable<T>, Readable<T> {}
export interface InternalBaseAtom<T> extends Subscribable<T>, Readable<T> {
/** @internal */
_snapshot: T
/** @internal */
_update: (getValue?: T | ((snapshot: T) => T)) => boolean
}
export interface Atom<T> extends BaseAtom<T> {
/** Sets the value of the atom using a function. */
set: ((fn: (prevVal: T) => T) => void) & ((value: T) => void)
}
export interface AtomOptions<T> {
compare?: (prev: T, next: T) => boolean
}
export type AnyAtom = BaseAtom<any>
export interface InternalReadonlyAtom<T>
extends InternalBaseAtom<T>, ReactiveNode {}
/**
* An atom that is read-only and cannot be set.
*
* @example
*
* ```ts
* const atom = createAtom(() => 42);
* // @ts-expect-error - Cannot set a readonly atom
* atom.set(43);
* ```
*/
export interface ReadonlyAtom<T> extends BaseAtom<T> {}
@@ -0,0 +1,13 @@
Copyright (c) 2015, Wes Todd
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,13 @@
import { RequestHandler } from 'express';
import { OAuthServerProvider } from '../provider.js';
import { Options as RateLimitOptions } from 'express-rate-limit';
export type TokenHandlerOptions = {
provider: OAuthServerProvider;
/**
* Rate limiting configuration for the token endpoint.
* Set to false to disable rate limiting for this endpoint.
*/
rateLimit?: Partial<RateLimitOptions> | false;
};
export declare function tokenHandler({ provider, rateLimit: rateLimitConfig }: TokenHandlerOptions): RequestHandler;
//# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
module.exports={A:{A:{"1":"B","2":"_z"},B:{"1":"_J"},C:{"1":"_w","2":"_f"},D:{"1":"_xO","2":"_5"},E:{"1":"_YB","2":"_4"},F:{"1":"_aR","2":"_QD"},G:{"1":"_t","2":"_d"},H:{"1":"1D"},I:{"1":"_PE","2":"_LB"},J:{"1":"A","2":"D"},K:{"1":"_eN","2":"_A"},L:{"1":"I"},M:{"1":"YC"},N:{"1":"B","2":"A"},O:{"1":"bC"},P:{"1":"_F"},Q:{"1":"JE"},R:{"1":"KE"},S:{"1":"_C"}},B:1,C:"hidden attribute",D:true};
@@ -0,0 +1 @@
var p=Object.defineProperty;var e=(t,r)=>p(t,"name",{value:r,configurable:!0});import{createRequire as o}from"module";import a from"node:path";import{t as s}from"./temporary-directory-CwHp0_NW.mjs";var m=o(import.meta.url);const i=process.platform==="win32",n=e(t=>{const r=a.join(s,`${t}.pipe`);return i?`\\\\?\\pipe\\${r}`:r},"getPipePath");export{n as g,i,m as r};
@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _assertClassBrand;
function _assertClassBrand(brand, receiver, returnValue) {
if (typeof brand === "function" ? brand === receiver : brand.has(receiver)) {
return arguments.length < 3 ? receiver : returnValue;
}
throw new TypeError("Private element is not present on this object");
}
//# sourceMappingURL=assertClassBrand.js.map
@@ -0,0 +1,139 @@
# proxy-addr
[![NPM Version][npm-version-image]][npm-url]
[![NPM Downloads][npm-downloads-image]][npm-url]
[![Node.js Version][node-image]][node-url]
[![Build Status][ci-image]][ci-url]
[![Test Coverage][coveralls-image]][coveralls-url]
Determine address of proxied request
## Install
This is a [Node.js](https://nodejs.org/en/) module available through the
[npm registry](https://www.npmjs.com/). Installation is done using the
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
```sh
$ npm install proxy-addr
```
## API
```js
var proxyaddr = require('proxy-addr')
```
### proxyaddr(req, trust)
Return the address of the request, using the given `trust` parameter.
The `trust` argument is a function that returns `true` if you trust
the address, `false` if you don't. The closest untrusted address is
returned.
```js
proxyaddr(req, function (addr) { return addr === '127.0.0.1' })
proxyaddr(req, function (addr, i) { return i < 1 })
```
The `trust` argument may also be a single IP address string or an
array of trusted addresses, as plain IP addresses, CIDR-formatted
strings, or IP/netmask strings.
```js
proxyaddr(req, '127.0.0.1')
proxyaddr(req, ['127.0.0.0/8', '10.0.0.0/8'])
proxyaddr(req, ['127.0.0.0/255.0.0.0', '192.168.0.0/255.255.0.0'])
```
This module also supports IPv6. Your IPv6 addresses will be normalized
automatically (i.e. `fe80::00ed:1` equals `fe80:0:0:0:0:0:ed:1`).
```js
proxyaddr(req, '::1')
proxyaddr(req, ['::1/128', 'fe80::/10'])
```
This module will automatically work with IPv4-mapped IPv6 addresses
as well to support node.js in IPv6-only mode. This means that you do
not have to specify both `::ffff:a00:1` and `10.0.0.1`.
As a convenience, this module also takes certain pre-defined names
in addition to IP addresses, which expand into IP addresses:
```js
proxyaddr(req, 'loopback')
proxyaddr(req, ['loopback', 'fc00:ac:1ab5:fff::1/64'])
```
* `loopback`: IPv4 and IPv6 loopback addresses (like `::1` and
`127.0.0.1`).
* `linklocal`: IPv4 and IPv6 link-local addresses (like
`fe80::1:1:1:1` and `169.254.0.1`).
* `uniquelocal`: IPv4 private addresses and IPv6 unique-local
addresses (like `fc00:ac:1ab5:fff::1` and `192.168.0.1`).
When `trust` is specified as a function, it will be called for each
address to determine if it is a trusted address. The function is
given two arguments: `addr` and `i`, where `addr` is a string of
the address to check and `i` is a number that represents the distance
from the socket address.
### proxyaddr.all(req, [trust])
Return all the addresses of the request, optionally stopping at the
first untrusted. This array is ordered from closest to furthest
(i.e. `arr[0] === req.connection.remoteAddress`).
```js
proxyaddr.all(req)
```
The optional `trust` argument takes the same arguments as `trust`
does in `proxyaddr(req, trust)`.
```js
proxyaddr.all(req, 'loopback')
```
### proxyaddr.compile(val)
Compiles argument `val` into a `trust` function. This function takes
the same arguments as `trust` does in `proxyaddr(req, trust)` and
returns a function suitable for `proxyaddr(req, trust)`.
```js
var trust = proxyaddr.compile('loopback')
var addr = proxyaddr(req, trust)
```
This function is meant to be optimized for use against every request.
It is recommend to compile a trust function up-front for the trusted
configuration and pass that to `proxyaddr(req, trust)` for each request.
## Testing
```sh
$ npm test
```
## Benchmarks
```sh
$ npm run-script bench
```
## License
[MIT](LICENSE)
[ci-image]: https://badgen.net/github/checks/jshttp/proxy-addr/master?label=ci
[ci-url]: https://github.com/jshttp/proxy-addr/actions?query=workflow%3Aci
[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/proxy-addr/master
[coveralls-url]: https://coveralls.io/r/jshttp/proxy-addr?branch=master
[node-image]: https://badgen.net/npm/node/proxy-addr
[node-url]: https://nodejs.org/en/download
[npm-downloads-image]: https://badgen.net/npm/dm/proxy-addr
[npm-url]: https://npmjs.org/package/proxy-addr
[npm-version-image]: https://badgen.net/npm/v/proxy-addr
@@ -0,0 +1,10 @@
export * from 'motion-dom';
export { delayInSeconds as delay } from 'motion-dom';
export * from 'motion-utils';
export { animate, createScopedAnimate } from './animation/animate/index.mjs';
export { animateMini } from './animation/animators/waapi/animate-style.mjs';
export { scroll } from './render/dom/scroll/index.mjs';
export { scrollInfo } from './render/dom/scroll/track.mjs';
export { inView } from './render/dom/viewport/index.mjs';
export { distance, distance2D } from './utils/distance.mjs';
//# sourceMappingURL=dom.mjs.map
@@ -0,0 +1 @@
module.exports={C:{"52":0.03392,"74":0.00678,"98":0.00678,"115":0.43411,"120":0.56977,"121":1.13276,"122":0.00678,"123":0.01357,"124":0.01357,"125":0.01357,"132":0.00678,"133":0.00678,"135":0.00678,"136":0.01357,"137":0.00678,"138":0.00678,"140":0.07461,"142":0.00678,"143":0.00678,"144":0.02713,"145":0.00678,"146":0.01357,"147":0.02713,"148":0.01357,"149":0.01357,"150":0.03392,"151":0.02035,"152":0.03392,"153":0.05426,"154":0.21027,"155":0.70543,"156":0.7597,"157":0.03392,"158":0.00678,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 126 127 128 129 130 131 134 139 141 159 160 3.5 3.6"},D:{"49":0.01357,"55":0.00678,"61":0.00678,"70":0.01357,"85":0.01357,"86":0.00678,"91":0.00678,"92":0.00678,"93":0.00678,"96":0.00678,"97":0.00678,"103":0.23062,"104":0.22384,"105":0.65795,"106":0.25097,"107":0.22384,"108":0.25097,"109":2.58432,"110":0.21706,"111":0.22384,"112":0.21706,"113":0.00678,"114":0.00678,"116":0.46124,"117":0.22384,"118":1.14633,"119":1.13954,"120":1.41086,"121":0.02035,"122":0.03392,"123":0.02035,"124":0.26454,"125":0.01357,"126":0.01357,"127":0.01357,"128":0.02713,"129":0.02713,"130":0.02035,"131":0.44768,"132":0.14244,"133":0.56977,"134":0.15601,"135":0.16279,"136":0.13566,"137":0.17636,"138":0.21706,"139":0.14244,"140":0.17636,"141":0.18992,"142":0.57656,"143":0.03392,"144":0.08818,"145":0.17636,"146":0.55621,"147":0.0814,"148":0.31202,"149":0.69187,"150":5.26361,"151":4.72775,"152":12.55533,"153":9.97779,"154":2.54363,"155":0.0407,"156":0.00678,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 83 84 87 88 89 90 94 95 98 99 100 101 102 115 157"},F:{"54":0.00678,"56":0.00678,"79":0.02035,"83":0.00678,"84":0.01357,"85":0.02035,"86":0.01357,"90":0.00678,"93":0.00678,"95":0.54942,"98":0.00678,"99":0.01357,"100":0.00678,"101":0.0407,"102":0.01357,"105":0.00678,"106":0.00678,"107":0.00678,"118":0.00678,"120":0.00678,"121":0.01357,"122":0.01357,"126":0.00678,"131":0.01357,"132":0.00678,"133":0.03392,"134":0.18992,"135":2.72677,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 87 88 89 91 92 94 96 97 103 104 108 109 110 111 112 113 114 115 116 117 119 123 124 125 127 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01357,"109":0.01357,"119":0.54942,"120":0.55621,"122":0.01357,"123":0.00678,"124":0.00678,"131":0.00678,"132":0.00678,"133":0.00678,"139":0.00678,"140":0.00678,"141":0.02713,"142":0.02713,"143":0.04748,"144":0.02713,"145":0.02713,"146":0.02035,"147":0.02035,"148":0.02713,"149":0.02713,"150":0.06783,"151":0.06105,"152":0.69187,"153":0.89536,"154":0.24419,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 121 125 126 127 128 129 130 134 135 136 137 138"},E:{"27":0.06783,_:"4 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.1 16.3 16.4 16.5 17.0 17.2 18.2 18.4 27.1 27.2 TP","13.1":0.00678,"15.6":0.02035,"16.0":0.00678,"16.2":0.00678,"16.6":0.07461,"17.1":0.0407,"17.3":0.01357,"17.4":0.01357,"17.5":0.00678,"17.6":0.06783,"18.0":0.00678,"18.1":0.00678,"18.3":0.00678,"18.5-18.7":0.01357,"26.0":0.01357,"26.1":0.00678,"26.2":0.01357,"26.3":0.0407,"26.4":0.03392,"26.5":0.10175,"26.6":0.42055},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00092,"5.0-5.1":0.00092,"6.0-6.1":0,"7.0-7.1":0.00185,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00924,"11.0-11.2":0.00092,"11.3-11.4":0.00185,"12.0-12.1":0,"12.2-12.5":0.02403,"13.0-13.1":0,"13.2":0.00462,"13.3":0,"13.4-13.7":0.00092,"14.0-14.4":0.0037,"14.5-14.8":0.00555,"15.0-15.1":0.00555,"15.2-15.3":0.0037,"15.4":0.00462,"15.5":0.00555,"15.6-15.8":0.12015,"16.0":0.00924,"16.1":0.01664,"16.2":0.00924,"16.3":0.02033,"16.4":0.00462,"16.5":0.00739,"16.6-16.7":0.16729,"17.0":0.00647,"17.1":0.00924,"17.2":0.00924,"17.3":0.01386,"17.4":0.01941,"17.5":0.03789,"17.6-17.7":0.09797,"18.0":0.02033,"18.1":0.04067,"18.2":0.05545,"18.3":0.09612,"18.4":0.06008,"18.5-18.7":1.24126,"26.0":0.06008,"26.1":0.061,"26.2":0.15897,"26.3":0.17191,"26.4":0.1257,"26.5":0.84199,"26.6":5.19518,"27.0":0.39835,"27.1":0,"27.2":0.01017},P:{"22":0.00917,"23":0.00917,"24":0.00917,"25":0.00917,"26":0.01834,"27":0.00917,"28":0.04585,"29":0.07336,"30":0.78862,_:"4 20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","7.2-7.4":0.00917},I:{"0":0.03536,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4Line truncated
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (C) 2014-present Patrick Gillespie and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/index.ts", "../src/arrow.tsx"],
"sourcesContent": ["export {\n Arrow,\n //\n Root,\n} from './arrow';\nexport type { ArrowProps } from './arrow';\n", "import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Arrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Arrow';\n\ntype ArrowElement = React.ComponentRef<typeof Primitive.svg>;\ntype PrimitiveSvgProps = React.ComponentPropsWithoutRef<typeof Primitive.svg>;\ninterface ArrowProps extends PrimitiveSvgProps {}\n\nconst Arrow = React.forwardRef<ArrowElement, ArrowProps>((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return (\n <Primitive.svg\n {...arrowProps}\n ref={forwardedRef}\n width={width}\n height={height}\n viewBox=\"0 0 30 10\"\n preserveAspectRatio=\"none\"\n >\n {/* We use their children if they're slotting to replace the whole svg */}\n {props.asChild ? children : <polygon points=\"0,0 30,0 15,10\" />}\n </Primitive.svg>\n );\n});\n\nArrow.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Arrow;\n\nexport {\n Arrow,\n //\n Root,\n};\nexport type { ArrowProps };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AACvB,6BAA0B;AAwBQ;AAlBlC,IAAM,OAAO;AAMb,IAAM,QAAc,iBAAqC,CAAC,OAAO,iBAAiB;AAChF,QAAM,EAAE,UAAU,QAAQ,IAAI,SAAS,GAAG,GAAG,WAAW,IAAI;AAC5D,SACE;AAAA,IAAC,iCAAU;AAAA,IAAV;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAQ;AAAA,MACR,qBAAoB;AAAA,MAGnB,gBAAM,UAAU,WAAW,4CAAC,aAAQ,QAAO,kBAAiB;AAAA;AAAA,EAC/D;AAEJ,CAAC;AAED,MAAM,cAAc;AAIpB,IAAM,OAAO;",
"names": []
}
@@ -0,0 +1,70 @@
/**
* Constructs a RegExp that matches the exact string specified.
*
* This is useful for plugin hook filters.
*
* @param str the string to match.
* @param flags flags for the RegExp.
*
* @example
* ```ts
* import { exactRegex } from '@rolldown/pluginutils';
* const plugin = {
* name: 'plugin',
* resolveId: {
* filter: { id: exactRegex('foo') },
* handler(id) {} // will only be called for `foo`
* }
* }
* ```
*/
export function exactRegex(str, flags) {
return new RegExp(`^${escapeRegex(str)}$`, flags);
}
/**
* Constructs a RegExp that matches a value that has the specified prefix.
*
* This is useful for plugin hook filters.
*
* @param str the string to match.
* @param flags flags for the RegExp.
*
* @example
* ```ts
* import { prefixRegex } from '@rolldown/pluginutils';
* const plugin = {
* name: 'plugin',
* resolveId: {
* filter: { id: prefixRegex('foo') },
* handler(id) {} // will only be called for IDs starting with `foo`
* }
* }
* ```
*/
export function prefixRegex(str, flags) {
return new RegExp(`^${escapeRegex(str)}`, flags);
}
const escapeRegexRE = /[-/\\^$*+?.()|[\]{}]/g;
function escapeRegex(str) {
return str.replace(escapeRegexRE, '\\$&');
}
export function makeIdFiltersToMatchWithQuery(input) {
if (!Array.isArray(input)) {
return makeIdFilterToMatchWithQuery(
// Array.isArray cannot narrow the type
// https://github.com/microsoft/TypeScript/issues/17002
input);
}
return input.map((i) => makeIdFilterToMatchWithQuery(i));
}
function makeIdFilterToMatchWithQuery(input) {
if (typeof input === 'string') {
return `${input}{?*,}`;
}
return makeRegexIdFilterToMatchWithQuery(input);
}
function makeRegexIdFilterToMatchWithQuery(input) {
return new RegExp(
// replace `$` with `(?:\?.*)?$` (ignore `\$`)
input.source.replace(/(?<!\\)\$/g, '(?:\\?.*)?$'), input.flags);
}
@@ -0,0 +1 @@
{"version":3,"file":"tornado.js","sources":["../../../src/icons/tornado.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Tornado\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNEgzIiAvPgogIDxwYXRoIGQ9Ik0xOCA4SDYiIC8+CiAgPHBhdGggZD0iTTE5IDEySDkiIC8+CiAgPHBhdGggZD0iTTE2IDE2aC02IiAvPgogIDxwYXRoIGQ9Ik0xMSAyMEg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tornado\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Tornado = createLucideIcon('Tornado', [\n ['path', { d: 'M21 4H3', key: '1hwok0' }],\n ['path', { d: 'M18 8H6', key: '41n648' }],\n ['path', { d: 'M19 12H9', key: '1g4lpz' }],\n ['path', { d: 'M16 16h-6', key: '1j5d54' }],\n ['path', { d: 'M11 20H9', key: '39obr8' }],\n]);\n\nexport default Tornado;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,iBAAiB,SAAW,CAAA,CAAA,CAAA;AAAA,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC3C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseLiteralDef = void 0;
function parseLiteralDef(def, refs) {
const parsedType = typeof def.value;
if (parsedType !== "bigint" &&
parsedType !== "number" &&
parsedType !== "boolean" &&
parsedType !== "string") {
return {
type: Array.isArray(def.value) ? "array" : "object",
};
}
if (refs.target === "openApi3") {
return {
type: parsedType === "bigint" ? "integer" : parsedType,
enum: [def.value],
};
}
return {
type: parsedType === "bigint" ? "integer" : parsedType,
const: def.value,
};
}
exports.parseLiteralDef = parseLiteralDef;
@@ -0,0 +1,718 @@
flf2a$ 7 7 26 32 3
Alligator by Simon Bradley <syb3@aber.ac.uk>
17th June, 1994
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@@
:::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
$ $ @
###$ @@
::: :::$@
:+: :+:$ @
$ $ @
$ $ @
$ $ @
$ $ @
$ $ @@
::: :::$ @
:+: :+:$ @
+:+:+:+:+:+:+:+$@
+#+ +:+$ @
+#+#+#+#+#+#+#+$ @
#+# #+#$ @
### ###$ @@
:::$ @
:+:+:+:+:$@
+:+ +:+$ @
+#++:++#+$ @
+#+ +#+$ @
#+#+#+#+#$ @
###$ @@
::: :::$ @
:+: :+:$ @
+:+$ @
+#+$ @
+#+$ @
#+# #+#$@
### ###$ @@
:::::::$ @
:+: :+:$ @
+:+ +:+$ @
+#++: ++#$@
+#+ +#+#+#$ @
#+# #+#+$ @
##########$ @@
:::$@
:+$ @
$$ @
$$ @
$$ @
$$ @
$$ @@
:::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###$ @@
:::$@
:+:$@
+:+$@
+#+$ @
+#+$ @
#+#$ @
###$ @@
$ $ $ $@
:+: :+:$@
+:+ +:+$ @
+#++:++#++:++$ @
+#+ +#+$ @
#+# #+#$ @
$ $ $ $ @@
$ $ @
:+:$ @
+:+$ @
+#++:++#++:++$@
+#+$ @
#+#$ @
$ $ @@
$ $@
$ $ @
$ $ @
$ $ @
$ $ @
#+#$ @
##$ @@
$ $@
$ $ @
$ $ @
+#++:++#++:++$ @
$ $ @
$ $ @
$ $ @@
$ $@
$ $ @
$ $ @
$ $ @
$ $ @
#+#$ @
###$ @@
:::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###$ @@
:::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
#######$ @@
:::$@
:+:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
#######$ @@
::::::::$@
:+: :+:$@
$ +:+$ @
$ +#+$ @
$ +#+$ @
#+#$ @
##########$ @@
::::::::$@
:+: :+:$@
$ +:+$ @
$ +#++:$ @
$ +#+$ @
#+# #+#$ @
########$ @@
:::$@
:+:$ @
+:+ +:+$@
+#+ +:+$ @
+#+#+#+#+#+$@
#+#$ @
###$ @@
::::::::::$@
:+: :+:$ @
+:+ $ @
+#++:++#+$ @
$ +#+$ @
#+# #+#$ @
########$ @@
::::::::$@
:+: :+:$@
+:+ $ @
+#++:++#+$ @
+#+ +#+$ @
#+# #+#$ @
########$ @@
:::::::::::$@
:+: :+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###$ @@
::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#$ @
+#+ +#+$ @
#+# #+#$ @
########$ @@
::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#+$ @
$ +#+$ @
#+# #+#$ @
########$ @@
$ $@
:+:$@
$ $ @
$ $ @
$ $ @
#+#$ @
$ $ @@
$ $@
:+:$@
$ $ @
$ $ @
$ $ @
#+#$ @
##$ @@
:::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###$ @@
$ $@
$ $ @
+:+:+:+:+:+:+$ @
$ $ @
+#+#+#+#+#+#+$ @
$ $ @
$ $ @@
:::$@
:+:$@
+:+$@
+#+$@
+#+$ @
#+#$ @
###$ @@
:::::::::$@
:+: :+:$@
+:+$ @
+#+$ @
+#+$ @
$ $ @
###$ @@
:::::::::::$ @
:+: :+:+:+:+:+:$@
+:+ +:+ +:+ +:+$@
+#+ +:+ +#+ +:+$ @
+#+ +#+ +#+ +#+$ @
#+# #+#+#+#+#+$ @
#####$ @@
:::$ @
:+: :+:$@
+:+ +:+$@
+#++:++#++:$@
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#+$ @
+#+ +#+$ @
#+# #+#$ @
#########$ @@
::::::::$@
:+: :+:$@
+:+ $ @
+#+ $ @
+#+ $ @
#+# #+#$ @
########$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
#########$ @@
::::::::::$@
:+:$ @
+:+$ @
+#++:++#$ @
+#+$ @
#+#$ @
##########$ @@
::::::::::$@
:+:$ @
+:+$ @
:#::+::#$ @
+#+$ @
#+#$ @
###$ @@
::::::::$@
:+: :+:$@
+:+ $ @
:#: $ @
+#+ +#+#$ @
#+# #+#$ @
########$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:++#++$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###########$ @@
:::::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+# #+#$ @
#####$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:++$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::$ @
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
##########$@@
::: :::$@
:+:+: :+:+:$@
+:+ +:+:+ +:+$@
+#+ +:+ +#+$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::: :::$@
:+:+: :+:$ @
:+:+:+ +:+$ @
+#+ +:+ +#+$ @
+#+ +#+#+#$ @
#+# #+#+#$ @
### ####$ @@
::::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
########$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#+$ @
+#+$ @
#+#$ @
###$ @@
::::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
###########$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#:$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
::::::::$@
:+: :+:$@
+:+ $ @
+#++:++#++$ @
$ +#+$ @
#+# #+#$ @
########$ @@
:::::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
########$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+#+#+#$ @
###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#+ +:+ +#+$ @
+#+ +#+#+ +#+$ @
#+#+# #+#+#$ @
### ###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:+$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:$ @
+#+$ @
#+#$ @
###$ @@
:::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
#########$ @@
::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
######$ @@
:::$@
:+:$@
+:+$@
+#+$@
+#+$@
#+#$@
###$@@
::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
######$ @@
:::$ @
:+: :+:$ @
+:+ +:+$@
$ $ @
$ $ @
$ $ @
$ $ @@
$ $@
$ $ @
$ $ @
$ $ @
$ $ @
$ $ @
##########$ @@
:::$@
:+$ @
$$ @
$$ @
$$ @
$$ @
$$ @@
:::$ @
:+: :+:$@
+:+ +:+$@
+#++:++#++:$@
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#+$ @
+#+ +#+$ @
#+# #+#$ @
#########$ @@
::::::::$@
:+: :+:$@
+:+ $ @
+#+ $ @
+#+ $ @
#+# #+#$ @
########$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
#########$ @@
::::::::::$@
:+:$ @
+:+$ @
+#++:++#$ @
+#+$ @
#+#$ @
##########$ @@
::::::::::$@
:+:$ @
+:+$ @
:#::+::#$ @
+#+$ @
#+#$ @
###$ @@
::::::::$@
:+: :+:$@
+:+ $ @
:#: $ @
+#+ +#+#$ @
#+# #+#$ @
########$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:++#++$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###########$ @@
:::::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+# #+#$ @
#####$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:++$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::$ @
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
##########$@@
::: :::$@
:+:+: :+:+:$@
+:+ +:+:+ +:+$@
+#+ +:+ +#+$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
:::: :::$@
:+:+: :+:$ @
:+:+:+ +:+$ @
+#+ +:+ +#+$ @
+#+ +#+#+#$ @
#+# #+#+#$ @
### ####$ @@
::::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
########$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#+$ @
+#+$ @
#+#$ @
###$ @@
::::::::$@
:+: :+:$@
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
###########$ @@
:::::::::$@
:+: :+:$@
+:+ +:+$ @
+#++:++#:$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
::::::::$@
:+: :+:$@
+:+ $ @
+#++:++#++$ @
$ +#+$ @
#+# #+#$ @
########$ @@
:::::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+# #+#$ @
########$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#+ +:+$ @
+#+ +#+$ @
#+#+#+#$ @
###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#+ +:+ +#+$ @
+#+ +#+#+ +#+$ @
#+#+# #+#+#$ @
### ###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:+$ @
+#+ +#+$ @
#+# #+#$ @
### ###$ @@
::: :::$@
:+: :+:$ @
+:+ +:+$ @
+#++:$ @
+#+$ @
#+#$ @
###$ @@
:::::::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
#########$ @@
::::$@
:+:$ @
+:+$ @
+#+$ @
+#+$ @
#+#$ @
####$ @@
:::$@
:+:$ @
+:+$ @
$ $ @
+#+$ @
#+#$ @
###$ @@
::::$@
:+:$@
+:+$ @
+#+$@
+#+$ @
#+#$ @
####$ @@
::::: :::$@
:+: :+:+:$ @
$ $ @
$ $ @
$ $ @
$ $ @
$ $ @@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@@
@@ -0,0 +1,9 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
export { default } from './square-kanban.js';
//# sourceMappingURL=kanban-square.js.map
@@ -0,0 +1,95 @@
/**
* @fileoverview A rule to disallow unnecessary `.call()` and `.apply()`.
* @author Toru Nagashima
*/
"use strict";
const astUtils = require("./utils/ast-utils");
//------------------------------------------------------------------------------
// Helpers
//------------------------------------------------------------------------------
/**
* Checks whether or not a node is a `.call()`/`.apply()`.
* @param {ASTNode} node A CallExpression node to check.
* @returns {boolean} Whether or not the node is a `.call()`/`.apply()`.
*/
function isCallOrNonVariadicApply(node) {
const callee = astUtils.skipChainExpression(node.callee);
return (
callee.type === "MemberExpression" &&
callee.property.type === "Identifier" &&
callee.computed === false &&
((callee.property.name === "call" && node.arguments.length >= 1) ||
(callee.property.name === "apply" &&
node.arguments.length === 2 &&
node.arguments[1].type === "ArrayExpression"))
);
}
/**
* Checks whether or not `thisArg` is not changed by `.call()`/`.apply()`.
* @param {ASTNode|null} expectedThis The node that is the owner of the applied function.
* @param {ASTNode} thisArg The node that is given to the first argument of the `.call()`/`.apply()`.
* @param {SourceCode} sourceCode The ESLint source code object.
* @returns {boolean} Whether or not `thisArg` is not changed by `.call()`/`.apply()`.
*/
function isValidThisArg(expectedThis, thisArg, sourceCode) {
if (!expectedThis) {
return astUtils.isNullOrUndefined(thisArg);
}
return astUtils.equalTokens(expectedThis, thisArg, sourceCode);
}
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
/** @type {import('../types').Rule.RuleModule} */
module.exports = {
meta: {
type: "suggestion",
docs: {
description:
"Disallow unnecessary calls to `.call()` and `.apply()`",
recommended: false,
url: "https://eslint.org/docs/latest/rules/no-useless-call",
},
schema: [],
messages: {
unnecessaryCall: "Unnecessary '.{{name}}()'.",
},
},
create(context) {
const sourceCode = context.sourceCode;
return {
CallExpression(node) {
if (!isCallOrNonVariadicApply(node)) {
return;
}
const callee = astUtils.skipChainExpression(node.callee);
const applied = astUtils.skipChainExpression(callee.object);
const expectedThis =
applied.type === "MemberExpression" ? applied.object : null;
const thisArg = node.arguments[0];
if (isValidThisArg(expectedThis, thisArg, sourceCode)) {
context.report({
node,
messageId: "unnecessaryCall",
data: { name: callee.property.name },
});
}
},
};
},
};
@@ -0,0 +1,115 @@
import { Parser, type ParserOptions } from "./Parser.js";
export type { Handler, ParserOptions } from "./Parser.js";
export { Parser } from "./Parser.js";
import {
DomHandler,
type DomHandlerOptions,
type ChildNode,
type Element,
type Document,
} from "domhandler";
export {
DomHandler,
// Old name for DomHandler
DomHandler as DefaultHandler,
type DomHandlerOptions,
} from "domhandler";
export type Options = ParserOptions & DomHandlerOptions;
// Helper methods
/**
* Parses the data, returns the resulting document.
*
* @param data The data that should be parsed.
* @param options Optional options for the parser and DOM handler.
*/
export function parseDocument(data: string, options?: Options): Document {
const handler = new DomHandler(undefined, options);
new Parser(handler, options).end(data);
return handler.root;
}
/**
* Parses data, returns an array of the root nodes.
*
* Note that the root nodes still have a `Document` node as their parent.
* Use `parseDocument` to get the `Document` node instead.
*
* @param data The data that should be parsed.
* @param options Optional options for the parser and DOM handler.
* @deprecated Use `parseDocument` instead.
*/
export function parseDOM(data: string, options?: Options): ChildNode[] {
return parseDocument(data, options).children;
}
/**
* Creates a parser instance, with an attached DOM handler.
*
* @param callback A callback that will be called once parsing has been completed, with the resulting document.
* @param options Optional options for the parser and DOM handler.
* @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.
*/
export function createDocumentStream(
callback: (error: Error | null, document: Document) => void,
options?: Options,
elementCallback?: (element: Element) => void,
): Parser {
const handler: DomHandler = new DomHandler(
(error: Error | null) => callback(error, handler.root),
options,
elementCallback,
);
return new Parser(handler, options);
}
/**
* Creates a parser instance, with an attached DOM handler.
*
* @param callback A callback that will be called once parsing has been completed, with an array of root nodes.
* @param options Optional options for the parser and DOM handler.
* @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.
* @deprecated Use `createDocumentStream` instead.
*/
export function createDomStream(
callback: (error: Error | null, dom: ChildNode[]) => void,
options?: Options,
elementCallback?: (element: Element) => void,
): Parser {
const handler = new DomHandler(callback, options, elementCallback);
return new Parser(handler, options);
}
export {
default as Tokenizer,
type Callbacks as TokenizerCallbacks,
QuoteType,
} from "./Tokenizer.js";
/*
* All of the following exports exist for backwards-compatibility.
* They should probably be removed eventually.
*/
export * as ElementType from "domelementtype";
import { getFeed, type Feed } from "domutils";
export { getFeed, type Feed } from "domutils";
const parseFeedDefaultOptions = { xmlMode: true };
/**
* Parse a feed.
*
* @param feed The feed that should be parsed, as a string.
* @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.
*/
export function parseFeed(
feed: string,
options: Options = parseFeedDefaultOptions,
): Feed | null {
return getFeed(parseDOM(feed, options));
}
export * as DomUtils from "domutils";
@@ -0,0 +1,14 @@
export { createRequestHandler } from './createRequestHandler'
export type { RequestHandler } from './createRequestHandler'
export { defineHandlerCallback } from './handlerCallback'
export type { HandlerCallback } from './handlerCallback'
export {
transformPipeableStreamWithRouter,
transformStreamWithRouter,
transformReadableStreamWithRouter,
} from './transformStreamWithRouter'
export {
attachRouterServerSsrUtils,
getNormalizedURL,
getOrigin,
} from './ssr-server'
@@ -0,0 +1,420 @@
flf2a$ 4 4 13 -1 11 0 0 0
Author : myflix
Date : 2006/7/9 19:14:23
Version: 1.0
-------------------------------------------------
-------------------------------------------------
This font has been created using JavE's FIGlet font export assistant.
Have a look at: http://www.jave.de
Permission is hereby given to modify this font, as long as the
modifier's name is placed on a comment line.
$ #
$ #
$ #
$ ##
_ _______ #
(_)_______)#
#
##
__ #
(__) #
(__) #
##
##
#
#
##
$#
#
#
##
%#
#
#
##
&#
#
#
##
__ #
(__) #
#
##
_________ #
( _____ )#
(_) (_)#
##
_ _ #
( )_____( )#
(_________)#
##
*#
#
#
##
+#
#
#
##
,#
#
#
##
_ #
( ) #
| | #
(_) ##
_ #
(_) #
#
##
/#
#
#
##
_________ #
( _____ )#
| |_____| |#
(_________)##
_ #
______( \ #
(_________)#
##
_____ _ #
( _ ) ( )#
| | | |_| |#
(_) (_____)##
_ _ _ #
( ) ( ) ( )#
| |_| |_| |#
(_________)##
_____ #
( ___)#
___| |___ #
(_________)##
_ _____ #
( ) ( _ )#
| |_| | | |#
(_____) (_)##
_________ #
( _ _ )#
| |_| | | |#
(_____) (_)##
_ #
( )#
_______| |#
(_________)##
____ ____ #
( _ ' _ )#
| |_| |_| |#
(____.____)##
_ _____ #
( ) ( _ )#
| |_| |_| |#
(_________)##
_ _ #
(_) (_) #
#
##
__ _ #
(__) (_) #
#
##
<#
#
#
##
=#
#
#
##
> >#
#
#
##
_ __ _ #
(_)( ) ( )#
| |_| |#
(_____)##
@#
#
#
##
_________ #
(____ _ )#
___| |_| |#
(_________)##
_________ #
( _ _ )#
| |_| |_| |#
(____/\___)##
_________ #
( _____ )#
| | | |#
(_) (_)##
_________ #
( _____ )#
\ \___/ / #
(_____) ##
_________ #
( _ _ )#
| | | | | |#
(_) (_) (_)##
_________ #
(___ _ )#
| | | |#
(_) (_)##
_________ #
( _____ )#
| |_ | |#
(___) (_)##
_________ #
(___ ___)#
___| |___ #
(_________)##
_______ _ #
(_______(_)#
#
##
___ #
( _) #
| |_______ #
(_________)##
_________ #
(___ __)#
__/ __ \_ #
(___/ \__)##
_________ #
( _______)#
| | #
(_) ##
_________ #
(______ )#
_____( )#
(_________)##
_________ #
(______ _)#
_____/ /_ #
(_________)##
_________ #
( _____ )#
| |_____| |#
(_________)##
_________ #
(___ _ )#
| |_| |#
(_____)##
_________ #
( _____ )#
| |_____| |#
(_)_______)##
_________ #
(___ _ )#
_/ |_| |#
(__/(_____)##
_ _____ #
( ) ( _ )#
| |_| | | |#
(_____) (_)##
_ #
_______| |#
(_______ |#
|_|##
_________ #
( _______)#
| |_______ #
(_________)##
________ #
/ _______)#
| (_______ #
\________)##
_________ #
( _______)#
( __)____ #
(_________)##
____ ___ #
(__ \/ _)#
__) (_ #
(____/\___)##
_____ #
___/ ___)#
(___ (___ #
\_____)##
_____ _ #
( _ ) ( )#
| | | |_| |#
(_) (_____)##
[#
#
#
##
\#
#
#
##
]#
#
#
##
__ #
(__) #
_(_)#
(__) ##
_#
#
#
##
_ #
_(_) #
(__) #
##
_________ #
(____ _ )#
___| |_| |#
(_________)##
_________ #
( _ _ )#
| |_| |_| |#
(____/\___)##
_________ #
( _____ )#
| | | |#
(_) (_)##
_________ #
( _____ )#
\ \___/ / #
(_____) ##
_________ #
( _ _ )#
| | | | | |#
(_) (_) (_)##
_________ #
(___ _ )#
| | | |#
(_) (_)##
_________ #
( _____ )#
| |_ | |#
(___) (_)##
_________ #
(___ ___)#
___| |___ #
(_________)##
_______ _ #
(_______(_)#
#
##
___ #
( _) #
| |_______ #
(_________)##
_________ #
(___ __)#
__/ __ \_ #
(___/ \__)##
_________ #
( _______)#
| | #
(_) ##
_________ #
(______ )#
_____( )#
(_________)##
_________ #
(______ _)#
_____/ /_ #
(_________)##
_________ #
( _____ )#
| |_____| |#
(_________)##
_________ #
(___ _ )#
| |_| |#
(_____)##
_________ #
( _____ )#
| |_____| |#
(_)_______)##
_________ #
(___ _ )#
_/ |_| |#
(__/(_____)##
_ _____ #
( ) ( _ )#
| |_| | | |#
(_____) (_)##
_ #
_______| |#
(_______ |#
|_|##
_________ #
( _______)#
| |_______ #
(_________)##
________ #
/ _______)#
| (_______ #
\________)##
_________ #
( _______)#
( __)____ #
(_________)##
____ ___ #
(__ \/ _)#
__) (_ #
(____/\___)##
_____ #
___/ ___)#
(___ (___ #
\_____)##
_____ _ #
( _ ) ( )#
| | | |_| |#
(_) (_____)##
{#
#
#
##
|#
#
#
##
}#
#
#
##
~#
#
#
##
_________ #
(____ _ )#
___| |_| |#
(_________)##
_________ #
( _____ )#
| |_____| |#
(_________)##
_________ #
( _______)#
| |_______ #
(_________)##
_________ #
(____ _ )#
___| |_| |#
(_________)##
_________ #
( _____ )#
| |_____| |#
(_________)##
_________ #
( _______)#
| |_______ #
(_________)##
ß#
#
#
##
@@ -0,0 +1,70 @@
var html = (function (exports) {
'use strict';
/**
* Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
var replace = ''.replace;
var ca = /[&<>'"]/g;
var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
var esca = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;'
};
var unes = {
'&amp;': '&',
'&#38;': '&',
'&lt;': '<',
'&#60;': '<',
'&gt;': '>',
'&#62;': '>',
'&apos;': "'",
'&#39;': "'",
'&quot;': '"',
'&#34;': '"'
};
function escape(es) {
return replace.call(es, ca, pe);
}
function unescape(un) {
return replace.call(un, es, cape);
}
function pe(m) {
return esca[m];
}
function cape(m) {
return unes[m];
}
exports.escape = escape;
exports.unescape = unescape;
return exports;
}({}));
@@ -0,0 +1,230 @@
import { Env, Schema } from "../../types.js";
import { Hono } from "../../hono.js";
import { ALBRequestContext, ApiGatewayRequestContext, ApiGatewayRequestContextV2, Handler, LambdaContext, LatticeRequestContextV2 } from "./types.js";
//#region src/adapter/aws-lambda/handler.d.ts
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export type LambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2 | ALBProxyEvent | LatticeProxyEventV2;
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export interface LatticeProxyEventV2 {
version: string;
path: string;
method: string;
headers: Record<string, string[] | undefined>;
queryStringParameters: Record<string, string[] | undefined>;
body: string | null;
isBase64Encoded: boolean;
requestContext: LatticeRequestContextV2;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export interface APIGatewayProxyEventV2 {
version: string;
routeKey: string;
headers: Record<string, string | undefined>;
multiValueHeaders?: undefined;
cookies?: string[];
rawPath: string;
rawQueryString: string;
body: string | null;
isBase64Encoded: boolean;
requestContext: ApiGatewayRequestContextV2;
queryStringParameters?: {
[name: string]: string | undefined;
};
pathParameters?: {
[name: string]: string | undefined;
};
stageVariables?: {
[name: string]: string | undefined;
};
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export interface APIGatewayProxyEvent {
version: string;
httpMethod: string;
headers: Record<string, string | undefined>;
multiValueHeaders?: {
[headerKey: string]: string[];
};
path: string;
body: string | null;
isBase64Encoded: boolean;
queryStringParameters?: Record<string, string | undefined>;
requestContext: ApiGatewayRequestContext;
resource: string;
multiValueQueryStringParameters?: {
[parameterKey: string]: string[];
};
pathParameters?: Record<string, string>;
stageVariables?: Record<string, string>;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export interface ALBProxyEvent {
httpMethod: string;
headers?: Record<string, string | undefined>;
multiValueHeaders?: Record<string, string[] | undefined>;
path: string;
body: string | null;
isBase64Encoded: boolean;
queryStringParameters?: Record<string, string | undefined>;
multiValueQueryStringParameters?: {
[parameterKey: string]: string[];
};
requestContext: ALBRequestContext;
}
type WithHeaders = {
headers: Record<string, string | string[]>;
multiValueHeaders?: undefined;
};
type WithMultiValueHeaders = {
headers?: undefined;
multiValueHeaders: Record<string, string[]>;
};
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export type APIGatewayProxyResult = {
statusCode: number;
statusDescription?: string;
body: string;
cookies?: string[];
isBase64Encoded: boolean;
} & (WithHeaders | WithMultiValueHeaders);
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare const streamHandle: <E extends Env = Env, S extends Schema = {}, BasePath extends string = "/">(app: Hono<E, S, BasePath>) => Handler;
type HandleOptions = {
isContentTypeBinary: ((contentType: string) => boolean) | undefined;
};
/**
* Converts a Hono application to an AWS Lambda handler.
*
* Accepts events from API Gateway (v1 and v2), Application Load Balancer (ALB),
* and Lambda Function URLs.
*
* @param app - The Hono application instance
* @param options - Optional configuration
* @param options.isContentTypeBinary - A function to determine if the content type is binary.
* If not provided, the default function will be used.
* @returns Lambda handler function
*
* @example
* ```js
* import { Hono } from 'hono'
* import { handle } from 'hono/aws-lambda'
*
* const app = new Hono()
*
* app.get('/', (c) => c.text('Hello from Lambda'))
* app.get('/json', (c) => c.json({ message: 'Hello JSON' }))
*
* export const handler = handle(app)
* ```
*
* @example
* ```js
* // With custom binary content type detection
* import { handle, defaultIsContentTypeBinary } from 'hono/aws-lambda'
* export const handler = handle(app, {
* isContentTypeBinary: (contentType) => {
* if (defaultIsContentTypeBinary(contentType)) {
* // default logic same as prior to v4.8.4
* return true
* }
* return contentType.startsWith('image/') || contentType === 'application/pdf'
* }
* })
* ```
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare const handle: <E extends Env = Env, S extends Schema = {}, BasePath extends string = "/">(app: Hono<E, S, BasePath>, { isContentTypeBinary }?: HandleOptions) => (<L extends LambdaEvent>(event: L, lambdaContext?: LambdaContext) => Promise<APIGatewayProxyResult & (L extends {
multiValueHeaders: Record<string, string[]>;
} ? WithMultiValueHeaders : WithHeaders)>);
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare abstract class EventProcessor<E extends LambdaEvent> {
protected abstract getPath(event: E): string;
protected abstract getMethod(event: E): string;
protected abstract getQueryString(event: E): string;
protected abstract getHeaders(event: E): Headers;
protected abstract getCookies(event: E, headers: Headers): void;
protected abstract setCookiesToResult(result: APIGatewayProxyResult, cookies: string[]): void;
protected getHeaderValue(headers: E['headers'], key: string): string | undefined;
protected getDomainName(event: E): string | undefined;
createRequest(event: E): Request;
createResult(event: E, res: Response, options: Pick<HandleOptions, 'isContentTypeBinary'>): Promise<APIGatewayProxyResult>;
setCookies(_event: E, res: Response, result: APIGatewayProxyResult): void;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare class EventV2Processor extends EventProcessor<APIGatewayProxyEventV2> {
protected getPath(event: APIGatewayProxyEventV2): string;
protected getMethod(event: APIGatewayProxyEventV2): string;
protected getQueryString(event: APIGatewayProxyEventV2): string;
protected getCookies(event: APIGatewayProxyEventV2, headers: Headers): void;
protected setCookiesToResult(result: APIGatewayProxyResult, cookies: string[]): void;
protected getHeaders(event: APIGatewayProxyEventV2): Headers;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare class EventV1Processor extends EventProcessor<APIGatewayProxyEvent> {
protected getPath(event: APIGatewayProxyEvent): string;
protected getMethod(event: APIGatewayProxyEvent): string;
protected getQueryString(event: APIGatewayProxyEvent): string;
protected getCookies(_event: APIGatewayProxyEvent, _headers: Headers): void;
protected getHeaders(event: APIGatewayProxyEvent): Headers;
protected setCookiesToResult(result: APIGatewayProxyResult, cookies: string[]): void;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare class ALBProcessor extends EventProcessor<ALBProxyEvent> {
protected getHeaders(event: ALBProxyEvent): Headers;
protected getPath(event: ALBProxyEvent): string;
protected getMethod(event: ALBProxyEvent): string;
protected getQueryString(event: ALBProxyEvent): string;
protected getCookies(event: ALBProxyEvent, headers: Headers): void;
protected setCookiesToResult(result: APIGatewayProxyResult, cookies: string[]): void;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare class LatticeV2Processor extends EventProcessor<LatticeProxyEventV2> {
protected getPath(event: LatticeProxyEventV2): string;
protected getMethod(event: LatticeProxyEventV2): string;
protected getQueryString(): string;
protected getHeaders(event: LatticeProxyEventV2): Headers;
protected getCookies(): void;
protected setCookiesToResult(result: APIGatewayProxyResult, cookies: string[]): void;
}
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare const getProcessor: (event: LambdaEvent) => EventProcessor<LambdaEvent>;
/**
* Check if the given content type is binary.
* This is a default function and may be overwritten by the user via `isContentTypeBinary` option in handler().
* @param contentType The content type to check.
* @returns True if the content type is binary, false otherwise.
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare const defaultIsContentTypeBinary: (contentType: string) => boolean;
/**
* @deprecated `hono/aws-lambda` will be removed in v5. Install `@hono/aws-lambda` and import from there instead.
*/
export declare const isContentEncodingBinary: (contentEncoding: string | null) => boolean;
//#endregion
export {};
@@ -0,0 +1 @@
{"version":3,"file":"features-min.mjs","sources":["../../../../src/render/dom/features-min.ts"],"sourcesContent":["\"use client\"\n\nimport { animations } from \"../../motion/features/animations\"\nimport { FeatureBundle } from \"../../motion/features/types\"\nimport { createDomVisualElement } from \"./create-visual-element\"\n\n/**\n * @public\n */\nexport const domMin: FeatureBundle = {\n renderer: createDomVisualElement,\n ...animations,\n}\n"],"names":[],"mappings":";;;;AAMA;;AAEG;AACI;AACH;AACA;;;"}
@@ -0,0 +1 @@
{"version":3,"file":"chart-area.js","sources":["../../../src/icons/chart-area.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChartArea\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTEuMjA3YS41LjUgMCAwIDEgLjE0Ni0uMzUzbDItMmEuNS41IDAgMCAxIC43MDggMGwzLjI5MiAzLjI5MmEuNS41IDAgMCAwIC43MDggMGw0LjI5Mi00LjI5MmEuNS41IDAgMCAxIC44NTQuMzUzVjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-area\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChartArea = createLucideIcon('ChartArea', [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16', key: 'c24i48' }],\n [\n 'path',\n {\n d: 'M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z',\n key: 'q0gr47',\n },\n ],\n]);\n\nexport default ChartArea;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,iBAAiB,WAAa,CAAA,CAAA,CAAA;AAAA,CAAA,CAC9C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CACzD,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA;AACF,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1 @@
{"version":3,"file":"text-search.js","sources":["../../../src/icons/text-search.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TextSearch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNkgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOEgzIiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTUiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIxIDE5LTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TextSearch = createLucideIcon('TextSearch', [\n ['path', { d: 'M21 6H3', key: '1jwq7v' }],\n ['path', { d: 'M10 12H3', key: '1ulcyk' }],\n ['path', { d: 'M10 18H3', key: '13769t' }],\n ['circle', { cx: '17', cy: '15', r: '3', key: '1upz2a' }],\n ['path', { d: 'm21 19-1.9-1.9', key: 'dwi7p8' }],\n]);\n\nexport default TextSearch;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,iBAAiB,YAAc,CAAA,CAAA,CAAA;AAAA,CAAA,CAChD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CACzC,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAI,CAAA,CAAA,CAAA,IAAA,CAAM,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA;AAAA,CAAA,CACxD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AACjD,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,825 @@
export default `flf2a$ 8 7 20 -1 7
NIPPLES by Ron Fritz 8/94
Figlet Release 2.0
---
Font modified June 17, 2007 by patorjk
This was to widen the space character.
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@@
{__@
{__@
{__@
{_ @
{_ @
@
{__@
@@
{_ {_@
{_ {_@
@
@
@
@
@
@@
@
{__ {__ @
{______ {____@
{__ {__ @
{__ {__ @
{______ {____@
{__ {__ @
@@
{__ @
{_ {__ @
{__ @
{__ @
{__@
{__ {__ @
{__ @
@@
@
{__ {__ @
{__ @
{__ @
{__ @
{__ @
{__ {__ @
@@
{_ @
{__ {__@
{__ @
{___ @
{__ @
{__ {__@
{_ @
@@
{__@
{_@
@
@
@
@
@
@@
{__@
{__ @
{__ @
{__ @
{__ @
{__ @
{__@
@@
{__ @
{__ @
{__@
{__@
{__@
{__ @
{__ @
@@
{__ @
{__ {__ {__@
{_ {_ {__ @
{____ {_______@
{_ {_ {__ @
{__ {__ {__@
{__ @
@@
@
{__ @
{__ @
{___ {_____@
{__ @
{__ @
@
@@
@
@
@
@
@
@
{__@
{_@@
@
@
@
{_____@
@
@
@
@@
@
@
@
@
@
@
{__@
@@
{__@
{__ @
{__ @
{__ @
{__ @
{__ @
{__ @
@@
@
{__ @
{__ {__ @
{__ {__ @
{__ {__@
{__ {__ @
{___ @
@@
@
{__ @
{__ @
{__ @
{__ @
{__ @
{____@
@@
@
{__ {_ @
{_ {__@
{__ @
{__ @
{__ @
{________ @
@@
@
{__ {__ @
{__ @
{__ @
{__ @
{__@
{_____ @
@@
@
{__ @
{ {__ @
{_ {__ @
{__ {__ @
{____ {_ {__@
{__ @
@@
@
{__ {___ @
{__ @
{___ @
{__ @
{__@
{___ {__ @
@@
@
{__ @
{__ @
{__ @
{_ {__ @
{__ {__@
{__ {__ @
@@
@
{_____ {__@
{__ @
{__ @
{__ @
{__ @
{__ @
@@
@
{_ @
{__ {__ @
{__ {_ @
{__ {_ @
{__ {__@
{____ @
@@
@
{_ {__ @
{__ {__@
{_ {__ @
{_ {__ @
{__ @
{__ @
@@
@
@
@
@
{__@
@
{__@
@@
@
@
@
@
{__@
@
{__@
{_@@
{__@
{__ @
{__ @
{__ @
{__ @
{__ @
{__@
@@
@
@
{______@
@
{______@
@
@
@@
{__ @
{__ @
{__ @
{__@
{__ @
{__ @
{__ @
@@
{___ @
{__ @
{__@
{__ @
{__ @
@
{__ @
@@
@
{___ @
{_ {__ @
{_ {__ {__@
{__ {__{ {__@
{__ \`\`\` @
{__ @
@@
{_ @
{_ __ @
{_ {__ @
{__ {__ @
{______ {__ @
{__ {__ @
{__ {__@
@@
{__ {__ @
{_ {__ @
{_ {__@
{___ {_ @
{_ {__@
{_ {_@
{____ {__ @
@@
{__ @
{__ {__@
{__ @
{__ @
{__ @
{__ {__@
{____ @
@@
{_____ @
{__ {__ @
{__ {__@
{__ {__@
{__ {__@
{__ {__ @
{_____ @
@@
{________@
{__ @
{__ @
{______ @
{__ @
{__ @
{________@
@@
{________@
{__ @
{__ @
{______ @
{__ @
{__ @
{__ @
@@
{____ @
{_ {__ @
{__ @
{__ @
{__ {____@
{__ {_ @
{_____ @
@@
{__ {__@
{__ {__@
{__ {__@
{______ {__@
{__ {__@
{__ {__@
{__ {__@
@@
{__@
{__@
{__@
{__@
{__@
{__@
{__@
@@
{__@
{__@
{__@
{__@
{__@
{_ {__@
{____ @
@@
{__ {__ @
{__ {__ @
{__ {__ @
{_ {_ @
{__ {__ @
{__ {__ @
{__ {__@
@@
{__ @
{__ @
{__ @
{__ @
{__ @
{__ @
{________@
@@
{__ {__@
{_ {__ {___@
{__ {__ { {__@
{__ {__ {__@
{__ {_ {__@
{__ {__@
{__ {__@
@@
{___ {__@
{_ {__ {__@
{__ {__ {__@
{__ {__ {__@
{__ {_ {__@
{__ {_ __@
{__ {__@
@@
{____ @
{__ {__ @
{__ {__@
{__ {__@
{__ {__@
{__ {__ @
{____ @
@@
{_______ @
{__ {__@
{__ {__@
{_______ @
{__ @
{__ @
{__ @
@@
{____ @
{__ {__ @
{__ {__@
{__ {__@
{__ {__@
{__ {_ {__ @
{__ __ @
{_ @@
{_______ @
{__ {__ @
{__ {__ @
{_ {__ @
{__ {__ @
{__ {__ @
{__ {__@
@@
{__ __ @
{__ {__@
{__ @
{__ @
{__ @
{__ {__@
{__ __ @
@@
{___ {______@
{__ @
{__ @
{__ @
{__ @
{__ @
{__ @
@@
{__ {__@
{__ {__@
{__ {__@
{__ {__@
{__ {__@
{__ {__@
{_____ @
@@
{__ {__@
{__ {__ @
{__ {__ @
{__ {__ @
{__ {__ @
{____ @
{__ @
@@
{__ {__@
{__ {__@
{__ {_ {__@
{__ {__ {__@
{__ {_ {__ {__@
{_ {_ {____@
{__ {__@
@@
{__ {__@
{__ {__ @
{__ {__ @
{__ @
{__ {__ @
{__ {__ @
{__ {__@
@@
{__ {__@
{__ {__ @
{__ {__ @
{__ @
{__ @
{__ @
{__ @
@@
{_______ {__@
{__ @
{__ @
{__ @
{__ @
{__ @
{___________@
@@
{____@
{__ @
{__ @
{__ @
{__ @
{__ @
{____@
@@
{__ @
{__ @
{__ @
{__ @
{__ @
{__ @
{__@
@@
{____@
{__@
{__@
{__@
{__@
{__@
{____@
@@
{__ @
{__ {__ @
{__ {__@
@
@
@
@
@@
@
@
@
@
@
@
@
{_____@@
{__@
{_ @
@
@
@
@
@
@@
@
@
{__ @
{__ {__ @
{__ {__ @
{__ {__ @
{__ {___@
@@
{__ @
{__ @
{__ @
{__ {__ @
{__ {__@
{__ {__@
{__ {__ @
@@
@
@
{___@
{__ @
{__ @
{__ @
{___@
@@
{__@
{__@
{__@
{__ {__@
{_ {__@
{_ {__@
{__ {__@
@@
@
@
{__ @
{_ {__ @
{_____ {__@
{_ @
{____ @
@@
{__@
{_ @
{_{_ {_@
{__ @
{__ @
{__ @
{__ @
@@
@
@
{__ @
{__ {__@
{__ {__@
{__ {__@
{__ @
{__ @@
@
{__ @
{__ @
{_ {_ @
{__ {__@
{_ {__@
{__ {__@
@@
@
{_@
@
{__@
{__@
{__@
{__@
@@
@
{__@
@
{__@
{__@
{__@
{__@
{___ @@
{__ @
{__ @
{__ {__@
{__ {__ @
{_{__ @
{__ {__ @
{__ {__@
@@
{__@
{__@
{__@
{__@
{__@
{__@
{___@
@@
@
@
{___ {__ {__ @
{__ {_ {__@
{__ {_ {__@
{__ {_ {__@
{___ {_ {__@
@@
@
@
{__ {__ @
{__ {__@
{__ {__@
{__ {__@
{___ {__@
@@
@
@
{__ @
{__ {__ @
{__ {__@
{__ {__ @
{__ @
@@
@
@
{_ {__ @
{_ {__ @
{_ {__@
{__ {__ @
{__ @
{__ @@
@
@
{__ @
{_ {__ @
{_ {__ @
{__{__ @
{__ @
{___@@
@
@
{_ {___@
{__ @
{__ @
{__ @
{___ @
@@
@
@
{____ @
{__ @
{___ @
{__@
{__ {__@
@@
{__ @
{__ @
{_{_ {_@
{__ @
{__ @
{__ @
{__ @
@@
@
@
{__ {__@
{__ {__@
{__ {__@
{__ {__@
{__{__@
@@
@
@
{__ {__@
{__ {__ @
{__ {__ @
{_{__ @
{__ @
@@
@
@
{__ {___@
{__ _ {__@
{__ {_ {__@
{_ {_ {_{__@
{___ {___@
@@
@
@
{__ {__@
{_ {__ @
{_ @
{_ {__ @
{__ {__@
@@
@
@
{__ {__@
{__ {__ @
{___ @
{__ @
{__ @
{__ @@
@
@
{____ {__@
{__ @
{__ @
{__ @
{________@
@@
{__@
{__ @
{__ @
{__ @
{__ @
{__ @
{__@
@@
{_@
{_@
{_@
@
{_@
{_@
{_@
@@
__} @
__} @
__} @
__}@
__} @
__} @
__} @
@@
{__ {_ @
{_ {__@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@@
`
@@ -0,0 +1 @@
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["src/pbkdf2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,kBAAkB;AAClB,OAAO,EACL,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAMzD,MAAM,YAAY,CAAC;AAgBpB,gDAAgD;AAChD,SAAS,UAAU,CACjB,IAAiB,EACjB,SAAyB,EACzB,KAAqB,EACrB,KAAsB;IAEtB,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxB,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC1D,yDAAyD;IACzD,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACvD,2DAA2D;IAC3D,4CAA4C;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,0CAA0C;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,+EAA+E;IAC/E,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CACnB,GAAkB,EAClB,OAAsB,EACtB,EAAoB,EACpB,IAA+B,EAC/B,CAAmB;IAEnB,4DAA4D;IAC5D,2CAA2C;IAC3C,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,OAAO,CAAC,OAAO,EAAE,CAAC;IAClB,IAAI,IAAI;QAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC;IACT,OAAO,EAAsB,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,MAAM,CACpB,IAAiB,EACjB,QAAwB,EACxB,IAAoB,EACpB,IAAqB;IAErB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9E,IAAI,IAAS,CAAC,CAAC,eAAe;IAC9B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,iCAAiC;IACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClE,+BAA+B;QAC/B,2DAA2D;QAC3D,sEAAsE;QACtE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,0CAA0C;QAC1C,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5D,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9B,2BAA2B;YAC3B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAiB,EACjB,QAAwB,EACxB,IAAoB,EACpB,IAAqB;IAErB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzF,IAAI,IAAS,CAAC,CAAC,eAAe;IAC9B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,iCAAiC;IACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClE,+BAA+B;QAC/B,2DAA2D;QAC3D,sEAAsE;QACtE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,0CAA0C;QAC1C,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5D,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,MAAM,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;YACrC,2BAA2B;YAC3B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1 @@
{"version":3,"file":"star.js","sources":["../../../src/icons/star.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Star = createLucideIcon('Star', [\n [\n 'path',\n {\n d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z',\n key: 'r04s7s',\n },\n ],\n]);\n\nexport default Star;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,iBAAiB,MAAQ,CAAA,CAAA,CAAA;AAAA,CACpC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA;AACF,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,23 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const FolderDown = createLucideIcon("FolderDown", [
[
"path",
{
d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
key: "1kt360"
}
],
["path", { d: "M12 10v6", key: "1bos4e" }],
["path", { d: "m15 13-3 3-3-3", key: "6j2sf0" }]
]);
export { FolderDown as default };
//# sourceMappingURL=folder-down.js.map
@@ -0,0 +1,311 @@
export default `flf2a$ 3 2 30 -1 3
Mike by Michael Sullivan 1994
Figlet version of mikewriting generated by hand...
Minor errors fixed by Glenn Chappell <ggc@uiuc.edu> 27 Sep 1994
$$#
$$#
$$##
!#
#
##
||#
#
##
/~~_/ /~~_/ /~/#
/ _/ / _/ / / #
/_/ /_/ /_/ ##
|| #
||#
##
|/#
/|#
##
#
&#
##
/#
#
##
#
(#
##
#
)#
##
#
*#
##
#
+#
##
#
,#
##
#
-#
##
#
.#
##
#
/#
##
#
0#
##
#
1#
##
#
2#
##
#
3#
##
#
4#
##
#
5#
##
#
6#
##
#
7#
##
#
8#
##
#
9#
##
#
:#
##
#
;#
##
#
<#
##
#
=#
##
#
>#
##
?#
#
##
#
@#
##
#
//|#
##
| #
|/#
##
#
|_#
##
|#
\\|#
##
_#
|/#
##
|\\#
| #
##
#
/|#
|##
| #
|\\#
##
#
_|#
##
#
|#
|##
|/#
| #
##
|#
|#
##
#
||\\#
##
#
|\\#
##
#
|#
##
#
|\\#
| ##
#
| #
|/##
_#
| #
##
#
//#
##
_ #
|#
##
#
|/|#
##
#
|/#
##
#
||/#
##
#
\\#
##
#
/#
/ ##
_#
_#
##
#
[#
##
#
\\#
##
#
]#
##
#
^#
##
#
__#
##
\\#
#
##
#
//|#
##
| #
|/#
##
#
|_#
##
|#
\\|#
##
_#
|/#
##
|\\#
| #
##
#
/|#
|##
| #
|\\#
##
#
_|#
##
#
|#
|##
|/#
| #
##
|#
|#
##
#
||\\#
##
#
|\\#
##
#
|#
##
#
|\\#
| ##
#
| #
|/##
_#
| #
##
#
//#
##
_ #
|#
##
#
|/|#
##
#
|/#
##
#
||/#
##
#
\\#
##
#
/#
/ ##
_#
_#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
#
#
##
`
@@ -0,0 +1,68 @@
{
"name": "obug",
"version": "2.1.1",
"description": "A lightweight JavaScript debugging utility, forked from debug, featuring TypeScript and ESM support.",
"type": "module",
"license": "MIT",
"homepage": "https://github.com/sxzz/obug#readme",
"bugs": {
"url": "https://github.com/sxzz/obug/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/sxzz/obug.git"
},
"author": "Kevin Deng <sxzz@sxzz.moe>",
"funding": [
"https://github.com/sponsors/sxzz",
"https://opencollective.com/debug"
],
"files": [
"dist"
],
"main": "./dist/node.js",
"module": "./dist/node.js",
"types": "./dist/browser.d.ts",
"exports": {
".": {
"browser": "./dist/browser.js",
"default": "./dist/node.js"
},
"./package.json": "./package.json"
},
"unpkg": "./dist/browser.min.js",
"jsdelivr": "./dist/browser.min.js",
"publishConfig": {
"access": "public"
},
"devDependencies": {
"@sxzz/eslint-config": "^7.3.0",
"@sxzz/prettier-config": "^2.2.5",
"@types/debug": "^4.1.12",
"@types/node": "^24.10.1",
"@vitest/browser-playwright": "^4.0.10",
"@vitest/coverage-v8": "^4.0.10",
"bumpp": "^10.3.1",
"debug": "^4.4.3",
"eslint": "^9.39.1",
"playwright": "^1.56.1",
"prettier": "^3.6.2",
"tsdown": "^0.16.5",
"typescript": "^5.9.3",
"vite": "^7.2.2",
"vitest": "^4.0.10"
},
"prettier": "@sxzz/prettier-config",
"scripts": {
"lint": "eslint --cache .",
"lint:fix": "pnpm run lint --fix",
"build": "tsdown",
"dev": "tsdown --watch",
"test": "vitest",
"test:coverage": "vitest --project node --coverage",
"play": "vite playground",
"typecheck": "tsc --noEmit",
"format": "prettier --cache --write .",
"release": "bumpp"
}
}
@@ -0,0 +1,9 @@
module.exports = {
1: 'ls', // WHATWG Living Standard
2: 'rec', // W3C Recommendation
3: 'pr', // W3C Proposed Recommendation
4: 'cr', // W3C Candidate Recommendation
5: 'wd', // W3C Working Draft
6: 'other', // Non-W3C, but reputable
7: 'unoff' // Unofficial, Editor's Draft or W3C "Note"
}
@@ -0,0 +1,192 @@
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@3.0.0-alpha.2...istanbul-lib-report@3.0.0) (2019-12-20)
**Note:** Version bump only for package istanbul-lib-report
# [3.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@3.0.0-alpha.1...istanbul-lib-report@3.0.0-alpha.2) (2019-12-07)
**Note:** Version bump only for package istanbul-lib-report
# [3.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@3.0.0-alpha.0...istanbul-lib-report@3.0.0-alpha.1) (2019-10-06)
**Note:** Version bump only for package istanbul-lib-report
# [3.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.8...istanbul-lib-report@3.0.0-alpha.0) (2019-06-19)
### Bug Fixes
* **package:** update supports-color to version 7.0.0 ([#420](https://github.com/istanbuljs/istanbuljs/issues/420)) ([631029d](https://github.com/istanbuljs/istanbuljs/commit/631029d))
* Properly combine directories in nested summarizer ([#380](https://github.com/istanbuljs/istanbuljs/issues/380)) ([50afdbb](https://github.com/istanbuljs/istanbuljs/commit/50afdbb))
### Features
* Refactor istanbul-lib-report so report can choose summarizer ([#408](https://github.com/istanbuljs/istanbuljs/issues/408)) ([0f328fd](https://github.com/istanbuljs/istanbuljs/commit/0f328fd))
* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539))
### BREAKING CHANGES
* Existing istanbul-lib-report API's have been changed
* Node.js 8 is now required
## [3.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report-v3.0.0...istanbul-lib-report-v3.0.1) (2023-07-25)
### Bug Fixes
* **deps:** update make-dir CVE-2022-25883 ([eab82a9](https://github.com/istanbuljs/istanbuljs/commit/eab82a9aeff140a8fd2981c7f872830c985d479f))
## [2.0.8](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.7...istanbul-lib-report@2.0.8) (2019-04-24)
**Note:** Version bump only for package istanbul-lib-report
## [2.0.7](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.6...istanbul-lib-report@2.0.7) (2019-04-09)
**Note:** Version bump only for package istanbul-lib-report
## [2.0.6](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.5...istanbul-lib-report@2.0.6) (2019-04-03)
### Bug Fixes
* Avoid corrupting HTML report's arrow png during copy ([#343](https://github.com/istanbuljs/istanbuljs/issues/343)) ([ce664c7](https://github.com/istanbuljs/istanbuljs/commit/ce664c7))
## [2.0.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.4...istanbul-lib-report@2.0.5) (2019-03-12)
**Note:** Version bump only for package istanbul-lib-report
## [2.0.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.3...istanbul-lib-report@2.0.4) (2019-01-26)
### Bug Fixes
* nested summarizer error with no files ([#230](https://github.com/istanbuljs/istanbuljs/issues/230)) ([07724bf](https://github.com/istanbuljs/istanbuljs/commit/07724bf))
<a name="2.0.3"></a>
## [2.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.2...istanbul-lib-report@2.0.3) (2018-12-25)
**Note:** Version bump only for package istanbul-lib-report
<a name="2.0.2"></a>
## [2.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.1...istanbul-lib-report@2.0.2) (2018-09-06)
**Note:** Version bump only for package istanbul-lib-report
<a name="2.0.1"></a>
## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.0...istanbul-lib-report@2.0.1) (2018-07-07)
**Note:** Version bump only for package istanbul-lib-report
<a name="2.0.0"></a>
# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.4...istanbul-lib-report@2.0.0) (2018-06-06)
### Bug Fixes
* use null prototype for map objects ([#177](https://github.com/istanbuljs/istanbuljs/issues/177)) ([9a5a30c](https://github.com/istanbuljs/istanbuljs/commit/9a5a30c))
### BREAKING CHANGES
* a null prototype is now used in several places rather than the default `{}` assignment.
<a name="1.1.4"></a>
## [1.1.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.3...istanbul-lib-report@1.1.4) (2018-03-04)
**Note:** Version bump only for package istanbul-lib-report
<a name="1.1.3"></a>
## [1.1.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.2...istanbul-lib-report@1.1.3) (2018-02-13)
**Note:** Version bump only for package istanbul-lib-report
<a name="1.1.2"></a>
## [1.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.1...istanbul-lib-report@1.1.2) (2017-10-21)
### Bug Fixes
* remove call to mkdirp.sync() in constructor so when used for ConsoleWriter ([#104](https://github.com/istanbuljs/istanbuljs/issues/104)) ([58eb79d](https://github.com/istanbuljs/istanbuljs/commit/58eb79d))
<a name="1.1.1"></a>
## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.0...istanbul-lib-report@1.1.1) (2017-05-27)
<a name="1.1.0"></a>
# [1.1.0](https://github.com/istanbuljs/istanbul-lib-report/compare/istanbul-lib-report@1.0.0...istanbul-lib-report@1.1.0) (2017-04-29)
### Features
* once 100% line coverage is achieved, missing branch coverage is now shown in text report ([#45](https://github.com/istanbuljs/istanbuljs/issues/45)) ([8a809f8](https://github.com/istanbuljs/istanbul-lib-report/commit/8a809f8))
<a name="1.0.0"></a>
# [1.0.0](https://github.com/istanbuljs/istanbul-lib-report/compare/istanbul-lib-report@1.0.0-alpha.3...istanbul-lib-report@1.0.0) (2017-03-27)
@@ -0,0 +1,5 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_jsx_dom_jsx_dev_runtime = require("./jsx-dev-runtime.js");
exports.Fragment = require_jsx_dom_jsx_dev_runtime.Fragment;
exports.jsx = require_jsx_dom_jsx_dev_runtime.jsxDEV;
exports.jsxs = require_jsx_dom_jsx_dev_runtime.jsxDEV;
@@ -0,0 +1,150 @@
"use client";
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
const require_CatchBoundary = require("./CatchBoundary.cjs");
const require_matchContext = require("./matchContext.cjs");
const require_useRouter = require("./useRouter.cjs");
const require_Transitioner = require("./Transitioner.cjs");
const require_SafeFragment = require("./SafeFragment.cjs");
const require_Match = require("./Match.cjs");
let _tanstack_router_core = require("@tanstack/router-core");
let react = require("react");
react = require_runtime.__toESM(react);
let react_jsx_runtime = require("react/jsx-runtime");
let _tanstack_react_store = require("@tanstack/react-store");
let _tanstack_router_core_isServer = require("@tanstack/router-core/isServer");
//#region src/Matches.tsx
/**
* Internal component that renders the router's active match tree with
* suspense, error, and not-found boundaries. Rendered by `RouterProvider`.
*/
function Matches() {
const router = require_useRouter.useRouter();
const PendingComponent = router.routesById[_tanstack_router_core.rootRouteId].options.pendingComponent ?? router.options.defaultPendingComponent;
const pendingElement = PendingComponent ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PendingComponent, {}) : null;
const inner = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)((_tanstack_router_core_isServer.isServer ?? router.isServer) || typeof document !== "undefined" && router.ssr ? require_SafeFragment.SafeFragment : react.Suspense, {
fallback: pendingElement,
children: [!(_tanstack_router_core_isServer.isServer ?? router.isServer) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Transitioner.Transitioner, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MatchesInner, {})]
});
return router.options.InnerWrap ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(router.options.InnerWrap, { children: inner }) : inner;
}
function MatchesInner() {
const router = require_useRouter.useRouter();
const _isServer = _tanstack_router_core_isServer.isServer ?? router.isServer;
const matchId = _isServer ? router.stores.firstId.get() : (0, _tanstack_react_store.useStore)(router.stores.firstId, (id) => id);
const resetKey = _isServer ? router.stores.loadedAt.get() : (0, _tanstack_react_store.useStore)(router.stores.loadedAt, (loadedAt) => loadedAt);
const matchComponent = matchId ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Match.Match, { matchId }) : null;
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_matchContext.matchContext.Provider, {
value: matchId,
children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CatchBoundary.CatchBoundary, {
getResetKey: () => resetKey,
errorComponent: require_CatchBoundary.ErrorComponent,
onCatch: process.env.NODE_ENV !== "production" ? (error) => {
console.warn(`Warning: The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`);
console.warn(`Warning: ${error.message || error.toString()}`);
} : void 0,
children: matchComponent
})
});
}
/**
* Create a matcher function for testing locations against route definitions.
*
* The returned function accepts standard navigation options (`to`, `params`,
* `search`, etc.) and returns either `false` (no match) or the matched params
* object when the route matches the current or pending location.
*
* Useful for conditional rendering and active UI states.
*
* @returns A `matchRoute(options)` function that returns `false` or params.
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useMatchRouteHook
*/
function useMatchRoute() {
const router = require_useRouter.useRouter();
if (!(_tanstack_router_core_isServer.isServer ?? router.isServer)) (0, _tanstack_react_store.useStore)(router.stores.matchRouteDeps, (d) => d);
return react.useCallback((opts) => {
const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;
return router.matchRoute(rest, {
pending,
caseSensitive,
fuzzy,
includeSearch
});
}, [router]);
}
/**
* Component that conditionally renders its children based on whether a route
* matches the provided `from`/`to` options. If `children` is a function, it
* receives the matched params object.
*
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/matchRouteComponent
*/
function MatchRoute(props) {
const params = useMatchRoute()(props);
if (typeof props.children === "function") return props.children(params);
return params ? props.children : null;
}
function useMatches(opts) {
const router = require_useRouter.useRouter();
const previousResult = react.useRef(void 0);
if (_tanstack_router_core_isServer.isServer ?? router.isServer) {
const matches = router.stores.matches.get();
return opts?.select ? opts.select(matches) : matches;
}
return (0, _tanstack_react_store.useStore)(router.stores.matches, (matches) => {
const selected = opts?.select ? opts.select(matches) : matches;
if (opts?.structuralSharing ?? router.options.defaultStructuralSharing) {
const shared = (0, _tanstack_router_core.replaceEqualDeep)(previousResult.current, selected);
previousResult.current = shared;
return shared;
}
return selected;
});
}
/**
* Read the full array of active route matches or select a derived subset.
*
* Useful for debugging, breadcrumbs, or aggregating metadata across matches.
*
* @returns The array of matches (or the selected value).
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useMatchesHook
*/
/**
* Read the full array of active route matches or select a derived subset.
*
* Useful for debugging, breadcrumbs, or aggregating metadata across matches.
*
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useMatchesHook
*/
function useParentMatches(opts) {
const contextMatchId = react.useContext(require_matchContext.matchContext);
return useMatches({
select: (matches) => {
matches = matches.slice(0, matches.findIndex((d) => d.id === contextMatchId));
return opts?.select ? opts.select(matches) : matches;
},
structuralSharing: opts?.structuralSharing
});
}
/**
* Read the array of active route matches that are children of the current
* match (or selected parent) in the match tree.
*/
function useChildMatches(opts) {
const contextMatchId = react.useContext(require_matchContext.matchContext);
return useMatches({
select: (matches) => {
matches = matches.slice(matches.findIndex((d) => d.id === contextMatchId) + 1);
return opts?.select ? opts.select(matches) : matches;
},
structuralSharing: opts?.structuralSharing
});
}
//#endregion
exports.MatchRoute = MatchRoute;
exports.Matches = Matches;
exports.useChildMatches = useChildMatches;
exports.useMatchRoute = useMatchRoute;
exports.useMatches = useMatches;
exports.useParentMatches = useParentMatches;
//# sourceMappingURL=Matches.cjs.map
@@ -0,0 +1,40 @@
import { REGEXEN } from '../../data/const'
import { sorted } from '../../utils/helper'
import { MatcherBaseClass, MatchOptions, RegexMatch } from '../../types'
type RegexMatchOptions = Pick<MatchOptions, 'password'>
type RegexesKeys = keyof typeof REGEXEN
/*
* -------------------------------------------------------------------------------
* regex matching ---------------------------------------------------------------
* -------------------------------------------------------------------------------
*/
class MatchRegex extends MatcherBaseClass {
match({ password }: RegexMatchOptions) {
const matches: RegexMatch[] = []
Object.keys(REGEXEN).forEach((name) => {
const regex = REGEXEN[name as RegexesKeys]
regex.lastIndex = 0 // keeps regexMatch stateless
let regexMatch: RegExpExecArray | null
while ((regexMatch = regex.exec(password))) {
if (regexMatch) {
const token = regexMatch[0]
matches.push({
pattern: 'regex',
token,
i: regexMatch.index,
j: regexMatch.index + regexMatch[0].length - 1,
regexName: name as RegexesKeys,
regexMatch,
})
}
}
})
return sorted(matches)
}
}
export default MatchRegex
@@ -0,0 +1,60 @@
{
"name": "@radix-ui/react-context",
"version": "1.2.0",
"license": "MIT",
"source": "./src/index.ts",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"files": [
"dist",
"README.md"
],
"sideEffects": false,
"devDependencies": {
"@types/react": "^19.2.2",
"@types/react-dom": "^19.2.2",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"typescript": "^5.9.3",
"@repo/typescript-config": "0.0.0",
"@repo/builder": "0.0.0"
},
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
},
"homepage": "https://radix-ui.com/primitives",
"repository": {
"type": "git",
"url": "git+https://github.com/radix-ui/primitives.git",
"directory": "packages/react/context"
},
"bugs": {
"url": "https://github.com/radix-ui/primitives/issues"
},
"scripts": {
"lint": "oxlint --max-warnings 0 src",
"clean": "rm -rf dist",
"reset": "rm -rf dist node_modules",
"typecheck": "tsc --noEmit",
"build": "radix-build"
},
"types": "./dist/index.d.ts",
"exports": {
".": {
"import": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"require": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
}
}
}
@@ -0,0 +1,191 @@
# isbot 🤖/👨‍🦰
[![](https://img.shields.io/npm/v/isbot?style=flat-square)](https://www.npmjs.com/package/isbot) [![](https://img.shields.io/circleci/build/github/omrilotan/isbot?style=flat-square)](https://circleci.com/gh/omrilotan/isbot) [![](https://img.shields.io/github/last-commit/omrilotan/isbot?style=flat-square)](https://github.com/omrilotan/isbot/graphs/commit-activity) [![](https://img.shields.io/npm/dw/isbot?style=flat-square)](https://www.npmjs.com/package/isbot) [![](https://img.shields.io/jsdelivr/npm/hw/isbot?style=flat-square)](https://www.jsdelivr.com/package/npm/isbot)
[![](./page/isbot.svg)](https://isbot.js.org)
Identify bots, crawlers, and spiders using the user agent string.
## Usage
Install
```sh
npm i isbot
```
Straightforward usage
```ts
import { isbot } from "isbot";
// Request
isbot(request.headers.get("User-Agent"));
// Nodejs HTTP
isbot(request.getHeader("User-Agent"));
// ExpressJS
isbot(req.get("user-agent"));
// Browser
isbot(navigator.userAgent);
// User Agent string
isbot(
"Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
); // true
isbot(
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
); // false
```
Use JSDeliver CDN you can import to the browser directly
> See specific versions and instructions [https://www.jsdelivr.com/package/npm/isbot](https://www.jsdelivr.com/package/npm/isbot)
ESM
```html
<script type="module">
import { isbot } from "https://cdn.jsdelivr.net/npm/isbot@5/+esm";
isbot(navigator.userAgent);
</script>
```
UMD
```html
<script src="https://cdn.jsdelivr.net/npm/isbot@5"></script>
<script>
// isbot is now global
isbot(navigator.userAgent);
</script>
```
## All named imports
| import | Type | Description |
| ------------------- | -------------------------------- | ---------------------------------------------------------------------------- |
| isbot | _(string?): boolean_ | Check if the user agent is a bot |
| isbotNaive | _(string?): boolean_ | Check if the user agent is a bot using a naive pattern (less accurate) |
| getPattern | (): _RegExp_ | The regular expression used to identify bots |
| list | _string[]_ | List of all individual pattern parts |
| isbotMatch | _(string?): string \| null_ | The substring matched by the regular expression |
| isbotMatches | _(string?): string[]_ | All substrings matched by the regular expression |
| isbotPattern | _(string?): string \| null_ | The regular expression used to identify bot substring in the user agent |
| isbotPatterns | _(string?): string[]_ | All regular expressions used to identify bot substrings in the user agent |
| createIsbot | _(RegExp): (string?): boolean_ | Create a custom isbot function |
| createIsbotFromList | _(string[]): (string?): boolean_ | Create a custom isbot function from a list of string representation patterns |
## Example usages of helper functions
Create a custom `isbot` that does not consider Chrome Lighthouse user agent as bots.
```ts
import { createIsbotFromList, isbotPatterns, list } from "isbot";
const ChromeLighthouseUserAgentStrings: string[] = [
"mozilla/5.0 (macintosh; intel mac os x 10_15_7) applewebkit/537.36 (khtml, like gecko) chrome/94.0.4590.2 safari/537.36 chrome-lighthouse",
"mozilla/5.0 (linux; android 7.0; moto g (4)) applewebkit/537.36 (khtml, like gecko) chrome/94.0.4590.2 mobile safari/537.36 chrome-lighthouse",
];
const patternsToRemove = new Set<string>(
ChromeLighthouseUserAgentStrings.map(isbotPatterns).flat(),
);
const isbot: (ua: string) => boolean = createIsbotFromList(
list.filter(
(record: string): boolean => patternsToRemove.has(record) === false,
),
);
```
Create a custom isbot that considers another pattern as a bot, which is not included in the package originally.
```ts
import { createIsbotFromList, list } from "isbot";
const isbot = createIsbotFromList(list.concat("shmulik"));
```
## Definitions
- **Bot.** Autonomous program imitating or replacing some aspect of a human behaviour, performing repetitive tasks much faster than human users could.
- **Good bot.** Automated programs who visit websites in order to collect useful information. Web crawlers, site scrapers, stress testers, preview builders and other programs are welcomed on most websites because they serve purposes of mutual benefits.
- **Bad bot.** Programs which are designed to perform malicious actions, ultimately hurting businesses. Testing credential databases, DDoS attacks, spam bots.
## Clarifications
### What does "isbot" do?
This package aims to identify "Good bots". Those who voluntarily identify themselves by setting a unique, preferably descriptive, user agent, usually by setting a dedicated request header.
### What doesn't "isbot" do?
It does not try to recognise malicious bots or programs disguising themselves as real users.
### Why would I want to identify good bots?
Recognising good bots such as web crawlers is useful for multiple purposes. Although it is not recommended to serve different content to web crawlers like Googlebot, you can still elect to
- Flag pageviews to consider with **business analysis**.
- Prefer to serve cached content and **relieve service load**.
- Omit third party solutions' code (tags, pixels) and **reduce costs**.
> It is not recommended to **whitelist** requests for any reason based on user agent header only. Instead, other methods of identification can be added such as [reverse dns lookup](https://www.npmjs.com/package/reverse-dns-lookup).
## How `isbot` maintains accuracy
`isbot` is an asset when it can most accurately identify bots by the user agent string. It uses expansive and regularly updated lists of user agent strings to create a regular expression that matches bots and only bots.
And above everything else, it is maintained by a community of contributers who help keep the list up to date.
### Fallback
The pattern uses lookbehind methods which are not supported in all environments. A fallback is provided for environments that do not support lookbehind. The fallback is less accurate. The test suite includes a percentage of false positives and false negatives which is deemed acceptable for the fallback: 1% false positive and 75% bot coverage.
## Data sources
We use external data sources on top of our own lists to keep up to date
### Crawlers user agents
- [user-agents.net](https://user-agents.net/bots)
- [monperrus/crawler-user-agents](https://github.com/monperrus/crawler-user-agents/blob/master/crawler-user-agents.json)
- [Kikobeats/top-crawler-agents](https://github.com/Kikobeats/top-crawler-agents/blob/master/index.json)
- [myip.ms](https://www.myip.ms/files/bots/live_webcrawlers.txt)
- [matomo.org](https://github.com/matomo-org/device-detector/blob/master/Tests/fixtures/bots.yml)
- A Manual list
### Non bot user agents
- [user-agents npm package](https://www.npmjs.com/package/user-agents)
- A Manual list
Missing something? Please [open an issue](https://github.com/omrilotan/isbot/issues/new/choose)
## Major releases breaking changes ([full changelog](./CHANGELOG.md))
### [**Version 5**](https://github.com/omrilotan/isbot/releases/tag/v5.0.0)
Remove named export "pattern" from the interface, instead use "getPattern" method
### [**Version 4**](https://github.com/omrilotan/isbot/releases/tag/v4.0.0)
Remove `isbot` function default export in favour of a named export.
```ts
import { isbot } from "isbot";
```
### [**Version 3**](https://github.com/omrilotan/isbot/releases/tag/v3.0.0)
Remove testing for node 6 and 8
### [**Version 2**](https://github.com/omrilotan/isbot/releases/tag/v2.0.0)
Change return value for isbot: `true` instead of matched string
### [**Version 1**](https://github.com/omrilotan/isbot/releases/tag/v1.0.0)
No functional change
@@ -0,0 +1,253 @@
"use strict";
"use client";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var index_exports = {};
__export(index_exports, {
Branch: () => Branch,
DismissableLayer: () => DismissableLayer,
DismissableLayerBranch: () => DismissableLayerBranch,
Root: () => Root
});
module.exports = __toCommonJS(index_exports);
// src/dismissable-layer.tsx
var React = __toESM(require("react"));
var import_primitive = require("@radix-ui/primitive");
var import_react_primitive = require("@radix-ui/react-primitive");
var import_react_compose_refs = require("@radix-ui/react-compose-refs");
var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
var import_react_use_escape_keydown = require("@radix-ui/react-use-escape-keydown");
var import_jsx_runtime = require("react/jsx-runtime");
var DISMISSABLE_LAYER_NAME = "DismissableLayer";
var CONTEXT_UPDATE = "dismissableLayer.update";
var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
var originalBodyPointerEvents;
var DismissableLayerContext = React.createContext({
layers: /* @__PURE__ */ new Set(),
layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
branches: /* @__PURE__ */ new Set()
});
var DismissableLayer = React.forwardRef(
(props, forwardedRef) => {
const {
disableOutsidePointerEvents = false,
onEscapeKeyDown,
onPointerDownOutside,
onFocusOutside,
onInteractOutside,
onDismiss,
...layerProps
} = props;
const context = React.useContext(DismissableLayerContext);
const [node, setNode] = React.useState(null);
const ownerDocument = node?.ownerDocument ?? globalThis?.document;
const [, force] = React.useState({});
const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, (node2) => setNode(node2));
const layers = Array.from(context.layers);
const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
const index = node ? layers.indexOf(node) : -1;
const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
const pointerDownOutside = usePointerDownOutside((event) => {
const target = event.target;
const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
onPointerDownOutside?.(event);
onInteractOutside?.(event);
if (!event.defaultPrevented) onDismiss?.();
}, ownerDocument);
const focusOutside = useFocusOutside((event) => {
const target = event.target;
const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
if (isFocusInBranch) return;
onFocusOutside?.(event);
onInteractOutside?.(event);
if (!event.defaultPrevented) onDismiss?.();
}, ownerDocument);
(0, import_react_use_escape_keydown.useEscapeKeydown)((event) => {
const isHighestLayer = index === context.layers.size - 1;
if (!isHighestLayer) return;
onEscapeKeyDown?.(event);
if (!event.defaultPrevented && onDismiss) {
event.preventDefault();
onDismiss();
}
}, ownerDocument);
React.useEffect(() => {
if (!node) return;
if (disableOutsidePointerEvents) {
if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
ownerDocument.body.style.pointerEvents = "none";
}
context.layersWithOutsidePointerEventsDisabled.add(node);
}
context.layers.add(node);
dispatchUpdate();
return () => {
if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
}
};
}, [node, ownerDocument, disableOutsidePointerEvents, context]);
React.useEffect(() => {
return () => {
if (!node) return;
context.layers.delete(node);
context.layersWithOutsidePointerEventsDisabled.delete(node);
dispatchUpdate();
};
}, [node, context]);
React.useEffect(() => {
const handleUpdate = () => force({});
document.addEventListener(CONTEXT_UPDATE, handleUpdate);
return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
}, []);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
import_react_primitive.Primitive.div,
{
...layerProps,
ref: composedRefs,
style: {
pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
...props.style
},
onFocusCapture: (0, import_primitive.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),
onBlurCapture: (0, import_primitive.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),
onPointerDownCapture: (0, import_primitive.composeEventHandlers)(
props.onPointerDownCapture,
pointerDownOutside.onPointerDownCapture
)
}
);
}
);
DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
var BRANCH_NAME = "DismissableLayerBranch";
var DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {
const context = React.useContext(DismissableLayerContext);
const ref = React.useRef(null);
const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
React.useEffect(() => {
const node = ref.current;
if (node) {
context.branches.add(node);
return () => {
context.branches.delete(node);
};
}
}, [context.branches]);
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
});
DismissableLayerBranch.displayName = BRANCH_NAME;
function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
const handlePointerDownOutside = (0, import_react_use_callback_ref.useCallbackRef)(onPointerDownOutside);
const isPointerInsideReactTreeRef = React.useRef(false);
const handleClickRef = React.useRef(() => {
});
React.useEffect(() => {
const handlePointerDown = (event) => {
if (event.target && !isPointerInsideReactTreeRef.current) {
let handleAndDispatchPointerDownOutsideEvent2 = function() {
handleAndDispatchCustomEvent(
POINTER_DOWN_OUTSIDE,
handlePointerDownOutside,
eventDetail,
{ discrete: true }
);
};
var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;
const eventDetail = { originalEvent: event };
if (event.pointerType === "touch") {
ownerDocument.removeEventListener("click", handleClickRef.current);
handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
} else {
handleAndDispatchPointerDownOutsideEvent2();
}
} else {
ownerDocument.removeEventListener("click", handleClickRef.current);
}
isPointerInsideReactTreeRef.current = false;
};
const timerId = window.setTimeout(() => {
ownerDocument.addEventListener("pointerdown", handlePointerDown);
}, 0);
return () => {
window.clearTimeout(timerId);
ownerDocument.removeEventListener("pointerdown", handlePointerDown);
ownerDocument.removeEventListener("click", handleClickRef.current);
};
}, [ownerDocument, handlePointerDownOutside]);
return {
// ensures we check React component tree (not just DOM tree)
onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
};
}
function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {
const handleFocusOutside = (0, import_react_use_callback_ref.useCallbackRef)(onFocusOutside);
const isFocusInsideReactTreeRef = React.useRef(false);
React.useEffect(() => {
const handleFocus = (event) => {
if (event.target && !isFocusInsideReactTreeRef.current) {
const eventDetail = { originalEvent: event };
handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
discrete: false
});
}
};
ownerDocument.addEventListener("focusin", handleFocus);
return () => ownerDocument.removeEventListener("focusin", handleFocus);
}, [ownerDocument, handleFocusOutside]);
return {
onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
onBlurCapture: () => isFocusInsideReactTreeRef.current = false
};
}
function dispatchUpdate() {
const event = new CustomEvent(CONTEXT_UPDATE);
document.dispatchEvent(event);
}
function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
const target = detail.originalEvent.target;
const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
if (handler) target.addEventListener(name, handler, { once: true });
if (discrete) {
(0, import_react_primitive.dispatchDiscreteCustomEvent)(target, event);
} else {
target.dispatchEvent(event);
}
}
var Root = DismissableLayer;
var Branch = DismissableLayerBranch;
//# sourceMappingURL=index.js.map
@@ -0,0 +1,332 @@
/**
* @fileoverview Collects the built-in rules into a map structure so that they can be imported all at once and without
* using the file-system directly.
* @author Peter (Somogyvari) Metz
*/
"use strict";
/* eslint sort-keys: ["error", "asc"] -- More readable for long list */
const { LazyLoadingRuleMap } = require("./utils/lazy-loading-rule-map");
/** @type {Map<string, import("../types").Rule.RuleModule>} */
module.exports = new LazyLoadingRuleMap(
Object.entries({
"accessor-pairs": () => require("./accessor-pairs"),
"array-bracket-newline": () => require("./array-bracket-newline"),
"array-bracket-spacing": () => require("./array-bracket-spacing"),
"array-callback-return": () => require("./array-callback-return"),
"array-element-newline": () => require("./array-element-newline"),
"arrow-body-style": () => require("./arrow-body-style"),
"arrow-parens": () => require("./arrow-parens"),
"arrow-spacing": () => require("./arrow-spacing"),
"block-scoped-var": () => require("./block-scoped-var"),
"block-spacing": () => require("./block-spacing"),
"brace-style": () => require("./brace-style"),
"callback-return": () => require("./callback-return"),
camelcase: () => require("./camelcase"),
"capitalized-comments": () => require("./capitalized-comments"),
"class-methods-use-this": () => require("./class-methods-use-this"),
"comma-dangle": () => require("./comma-dangle"),
"comma-spacing": () => require("./comma-spacing"),
"comma-style": () => require("./comma-style"),
complexity: () => require("./complexity"),
"computed-property-spacing": () =>
require("./computed-property-spacing"),
"consistent-return": () => require("./consistent-return"),
"consistent-this": () => require("./consistent-this"),
"constructor-super": () => require("./constructor-super"),
curly: () => require("./curly"),
"default-case": () => require("./default-case"),
"default-case-last": () => require("./default-case-last"),
"default-param-last": () => require("./default-param-last"),
"dot-location": () => require("./dot-location"),
"dot-notation": () => require("./dot-notation"),
"eol-last": () => require("./eol-last"),
eqeqeq: () => require("./eqeqeq"),
"for-direction": () => require("./for-direction"),
"func-call-spacing": () => require("./func-call-spacing"),
"func-name-matching": () => require("./func-name-matching"),
"func-names": () => require("./func-names"),
"func-style": () => require("./func-style"),
"function-call-argument-newline": () =>
require("./function-call-argument-newline"),
"function-paren-newline": () => require("./function-paren-newline"),
"generator-star-spacing": () => require("./generator-star-spacing"),
"getter-return": () => require("./getter-return"),
"global-require": () => require("./global-require"),
"grouped-accessor-pairs": () => require("./grouped-accessor-pairs"),
"guard-for-in": () => require("./guard-for-in"),
"handle-callback-err": () => require("./handle-callback-err"),
"id-blacklist": () => require("./id-blacklist"),
"id-denylist": () => require("./id-denylist"),
"id-length": () => require("./id-length"),
"id-match": () => require("./id-match"),
"implicit-arrow-linebreak": () => require("./implicit-arrow-linebreak"),
indent: () => require("./indent"),
"indent-legacy": () => require("./indent-legacy"),
"init-declarations": () => require("./init-declarations"),
"jsx-quotes": () => require("./jsx-quotes"),
"key-spacing": () => require("./key-spacing"),
"keyword-spacing": () => require("./keyword-spacing"),
"line-comment-position": () => require("./line-comment-position"),
"linebreak-style": () => require("./linebreak-style"),
"lines-around-comment": () => require("./lines-around-comment"),
"lines-around-directive": () => require("./lines-around-directive"),
"lines-between-class-members": () =>
require("./lines-between-class-members"),
"logical-assignment-operators": () =>
require("./logical-assignment-operators"),
"max-classes-per-file": () => require("./max-classes-per-file"),
"max-depth": () => require("./max-depth"),
"max-len": () => require("./max-len"),
"max-lines": () => require("./max-lines"),
"max-lines-per-function": () => require("./max-lines-per-function"),
"max-nested-callbacks": () => require("./max-nested-callbacks"),
"max-params": () => require("./max-params"),
"max-statements": () => require("./max-statements"),
"max-statements-per-line": () => require("./max-statements-per-line"),
"multiline-comment-style": () => require("./multiline-comment-style"),
"multiline-ternary": () => require("./multiline-ternary"),
"new-cap": () => require("./new-cap"),
"new-parens": () => require("./new-parens"),
"newline-after-var": () => require("./newline-after-var"),
"newline-before-return": () => require("./newline-before-return"),
"newline-per-chained-call": () => require("./newline-per-chained-call"),
"no-alert": () => require("./no-alert"),
"no-array-constructor": () => require("./no-array-constructor"),
"no-async-promise-executor": () =>
require("./no-async-promise-executor"),
"no-await-in-loop": () => require("./no-await-in-loop"),
"no-bitwise": () => require("./no-bitwise"),
"no-buffer-constructor": () => require("./no-buffer-constructor"),
"no-caller": () => require("./no-caller"),
"no-case-declarations": () => require("./no-case-declarations"),
"no-catch-shadow": () => require("./no-catch-shadow"),
"no-class-assign": () => require("./no-class-assign"),
"no-compare-neg-zero": () => require("./no-compare-neg-zero"),
"no-cond-assign": () => require("./no-cond-assign"),
"no-confusing-arrow": () => require("./no-confusing-arrow"),
"no-console": () => require("./no-console"),
"no-const-assign": () => require("./no-const-assign"),
"no-constant-binary-expression": () =>
require("./no-constant-binary-expression"),
"no-constant-condition": () => require("./no-constant-condition"),
"no-constructor-return": () => require("./no-constructor-return"),
"no-continue": () => require("./no-continue"),
"no-control-regex": () => require("./no-control-regex"),
"no-debugger": () => require("./no-debugger"),
"no-delete-var": () => require("./no-delete-var"),
"no-div-regex": () => require("./no-div-regex"),
"no-dupe-args": () => require("./no-dupe-args"),
"no-dupe-class-members": () => require("./no-dupe-class-members"),
"no-dupe-else-if": () => require("./no-dupe-else-if"),
"no-dupe-keys": () => require("./no-dupe-keys"),
"no-duplicate-case": () => require("./no-duplicate-case"),
"no-duplicate-imports": () => require("./no-duplicate-imports"),
"no-else-return": () => require("./no-else-return"),
"no-empty": () => require("./no-empty"),
"no-empty-character-class": () => require("./no-empty-character-class"),
"no-empty-function": () => require("./no-empty-function"),
"no-empty-pattern": () => require("./no-empty-pattern"),
"no-empty-static-block": () => require("./no-empty-static-block"),
"no-eq-null": () => require("./no-eq-null"),
"no-eval": () => require("./no-eval"),
"no-ex-assign": () => require("./no-ex-assign"),
"no-extend-native": () => require("./no-extend-native"),
"no-extra-bind": () => require("./no-extra-bind"),
"no-extra-boolean-cast": () => require("./no-extra-boolean-cast"),
"no-extra-label": () => require("./no-extra-label"),
"no-extra-parens": () => require("./no-extra-parens"),
"no-extra-semi": () => require("./no-extra-semi"),
"no-fallthrough": () => require("./no-fallthrough"),
"no-floating-decimal": () => require("./no-floating-decimal"),
"no-func-assign": () => require("./no-func-assign"),
"no-global-assign": () => require("./no-global-assign"),
"no-implicit-coercion": () => require("./no-implicit-coercion"),
"no-implicit-globals": () => require("./no-implicit-globals"),
"no-implied-eval": () => require("./no-implied-eval"),
"no-import-assign": () => require("./no-import-assign"),
"no-inline-comments": () => require("./no-inline-comments"),
"no-inner-declarations": () => require("./no-inner-declarations"),
"no-invalid-regexp": () => require("./no-invalid-regexp"),
"no-invalid-this": () => require("./no-invalid-this"),
"no-irregular-whitespace": () => require("./no-irregular-whitespace"),
"no-iterator": () => require("./no-iterator"),
"no-label-var": () => require("./no-label-var"),
"no-labels": () => require("./no-labels"),
"no-lone-blocks": () => require("./no-lone-blocks"),
"no-lonely-if": () => require("./no-lonely-if"),
"no-loop-func": () => require("./no-loop-func"),
"no-loss-of-precision": () => require("./no-loss-of-precision"),
"no-magic-numbers": () => require("./no-magic-numbers"),
"no-misleading-character-class": () =>
require("./no-misleading-character-class"),
"no-mixed-operators": () => require("./no-mixed-operators"),
"no-mixed-requires": () => require("./no-mixed-requires"),
"no-mixed-spaces-and-tabs": () => require("./no-mixed-spaces-and-tabs"),
"no-multi-assign": () => require("./no-multi-assign"),
"no-multi-spaces": () => require("./no-multi-spaces"),
"no-multi-str": () => require("./no-multi-str"),
"no-multiple-empty-lines": () => require("./no-multiple-empty-lines"),
"no-native-reassign": () => require("./no-native-reassign"),
"no-negated-condition": () => require("./no-negated-condition"),
"no-negated-in-lhs": () => require("./no-negated-in-lhs"),
"no-nested-ternary": () => require("./no-nested-ternary"),
"no-new": () => require("./no-new"),
"no-new-func": () => require("./no-new-func"),
"no-new-native-nonconstructor": () =>
require("./no-new-native-nonconstructor"),
"no-new-object": () => require("./no-new-object"),
"no-new-require": () => require("./no-new-require"),
"no-new-symbol": () => require("./no-new-symbol"),
"no-new-wrappers": () => require("./no-new-wrappers"),
"no-nonoctal-decimal-escape": () =>
require("./no-nonoctal-decimal-escape"),
"no-obj-calls": () => require("./no-obj-calls"),
"no-object-constructor": () => require("./no-object-constructor"),
"no-octal": () => require("./no-octal"),
"no-octal-escape": () => require("./no-octal-escape"),
"no-param-reassign": () => require("./no-param-reassign"),
"no-path-concat": () => require("./no-path-concat"),
"no-plusplus": () => require("./no-plusplus"),
"no-process-env": () => require("./no-process-env"),
"no-process-exit": () => require("./no-process-exit"),
"no-promise-executor-return": () =>
require("./no-promise-executor-return"),
"no-proto": () => require("./no-proto"),
"no-prototype-builtins": () => require("./no-prototype-builtins"),
"no-redeclare": () => require("./no-redeclare"),
"no-regex-spaces": () => require("./no-regex-spaces"),
"no-restricted-exports": () => require("./no-restricted-exports"),
"no-restricted-globals": () => require("./no-restricted-globals"),
"no-restricted-imports": () => require("./no-restricted-imports"),
"no-restricted-modules": () => require("./no-restricted-modules"),
"no-restricted-properties": () => require("./no-restricted-properties"),
"no-restricted-syntax": () => require("./no-restricted-syntax"),
"no-return-assign": () => require("./no-return-assign"),
"no-return-await": () => require("./no-return-await"),
"no-script-url": () => require("./no-script-url"),
"no-self-assign": () => require("./no-self-assign"),
"no-self-compare": () => require("./no-self-compare"),
"no-sequences": () => require("./no-sequences"),
"no-setter-return": () => require("./no-setter-return"),
"no-shadow": () => require("./no-shadow"),
"no-shadow-restricted-names": () =>
require("./no-shadow-restricted-names"),
"no-spaced-func": () => require("./no-spaced-func"),
"no-sparse-arrays": () => require("./no-sparse-arrays"),
"no-sync": () => require("./no-sync"),
"no-tabs": () => require("./no-tabs"),
"no-template-curly-in-string": () =>
require("./no-template-curly-in-string"),
"no-ternary": () => require("./no-ternary"),
"no-this-before-super": () => require("./no-this-before-super"),
"no-throw-literal": () => require("./no-throw-literal"),
"no-trailing-spaces": () => require("./no-trailing-spaces"),
"no-unassigned-vars": () => require("./no-unassigned-vars"),
"no-undef": () => require("./no-undef"),
"no-undef-init": () => require("./no-undef-init"),
"no-undefined": () => require("./no-undefined"),
"no-underscore-dangle": () => require("./no-underscore-dangle"),
"no-unexpected-multiline": () => require("./no-unexpected-multiline"),
"no-unmodified-loop-condition": () =>
require("./no-unmodified-loop-condition"),
"no-unneeded-ternary": () => require("./no-unneeded-ternary"),
"no-unreachable": () => require("./no-unreachable"),
"no-unreachable-loop": () => require("./no-unreachable-loop"),
"no-unsafe-finally": () => require("./no-unsafe-finally"),
"no-unsafe-negation": () => require("./no-unsafe-negation"),
"no-unsafe-optional-chaining": () =>
require("./no-unsafe-optional-chaining"),
"no-unused-expressions": () => require("./no-unused-expressions"),
"no-unused-labels": () => require("./no-unused-labels"),
"no-unused-private-class-members": () =>
require("./no-unused-private-class-members"),
"no-unused-vars": () => require("./no-unused-vars"),
"no-use-before-define": () => require("./no-use-before-define"),
"no-useless-assignment": () => require("./no-useless-assignment"),
"no-useless-backreference": () => require("./no-useless-backreference"),
"no-useless-call": () => require("./no-useless-call"),
"no-useless-catch": () => require("./no-useless-catch"),
"no-useless-computed-key": () => require("./no-useless-computed-key"),
"no-useless-concat": () => require("./no-useless-concat"),
"no-useless-constructor": () => require("./no-useless-constructor"),
"no-useless-escape": () => require("./no-useless-escape"),
"no-useless-rename": () => require("./no-useless-rename"),
"no-useless-return": () => require("./no-useless-return"),
"no-var": () => require("./no-var"),
"no-void": () => require("./no-void"),
"no-warning-comments": () => require("./no-warning-comments"),
"no-whitespace-before-property": () =>
require("./no-whitespace-before-property"),
"no-with": () => require("./no-with"),
"nonblock-statement-body-position": () =>
require("./nonblock-statement-body-position"),
"object-curly-newline": () => require("./object-curly-newline"),
"object-curly-spacing": () => require("./object-curly-spacing"),
"object-property-newline": () => require("./object-property-newline"),
"object-shorthand": () => require("./object-shorthand"),
"one-var": () => require("./one-var"),
"one-var-declaration-per-line": () =>
require("./one-var-declaration-per-line"),
"operator-assignment": () => require("./operator-assignment"),
"operator-linebreak": () => require("./operator-linebreak"),
"padded-blocks": () => require("./padded-blocks"),
"padding-line-between-statements": () =>
require("./padding-line-between-statements"),
"prefer-arrow-callback": () => require("./prefer-arrow-callback"),
"prefer-const": () => require("./prefer-const"),
"prefer-destructuring": () => require("./prefer-destructuring"),
"prefer-exponentiation-operator": () =>
require("./prefer-exponentiation-operator"),
"prefer-named-capture-group": () =>
require("./prefer-named-capture-group"),
"prefer-numeric-literals": () => require("./prefer-numeric-literals"),
"prefer-object-has-own": () => require("./prefer-object-has-own"),
"prefer-object-spread": () => require("./prefer-object-spread"),
"prefer-promise-reject-errors": () =>
require("./prefer-promise-reject-errors"),
"prefer-reflect": () => require("./prefer-reflect"),
"prefer-regex-literals": () => require("./prefer-regex-literals"),
"prefer-rest-params": () => require("./prefer-rest-params"),
"prefer-spread": () => require("./prefer-spread"),
"prefer-template": () => require("./prefer-template"),
"preserve-caught-error": () => require("./preserve-caught-error"),
"quote-props": () => require("./quote-props"),
quotes: () => require("./quotes"),
radix: () => require("./radix"),
"require-atomic-updates": () => require("./require-atomic-updates"),
"require-await": () => require("./require-await"),
"require-unicode-regexp": () => require("./require-unicode-regexp"),
"require-yield": () => require("./require-yield"),
"rest-spread-spacing": () => require("./rest-spread-spacing"),
semi: () => require("./semi"),
"semi-spacing": () => require("./semi-spacing"),
"semi-style": () => require("./semi-style"),
"sort-imports": () => require("./sort-imports"),
"sort-keys": () => require("./sort-keys"),
"sort-vars": () => require("./sort-vars"),
"space-before-blocks": () => require("./space-before-blocks"),
"space-before-function-paren": () =>
require("./space-before-function-paren"),
"space-in-parens": () => require("./space-in-parens"),
"space-infix-ops": () => require("./space-infix-ops"),
"space-unary-ops": () => require("./space-unary-ops"),
"spaced-comment": () => require("./spaced-comment"),
strict: () => require("./strict"),
"switch-colon-spacing": () => require("./switch-colon-spacing"),
"symbol-description": () => require("./symbol-description"),
"template-curly-spacing": () => require("./template-curly-spacing"),
"template-tag-spacing": () => require("./template-tag-spacing"),
"unicode-bom": () => require("./unicode-bom"),
"use-isnan": () => require("./use-isnan"),
"valid-typeof": () => require("./valid-typeof"),
"vars-on-top": () => require("./vars-on-top"),
"wrap-iife": () => require("./wrap-iife"),
"wrap-regex": () => require("./wrap-regex"),
"yield-star-spacing": () => require("./yield-star-spacing"),
yoda: () => require("./yoda"),
}),
);
@@ -0,0 +1,105 @@
"use strict";
const Level = require("./Level.js");
const Logger = require("./Logger.js");
const normalizeLevel = require("./normalizeLevel.js");
class LogFactory {
/**
* Constructor (构造函数)
* @param config Configuration options (配置选项)
*/
constructor(config) {
this.loggers = /* @__PURE__ */ new Map();
this.LoggerClass = Logger;
this.defaultLevel = Level.INFO;
this.appenders = [];
this.configure(config);
}
/**
* Get the default log level (获取或设置默认日志级别)
*/
get level() {
return this.defaultLevel;
}
/**
* Get the default log level name (获取或设置默认日志级别名称)
*/
get levelName() {
return Level[this.defaultLevel];
}
/**
* Update the default log level (更新默认日志级别)
* @param level Log level (日志级别)
* @param updateCachedLoggers Whether to update the cached loggers (是否更新缓存的日志器)
* @returns Update level success if true (如果为 true 表示更新成功)
*/
updateLevel(level, updateCachedLoggers) {
const normalizedLevel = normalizeLevel(level);
const isValidLevel = normalizedLevel !== void 0;
if (isValidLevel) {
this.defaultLevel = normalizedLevel;
if (updateCachedLoggers !== false) {
this.loggers.forEach((logger) => {
logger.level = normalizedLevel;
});
}
}
return isValidLevel;
}
/**
* Configure the log factory (配置日志工厂)
* @param param Configuration options (配置选项)
*/
configure({
LoggerClass,
level,
appenders
} = {}) {
if (LoggerClass) {
this.LoggerClass = LoggerClass;
}
if (level) {
this.updateLevel(level, false);
}
if (appenders) {
this.appenders = appenders;
}
}
/**
* Get a logger instance (获取日志实例)
* @param name Logger name (日志名称)
*/
getLogger(name) {
let logger = this.loggers.get(name);
if (!logger) {
const { LoggerClass } = this;
logger = new LoggerClass(name, {
level: this.defaultLevel,
appenders: this.appenders
});
this.loggers.set(name, logger);
}
return logger;
}
/**
* Clear the logger cache (清除日志缓存)
* @param name Logger name (日志名称)
*/
clear(name) {
if (name) {
this.loggers.delete(name);
} else {
this.loggers.clear();
}
}
/**
* Dispose the log factory (销毁日志工厂)
*/
dispose() {
const promises = [];
this.loggers.forEach((logger) => {
promises.push(logger.dispose());
});
return Promise.allSettled(promises);
}
}
module.exports = LogFactory;
@@ -0,0 +1,50 @@
import * as zod from 'zod/v3';
interface ErrorOptions {
cause?: unknown;
}
declare class ValidationError extends Error {
name: 'ZodValidationError';
details: Array<zod.ZodIssue>;
constructor(message?: string, options?: ErrorOptions);
toString(): string;
}
declare function isValidationError(err: unknown): err is ValidationError;
declare function isValidationErrorLike(err: unknown): err is ValidationError;
declare function isZodErrorLike(err: unknown): err is zod.ZodError;
declare const errorMap: zod.ZodErrorMap;
type NonEmptyArray<T> = [T, ...T[]];
type ZodIssue = zod.ZodIssue;
type MessageBuilder = (issues: NonEmptyArray<ZodIssue>) => string;
type CreateMessageBuilderProps = {
issueSeparator?: string;
unionSeparator?: string;
prefix?: string | null;
prefixSeparator?: string;
includePath?: boolean;
maxIssuesInMessage?: number;
};
declare function createMessageBuilder(props?: CreateMessageBuilderProps): MessageBuilder;
type ZodError = zod.ZodError;
type FromZodErrorOptions = {
messageBuilder: MessageBuilder;
} | CreateMessageBuilderProps;
declare function fromZodError(zodError: ZodError, options?: FromZodErrorOptions): ValidationError;
declare function fromError(err: unknown, options?: FromZodErrorOptions): ValidationError;
type FromZodIssueOptions = {
messageBuilder: MessageBuilder;
} | Omit<CreateMessageBuilderProps, 'maxIssuesInMessage'>;
declare function fromZodIssue(issue: ZodIssue, options?: FromZodIssueOptions): ValidationError;
declare const toValidationError: (options?: FromZodErrorOptions) => (err: unknown) => ValidationError;
export { type ErrorOptions, type FromZodErrorOptions, type FromZodIssueOptions, type MessageBuilder, type NonEmptyArray, ValidationError, type ZodError, type ZodIssue, createMessageBuilder, errorMap, fromError, fromZodError, fromZodIssue, isValidationError, isValidationErrorLike, isZodErrorLike, toValidationError };
@@ -0,0 +1,23 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const BellDot = createLucideIcon("BellDot", [
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
[
"path",
{
d: "M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665",
key: "1tip0g"
}
],
["circle", { cx: "18", cy: "8", r: "3", key: "1g0gzu" }]
]);
export { BellDot as default };
//# sourceMappingURL=bell-dot.js.map
@@ -0,0 +1 @@
{"version":3,"file":"traversal.js","sourceRoot":"https://raw.githubusercontent.com/fb55/domutils/0ab8bcf1ecfc70dfc93291a4cb2496578ac25e9c/src/","sources":["traversal.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAKL,WAAW,GACd,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACrC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAGD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa;IACnC,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC1B,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC7B,IAAa,EACb,IAAY;;IAEZ,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,IAAY;IACjD,OAAO,CACH,IAAI,CAAC,OAAO,IAAI,IAAI;QACpB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAC7B,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,IAAa;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC5C,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACpB,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC5C,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACpB,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,80 @@
## Threat Model for qs (querystring parsing library)
### 1. Library Overview
- **Library Name:** qs
- **Brief Description:** A JavaScript library for parsing and stringifying URL query strings, supporting nested objects and arrays. It is widely used in Node.js and web applications for processing query parameters[2][6][8].
- **Key Public APIs/Functions:** `qs.parse()`, `qs.stringify()`
### 2. Define Scope
This threat model focuses on the core parsing and stringifying functionality, specifically the handling of nested objects and arrays, option validation, and cycle management in stringification.
### 3. Conceptual System Diagram
```
Caller Application → qs.parse(input, options) → Parsing Engine → Output Object
│
└→ Options Handling
Caller Application → qs.stringify(obj, options) → Stringifying Engine → Output String
│
└→ Options Handling
└→ Cycle Tracking
```
**Trust Boundaries:**
- **Input string (parse):** May come from untrusted sources (e.g., user input, network requests). `qs` defines its own key grammar, where bracket groups denote nesting, so the parameter names it derives are deliberately not the flat names produced by `URLSearchParams`, `node:querystring`, or a WHATWG-conformant parser. The parsed object, not the raw string, is the only thing a caller should make trust decisions about; see "Interpretation conflict" below.
- **Input object (stringify):** The calling application's own data, not a direct untrusted channel. May contain cycles (handled by the cycle detector). Deeply-nested non-cyclic input surfaces as a catchable synchronous `RangeError` (stack overflow), not unbounded resource consumption; callers that serialize externally-influenced objects should bound their depth/size beforehand.
- **Options:** Provided by the caller
- **Cycle Tracking:** Used only during stringification to detect and handle circular references
### 4. Identify Assets
- **Integrity of parsed output:** Prevent malicious manipulation of the output object structure, especially ensuring builtins/globals are not modified as a result of parse[3][4][8].
- **Confidentiality of processed data:** Avoid leaking sensitive information through errors or output.
- **Availability/performance for host application:** Prevent crashes or resource exhaustion in the consuming application.
- **Security of host application:** Prevent the library from being a vector for attacks (e.g., prototype pollution, DoS).
- **Reputation of library:** Maintain trust by avoiding supply chain attacks and vulnerabilities[1].
### 5. Identify Threats
| Component / API / Interaction | S | T | R | I | D | E |
|---------------------------------------|----|----|----|----|----|----|
| Public API Call (`parse`) | – | ✓ | – | ✓ | ✓ | ✓ |
| Public API Call (`stringify`) | – | ✓ | – | ✓ | ✓ | – |
| Options Handling | ✓ | ✓ | – | ✓ | – | ✓ |
| Dependency Interaction | – | – | – | – | ✓ | – |
**Key Threats:**
- **Tampering:** Malicious input can, if not prevented, alter parsed output (e.g., prototype pollution via `__proto__`, modification of builtins/globals)[3][4][8].
- **Information Disclosure:** Error messages may expose internal details or sensitive data.
- **Denial of Service:** Large or malformed input can exhaust memory or CPU.
- **Elevation of Privilege:** Prototype pollution can lead to unintended privilege escalation in the host application[3][4][8].
- **Interpretation conflict (out of scope):** An application that parses the same query string with two different parsers, and makes a trust decision on one result while consuming the other, can be attacked by any input the two parsers read differently. `qs`'s bracket grammar guarantees such inputs exist, so this is a property of the deployment, not a defect `qs` can remove. It is the calling application's responsibility to parse once and validate the parsed object.
### 6. Mitigation/Countermeasures
| Threat Identified | Proposed Mitigation |
|---------------------------------------------------|---------------------|
| Tampering (malicious input, prototype pollution) | Strict input validation; keep `allowPrototypes: false` by default; use `plainObjects` for output; ensure builtins/globals are never modified by parse[4][8]. |
| Information Disclosure (error messages) | Generic error messages without stack traces or internal paths. |
| Denial of Service (memory/CPU exhaustion) | `arrayLimit`, `parameterLimit`, and depth limiting apply with safe defaults. Note that `arrayLimit` is a representation threshold (array vs. object), and `parameterLimit` bounds only the number of `&`-delimited parameters - neither caps the elements produced by `comma: true` splitting. For hard caps on the number of parameters and on each array's length, opt in to `throwOnLimitExceeded: true` (default `false`), which rejects a query string with more than `parameterLimit` parameters, or one that would produce any array longer than `arrayLimit`. `arrayLimit` applies to each array separately, including each parameter's comma-split value, so the total number of values can still reach `parameterLimit` times `arrayLimit`; always bound input size at the transport layer as well[7]. On the `stringify` side, the input is the caller's own object rather than an untrusted string, so unbounded nesting manifests as a catchable `RangeError` (stack overflow) rather than exhaustion; callers serializing externally-influenced objects should bound depth/size beforehand, and may opt into `stringify`'s `depth` option (default `Infinity`) for a deterministic, catchable error. |
| Elevation of Privilege (prototype pollution) | Keep `allowPrototypes: false`; validate options against allowlist; use `plainObjects` to avoid prototype pollution[4][8]. |
| Interpretation conflict (validate-then-use across two parsers) | None available inside `qs`, by construction: `qs` and a flat parser disagree about parameter names for well-formed input, so no hardening can make the two views equal. Parse untrusted input once, with `qs`, and apply deny lists, authorization, and signature checks to the parsed object rather than to raw key text. Text that `qs` cannot place in its grammar is currently dropped, so distinct raw names can share one parsed path ([#619](https://github.com/ljharb/qs/issues/619)). |
### 7. Risk Ranking
- **High:** Denial of Service via array parsing or malformed input (historical vulnerability)
- **Medium:** Prototype pollution via options or input (if `allowPrototypes` enabled)
- **Low:** Information disclosure in errors
### 8. Next Steps & Review
1. **Audit option validation logic.**
2. **Depth limiting:** `parse` enforces a `depth` bound by default (with `strictDepth` to throw); `stringify` offers an opt-in `depth` bound (default `Infinity`, since its input is caller-produced) for defense-in-depth.
3. **Implement fuzz testing for parser and stringifier edge cases.**
4. **Regularly review dependencies for vulnerabilities.**
5. **Keep documentation and threat model up to date.**
6. **Ensure builtins/globals are never modified as a result of parse.**
7. **Support round-trip consistency between parse and stringify as a non-security goal, with the right options[5][9].**
@@ -0,0 +1,400 @@
/**
* @fileoverview This rule should require or disallow spaces before or after unary operations.
* @author Marcin Kumorek
* @deprecated in ESLint v8.53.0
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const astUtils = require("./utils/ast-utils");
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
/** @type {import('../types').Rule.RuleModule} */
module.exports = {
meta: {
deprecated: {
message: "Formatting rules are being moved out of ESLint core.",
url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
deprecatedSince: "8.53.0",
availableUntil: "11.0.0",
replacedBy: [
{
message:
"ESLint Stylistic now maintains deprecated stylistic core rules.",
url: "https://eslint.style/guide/migration",
plugin: {
name: "@stylistic/eslint-plugin",
url: "https://eslint.style",
},
rule: {
name: "space-unary-ops",
url: "https://eslint.style/rules/space-unary-ops",
},
},
],
},
type: "layout",
docs: {
description:
"Enforce consistent spacing before or after unary operators",
recommended: false,
url: "https://eslint.org/docs/latest/rules/space-unary-ops",
},
fixable: "whitespace",
schema: [
{
type: "object",
properties: {
words: {
type: "boolean",
default: true,
},
nonwords: {
type: "boolean",
default: false,
},
overrides: {
type: "object",
additionalProperties: {
type: "boolean",
},
},
},
additionalProperties: false,
},
],
messages: {
unexpectedBefore:
"Unexpected space before unary operator '{{operator}}'.",
unexpectedAfter:
"Unexpected space after unary operator '{{operator}}'.",
unexpectedAfterWord:
"Unexpected space after unary word operator '{{word}}'.",
wordOperator:
"Unary word operator '{{word}}' must be followed by whitespace.",
operator:
"Unary operator '{{operator}}' must be followed by whitespace.",
beforeUnaryExpressions:
"Space is required before unary expressions '{{token}}'.",
},
},
create(context) {
const options = context.options[0] || { words: true, nonwords: false };
const sourceCode = context.sourceCode;
//--------------------------------------------------------------------------
// Helpers
//--------------------------------------------------------------------------
/**
* Check if the node is the first "!" in a "!!" convert to Boolean expression
* @param {ASTnode} node AST node
* @returns {boolean} Whether or not the node is first "!" in "!!"
*/
function isFirstBangInBangBangExpression(node) {
return (
node &&
node.type === "UnaryExpression" &&
node.argument.operator === "!" &&
node.argument &&
node.argument.type === "UnaryExpression" &&
node.argument.operator === "!"
);
}
/**
* Checks if an override exists for a given operator.
* @param {string} operator Operator
* @returns {boolean} Whether or not an override has been provided for the operator
*/
function overrideExistsForOperator(operator) {
return (
options.overrides && Object.hasOwn(options.overrides, operator)
);
}
/**
* Gets the value that the override was set to for this operator
* @param {string} operator Operator
* @returns {boolean} Whether or not an override enforces a space with this operator
*/
function overrideEnforcesSpaces(operator) {
return options.overrides[operator];
}
/**
* Verify Unary Word Operator has spaces after the word operator
* @param {ASTnode} node AST node
* @param {Object} firstToken first token from the AST node
* @param {Object} secondToken second token from the AST node
* @param {string} word The word to be used for reporting
* @returns {void}
*/
function verifyWordHasSpaces(node, firstToken, secondToken, word) {
if (secondToken.range[0] === firstToken.range[1]) {
context.report({
node,
messageId: "wordOperator",
data: {
word,
},
fix(fixer) {
return fixer.insertTextAfter(firstToken, " ");
},
});
}
}
/**
* Verify Unary Word Operator doesn't have spaces after the word operator
* @param {ASTnode} node AST node
* @param {Object} firstToken first token from the AST node
* @param {Object} secondToken second token from the AST node
* @param {string} word The word to be used for reporting
* @returns {void}
*/
function verifyWordDoesntHaveSpaces(
node,
firstToken,
secondToken,
word,
) {
if (astUtils.canTokensBeAdjacent(firstToken, secondToken)) {
if (secondToken.range[0] > firstToken.range[1]) {
context.report({
node,
messageId: "unexpectedAfterWord",
data: {
word,
},
fix(fixer) {
return fixer.removeRange([
firstToken.range[1],
secondToken.range[0],
]);
},
});
}
}
}
/**
* Check Unary Word Operators for spaces after the word operator
* @param {ASTnode} node AST node
* @param {Object} firstToken first token from the AST node
* @param {Object} secondToken second token from the AST node
* @param {string} word The word to be used for reporting
* @returns {void}
*/
function checkUnaryWordOperatorForSpaces(
node,
firstToken,
secondToken,
word,
) {
if (overrideExistsForOperator(word)) {
if (overrideEnforcesSpaces(word)) {
verifyWordHasSpaces(node, firstToken, secondToken, word);
} else {
verifyWordDoesntHaveSpaces(
node,
firstToken,
secondToken,
word,
);
}
} else if (options.words) {
verifyWordHasSpaces(node, firstToken, secondToken, word);
} else {
verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word);
}
}
/**
* Verifies YieldExpressions satisfy spacing requirements
* @param {ASTnode} node AST node
* @returns {void}
*/
function checkForSpacesAfterYield(node) {
const tokens = sourceCode.getFirstTokens(node, 3),
word = "yield";
if (!node.argument || node.delegate) {
return;
}
checkUnaryWordOperatorForSpaces(node, tokens[0], tokens[1], word);
}
/**
* Verifies AwaitExpressions satisfy spacing requirements
* @param {ASTNode} node AwaitExpression AST node
* @returns {void}
*/
function checkForSpacesAfterAwait(node) {
const tokens = sourceCode.getFirstTokens(node, 3);
checkUnaryWordOperatorForSpaces(
node,
tokens[0],
tokens[1],
"await",
);
}
/**
* Verifies UnaryExpression, UpdateExpression and NewExpression have spaces before or after the operator
* @param {ASTnode} node AST node
* @param {Object} firstToken First token in the expression
* @param {Object} secondToken Second token in the expression
* @returns {void}
*/
function verifyNonWordsHaveSpaces(node, firstToken, secondToken) {
if (node.prefix) {
if (isFirstBangInBangBangExpression(node)) {
return;
}
if (firstToken.range[1] === secondToken.range[0]) {
context.report({
node,
messageId: "operator",
data: {
operator: firstToken.value,
},
fix(fixer) {
return fixer.insertTextAfter(firstToken, " ");
},
});
}
} else {
if (firstToken.range[1] === secondToken.range[0]) {
context.report({
node,
messageId: "beforeUnaryExpressions",
data: {
token: secondToken.value,
},
fix(fixer) {
return fixer.insertTextBefore(secondToken, " ");
},
});
}
}
}
/**
* Verifies UnaryExpression, UpdateExpression and NewExpression don't have spaces before or after the operator
* @param {ASTnode} node AST node
* @param {Object} firstToken First token in the expression
* @param {Object} secondToken Second token in the expression
* @returns {void}
*/
function verifyNonWordsDontHaveSpaces(node, firstToken, secondToken) {
if (node.prefix) {
if (secondToken.range[0] > firstToken.range[1]) {
context.report({
node,
messageId: "unexpectedAfter",
data: {
operator: firstToken.value,
},
fix(fixer) {
if (
astUtils.canTokensBeAdjacent(
firstToken,
secondToken,
)
) {
return fixer.removeRange([
firstToken.range[1],
secondToken.range[0],
]);
}
return null;
},
});
}
} else {
if (secondToken.range[0] > firstToken.range[1]) {
context.report({
node,
messageId: "unexpectedBefore",
data: {
operator: secondToken.value,
},
fix(fixer) {
return fixer.removeRange([
firstToken.range[1],
secondToken.range[0],
]);
},
});
}
}
}
/**
* Verifies UnaryExpression, UpdateExpression and NewExpression satisfy spacing requirements
* @param {ASTnode} node AST node
* @returns {void}
*/
function checkForSpaces(node) {
const tokens =
node.type === "UpdateExpression" && !node.prefix
? sourceCode.getLastTokens(node, 2)
: sourceCode.getFirstTokens(node, 2);
const firstToken = tokens[0];
const secondToken = tokens[1];
if (
(node.type === "NewExpression" || node.prefix) &&
firstToken.type === "Keyword"
) {
checkUnaryWordOperatorForSpaces(
node,
firstToken,
secondToken,
firstToken.value,
);
return;
}
const operator = node.prefix ? tokens[0].value : tokens[1].value;
if (overrideExistsForOperator(operator)) {
if (overrideEnforcesSpaces(operator)) {
verifyNonWordsHaveSpaces(node, firstToken, secondToken);
} else {
verifyNonWordsDontHaveSpaces(node, firstToken, secondToken);
}
} else if (options.nonwords) {
verifyNonWordsHaveSpaces(node, firstToken, secondToken);
} else {
verifyNonWordsDontHaveSpaces(node, firstToken, secondToken);
}
}
//--------------------------------------------------------------------------
// Public
//--------------------------------------------------------------------------
return {
UnaryExpression: checkForSpaces,
UpdateExpression: checkForSpaces,
NewExpression: checkForSpaces,
YieldExpression: checkForSpacesAfterYield,
AwaitExpression: checkForSpacesAfterAwait,
};
},
};
@@ -0,0 +1 @@
{"version":3,"file":"arrow-down-narrow-wide.js","sources":["../../../src/icons/arrow-down-narrow-wide.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowDownNarrowWide\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTExIDRoNCIgLz4KICA8cGF0aCBkPSJNMTEgOGg3IiAvPgogIDxwYXRoIGQ9Ik0xMSAxMmgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-narrow-wide\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowDownNarrowWide = createLucideIcon('ArrowDownNarrowWide', [\n ['path', { d: 'm3 16 4 4 4-4', key: '1co6wj' }],\n ['path', { d: 'M7 20V4', key: '1yoxec' }],\n ['path', { d: 'M11 4h4', key: '6d7r33' }],\n ['path', { d: 'M11 8h7', key: 'djye34' }],\n ['path', { d: 'M11 12h10', key: '1438ji' }],\n]);\n\nexport default ArrowDownNarrowWide;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,iBAAiB,qBAAuB,CAAA,CAAA,CAAA;AAAA,CAAA,CAClE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC9C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC5C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1 @@
{"version":3,"file":"reverse.mjs","sources":["../../../../src/easing/modifiers/reverse.ts"],"sourcesContent":["// Accepts an easing function and returns a new one that outputs reversed values.\n\nimport { EasingModifier } from \"../types\"\n\n// Turns easeIn into easeOut.\nexport const reverseEasing: EasingModifier = (easing) => (p) =>\n 1 - easing(1 - p)\n"],"names":[],"mappings":"AAAA;AAIA;MACa,aAAa,GAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,KACvD,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC;;;;"}
@@ -0,0 +1,24 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const SprayCan = createLucideIcon("SprayCan", [
["path", { d: "M3 3h.01", key: "159qn6" }],
["path", { d: "M7 5h.01", key: "1hq22a" }],
["path", { d: "M11 7h.01", key: "1osv80" }],
["path", { d: "M3 7h.01", key: "1xzrh3" }],
["path", { d: "M7 9h.01", key: "19b3jx" }],
["path", { d: "M3 11h.01", key: "1eifu7" }],
["rect", { width: "4", height: "4", x: "15", y: "5", key: "mri9e4" }],
["path", { d: "m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2", key: "aib6hk" }],
["path", { d: "m13 14 8-2", key: "1d7bmk" }],
["path", { d: "m13 19 8-2", key: "1y2vml" }]
]);
export { SprayCan as default };
//# sourceMappingURL=spray-can.js.map
@@ -0,0 +1 @@
{"version":3,"file":"info.js","sources":["../../../src/icons/info.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Info = createLucideIcon('Info', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n]);\n\nexport default Info;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,iBAAiB,MAAQ,CAAA,CAAA,CAAA;AAAA,CACpC,CAAA,CAAC,QAAU,CAAA,CAAA,CAAA,CAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAI,CAAA,CAAA,CAAA,IAAA,CAAM,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA;AAAA,CAAA,CACzD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC5C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,18 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const ChartGantt = createLucideIcon("ChartGantt", [
["path", { d: "M10 6h8", key: "zvc2xc" }],
["path", { d: "M12 16h6", key: "yi5mkt" }],
["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
["path", { d: "M8 11h7", key: "wz2hg0" }]
]);
export { ChartGantt as default };
//# sourceMappingURL=chart-gantt.js.map
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,MAAM,aAAa,CAAC;AASlE,wCAAwC;AACxC,oBAAY,WAAW;IACnB,iCAAiC;IACjC,GAAG,IAAI;IACP,mEAAmE;IACnE,IAAI,IAAI;CACX;AAED,oBAAY,YAAY;IACpB;;;OAGG;IACH,IAAI,IAAA;IACJ;;;;OAIG;IACH,KAAK,IAAA;IACL;;;OAGG;IACH,SAAS,IAAA;IACT;;;OAGG;IACH,SAAS,IAAA;IACT;;;OAGG;IACH,IAAI,IAAA;CACP;AAED,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CAMR;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CA2BR;AAED,OAAO,EACH,SAAS,EACT,MAAM,EACN,UAAU,EACV,eAAe,EACf,UAAU,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,UAAU,EACV,kBAAkB,EAElB,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EAEnB,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,gBAAgB,IAAI,iBAAiB,EACrC,gBAAgB,IAAI,iBAAiB,EACrC,SAAS,IAAI,eAAe,GAC/B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
export { default } from './tram-front.js';
//# sourceMappingURL=train.js.map
@@ -0,0 +1 @@
{"version":3,"file":"badge-swiss-franc.js","sources":["../../../src/icons/badge-swiss-franc.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name BadgeSwissFranc\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTExIDE3VjhoNCIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMyIgLz4KICA8cGF0aCBkPSJNOSAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-swiss-franc\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BadgeSwissFranc = createLucideIcon('BadgeSwissFranc', [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n key: '3c2336',\n },\n ],\n ['path', { d: 'M11 17V8h4', key: '1bfq6y' }],\n ['path', { d: 'M11 12h3', key: '2eqnfz' }],\n ['path', { d: 'M9 16h4', key: '1skf3a' }],\n]);\n\nexport default BadgeSwissFranc;\n"],"names":[],"mappings":";;;;;;;;;AAaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,iBAAiB,iBAAmB,CAAA,CAAA,CAAA;AAAA,CAC1D,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CACP,CAAA,CAAA,CAAA,CAAA;AAAA,CACF,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CAC3C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA;AAAA,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAE,GAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA;AAC1C,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,34 @@
// warning: extremely hot code path.
// This has been meticulously optimized for use
// within npm install on large package trees.
// Do not edit without careful benchmarking.
const normalizeCache = Object.create(null);
// Limit the size of this. Very low-sophistication LRU cache
const MAX = 10000;
const cache = new Set();
export const normalizeUnicode = (s) => {
if (!cache.has(s)) {
// shake out identical accents and ligatures
normalizeCache[s] = s
.normalize('NFD')
.toLocaleLowerCase('en')
.toLocaleUpperCase('en');
}
else {
cache.delete(s);
}
cache.add(s);
const ret = normalizeCache[s];
let i = cache.size - MAX;
// only prune when we're 10% over the max
if (i > MAX / 10) {
for (const s of cache) {
cache.delete(s);
delete normalizeCache[s];
if (--i <= 0)
break;
}
}
return ret;
};
//# sourceMappingURL=normalize-unicode.js.map
@@ -0,0 +1,16 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const RotateCcw = createLucideIcon("RotateCcw", [
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
["path", { d: "M3 3v5h5", key: "1xhq8a" }]
]);
export { RotateCcw as default };
//# sourceMappingURL=rotate-ccw.js.map
@@ -0,0 +1,42 @@
import { HTTPException } from "../../http-exception.js";
//#region src/middleware/timeout/index.ts
const defaultTimeoutException = new HTTPException(504, { message: "Gateway Timeout" });
/**
* Timeout Middleware for Hono.
*
* @param {number} duration - The timeout duration in milliseconds.
* @param {HTTPExceptionFunction | HTTPException} [exception=defaultTimeoutException] - The exception to throw when the timeout occurs. Can be a function that returns an HTTPException or an HTTPException object.
* @returns {MiddlewareHandler} The middleware handler function.
*
* @example
* ```ts
* const app = new Hono()
*
* app.use(
* '/long-request',
* timeout(5000) // Set timeout to 5 seconds
* )
*
* app.get('/long-request', async (c) => {
* await someLongRunningFunction()
* return c.text('Completed within time limit')
* })
* ```
*/
const timeout = (duration, exception = defaultTimeoutException) => {
return async function timeout(context, next) {
let timer;
const timeoutPromise = new Promise((_, reject) => {
timer = setTimeout(() => {
reject(typeof exception === "function" ? exception(context) : exception);
}, duration);
});
try {
await Promise.race([next(), timeoutPromise]);
} finally {
if (timer !== void 0) clearTimeout(timer);
}
};
};
//#endregion
export { timeout };
@@ -0,0 +1,34 @@
{
"name": "universalify",
"version": "2.0.1",
"description": "Make a callback- or promise-based function support both promises and callbacks.",
"keywords": [
"callback",
"native",
"promise"
],
"homepage": "https://github.com/RyanZim/universalify#readme",
"bugs": "https://github.com/RyanZim/universalify/issues",
"license": "MIT",
"author": "Ryan Zimmerman <opensrc@ryanzim.com>",
"files": [
"index.js"
],
"repository": {
"type": "git",
"url": "git+https://github.com/RyanZim/universalify.git"
},
"scripts": {
"test": "standard && nyc --reporter text --reporter lcovonly tape test/*.js | colortape"
},
"devDependencies": {
"colortape": "^0.1.2",
"coveralls": "^3.0.1",
"nyc": "^15.0.0",
"standard": "^14.3.1",
"tape": "^5.0.1"
},
"engines": {
"node": ">= 10.0.0"
}
}
@@ -0,0 +1,50 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = traverse;
var _index = require("../definitions/index.js");
function traverse(node, handlers, state) {
if (typeof handlers === "function") {
handlers = {
enter: handlers
};
}
const {
enter,
exit
} = handlers;
traverseSimpleImpl(node, enter, exit, state, []);
}
function traverseSimpleImpl(node, enter, exit, state, ancestors) {
const keys = _index.VISITOR_KEYS[node.type];
if (!keys) return;
if (enter) enter(node, ancestors, state);
for (const key of keys) {
const subNode = node[key];
if (Array.isArray(subNode)) {
for (let i = 0; i < subNode.length; i++) {
const child = subNode[i];
if (!child) continue;
ancestors.push({
node,
key,
index: i
});
traverseSimpleImpl(child, enter, exit, state, ancestors);
ancestors.pop();
}
} else if (subNode) {
ancestors.push({
node,
key
});
traverseSimpleImpl(subNode, enter, exit, state, ancestors);
ancestors.pop();
}
}
if (exit) exit(node, ancestors, state);
}
//# sourceMappingURL=traverse.js.map
@@ -0,0 +1,11 @@
"use strict";
// THIS CODE WAS AUTOMATICALLY GENERATED
// DO NOT EDIT THIS CODE BY HAND
// RUN THE FOLLOWING COMMAND FROM THE WORKSPACE ROOT TO REGENERATE:
// npx nx generate-lib repo
Object.defineProperty(exports, "__esModule", { value: true });
exports.webworker_iterable = void 0;
exports.webworker_iterable = {
libs: [],
variables: [],
};
@@ -0,0 +1,62 @@
/**
* Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
var replace = ''.replace;
var ca = /[&<>'"]/g;
var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
var esca = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;'
};
var unes = {
'&amp;': '&',
'&#38;': '&',
'&lt;': '<',
'&#60;': '<',
'&gt;': '>',
'&#62;': '>',
'&apos;': "'",
'&#39;': "'",
'&quot;': '"',
'&#34;': '"'
};
export function escape(es) {
return replace.call(es, ca, pe);
};
export function unescape(un) {
return replace.call(un, es, cape);
};
function pe(m) {
return esca[m];
}
function cape(m) {
return unes[m];
}
@@ -0,0 +1 @@
{"version":3,"sources":["../../src/util.ts","../../src/regexps-uri.ts","../../node_modules/punycode/punycode.es6.js","../../src/uri.ts","../../src/schemes/ws.ts","../../src/schemes/mailto.ts","../../src/regexps-iri.ts","../../src/schemes/http.ts","../../src/schemes/https.ts","../../src/schemes/wss.ts","../../src/schemes/urn.ts","../../src/schemes/urn-uuid.ts","../../src/index.ts"],"names":["merge","sets","Array","_len","_key","arguments","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","setInterval","assign","target","source","key","buildExps","isIRI","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","UNRESERVED$$","RegExp","IPRIVATE$$","IPV6ADDRESS$","error","type","RangeError","errors","map","array","fn","result","mapDomain","string","parts","replace","regexSeparators","ucs2decode","output","counter","value","charCodeAt","extra","push","pctEncChar","chr","c","pctDecChars","newStr","i","il","parseInt","substr","String","fromCharCode","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_matches","_normalizeIPv6","IPV6ADDRESS","_matches2","zone","reverse","last","_address$toLowerCase$2","first","firstFields","lastFields","isLastFieldIPv4Address","test","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","index","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","URI_PARSE","NO_MATCH_IS_UNDEFINED","port","isNaN","indexOf","schemeHandler","SCHEMES","unicodeSupport","domainHost","punycode","toASCII","e","_recomposeAuthority","uriTokens","_","$1","$2","removeDotSegments","input","RDS1","RDS2","RDS3","im","RDS5","Error","s","serialize","toUnicode","authority","charAt","absolutePath","resolveComponents","base","relative","skipNormalization","tolerant","lastIndexOf","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","isSecure","wsComponents","secure","maxInt","regexPunycode","regexNonASCII","floor","Math","stringFromCharCode","ucs2encode","fromCodePoint","apply","toConsumableArray","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","decode","inputLength","n","bias","basic","j","oldi","w","t","baseMinusT","out","splice","encode","_step","Symbol","iterator","_iteratorNormalCompletion","_iterator","next","done","currentValue","basicLength","handledCPCount","m","_step2","_iteratorNormalCompletion2","_iterator2","handledCPCountPlusOne","_step3","_iteratorNormalCompletion3","_iterator3","q","qMinusT","handler","http","resourceName","_wsComponents$resourc2","ws","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn"],"mappings":";4LAAA,SAAAA,gCAAyBC,EAAzBC,MAAAC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,MAAAA,GAAAC,UAAAD,MACKH,EAAKK,OAAS,EAAG,GACf,GAAKL,EAAK,GAAGM,MAAM,GAAI,OAEvB,GADCC,GAAKP,EAAKK,OAAS,EAChBG,EAAI,EAAGA,EAAID,IAAMC,IACpBA,GAAKR,EAAKQ,GAAGF,MAAM,GAAI,YAExBC,GAAMP,EAAKO,GAAID,MAAM,GACnBN,EAAKS,KAAK,UAEVT,GAAK,GAId,QAAAU,GAAuBC,SACf,MAAQA,EAAM,IAGtB,QAAAC,GAAuBC,SACfA,KAAMC,UAAY,YAAqB,OAAND,EAAa,OAASE,OAAOC,UAAUC,SAASC,KAAKL,GAAGM,MAAM,KAAKC,MAAMD,MAAM,KAAKE,QAAQC,cAGrI,QAAAC,GAA4BZ,SACpBA,GAAIY,cAGZ,QAAAC,GAAwBC,SAChBA,KAAQX,WAAqB,OAARW,EAAgBA,YAAexB,OAAQwB,EAA6B,gBAAfA,GAAIpB,QAAuBoB,EAAIN,OAASM,EAAIC,aAAeD,EAAIP,MAAQO,GAAOxB,MAAMe,UAAUV,MAAMY,KAAKO,MAI3L,QAAAE,GAAuBC,EAAgBC,MAChCJ,GAAMG,KACRC,MACE,GAAMC,KAAOD,KACbC,GAAOD,EAAOC,SAGbL,GCnCR,QAAAM,GAA0BC,MAMxBC,GAAWlC,EAFD,QAEgB,YAG1BmC,EAAexB,EAAOA,EAAO,UAAYuB,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMvB,EAAO,cAAgBuB,EAAW,IAAMA,EAAWA,GAAY,IAAMvB,EAAO,IAAMuB,EAAWA,IAEhNE,EAAe,sCACfC,EAAarC,EAFE,0BAEkBoC,GACjCE,EAAYL,EAAQ,8EAAgF,OACvFA,EAAQ,oBAAsB,OAC5BjC,EAbL,WAEA,QAW6B,iBAAkBsC,GAIzDC,EAAqB5B,EAAOA,EAAO,WAAa,IAAMA,EAAO,eAAsB,IAAMA,EAAO,eAA2B,IAAMA,EAAO,gBAAuB,gBAChJA,EAAO4B,EAAqB,MAAQA,EAAqB,MAAQA,EAAqB,MAAQA,GAC7GC,EAAO7B,EAAOuB,EAAW,SACzBO,EAAQ9B,EAAOA,EAAO6B,EAAO,MAAQA,GAAQ,IAAME,GACnDC,EAAgBhC,EAAmEA,EAAO6B,EAAO,OAAS,MAAQC,KAClG9B,EAAwD,SAAWA,EAAO6B,EAAO,OAAS,MAAQC,KAClLine truncated
@@ -0,0 +1,922 @@
flf2a$ 9 9 23 0 3 0 128 0
Font Author: Aiden Neuding
FIGFont created with: http://patorjk.com/figfont-editor
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@
$ $@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
░▒▓█▓▒░ @
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
░▒▓██▓▒░ @
░▒▓██▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
░▒▓██▓▒░ @
░▒▓██▓▒░ @
@
@@
@
@
@
@
@
@
@
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
@
░▒▓██▓▒░ @
░▒▓██▓▒░ @
@
░▒▓██▓▒░ @
░▒▓██▓▒░ @
@
@
@@
@
░▒▓██▓▒░ @
░▒▓██▓▒░ @
@
░▒▓██▓▒░ @
░▒▓██▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓████▓▒░ @
@
@
░▒▓█▓▒░ @
@
@@
@
@
@
@
@
@
@
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒▒▓███▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
░▒▓██████████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓██▓▒░ @@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒▒▓█▓▒░ @
░▒▓█▓▒▒▓█▓▒░ @
░▒▓█▓▓█▓▒░ @
░▒▓█▓▓█▓▒░ @
░▒▓██▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█████████████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓██▓▒░ @
░▒▓██▓▒░ @
░▒▓██▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒▒▓███▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
░▒▓██████████████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓██▓▒░ @@
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓███████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓███████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓███████▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒▒▓█▓▒░ @
░▒▓█▓▒▒▓█▓▒░ @
░▒▓█▓▓█▓▒░ @
░▒▓█▓▓█▓▒░ @
░▒▓██▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█████████████▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
@
@@
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓█▓▒░░▒▓█▓▒░ @
░▒▓██████▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
░▒▓█▓▒░ @
@
@@
░▒▓████████▓▒░ @
░▒▓█▓▒░ @
░▒▓██▓▒░ @
░▒▓██▓▒░ @
░▒▓██▓▒░ @
░▒▓█▓▒░ @
░▒▓████████▓▒░ @
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@
@
@
@
@
@
@
@
@@
@@ -0,0 +1,7 @@
"use strict";
const constants = require("./constants-DR3SPJ7u.js");
const units = constants.rangeOfUnits.reduce((acc, unit) => {
acc[unit.toUpperCase()] = unit;
return acc;
}, {});
module.exports = units;
@@ -0,0 +1,23 @@
/**
* @license lucide-react v0.469.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import createLucideIcon from '../createLucideIcon.js';
const CarFront = createLucideIcon("CarFront", [
[
"path",
{ d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8", key: "1imjwt" }
],
["path", { d: "M7 14h.01", key: "1qa3f1" }],
["path", { d: "M17 14h.01", key: "7oqj8z" }],
["rect", { width: "18", height: "8", x: "3", y: "10", rx: "2", key: "a7itu8" }],
["path", { d: "M5 18v2", key: "ppbyun" }],
["path", { d: "M19 18v2", key: "gy7782" }]
]);
export { CarFront as default };
//# sourceMappingURL=car-front.js.map
@@ -0,0 +1,7 @@
Copyright 2018 Logan Smyth <loganfsmyth@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.