@standardagents/builder 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/built-in-routes.js +1 -1
- package/dist/built-in-routes.js.map +1 -1
- package/dist/client/assets/index.css +1 -1
- package/dist/client/assets/{json.worker-B3O9ZXir.js → json.worker-C21G4-GD.js} +6 -1
- package/dist/client/index.js +19 -19
- package/dist/client/monaco.js +465 -13
- package/dist/client/vue.js +143 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +0 -18
- package/dist/index.js.map +1 -1
- package/dist/plugin.js +0 -18
- package/dist/plugin.js.map +1 -1
- package/dist/rou3.js +1 -1
- package/dist/rou3.js.map +1 -1
- package/package.json +1 -1
package/dist/rou3.js
CHANGED
package/dist/rou3.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.mjs"],"names":[],"mappings":"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","file":"rou3.js","sourcesContent":["const NullProtoObj = /* @__PURE__ */ (() => {\n\tconst e = function() {};\n\treturn e.prototype = Object.create(null), Object.freeze(e.prototype), e;\n})();\n\n/**\n* Create a new router context.\n*/\nfunction createRouter() {\n\treturn {\n\t\troot: { key: \"\" },\n\t\tstatic: new NullProtoObj()\n\t};\n}\n\nfunction splitPath(path) {\n\tconst [_, ...s] = path.split(\"/\");\n\treturn s[s.length - 1] === \"\" ? s.slice(0, -1) : s;\n}\nfunction getMatchParams(segments, paramsMap) {\n\tconst params = new NullProtoObj();\n\tfor (const [index, name] of paramsMap) {\n\t\tconst segment = index < 0 ? segments.slice(-1 * index).join(\"/\") : segments[index];\n\t\tif (typeof name === \"string\") params[name] = segment;\n\t\telse {\n\t\t\tconst match = segment.match(name);\n\t\t\tif (match) for (const key in match.groups) params[key] = match.groups[key];\n\t\t}\n\t}\n\treturn params;\n}\n\n/**\n* Add a route to the router context.\n*/\nfunction addRoute(ctx, method = \"\", path, data) {\n\tmethod = method.toUpperCase();\n\tif (path.charCodeAt(0) !== 47) path = `/${path}`;\n\tconst segments = splitPath(path);\n\tlet node = ctx.root;\n\tlet _unnamedParamIndex = 0;\n\tconst paramsMap = [];\n\tconst paramsRegexp = [];\n\tfor (let i = 0; i < segments.length; i++) {\n\t\tconst segment = segments[i];\n\t\tif (segment.startsWith(\"**\")) {\n\t\t\tif (!node.wildcard) node.wildcard = { key: \"**\" };\n\t\t\tnode = node.wildcard;\n\t\t\tparamsMap.push([\n\t\t\t\t-i,\n\t\t\t\tsegment.split(\":\")[1] || \"_\",\n\t\t\t\tsegment.length === 2\n\t\t\t]);\n\t\t\tbreak;\n\t\t}\n\t\tif (segment === \"*\" || segment.includes(\":\")) {\n\t\t\tif (!node.param) node.param = { key: \"*\" };\n\t\t\tnode = node.param;\n\t\t\tif (segment === \"*\") paramsMap.push([\n\t\t\t\ti,\n\t\t\t\t`_${_unnamedParamIndex++}`,\n\t\t\t\ttrue\n\t\t\t]);\n\t\t\telse if (segment.includes(\":\", 1)) {\n\t\t\t\tconst regexp = getParamRegexp(segment);\n\t\t\t\tparamsRegexp[i] = regexp;\n\t\t\t\tnode.hasRegexParam = true;\n\t\t\t\tparamsMap.push([\n\t\t\t\t\ti,\n\t\t\t\t\tregexp,\n\t\t\t\t\tfalse\n\t\t\t\t]);\n\t\t\t} else paramsMap.push([\n\t\t\t\ti,\n\t\t\t\tsegment.slice(1),\n\t\t\t\tfalse\n\t\t\t]);\n\t\t\tcontinue;\n\t\t}\n\t\tconst child = node.static?.[segment];\n\t\tif (child) node = child;\n\t\telse {\n\t\t\tconst staticNode = { key: segment };\n\t\t\tif (!node.static) node.static = new NullProtoObj();\n\t\t\tnode.static[segment] = staticNode;\n\t\t\tnode = staticNode;\n\t\t}\n\t}\n\tconst hasParams = paramsMap.length > 0;\n\tif (!node.methods) node.methods = new NullProtoObj();\n\tnode.methods[method] ??= [];\n\tnode.methods[method].push({\n\t\tdata: data || null,\n\t\tparamsRegexp,\n\t\tparamsMap: hasParams ? paramsMap : void 0\n\t});\n\tif (!hasParams) ctx.static[path] = node;\n}\nfunction getParamRegexp(segment) {\n\tconst regex = segment.replace(/:(\\w+)/g, (_, id) => `(?<${id}>[^/]+)`).replace(/\\./g, \"\\\\.\");\n\treturn /* @__PURE__ */ new RegExp(`^${regex}$`);\n}\n\n/**\n* Find a route by path.\n*/\nfunction findRoute(ctx, method = \"\", path, opts) {\n\tif (path.charCodeAt(path.length - 1) === 47) path = path.slice(0, -1);\n\tconst staticNode = ctx.static[path];\n\tif (staticNode && staticNode.methods) {\n\t\tconst staticMatch = staticNode.methods[method] || staticNode.methods[\"\"];\n\t\tif (staticMatch !== void 0) return staticMatch[0];\n\t}\n\tconst segments = splitPath(path);\n\tconst match = _lookupTree(ctx, ctx.root, method, segments, 0)?.[0];\n\tif (match === void 0) return;\n\tif (opts?.params === false) return match;\n\treturn {\n\t\tdata: match.data,\n\t\tparams: match.paramsMap ? getMatchParams(segments, match.paramsMap) : void 0\n\t};\n}\nfunction _lookupTree(ctx, node, method, segments, index) {\n\tif (index === segments.length) {\n\t\tif (node.methods) {\n\t\t\tconst match = node.methods[method] || node.methods[\"\"];\n\t\t\tif (match) return match;\n\t\t}\n\t\tif (node.param && node.param.methods) {\n\t\t\tconst match = node.param.methods[method] || node.param.methods[\"\"];\n\t\t\tif (match) {\n\t\t\t\tconst pMap = match[0].paramsMap;\n\t\t\t\tif (pMap?.[pMap?.length - 1]?.[2]) return match;\n\t\t\t}\n\t\t}\n\t\tif (node.wildcard && node.wildcard.methods) {\n\t\t\tconst match = node.wildcard.methods[method] || node.wildcard.methods[\"\"];\n\t\t\tif (match) {\n\t\t\t\tconst pMap = match[0].paramsMap;\n\t\t\t\tif (pMap?.[pMap?.length - 1]?.[2]) return match;\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\tconst segment = segments[index];\n\tif (node.static) {\n\t\tconst staticChild = node.static[segment];\n\t\tif (staticChild) {\n\t\t\tconst match = _lookupTree(ctx, staticChild, method, segments, index + 1);\n\t\t\tif (match) return match;\n\t\t}\n\t}\n\tif (node.param) {\n\t\tconst match = _lookupTree(ctx, node.param, method, segments, index + 1);\n\t\tif (match) {\n\t\t\tif (node.param.hasRegexParam) {\n\t\t\t\tconst exactMatch = match.find((m) => m.paramsRegexp[index]?.test(segment)) || match.find((m) => !m.paramsRegexp[index]);\n\t\t\t\treturn exactMatch ? [exactMatch] : void 0;\n\t\t\t}\n\t\t\treturn match;\n\t\t}\n\t}\n\tif (node.wildcard && node.wildcard.methods) return node.wildcard.methods[method] || node.wildcard.methods[\"\"];\n}\n\n/**\n* Remove a route from the router context.\n*/\nfunction removeRoute(ctx, method, path) {\n\tconst segments = splitPath(path);\n\treturn _remove(ctx.root, method || \"\", segments, 0);\n}\nfunction _remove(node, method, segments, index) {\n\tif (index === segments.length) {\n\t\tif (node.methods && method in node.methods) {\n\t\t\tdelete node.methods[method];\n\t\t\tif (Object.keys(node.methods).length === 0) node.methods = void 0;\n\t\t}\n\t\treturn;\n\t}\n\tconst segment = segments[index];\n\tif (segment === \"*\") {\n\t\tif (node.param) {\n\t\t\t_remove(node.param, method, segments, index + 1);\n\t\t\tif (_isEmptyNode(node.param)) node.param = void 0;\n\t\t}\n\t\treturn;\n\t}\n\tif (segment.startsWith(\"**\")) {\n\t\tif (node.wildcard) {\n\t\t\t_remove(node.wildcard, method, segments, index + 1);\n\t\t\tif (_isEmptyNode(node.wildcard)) node.wildcard = void 0;\n\t\t}\n\t\treturn;\n\t}\n\tconst childNode = node.static?.[segment];\n\tif (childNode) {\n\t\t_remove(childNode, method, segments, index + 1);\n\t\tif (_isEmptyNode(childNode)) {\n\t\t\tdelete node.static[segment];\n\t\t\tif (Object.keys(node.static).length === 0) node.static = void 0;\n\t\t}\n\t}\n}\nfunction _isEmptyNode(node) {\n\treturn node.methods === void 0 && node.static === void 0 && node.param === void 0 && node.wildcard === void 0;\n}\n\n/**\n* Find all route patterns that match the given path.\n*/\nfunction findAllRoutes(ctx, method = \"\", path, opts) {\n\tif (path.charCodeAt(path.length - 1) === 47) path = path.slice(0, -1);\n\tconst segments = splitPath(path);\n\tconst matches = _findAll(ctx, ctx.root, method, segments, 0);\n\tif (opts?.params === false) return matches;\n\treturn matches.map((m) => {\n\t\treturn {\n\t\t\tdata: m.data,\n\t\t\tparams: m.paramsMap ? getMatchParams(segments, m.paramsMap) : void 0\n\t\t};\n\t});\n}\nfunction _findAll(ctx, node, method, segments, index, matches = []) {\n\tconst segment = segments[index];\n\tif (node.wildcard && node.wildcard.methods) {\n\t\tconst match = node.wildcard.methods[method] || node.wildcard.methods[\"\"];\n\t\tif (match) matches.push(...match);\n\t}\n\tif (node.param) {\n\t\t_findAll(ctx, node.param, method, segments, index + 1, matches);\n\t\tif (index === segments.length && node.param.methods) {\n\t\t\tconst match = node.param.methods[method] || node.param.methods[\"\"];\n\t\t\tif (match) {\n\t\t\t\tconst pMap = match[0].paramsMap;\n\t\t\t\tif (pMap?.[pMap?.length - 1]?.[2]) matches.push(...match);\n\t\t\t}\n\t\t}\n\t}\n\tconst staticChild = node.static?.[segment];\n\tif (staticChild) _findAll(ctx, staticChild, method, segments, index + 1, matches);\n\tif (index === segments.length && node.methods) {\n\t\tconst match = node.methods[method] || node.methods[\"\"];\n\t\tif (match) matches.push(...match);\n\t}\n\treturn matches;\n}\n\nfunction routeToRegExp(route = \"/\") {\n\tconst reSegments = [];\n\tlet idCtr = 0;\n\tfor (const segment of route.split(\"/\")) {\n\t\tif (!segment) continue;\n\t\tif (segment === \"*\") reSegments.push(`(?<_${idCtr++}>[^/]*)`);\n\t\telse if (segment.startsWith(\"**\")) reSegments.push(segment === \"**\" ? \"?(?<_>.*)\" : `?(?<${segment.slice(3)}>.+)`);\n\t\telse if (segment.includes(\":\")) reSegments.push(segment.replace(/:(\\w+)/g, (_, id) => `(?<${id}>[^/]+)`).replace(/\\./g, \"\\\\.\"));\n\t\telse reSegments.push(segment);\n\t}\n\treturn /* @__PURE__ */ new RegExp(`^/${reSegments.join(\"/\")}/?$`);\n}\n\nexport { NullProtoObj, addRoute, createRouter, findAllRoutes, findRoute, removeRoute, routeToRegExp };"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/rou3@0.7.9/node_modules/rou3/dist/index.mjs"],"names":[],"mappings":";AAAA,IAAM,+BAAgC,CAAA,MAAM;AAC3C,EAAA,MAAM,IAAI,WAAW;AAAA,EAAC,CAAA;AACtB,EAAA,OAAO,CAAA,CAAE,SAAA,mBAAY,MAAA,CAAO,MAAA,CAAO,IAAI,GAAG,MAAA,CAAO,MAAA,CAAO,CAAA,CAAE,SAAS,CAAA,EAAG,CAAA;AACvE,CAAA,GAAG;AAKH,SAAS,YAAA,GAAe;AACvB,EAAA,OAAO;AAAA,IACN,IAAA,EAAM,EAAE,GAAA,EAAK,EAAA,EAAG;AAAA,IAChB,MAAA,EAAQ,IAAI,YAAA;AAAa,GAC1B;AACD;AAEA,SAAS,UAAU,IAAA,EAAM;AACxB,EAAA,MAAM,CAAC,CAAA,EAAG,GAAG,CAAC,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AAChC,EAAA,OAAO,CAAA,CAAE,CAAA,CAAE,MAAA,GAAS,CAAC,CAAA,KAAM,KAAK,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,GAAI,CAAA;AAClD;AACA,SAAS,cAAA,CAAe,UAAU,SAAA,EAAW;AAC5C,EAAA,MAAM,MAAA,GAAS,IAAI,YAAA,EAAa;AAChC,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,CAAA,IAAK,SAAA,EAAW;AACtC,IAAA,MAAM,OAAA,GAAU,KAAA,GAAQ,CAAA,GAAI,QAAA,CAAS,KAAA,CAAM,EAAA,GAAK,KAAK,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,QAAA,CAAS,KAAK,CAAA;AACjF,IAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,MAAA,CAAO,IAAI,CAAA,GAAI,OAAA;AAAA,SACxC;AACJ,MAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAChC,MAAA,IAAI,KAAA,EAAO,KAAA,MAAW,GAAA,IAAO,KAAA,CAAM,MAAA,SAAe,GAAG,CAAA,GAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAA;AAAA,IAC1E;AAAA,EACD;AACA,EAAA,OAAO,MAAA;AACR;AAKA,SAAS,QAAA,CAAS,GAAA,EAAK,MAAA,GAAS,EAAA,EAAI,MAAM,IAAA,EAAM;AAC/C,EAAA,MAAA,GAAS,OAAO,WAAA,EAAY;AAC5B,EAAA,IAAI,KAAK,UAAA,CAAW,CAAC,MAAM,EAAA,EAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,UAAU,IAAI,CAAA;AAC/B,EAAA,IAAI,OAAO,GAAA,CAAI,IAAA;AACf,EAAA,IAAI,kBAAA,GAAqB,CAAA;AACzB,EAAA,MAAM,YAAY,EAAC;AACnB,EAAA,MAAM,eAAe,EAAC;AACtB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACzC,IAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,IAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,EAAG;AAC7B,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,OAAe,QAAA,GAAW,EAAE,KAAK,IAAA,EAAK;AAChD,MAAA,IAAA,GAAO,IAAA,CAAK,QAAA;AACZ,MAAA,SAAA,CAAU,IAAA,CAAK;AAAA,QACd,CAAC,CAAA;AAAA,QACD,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,GAAA;AAAA,QACzB,QAAQ,MAAA,KAAW;AAAA,OACnB,CAAA;AACD,MAAA;AAAA,IACD;AACA,IAAA,IAAI,OAAA,KAAY,GAAA,IAAO,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AAC7C,MAAA,IAAI,CAAC,IAAA,CAAK,KAAA,OAAY,KAAA,GAAQ,EAAE,KAAK,GAAA,EAAI;AACzC,MAAA,IAAA,GAAO,IAAA,CAAK,KAAA;AACZ,MAAA,IAAI,OAAA,KAAY,GAAA,EAAK,SAAA,CAAU,IAAA,CAAK;AAAA,QACnC,CAAA;AAAA,QACA,IAAI,kBAAA,EAAoB,CAAA,CAAA;AAAA,QACxB;AAAA,OACA,CAAA;AAAA,WAAA,IACQ,OAAA,CAAQ,QAAA,CAAS,GAAA,EAAK,CAAC,CAAA,EAAG;AAClC,QAAA,MAAM,MAAA,GAAS,eAAe,OAAO,CAAA;AACrC,QAAA,YAAA,CAAa,CAAC,CAAA,GAAI,MAAA;AAClB,QAAA,IAAA,CAAK,aAAA,GAAgB,IAAA;AACrB,QAAA,SAAA,CAAU,IAAA,CAAK;AAAA,UACd,CAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACA,CAAA;AAAA,MACF,CAAA,gBAAiB,IAAA,CAAK;AAAA,QACrB,CAAA;AAAA,QACA,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,QACf;AAAA,OACA,CAAA;AACD,MAAA;AAAA,IACD;AACA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,MAAA,GAAS,OAAO,CAAA;AACnC,IAAA,IAAI,OAAO,IAAA,GAAO,KAAA;AAAA,SACb;AACJ,MAAA,MAAM,UAAA,GAAa,EAAE,GAAA,EAAK,OAAA,EAAQ;AAClC,MAAA,IAAI,CAAC,IAAA,CAAK,MAAA,EAAQ,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,EAAa;AACjD,MAAA,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,GAAI,UAAA;AACvB,MAAA,IAAA,GAAO,UAAA;AAAA,IACR;AAAA,EACD;AACA,EAAA,MAAM,SAAA,GAAY,UAAU,MAAA,GAAS,CAAA;AACrC,EAAA,IAAI,CAAC,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,OAAA,GAAU,IAAI,YAAA,EAAa;AACnD,EAAA,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA,KAAM,EAAC;AAC1B,EAAA,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA,CAAE,IAAA,CAAK;AAAA,IACzB,MAAM,IAAA,IAAQ,IAAA;AAAA,IACd,YAAA;AAAA,IACA,SAAA,EAAW,YAAY,SAAA,GAAY;AAAA,GACnC,CAAA;AACD,EAAA,IAAI,CAAC,SAAA,EAAW,GAAA,CAAI,MAAA,CAAO,IAAI,CAAA,GAAI,IAAA;AACpC;AACA,SAAS,eAAe,OAAA,EAAS;AAChC,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,OAAA,CAAQ,SAAA,EAAW,CAAC,CAAA,EAAG,EAAA,KAAO,CAAA,GAAA,EAAM,EAAE,CAAA,OAAA,CAAS,CAAA,CAAE,OAAA,CAAQ,OAAO,KAAK,CAAA;AAC3F,EAAA,uBAAuB,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAA;AAC/C;AAKA,SAAS,SAAA,CAAU,GAAA,EAAK,MAAA,GAAS,EAAA,EAAI,MAAM,IAAA,EAAM;AAChD,EAAA,IAAI,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,KAAM,EAAA,EAAI,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACpE,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,MAAA,CAAO,IAAI,CAAA;AAClC,EAAA,IAAI,UAAA,IAAc,WAAW,OAAA,EAAS;AACrC,IAAA,MAAM,cAAc,UAAA,CAAW,OAAA,CAAQ,MAAM,CAAA,IAAK,UAAA,CAAW,QAAQ,EAAE,CAAA;AACvE,IAAA,IAAI,WAAA,KAAgB,MAAA,EAAQ,OAAO,WAAA,CAAY,CAAC,CAAA;AAAA,EACjD;AACA,EAAA,MAAM,QAAA,GAAW,UAAU,IAAI,CAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,YAAY,GAAA,EAAK,GAAA,CAAI,MAAM,MAAA,EAAQ,QAAA,EAAU,CAAC,CAAA,GAAI,CAAC,CAAA;AACjE,EAAA,IAAI,UAAU,MAAA,EAAQ;AACtB,EAAA,IAAI,IAAA,EAAM,MAAA,KAAW,KAAA,EAAO,OAAO,KAAA;AACnC,EAAA,OAAO;AAAA,IACN,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,QAAQ,KAAA,CAAM,SAAA,GAAY,eAAe,QAAA,EAAU,KAAA,CAAM,SAAS,CAAA,GAAI;AAAA,GACvE;AACD;AACA,SAAS,WAAA,CAAY,GAAA,EAAK,IAAA,EAAM,MAAA,EAAQ,UAAU,KAAA,EAAO;AACxD,EAAA,IAAI,KAAA,KAAU,SAAS,MAAA,EAAQ;AAC9B,IAAA,IAAI,KAAK,OAAA,EAAS;AACjB,MAAA,MAAM,QAAQ,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA,IAAK,IAAA,CAAK,QAAQ,EAAE,CAAA;AACrD,MAAA,IAAI,OAAO,OAAO,KAAA;AAAA,IACnB;AACA,IAAA,IAAI,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS;AACrC,MAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA;AACjE,MAAA,IAAI,KAAA,EAAO;AACV,QAAA,MAAM,IAAA,GAAO,KAAA,CAAM,CAAC,CAAA,CAAE,SAAA;AACtB,QAAA,IAAI,OAAO,IAAA,EAAM,MAAA,GAAS,CAAC,CAAA,GAAI,CAAC,GAAG,OAAO,KAAA;AAAA,MAC3C;AAAA,IACD;AACA,IAAA,IAAI,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS;AAC3C,MAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAA,IAAK,IAAA,CAAK,QAAA,CAAS,OAAA,CAAQ,EAAE,CAAA;AACvE,MAAA,IAAI,KAAA,EAAO;AACV,QAAA,MAAM,IAAA,GAAO,KAAA,CAAM,CAAC,CAAA,CAAE,SAAA;AACtB,QAAA,IAAI,OAAO,IAAA,EAAM,MAAA,GAAS,CAAC,CAAA,GAAI,CAAC,GAAG,OAAO,KAAA;AAAA,MAC3C;AAAA,IACD;AACA,IAAA;AAAA,EACD;AACA,EAAA,MAAM,OAAA,GAAU,SAAS,KAAK,CAAA;AAC9B,EAAA,IAAI,KAAK,MAAA,EAAQ;AAChB,IAAA,MAAM,WAAA,GAAc,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA;AACvC,IAAA,IAAI,WAAA,EAAa;AAChB,MAAA,MAAM,QAAQ,WAAA,CAAY,GAAA,EAAK,aAAa,MAAA,EAAQ,QAAA,EAAU,QAAQ,CAAC,CAAA;AACvE,MAAA,IAAI,OAAO,OAAO,KAAA;AAAA,IACnB;AAAA,EACD;AACA,EAAA,IAAI,KAAK,KAAA,EAAO;AACf,IAAA,MAAM,KAAA,GAAQ,YAAY,GAAA,EAAK,IAAA,CAAK,OAAO,MAAA,EAAQ,QAAA,EAAU,QAAQ,CAAC,CAAA;AACtE,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,IAAI,IAAA,CAAK,MAAM,aAAA,EAAe;AAC7B,QAAA,MAAM,UAAA,GAAa,MAAM,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,YAAA,CAAa,KAAK,CAAA,EAAG,IAAA,CAAK,OAAO,CAAC,CAAA,IAAK,MAAM,IAAA,CAAK,CAAC,MAAM,CAAC,CAAA,CAAE,YAAA,CAAa,KAAK,CAAC,CAAA;AACtH,QAAA,OAAO,UAAA,GAAa,CAAC,UAAU,CAAA,GAAI,MAAA;AAAA,MACpC;AACA,MAAA,OAAO,KAAA;AAAA,IACR;AAAA,EACD;AACA,EAAA,IAAI,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,CAAS,SAAS,OAAO,IAAA,CAAK,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAA,IAAK,IAAA,CAAK,QAAA,CAAS,QAAQ,EAAE,CAAA;AAC7G","file":"rou3.js","sourcesContent":["const NullProtoObj = /* @__PURE__ */ (() => {\n\tconst e = function() {};\n\treturn e.prototype = Object.create(null), Object.freeze(e.prototype), e;\n})();\n\n/**\n* Create a new router context.\n*/\nfunction createRouter() {\n\treturn {\n\t\troot: { key: \"\" },\n\t\tstatic: new NullProtoObj()\n\t};\n}\n\nfunction splitPath(path) {\n\tconst [_, ...s] = path.split(\"/\");\n\treturn s[s.length - 1] === \"\" ? s.slice(0, -1) : s;\n}\nfunction getMatchParams(segments, paramsMap) {\n\tconst params = new NullProtoObj();\n\tfor (const [index, name] of paramsMap) {\n\t\tconst segment = index < 0 ? segments.slice(-1 * index).join(\"/\") : segments[index];\n\t\tif (typeof name === \"string\") params[name] = segment;\n\t\telse {\n\t\t\tconst match = segment.match(name);\n\t\t\tif (match) for (const key in match.groups) params[key] = match.groups[key];\n\t\t}\n\t}\n\treturn params;\n}\n\n/**\n* Add a route to the router context.\n*/\nfunction addRoute(ctx, method = \"\", path, data) {\n\tmethod = method.toUpperCase();\n\tif (path.charCodeAt(0) !== 47) path = `/${path}`;\n\tconst segments = splitPath(path);\n\tlet node = ctx.root;\n\tlet _unnamedParamIndex = 0;\n\tconst paramsMap = [];\n\tconst paramsRegexp = [];\n\tfor (let i = 0; i < segments.length; i++) {\n\t\tconst segment = segments[i];\n\t\tif (segment.startsWith(\"**\")) {\n\t\t\tif (!node.wildcard) node.wildcard = { key: \"**\" };\n\t\t\tnode = node.wildcard;\n\t\t\tparamsMap.push([\n\t\t\t\t-i,\n\t\t\t\tsegment.split(\":\")[1] || \"_\",\n\t\t\t\tsegment.length === 2\n\t\t\t]);\n\t\t\tbreak;\n\t\t}\n\t\tif (segment === \"*\" || segment.includes(\":\")) {\n\t\t\tif (!node.param) node.param = { key: \"*\" };\n\t\t\tnode = node.param;\n\t\t\tif (segment === \"*\") paramsMap.push([\n\t\t\t\ti,\n\t\t\t\t`_${_unnamedParamIndex++}`,\n\t\t\t\ttrue\n\t\t\t]);\n\t\t\telse if (segment.includes(\":\", 1)) {\n\t\t\t\tconst regexp = getParamRegexp(segment);\n\t\t\t\tparamsRegexp[i] = regexp;\n\t\t\t\tnode.hasRegexParam = true;\n\t\t\t\tparamsMap.push([\n\t\t\t\t\ti,\n\t\t\t\t\tregexp,\n\t\t\t\t\tfalse\n\t\t\t\t]);\n\t\t\t} else paramsMap.push([\n\t\t\t\ti,\n\t\t\t\tsegment.slice(1),\n\t\t\t\tfalse\n\t\t\t]);\n\t\t\tcontinue;\n\t\t}\n\t\tconst child = node.static?.[segment];\n\t\tif (child) node = child;\n\t\telse {\n\t\t\tconst staticNode = { key: segment };\n\t\t\tif (!node.static) node.static = new NullProtoObj();\n\t\t\tnode.static[segment] = staticNode;\n\t\t\tnode = staticNode;\n\t\t}\n\t}\n\tconst hasParams = paramsMap.length > 0;\n\tif (!node.methods) node.methods = new NullProtoObj();\n\tnode.methods[method] ??= [];\n\tnode.methods[method].push({\n\t\tdata: data || null,\n\t\tparamsRegexp,\n\t\tparamsMap: hasParams ? paramsMap : void 0\n\t});\n\tif (!hasParams) ctx.static[path] = node;\n}\nfunction getParamRegexp(segment) {\n\tconst regex = segment.replace(/:(\\w+)/g, (_, id) => `(?<${id}>[^/]+)`).replace(/\\./g, \"\\\\.\");\n\treturn /* @__PURE__ */ new RegExp(`^${regex}$`);\n}\n\n/**\n* Find a route by path.\n*/\nfunction findRoute(ctx, method = \"\", path, opts) {\n\tif (path.charCodeAt(path.length - 1) === 47) path = path.slice(0, -1);\n\tconst staticNode = ctx.static[path];\n\tif (staticNode && staticNode.methods) {\n\t\tconst staticMatch = staticNode.methods[method] || staticNode.methods[\"\"];\n\t\tif (staticMatch !== void 0) return staticMatch[0];\n\t}\n\tconst segments = splitPath(path);\n\tconst match = _lookupTree(ctx, ctx.root, method, segments, 0)?.[0];\n\tif (match === void 0) return;\n\tif (opts?.params === false) return match;\n\treturn {\n\t\tdata: match.data,\n\t\tparams: match.paramsMap ? getMatchParams(segments, match.paramsMap) : void 0\n\t};\n}\nfunction _lookupTree(ctx, node, method, segments, index) {\n\tif (index === segments.length) {\n\t\tif (node.methods) {\n\t\t\tconst match = node.methods[method] || node.methods[\"\"];\n\t\t\tif (match) return match;\n\t\t}\n\t\tif (node.param && node.param.methods) {\n\t\t\tconst match = node.param.methods[method] || node.param.methods[\"\"];\n\t\t\tif (match) {\n\t\t\t\tconst pMap = match[0].paramsMap;\n\t\t\t\tif (pMap?.[pMap?.length - 1]?.[2]) return match;\n\t\t\t}\n\t\t}\n\t\tif (node.wildcard && node.wildcard.methods) {\n\t\t\tconst match = node.wildcard.methods[method] || node.wildcard.methods[\"\"];\n\t\t\tif (match) {\n\t\t\t\tconst pMap = match[0].paramsMap;\n\t\t\t\tif (pMap?.[pMap?.length - 1]?.[2]) return match;\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\tconst segment = segments[index];\n\tif (node.static) {\n\t\tconst staticChild = node.static[segment];\n\t\tif (staticChild) {\n\t\t\tconst match = _lookupTree(ctx, staticChild, method, segments, index + 1);\n\t\t\tif (match) return match;\n\t\t}\n\t}\n\tif (node.param) {\n\t\tconst match = _lookupTree(ctx, node.param, method, segments, index + 1);\n\t\tif (match) {\n\t\t\tif (node.param.hasRegexParam) {\n\t\t\t\tconst exactMatch = match.find((m) => m.paramsRegexp[index]?.test(segment)) || match.find((m) => !m.paramsRegexp[index]);\n\t\t\t\treturn exactMatch ? [exactMatch] : void 0;\n\t\t\t}\n\t\t\treturn match;\n\t\t}\n\t}\n\tif (node.wildcard && node.wildcard.methods) return node.wildcard.methods[method] || node.wildcard.methods[\"\"];\n}\n\n/**\n* Remove a route from the router context.\n*/\nfunction removeRoute(ctx, method, path) {\n\tconst segments = splitPath(path);\n\treturn _remove(ctx.root, method || \"\", segments, 0);\n}\nfunction _remove(node, method, segments, index) {\n\tif (index === segments.length) {\n\t\tif (node.methods && method in node.methods) {\n\t\t\tdelete node.methods[method];\n\t\t\tif (Object.keys(node.methods).length === 0) node.methods = void 0;\n\t\t}\n\t\treturn;\n\t}\n\tconst segment = segments[index];\n\tif (segment === \"*\") {\n\t\tif (node.param) {\n\t\t\t_remove(node.param, method, segments, index + 1);\n\t\t\tif (_isEmptyNode(node.param)) node.param = void 0;\n\t\t}\n\t\treturn;\n\t}\n\tif (segment.startsWith(\"**\")) {\n\t\tif (node.wildcard) {\n\t\t\t_remove(node.wildcard, method, segments, index + 1);\n\t\t\tif (_isEmptyNode(node.wildcard)) node.wildcard = void 0;\n\t\t}\n\t\treturn;\n\t}\n\tconst childNode = node.static?.[segment];\n\tif (childNode) {\n\t\t_remove(childNode, method, segments, index + 1);\n\t\tif (_isEmptyNode(childNode)) {\n\t\t\tdelete node.static[segment];\n\t\t\tif (Object.keys(node.static).length === 0) node.static = void 0;\n\t\t}\n\t}\n}\nfunction _isEmptyNode(node) {\n\treturn node.methods === void 0 && node.static === void 0 && node.param === void 0 && node.wildcard === void 0;\n}\n\n/**\n* Find all route patterns that match the given path.\n*/\nfunction findAllRoutes(ctx, method = \"\", path, opts) {\n\tif (path.charCodeAt(path.length - 1) === 47) path = path.slice(0, -1);\n\tconst segments = splitPath(path);\n\tconst matches = _findAll(ctx, ctx.root, method, segments, 0);\n\tif (opts?.params === false) return matches;\n\treturn matches.map((m) => {\n\t\treturn {\n\t\t\tdata: m.data,\n\t\t\tparams: m.paramsMap ? getMatchParams(segments, m.paramsMap) : void 0\n\t\t};\n\t});\n}\nfunction _findAll(ctx, node, method, segments, index, matches = []) {\n\tconst segment = segments[index];\n\tif (node.wildcard && node.wildcard.methods) {\n\t\tconst match = node.wildcard.methods[method] || node.wildcard.methods[\"\"];\n\t\tif (match) matches.push(...match);\n\t}\n\tif (node.param) {\n\t\t_findAll(ctx, node.param, method, segments, index + 1, matches);\n\t\tif (index === segments.length && node.param.methods) {\n\t\t\tconst match = node.param.methods[method] || node.param.methods[\"\"];\n\t\t\tif (match) {\n\t\t\t\tconst pMap = match[0].paramsMap;\n\t\t\t\tif (pMap?.[pMap?.length - 1]?.[2]) matches.push(...match);\n\t\t\t}\n\t\t}\n\t}\n\tconst staticChild = node.static?.[segment];\n\tif (staticChild) _findAll(ctx, staticChild, method, segments, index + 1, matches);\n\tif (index === segments.length && node.methods) {\n\t\tconst match = node.methods[method] || node.methods[\"\"];\n\t\tif (match) matches.push(...match);\n\t}\n\treturn matches;\n}\n\nfunction routeToRegExp(route = \"/\") {\n\tconst reSegments = [];\n\tlet idCtr = 0;\n\tfor (const segment of route.split(\"/\")) {\n\t\tif (!segment) continue;\n\t\tif (segment === \"*\") reSegments.push(`(?<_${idCtr++}>[^/]*)`);\n\t\telse if (segment.startsWith(\"**\")) reSegments.push(segment === \"**\" ? \"?(?<_>.*)\" : `?(?<${segment.slice(3)}>.+)`);\n\t\telse if (segment.includes(\":\")) reSegments.push(segment.replace(/:(\\w+)/g, (_, id) => `(?<${id}>[^/]+)`).replace(/\\./g, \"\\\\.\"));\n\t\telse reSegments.push(segment);\n\t}\n\treturn /* @__PURE__ */ new RegExp(`^/${reSegments.join(\"/\")}/?$`);\n}\n\nexport { NullProtoObj, addRoute, createRouter, findAllRoutes, findRoute, removeRoute, routeToRegExp };"]}
|