@teambit/express 0.0.587 → 0.0.590
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/express.aspect.js.map +1 -1
- package/dist/express.composition.js.map +1 -1
- package/dist/express.main.runtime.js +6 -2
- package/dist/express.main.runtime.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware-manifest.js.map +1 -1
- package/dist/middlewares/error.js.map +1 -1
- package/dist/middlewares/index.js.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/next.js.map +1 -1
- package/dist/types/request.js.map +1 -1
- package/dist/types/response.js.map +1 -1
- package/dist/types/route.d.ts +1 -0
- package/dist/types/route.js.map +1 -1
- package/package-tar/teambit-express-0.0.590.tgz +0 -0
- package/package.json +6 -6
- package/{preview-1652808661748.js → preview-1653708349111.js} +2 -2
- package/tsconfig.json +1 -1
- package/types/route.ts +1 -0
- package/package-tar/teambit-express-0.0.587.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ExpressAspect","Aspect","create","id","dependencies","defaultConfig"],"sources":["express.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ExpressAspect = Aspect.create({\n id: 'teambit.harmony/express',\n dependencies: [],\n defaultConfig: {},\n});\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,aAAa,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EACzCC,EAAE,EAAE,yBADqC;EAEzCC,YAAY,EAAE,EAF2B;EAGzCC,aAAa,EAAE;AAH0B,CAAd,CAAtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["express.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/express.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAV;IAAkBC,OAAO,EAAE,MAA3B;IAAmCC,cAAc,EAAE;EAAnD;AAAZ,gBACE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAT,CAAZ;EAA2B,GAAG,EAAC;AAA/B,EADF,CADK"}
|
|
@@ -170,6 +170,7 @@ class ExpressMain {
|
|
|
170
170
|
namespace: _express2().ExpressAspect.id,
|
|
171
171
|
method: 'get',
|
|
172
172
|
path: '/_health',
|
|
173
|
+
disableNamespace: false,
|
|
173
174
|
middlewares: [async (req, res) => res.send('ok')]
|
|
174
175
|
}];
|
|
175
176
|
}
|
|
@@ -190,10 +191,12 @@ class ExpressMain {
|
|
|
190
191
|
const {
|
|
191
192
|
method,
|
|
192
193
|
path,
|
|
193
|
-
middlewares
|
|
194
|
+
middlewares,
|
|
195
|
+
disableNamespace
|
|
194
196
|
} = routeInfo; // TODO: @guy make sure to support single middleware here.
|
|
195
197
|
|
|
196
|
-
|
|
198
|
+
const namespace = disableNamespace ? '' : `/${this.config.namespace}`;
|
|
199
|
+
app[method](`${namespace}${path}`, this.catchErrorsMiddlewares(middlewares));
|
|
197
200
|
});
|
|
198
201
|
return app;
|
|
199
202
|
}
|
|
@@ -206,6 +209,7 @@ class ExpressMain {
|
|
|
206
209
|
return {
|
|
207
210
|
method: (0, _lodash().lowerCase)(route.method),
|
|
208
211
|
path: route.route,
|
|
212
|
+
disableNamespace: route.disableNamespace,
|
|
209
213
|
middlewares
|
|
210
214
|
};
|
|
211
215
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["express.main.runtime.ts"],"names":["ExpressMain","constructor","config","moduleSlot","logger","middlewareSlot","listen","port","serverPort","app","createApp","register","routes","registerMiddleware","middlewares","createRootRoutes","namespace","ExpressAspect","id","method","path","req","res","send","expressApp","options","internalRoutes","createRoutes","allRoutes","use","next","loggerIgnorePath","includes","url","debug","headers","disableBodyParser","bodyParser","toArray","flatMap","middlewareManifest","middleware","forEach","routeInfo","catchErrorsMiddlewares","routesSlots","routeEntries","map","route","verbValidation","verb","Verb","READ","status","jsonp","message","error","json","limit","raw","type","provider","loggerFactory","routeSlot","createLogger","MainRuntime","Slot","withType","LoggerAspect","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport express, { Express } from 'express';\nimport { concat, flatten, lowerCase } from 'lodash';\nimport bodyParser from 'body-parser';\nimport { ExpressAspect } from './express.aspect';\nimport { catchErrors } from './middlewares';\nimport { Middleware, Request, Response, Route, Verb } from './types';\nimport { MiddlewareManifest } from './middleware-manifest';\n\nexport type ExpressConfig = {\n port: number;\n namespace: string;\n loggerIgnorePath: string[];\n};\n\nexport type MiddlewareSlot = SlotRegistry<MiddlewareManifest[]>;\n\nexport type RouteSlot = SlotRegistry<Route[]>;\n\nexport class ExpressMain {\n static runtime = MainRuntime;\n\n constructor(\n /**\n * extension config\n */\n readonly config: ExpressConfig,\n\n /**\n * slot for registering graphql modules\n */\n private moduleSlot: RouteSlot,\n\n /**\n * logger extension.\n */\n readonly logger: Logger,\n\n readonly middlewareSlot: MiddlewareSlot\n ) {}\n\n /**\n * start a express server.\n */\n async listen(port?: number) {\n const serverPort = port || this.config.port;\n const app = this.createApp();\n app.listen(serverPort);\n }\n\n /**\n * register a new express routes.\n * route will be added as `/api/${route}`\n */\n register(routes: Route[]) {\n this.moduleSlot.register(routes);\n return this;\n }\n\n /**\n * register a new middleware into express.\n */\n registerMiddleware(middlewares: MiddlewareManifest[]) {\n this.middlewareSlot.register(middlewares);\n return this;\n }\n\n private createRootRoutes() {\n // TODO: @guy refactor health to service aspect.\n return [\n {\n namespace: ExpressAspect.id,\n method: 'get',\n path: '/_health',\n middlewares: [async (req: Request, res: Response) => res.send('ok')],\n },\n ];\n }\n\n createApp(expressApp?: Express, options?: { disableBodyParser: true }): Express {\n const internalRoutes = this.createRootRoutes();\n const routes = this.createRoutes();\n const allRoutes = concat(routes, internalRoutes);\n const app = expressApp || express();\n app.use((req, res, next) => {\n if (this.config.loggerIgnorePath.includes(req.url)) return next();\n this.logger.debug(`express got a request to a URL: ${req.url}', headers:`, req.headers);\n return next();\n });\n if (!options?.disableBodyParser) this.bodyParser(app);\n\n this.middlewareSlot\n .toArray()\n .flatMap(([, middlewares]) =>\n middlewares.flatMap((middlewareManifest) => app.use(middlewareManifest.middleware))\n );\n allRoutes.forEach((routeInfo) => {\n const { method, path, middlewares } = routeInfo;\n // TODO: @guy make sure to support single middleware here.\n app[method](`/${this.config.namespace}${path}`, this.catchErrorsMiddlewares(middlewares));\n });\n\n return app;\n }\n\n private createRoutes() {\n const routesSlots = this.moduleSlot.toArray();\n const routeEntries = routesSlots.map(([, routes]) => {\n return routes.map((route) => {\n const middlewares = flatten([this.verbValidation(route), route.middlewares]);\n return {\n method: lowerCase(route.method),\n path: route.route,\n middlewares,\n };\n });\n });\n\n return flatten(routeEntries);\n }\n\n private verbValidation(route: Route): Middleware {\n return async (req: express.Request, res: express.Response, next: express.NextFunction) => {\n if (!route.verb) return next();\n const verb = req.headers['x-verb'] || Verb.READ;\n if (verb !== route.verb) {\n res.status(403);\n return res.jsonp({ message: 'You are not authorized', error: 'forbidden' });\n }\n return next();\n };\n }\n\n private catchErrorsMiddlewares(middlewares: Middleware[]) {\n return middlewares.map((middleware) => catchErrors(middleware));\n }\n\n private bodyParser(app: Express) {\n app.use(bodyParser.json({ limit: '5000mb' }));\n app.use(bodyParser.raw({ type: 'application/octet-stream', limit: '5000mb' }));\n }\n\n static slots = [Slot.withType<Route[]>(), Slot.withType<MiddlewareManifest[]>()];\n static dependencies = [LoggerAspect];\n\n static defaultConfig = {\n port: 4001,\n namespace: 'api',\n loggerIgnorePath: ['/api/_health'],\n };\n\n static async provider(\n [loggerFactory]: [LoggerMain],\n config: ExpressConfig,\n [routeSlot, middlewareSlot]: [RouteSlot, MiddlewareSlot]\n ) {\n const logger = loggerFactory.createLogger(ExpressAspect.id);\n return new ExpressMain(config, routeSlot, logger, middlewareSlot);\n }\n}\n\nExpressAspect.addRuntime(ExpressMain);\n"]}
|
|
1
|
+
{"version":3,"names":["ExpressMain","constructor","config","moduleSlot","logger","middlewareSlot","listen","port","serverPort","app","createApp","register","routes","registerMiddleware","middlewares","createRootRoutes","namespace","ExpressAspect","id","method","path","disableNamespace","req","res","send","expressApp","options","internalRoutes","createRoutes","allRoutes","concat","express","use","next","loggerIgnorePath","includes","url","debug","headers","disableBodyParser","bodyParser","toArray","flatMap","middlewareManifest","middleware","forEach","routeInfo","catchErrorsMiddlewares","routesSlots","routeEntries","map","route","flatten","verbValidation","lowerCase","verb","Verb","READ","status","jsonp","message","error","catchErrors","json","limit","raw","type","provider","loggerFactory","routeSlot","createLogger","MainRuntime","Slot","withType","LoggerAspect","addRuntime"],"sources":["express.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport express, { Express } from 'express';\nimport { concat, flatten, lowerCase } from 'lodash';\nimport bodyParser from 'body-parser';\nimport { ExpressAspect } from './express.aspect';\nimport { catchErrors } from './middlewares';\nimport { Middleware, Request, Response, Route, Verb } from './types';\nimport { MiddlewareManifest } from './middleware-manifest';\n\nexport type ExpressConfig = {\n port: number;\n namespace: string;\n loggerIgnorePath: string[];\n};\n\nexport type MiddlewareSlot = SlotRegistry<MiddlewareManifest[]>;\n\nexport type RouteSlot = SlotRegistry<Route[]>;\n\nexport class ExpressMain {\n static runtime = MainRuntime;\n\n constructor(\n /**\n * extension config\n */\n readonly config: ExpressConfig,\n\n /**\n * slot for registering graphql modules\n */\n private moduleSlot: RouteSlot,\n\n /**\n * logger extension.\n */\n readonly logger: Logger,\n\n readonly middlewareSlot: MiddlewareSlot\n ) {}\n\n /**\n * start a express server.\n */\n async listen(port?: number) {\n const serverPort = port || this.config.port;\n const app = this.createApp();\n app.listen(serverPort);\n }\n\n /**\n * register a new express routes.\n * route will be added as `/api/${route}`\n */\n register(routes: Route[]) {\n this.moduleSlot.register(routes);\n return this;\n }\n\n /**\n * register a new middleware into express.\n */\n registerMiddleware(middlewares: MiddlewareManifest[]) {\n this.middlewareSlot.register(middlewares);\n return this;\n }\n\n private createRootRoutes() {\n // TODO: @guy refactor health to service aspect.\n return [\n {\n namespace: ExpressAspect.id,\n method: 'get',\n path: '/_health',\n disableNamespace: false,\n middlewares: [async (req: Request, res: Response) => res.send('ok')],\n },\n ];\n }\n\n createApp(expressApp?: Express, options?: { disableBodyParser: true }): Express {\n const internalRoutes = this.createRootRoutes();\n const routes = this.createRoutes();\n const allRoutes = concat(routes, internalRoutes);\n const app = expressApp || express();\n app.use((req, res, next) => {\n if (this.config.loggerIgnorePath.includes(req.url)) return next();\n this.logger.debug(`express got a request to a URL: ${req.url}', headers:`, req.headers);\n return next();\n });\n if (!options?.disableBodyParser) this.bodyParser(app);\n\n this.middlewareSlot\n .toArray()\n .flatMap(([, middlewares]) =>\n middlewares.flatMap((middlewareManifest) => app.use(middlewareManifest.middleware))\n );\n allRoutes.forEach((routeInfo) => {\n const { method, path, middlewares, disableNamespace } = routeInfo;\n // TODO: @guy make sure to support single middleware here.\n const namespace = disableNamespace ? '' : `/${this.config.namespace}`;\n app[method](`${namespace}${path}`, this.catchErrorsMiddlewares(middlewares));\n });\n\n return app;\n }\n\n private createRoutes() {\n const routesSlots = this.moduleSlot.toArray();\n const routeEntries = routesSlots.map(([, routes]) => {\n return routes.map((route) => {\n const middlewares = flatten([this.verbValidation(route), route.middlewares]);\n return {\n method: lowerCase(route.method),\n path: route.route,\n disableNamespace: route.disableNamespace,\n middlewares,\n };\n });\n });\n\n return flatten(routeEntries);\n }\n\n private verbValidation(route: Route): Middleware {\n return async (req: express.Request, res: express.Response, next: express.NextFunction) => {\n if (!route.verb) return next();\n const verb = req.headers['x-verb'] || Verb.READ;\n if (verb !== route.verb) {\n res.status(403);\n return res.jsonp({ message: 'You are not authorized', error: 'forbidden' });\n }\n return next();\n };\n }\n\n private catchErrorsMiddlewares(middlewares: Middleware[]) {\n return middlewares.map((middleware) => catchErrors(middleware));\n }\n\n private bodyParser(app: Express) {\n app.use(bodyParser.json({ limit: '5000mb' }));\n app.use(bodyParser.raw({ type: 'application/octet-stream', limit: '5000mb' }));\n }\n\n static slots = [Slot.withType<Route[]>(), Slot.withType<MiddlewareManifest[]>()];\n static dependencies = [LoggerAspect];\n\n static defaultConfig = {\n port: 4001,\n namespace: 'api',\n loggerIgnorePath: ['/api/_health'],\n };\n\n static async provider(\n [loggerFactory]: [LoggerMain],\n config: ExpressConfig,\n [routeSlot, middlewareSlot]: [RouteSlot, MiddlewareSlot]\n ) {\n const logger = loggerFactory.createLogger(ExpressAspect.id);\n return new ExpressMain(config, routeSlot, logger, middlewareSlot);\n }\n}\n\nExpressAspect.addRuntime(ExpressMain);\n"],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { RouteSlot } from './express.main.runtime';\nexport { Route, Verb } from './types';\nexport { Request, Response, NextFunction } from './types';\nexport type { ExpressMain } from './express.main.runtime';\nexport { ExpressAspect } from './express.aspect';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["middleware-manifest.ts"],"sourcesContent":["import { Middleware } from './types';\n\nexport interface MiddlewareManifest {\n middleware: Middleware;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["catchErrors","action","req","res","next","catch","error","errorHandle","err","logger","url","status","jsonp","message"],"sources":["error.ts"],"sourcesContent":["import * as express from 'express';\nimport logger from '@teambit/legacy/dist/logger/logger';\n\ninterface ResponseError {\n status?: number;\n message?: string;\n}\n\nexport const catchErrors = (action: any) => (req: express.Request, res: express.Response, next: express.NextFunction) =>\n // TODO: @guy please take care of it\n // eslint-disable-next-line promise/no-callback-in-promise\n action(req, res, next).catch((error: ResponseError) => errorHandle(error, req, res, next));\n\nexport function errorHandle(\n err: ResponseError,\n req: express.Request,\n res: express.Response,\n // TODO: Do not remove unused next, it's needed for express to catch errors!\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n next: express.NextFunction\n) {\n logger.error(`express.errorHandle, url ${req.url}, error:`, err);\n err.status = err.status || 500;\n res.status(err.status);\n return res.jsonp({\n message: err.message,\n error: err,\n });\n}\n"],"mappings":";;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,MAAMA,WAAW,GAAIC,MAAD,IAAiB,CAACC,GAAD,EAAuBC,GAAvB,EAA8CC,IAA9C,KAC1C;AACA;AACAH,MAAM,CAACC,GAAD,EAAMC,GAAN,EAAWC,IAAX,CAAN,CAAuBC,KAAvB,CAA8BC,KAAD,IAA0BC,WAAW,CAACD,KAAD,EAAQJ,GAAR,EAAaC,GAAb,EAAkBC,IAAlB,CAAlE,CAHK;;;;AAKA,SAASG,WAAT,CACLC,GADK,EAELN,GAFK,EAGLC,GAHK,EAIL;AACA;AACAC,IANK,EAOL;EACAK,iBAAA,CAAOH,KAAP,CAAc,4BAA2BJ,GAAG,CAACQ,GAAI,UAAjD,EAA4DF,GAA5D;;EACAA,GAAG,CAACG,MAAJ,GAAaH,GAAG,CAACG,MAAJ,IAAc,GAA3B;EACAR,GAAG,CAACQ,MAAJ,CAAWH,GAAG,CAACG,MAAf;EACA,OAAOR,GAAG,CAACS,KAAJ,CAAU;IACfC,OAAO,EAAEL,GAAG,CAACK,OADE;IAEfP,KAAK,EAAEE;EAFQ,CAAV,CAAP;AAID"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { catchErrors, errorHandle } from './error';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Request } from './request';\nexport { Response } from './response';\nexport { NextFunction } from './next';\nexport { Route, Middleware, Verb } from './route';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
package/dist/types/next.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["next.ts"],"sourcesContent":["import express from 'express';\n\nexport type NextFunction = express.NextFunction;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["request.ts"],"sourcesContent":["export type { Request } from 'express';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["response.ts"],"sourcesContent":["import express from 'express';\n\nexport type Response = {} & express.Response;\n"],"mappings":""}
|
package/dist/types/route.d.ts
CHANGED
package/dist/types/route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Verb"],"sources":["route.ts"],"sourcesContent":["import { NextFunction } from './next';\nimport { Request } from './request';\nimport { Response } from './response';\n\n/**\n * define express Middleware\n */\nexport type Middleware = (req: Request, res: Response, next: NextFunction) => Promise<any>;\n\nexport enum Verb {\n WRITE = 'write',\n READ = 'read',\n}\n\n/**\n * express new Route\n */\n\nexport interface Route {\n method: string;\n route: string | RegExp;\n disableNamespace?: boolean;\n verb?: Verb;\n middlewares: Middleware[];\n}\n"],"mappings":";;;;;;;AAIA;AACA;AACA;IAGYA,I;AAKZ;AACA;AACA;;;;WAPYA,I;EAAAA,I;EAAAA,I;GAAAA,I,oBAAAA,I"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/express",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.590",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/harmony/express",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.harmony",
|
|
8
8
|
"name": "express",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.590"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"body-parser": "1.19.0",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"@babel/runtime": "7.12.18",
|
|
16
16
|
"core-js": "^3.0.0",
|
|
17
17
|
"@teambit/harmony": "0.3.3",
|
|
18
|
-
"@teambit/cli": "0.0.
|
|
19
|
-
"@teambit/logger": "0.0.
|
|
18
|
+
"@teambit/cli": "0.0.493",
|
|
19
|
+
"@teambit/logger": "0.0.585"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/react": "^17.0.8",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@types/node": "12.20.4"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@teambit/legacy": "1.0.
|
|
32
|
+
"@teambit/legacy": "1.0.273",
|
|
33
33
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
34
34
|
"react": "^16.8.0 || ^17.0.0"
|
|
35
35
|
},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"react": "-"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"@teambit/legacy": "1.0.
|
|
60
|
+
"@teambit/legacy": "1.0.273",
|
|
61
61
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
62
62
|
"react": "^16.8.0 || ^17.0.0"
|
|
63
63
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_express@0.0.
|
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_express@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_express@0.0.590/dist/express.composition.js')]
|
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_express@0.0.590/dist/express.docs.mdx')]
|
package/tsconfig.json
CHANGED
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"declaration": true,
|
|
16
16
|
"sourceMap": true,
|
|
17
17
|
"skipLibCheck": true,
|
|
18
|
+
"experimentalDecorators": true,
|
|
18
19
|
"outDir": "dist",
|
|
19
20
|
"moduleResolution": "node",
|
|
20
21
|
"esModuleInterop": true,
|
|
21
22
|
"rootDir": ".",
|
|
22
23
|
"resolveJsonModule": true,
|
|
23
24
|
"emitDeclarationOnly": true,
|
|
24
|
-
"experimentalDecorators": true,
|
|
25
25
|
"emitDecoratorMetadata": true,
|
|
26
26
|
"allowSyntheticDefaultImports": true,
|
|
27
27
|
"strictPropertyInitialization": false,
|
package/types/route.ts
CHANGED
|
Binary file
|