{"version":3,"file":"hive.BKkmhxHs.mjs","sources":["../../../@hive/server/dist/_chunks/middleware-LvCs3aWM.mjs"],"sourcesContent":["import { factory } from \"./factory-2t_G5k8H.mjs\";\nimport { Selector } from \"@hive/sdk/selector\";\nimport { endTime, startTime } from \"hono/timing\";\nimport { formatDuration } from \"@hive/sdk/format\";\nimport { Operation } from \"@hive/sdk/operation\";\n\n//#region ../../hive/package.json\nvar version$1 = \"2.1.13\";\n\n//#endregion\n//#region src/middleware.ts\n/**\n* Middleware to set the API version both on the request context as well as the\n* response headers.\n*/\nconst version = factory.createMiddleware((c, next) => {\n\tc.set(\"api-version\", version$1);\n\tc.res.headers.set(\"X-API-Version\", version$1);\n\treturn next();\n});\n/**\n* Middleware resolving an access token from the request.\n*\n* Parses the token from the `Cookie` header and the `Authorization` header.\n* If both are present, the `Authorization` header takes precedence.\n*\n* @returns The resolved token or `null` if no token was found.\n*/\nconst token = factory.createMiddleware(async (c, next) => {\n\tconst cookie = c.req.header(\"Cookie\")?.split(\"; \").find((cookie$1) => cookie$1.startsWith(\"token=\"))?.split(\"=\")[1] ?? null;\n\tconst bearer = c.req.header(\"Authorization\")?.replace(\"Bearer \", \"\") ?? null;\n\tc.set(\"token\", bearer ?? cookie ?? null);\n\treturn next();\n});\n/**\n* Middleware to use for validating access to a Resource.\n*/\nconst auth = ({ resource: resource$1 }) => factory.createMiddleware(async (c, next) => {\n\tstartTime(c, \"auth\");\n\tif (!c.env.auth) {\n\t\tendTime(c, \"auth\");\n\t\treturn next();\n\t}\n\tawait c.env.auth.hasAccess(c.get(\"token\"), resource$1);\n\tendTime(c, \"auth\");\n\tawait next();\n});\n/**\n* Middleware used to log basic information about a request.\n*/\nconst logging = () => factory.createMiddleware(async (c, next) => {\n\tstartTime(c, \"logging\");\n\tconst trace = c.get(\"trace\");\n\tconst operation = new Operation({ trace });\n\tawait next();\n\tif (!c.req.path.endsWith(\"/health\")) c.env.logger?.info(\"request processed\", {\n\t\tmodule: \"server\",\n\t\ttrace,\n\t\tmethod: c.req.method,\n\t\tpath: c.req.path,\n\t\tdur: formatDuration(operation.duration),\n\t\tstatus: c.res.status.toString()\n\t});\n\tendTime(c, \"logging\");\n});\n/**\n* Middleware which ensures that every incoming request is assigned\n* a `Trace`.\n*/\nconst tracing = () => factory.createMiddleware(async (c, next) => {\n\tstartTime(c, \"resolve-trace\");\n\tconst trace = c.req.header(\"X-Trace-Id\") ?? crypto.randomUUID();\n\tc.set(\"trace\", trace);\n\tc.res.headers.set(\"X-Trace-Id\", trace);\n\tendTime(c, \"resolve-trace\");\n\tawait next();\n});\n/**\n* Middleware to use for extracting a `Selector` from a `key` contained in the\n* request path.\n*/\nconst resource = () => factory.createMiddleware(async (c, next) => {\n\tstartTime(c, \"resolve-resource\");\n\tconst key = c.req.param(\"key\");\n\tconst selector = key ? new Selector(key) : null;\n\tc.set(\"resource\", selector);\n\tendTime(c, \"resolve-resource\");\n\tawait next();\n});\n\n//#endregion\nexport { auth, logging, resource, token, tracing, version };"],"names":[],"mappings":"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"}