@lytjs/middleware-rate-limit 6.9.0 → 6.9.2
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/index.cjs.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rate-limit.ts"],"names":["createRateLimiter"],"mappings":";;;;;AAaO,SAAS,0BAA0B,OAAA,EAAuC;AAC/E,EAAA,MAAM,UAAUA,iCAAA,CAAkB;AAAA,IAChC,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,UAAU,OAAA,CAAQ;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,YAAA,GACJ,OAAA,CAAQ,YAAA,KACP,CAAC,SAAkB,IAAA,KAA4B;AAC9C,IAAA,MAAM,GAAA,GAAM,OAAA;AACZ,IAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,IAAA,OAAO,OAAA,GAAU,iBAAiB,CAAA,GAAI,CAAC,CAAA,IAAK,SAAA;AAAA,EAC9C,CAAA,CAAA;AAEF,EAAA,OAAO,OAAO,OAAA,EAAkB,GAAA,EAAwB,IAAA,KAA8B;AACpF,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,EAAS,GAAG,CAAA;AACrC,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAEhC,IAAA,MAAM,IAAA,GAAsB;AAAA,MAC1B,WAAW,MAAA,CAAO,SAAA;AAAA,MAClB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,OAAO,MAAA,CAAO;AAAA,KAChB;AAEA,IAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAEhB,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,MAAM,OAAA,GAA6C;AAAA,QACjD,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,aAAA,EAAe,OAAO,IAAA,CAAK,IAAA,CAAA,CAAM,OAAO,KAAA,GAAQ,GAAA,IAAO,GAAI,CAAC,CAAA;AAAA,QAC5D,cAAA,EAAgB;AAAA,OAClB;AAEA,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA;AAAA,QACA,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,4BAAQ;AAAA,OACxC;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,EAAK;AAEX,IAAA,IAAI,IAAI,QAAA,EAAU;AAChB,MAAA,MAAM,WAAA,GAAc,EAAE,GAAG,GAAA,CAAI,QAAA,EAAS;AACtC,MAAA,WAAA,CAAY,OAAA,GAAU;AAAA,QACpB,GAAI,WAAA,CAAY,OAAA;AAAA,QAChB,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK;AAAA,OACxC;AAEA,MAAA,OAAO,WAAA;AAAA,IACT;AAAA,EACF,CAAA;AACF","file":"index.cjs","sourcesContent":["/**\n * 限流中间件实现\n */\nimport type { RateLimitOptions, RateLimitInfo } from './types';\nimport type { Middleware, MiddlewareContext } from '@lytjs/middleware';\nimport { createRateLimiter } from '@lytjs/common-rate-limit';\n\n/**\n * 创建限流中间件\n *\n * @param options - 限流配置选项\n * @returns 限流中间件函数\n */\nexport function createRateLimitMiddleware(options: RateLimitOptions): Middleware {\n const limiter = createRateLimiter({\n max: options.max,\n windowMs: options.windowMs,\n });\n const keyGenerator =\n options.keyGenerator ||\n ((request: unknown, _ctx: MiddlewareContext) => {\n const req = request as Record<string, unknown>;\n const headers = req.headers as Record<string, string | string[]> | undefined;\n return headers?.['x-forwarded-for']?.[0] || 'unknown';\n }) as (request: unknown, ctx: MiddlewareContext) => string;\n\n return async (request: unknown, ctx: MiddlewareContext, next: () => Promise<void>) => {\n const key = keyGenerator(request, ctx);\n const now = Date.now();\n const result = limiter.check(key);\n\n const info: RateLimitInfo = {\n remaining: result.remaining,\n reset: result.reset,\n limit: result.limit,\n };\n\n ctx.rateLimit = info;\n\n if (!result.allowed) {\n const headers: Record<string, string | string[]> = {\n 'X-RateLimit-Limit': String(info.limit),\n 'X-RateLimit-Remaining': String(info.remaining),\n 'X-RateLimit-Reset': String(info.reset),\n 'Retry-After': String(Math.ceil((result.reset - now) / 1000)),\n 'Content-Type': 'application/json',\n };\n\n return {\n status: 429,\n headers,\n body: JSON.stringify({ error: '请求过多' }),\n };\n }\n\n await next();\n\n if (ctx.response) {\n const newResponse = { ...ctx.response } as
|
|
1
|
+
{"version":3,"sources":["../src/rate-limit.ts"],"names":["createRateLimiter"],"mappings":";;;;;AAaO,SAAS,0BAA0B,OAAA,EAAuC;AAC/E,EAAA,MAAM,UAAUA,iCAAA,CAAkB;AAAA,IAChC,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,UAAU,OAAA,CAAQ;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,YAAA,GACJ,OAAA,CAAQ,YAAA,KACP,CAAC,SAAkB,IAAA,KAA4B;AAC9C,IAAA,MAAM,GAAA,GAAM,OAAA;AACZ,IAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,IAAA,OAAO,OAAA,GAAU,iBAAiB,CAAA,GAAI,CAAC,CAAA,IAAK,SAAA;AAAA,EAC9C,CAAA,CAAA;AAEF,EAAA,OAAO,OAAO,OAAA,EAAkB,GAAA,EAAwB,IAAA,KAA8B;AACpF,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,EAAS,GAAG,CAAA;AACrC,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAEhC,IAAA,MAAM,IAAA,GAAsB;AAAA,MAC1B,WAAW,MAAA,CAAO,SAAA;AAAA,MAClB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,OAAO,MAAA,CAAO;AAAA,KAChB;AAEA,IAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAEhB,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,MAAM,OAAA,GAA6C;AAAA,QACjD,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,aAAA,EAAe,OAAO,IAAA,CAAK,IAAA,CAAA,CAAM,OAAO,KAAA,GAAQ,GAAA,IAAO,GAAI,CAAC,CAAA;AAAA,QAC5D,cAAA,EAAgB;AAAA,OAClB;AAEA,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA;AAAA,QACA,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,4BAAQ;AAAA,OACxC;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,EAAK;AAEX,IAAA,IAAI,IAAI,QAAA,EAAU;AAChB,MAAA,MAAM,WAAA,GAAc,EAAE,GAAG,GAAA,CAAI,QAAA,EAAS;AACtC,MAAA,WAAA,CAAY,OAAA,GAAU;AAAA,QACpB,GAAI,WAAA,CAAY,OAAA;AAAA,QAChB,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK;AAAA,OACxC;AAEA,MAAA,OAAO,WAAA;AAAA,IACT;AAAA,EACF,CAAA;AACF","file":"index.cjs","sourcesContent":["/**\n * 限流中间件实现\n */\nimport type { RateLimitOptions, RateLimitInfo } from './types';\nimport type { Middleware, MiddlewareContext } from '@lytjs/middleware';\nimport { createRateLimiter } from '@lytjs/common-rate-limit';\n\n/**\n * 创建限流中间件\n *\n * @param options - 限流配置选项\n * @returns 限流中间件函数\n */\nexport function createRateLimitMiddleware(options: RateLimitOptions): Middleware {\n const limiter = createRateLimiter({\n max: options.max,\n windowMs: options.windowMs,\n });\n const keyGenerator =\n options.keyGenerator ||\n ((request: unknown, _ctx: MiddlewareContext) => {\n const req = request as Record<string, unknown>;\n const headers = req.headers as Record<string, string | string[]> | undefined;\n return headers?.['x-forwarded-for']?.[0] || 'unknown';\n }) as (request: unknown, ctx: MiddlewareContext) => string;\n\n return async (request: unknown, ctx: MiddlewareContext, next: () => Promise<void>) => {\n const key = keyGenerator(request, ctx);\n const now = Date.now();\n const result = limiter.check(key);\n\n const info: RateLimitInfo = {\n remaining: result.remaining,\n reset: result.reset,\n limit: result.limit,\n };\n\n ctx.rateLimit = info;\n\n if (!result.allowed) {\n const headers: Record<string, string | string[]> = {\n 'X-RateLimit-Limit': String(info.limit),\n 'X-RateLimit-Remaining': String(info.remaining),\n 'X-RateLimit-Reset': String(info.reset),\n 'Retry-After': String(Math.ceil((result.reset - now) / 1000)),\n 'Content-Type': 'application/json',\n };\n\n return {\n status: 429,\n headers,\n body: JSON.stringify({ error: '请求过多' }),\n };\n }\n\n await next();\n\n if (ctx.response) {\n const newResponse = { ...ctx.response } as Record<string, unknown>;\n newResponse.headers = {\n ...(newResponse.headers as Record<string, string | string[]>),\n 'X-RateLimit-Limit': String(info.limit),\n 'X-RateLimit-Remaining': String(info.remaining),\n 'X-RateLimit-Reset': String(info.reset),\n };\n\n return newResponse;\n }\n };\n}\n"]}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rate-limit.ts"],"names":[],"mappings":";;;AAaO,SAAS,0BAA0B,OAAA,EAAuC;AAC/E,EAAA,MAAM,UAAU,iBAAA,CAAkB;AAAA,IAChC,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,UAAU,OAAA,CAAQ;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,YAAA,GACJ,OAAA,CAAQ,YAAA,KACP,CAAC,SAAkB,IAAA,KAA4B;AAC9C,IAAA,MAAM,GAAA,GAAM,OAAA;AACZ,IAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,IAAA,OAAO,OAAA,GAAU,iBAAiB,CAAA,GAAI,CAAC,CAAA,IAAK,SAAA;AAAA,EAC9C,CAAA,CAAA;AAEF,EAAA,OAAO,OAAO,OAAA,EAAkB,GAAA,EAAwB,IAAA,KAA8B;AACpF,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,EAAS,GAAG,CAAA;AACrC,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAEhC,IAAA,MAAM,IAAA,GAAsB;AAAA,MAC1B,WAAW,MAAA,CAAO,SAAA;AAAA,MAClB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,OAAO,MAAA,CAAO;AAAA,KAChB;AAEA,IAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAEhB,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,MAAM,OAAA,GAA6C;AAAA,QACjD,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,aAAA,EAAe,OAAO,IAAA,CAAK,IAAA,CAAA,CAAM,OAAO,KAAA,GAAQ,GAAA,IAAO,GAAI,CAAC,CAAA;AAAA,QAC5D,cAAA,EAAgB;AAAA,OAClB;AAEA,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA;AAAA,QACA,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,4BAAQ;AAAA,OACxC;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,EAAK;AAEX,IAAA,IAAI,IAAI,QAAA,EAAU;AAChB,MAAA,MAAM,WAAA,GAAc,EAAE,GAAG,GAAA,CAAI,QAAA,EAAS;AACtC,MAAA,WAAA,CAAY,OAAA,GAAU;AAAA,QACpB,GAAI,WAAA,CAAY,OAAA;AAAA,QAChB,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK;AAAA,OACxC;AAEA,MAAA,OAAO,WAAA;AAAA,IACT;AAAA,EACF,CAAA;AACF","file":"index.mjs","sourcesContent":["/**\n * 限流中间件实现\n */\nimport type { RateLimitOptions, RateLimitInfo } from './types';\nimport type { Middleware, MiddlewareContext } from '@lytjs/middleware';\nimport { createRateLimiter } from '@lytjs/common-rate-limit';\n\n/**\n * 创建限流中间件\n *\n * @param options - 限流配置选项\n * @returns 限流中间件函数\n */\nexport function createRateLimitMiddleware(options: RateLimitOptions): Middleware {\n const limiter = createRateLimiter({\n max: options.max,\n windowMs: options.windowMs,\n });\n const keyGenerator =\n options.keyGenerator ||\n ((request: unknown, _ctx: MiddlewareContext) => {\n const req = request as Record<string, unknown>;\n const headers = req.headers as Record<string, string | string[]> | undefined;\n return headers?.['x-forwarded-for']?.[0] || 'unknown';\n }) as (request: unknown, ctx: MiddlewareContext) => string;\n\n return async (request: unknown, ctx: MiddlewareContext, next: () => Promise<void>) => {\n const key = keyGenerator(request, ctx);\n const now = Date.now();\n const result = limiter.check(key);\n\n const info: RateLimitInfo = {\n remaining: result.remaining,\n reset: result.reset,\n limit: result.limit,\n };\n\n ctx.rateLimit = info;\n\n if (!result.allowed) {\n const headers: Record<string, string | string[]> = {\n 'X-RateLimit-Limit': String(info.limit),\n 'X-RateLimit-Remaining': String(info.remaining),\n 'X-RateLimit-Reset': String(info.reset),\n 'Retry-After': String(Math.ceil((result.reset - now) / 1000)),\n 'Content-Type': 'application/json',\n };\n\n return {\n status: 429,\n headers,\n body: JSON.stringify({ error: '请求过多' }),\n };\n }\n\n await next();\n\n if (ctx.response) {\n const newResponse = { ...ctx.response } as
|
|
1
|
+
{"version":3,"sources":["../src/rate-limit.ts"],"names":[],"mappings":";;;AAaO,SAAS,0BAA0B,OAAA,EAAuC;AAC/E,EAAA,MAAM,UAAU,iBAAA,CAAkB;AAAA,IAChC,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,UAAU,OAAA,CAAQ;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,YAAA,GACJ,OAAA,CAAQ,YAAA,KACP,CAAC,SAAkB,IAAA,KAA4B;AAC9C,IAAA,MAAM,GAAA,GAAM,OAAA;AACZ,IAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,IAAA,OAAO,OAAA,GAAU,iBAAiB,CAAA,GAAI,CAAC,CAAA,IAAK,SAAA;AAAA,EAC9C,CAAA,CAAA;AAEF,EAAA,OAAO,OAAO,OAAA,EAAkB,GAAA,EAAwB,IAAA,KAA8B;AACpF,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,EAAS,GAAG,CAAA;AACrC,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAEhC,IAAA,MAAM,IAAA,GAAsB;AAAA,MAC1B,WAAW,MAAA,CAAO,SAAA;AAAA,MAClB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,OAAO,MAAA,CAAO;AAAA,KAChB;AAEA,IAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAEhB,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,MAAM,OAAA,GAA6C;AAAA,QACjD,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,aAAA,EAAe,OAAO,IAAA,CAAK,IAAA,CAAA,CAAM,OAAO,KAAA,GAAQ,GAAA,IAAO,GAAI,CAAC,CAAA;AAAA,QAC5D,cAAA,EAAgB;AAAA,OAClB;AAEA,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA;AAAA,QACA,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,4BAAQ;AAAA,OACxC;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,EAAK;AAEX,IAAA,IAAI,IAAI,QAAA,EAAU;AAChB,MAAA,MAAM,WAAA,GAAc,EAAE,GAAG,GAAA,CAAI,QAAA,EAAS;AACtC,MAAA,WAAA,CAAY,OAAA,GAAU;AAAA,QACpB,GAAI,WAAA,CAAY,OAAA;AAAA,QAChB,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,QACtC,uBAAA,EAAyB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,QAC9C,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,KAAK;AAAA,OACxC;AAEA,MAAA,OAAO,WAAA;AAAA,IACT;AAAA,EACF,CAAA;AACF","file":"index.mjs","sourcesContent":["/**\n * 限流中间件实现\n */\nimport type { RateLimitOptions, RateLimitInfo } from './types';\nimport type { Middleware, MiddlewareContext } from '@lytjs/middleware';\nimport { createRateLimiter } from '@lytjs/common-rate-limit';\n\n/**\n * 创建限流中间件\n *\n * @param options - 限流配置选项\n * @returns 限流中间件函数\n */\nexport function createRateLimitMiddleware(options: RateLimitOptions): Middleware {\n const limiter = createRateLimiter({\n max: options.max,\n windowMs: options.windowMs,\n });\n const keyGenerator =\n options.keyGenerator ||\n ((request: unknown, _ctx: MiddlewareContext) => {\n const req = request as Record<string, unknown>;\n const headers = req.headers as Record<string, string | string[]> | undefined;\n return headers?.['x-forwarded-for']?.[0] || 'unknown';\n }) as (request: unknown, ctx: MiddlewareContext) => string;\n\n return async (request: unknown, ctx: MiddlewareContext, next: () => Promise<void>) => {\n const key = keyGenerator(request, ctx);\n const now = Date.now();\n const result = limiter.check(key);\n\n const info: RateLimitInfo = {\n remaining: result.remaining,\n reset: result.reset,\n limit: result.limit,\n };\n\n ctx.rateLimit = info;\n\n if (!result.allowed) {\n const headers: Record<string, string | string[]> = {\n 'X-RateLimit-Limit': String(info.limit),\n 'X-RateLimit-Remaining': String(info.remaining),\n 'X-RateLimit-Reset': String(info.reset),\n 'Retry-After': String(Math.ceil((result.reset - now) / 1000)),\n 'Content-Type': 'application/json',\n };\n\n return {\n status: 429,\n headers,\n body: JSON.stringify({ error: '请求过多' }),\n };\n }\n\n await next();\n\n if (ctx.response) {\n const newResponse = { ...ctx.response } as Record<string, unknown>;\n newResponse.headers = {\n ...(newResponse.headers as Record<string, string | string[]>),\n 'X-RateLimit-Limit': String(info.limit),\n 'X-RateLimit-Remaining': String(info.remaining),\n 'X-RateLimit-Reset': String(info.reset),\n };\n\n return newResponse;\n }\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lytjs/middleware-rate-limit",
|
|
3
|
-
"version": "6.9.
|
|
3
|
+
"version": "6.9.2",
|
|
4
4
|
"description": "LytJS 速率限制中间件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"clean": "rm -rf dist node_modules .turbo"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@lytjs/common-is": "
|
|
35
|
-
"@lytjs/common-rate-limit": "
|
|
34
|
+
"@lytjs/common-is": "workspace:*",
|
|
35
|
+
"@lytjs/common-rate-limit": "workspace:*"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"tsup": "^8.3.6",
|