veloce-ts 0.2.0 → 0.2.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.
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{d as m}from"../../chunk-vkkzgaf7.js";import{M as u}from"../docs/index.js";import{da as b}from"../../chunk-yyxd7dw5.js";import"../../chunk-qg4ngg5j.js";import"../../chunk-vzhqg5mb.js";import"../../chunk-sv2c5krg.js";import"../../chunk-r8ssy5cv.js";import"../../chunk-9f0s1qbb.js";import"../../chunk-f64j5zbr.js";class x{name="openapi";version="1.0.0";options;constructor(l){this.options={title:l?.title||"Veloce-TS API",version:l?.version||"1.0.0",description:l?.description||"API built with Veloce-TS",path:l?.path||"/openapi.json",docsPath:l?.docsPath||"/docs",docs:l?.docs!==!1}}async install(l){let r=l.getConfig();if(r.title)this.options.title=r.title;if(r.version)this.options.version=r.version;if(r.description)this.options.description=r.description;l.get(this.options.path,{handler:async()=>{return this.generateSpec(l)},docs:{summary:"Get OpenAPI specification",description:"Returns the OpenAPI 3.0 specification for this API",tags:["Documentation"]}})}generateSpec(l){let r=l.getMetadata();return new u(r,this.options).generate()}renderSwaggerUI(){return`<!DOCTYPE html>
2
+ import{d as m}from"../../chunk-vkkzgaf7.js";import{M as u}from"../docs/index.js";import{da as b}from"../../chunk-q0w1t07v.js";import"../../chunk-qg4ngg5j.js";import"../../chunk-vzhqg5mb.js";import"../../chunk-sv2c5krg.js";import"../../chunk-r8ssy5cv.js";import"../../chunk-9f0s1qbb.js";import"../../chunk-f64j5zbr.js";class x{name="openapi";version="1.0.0";options;constructor(l){this.options={title:l?.title||"Veloce-TS API",version:l?.version||"1.0.0",description:l?.description||"API built with Veloce-TS",path:l?.path||"/openapi.json",docsPath:l?.docsPath||"/docs",docs:l?.docs!==!1}}async install(l){let r=l.getConfig();if(r.title)this.options.title=r.title;if(r.version)this.options.version=r.version;if(r.description)this.options.description=r.description;l.get(this.options.path,{handler:async()=>{return this.generateSpec(l)},docs:{summary:"Get OpenAPI specification",description:"Returns the OpenAPI 3.0 specification for this API",tags:["Documentation"]}})}generateSpec(l){let r=l.getMetadata();return new u(r,this.options).generate()}renderSwaggerUI(){return`<!DOCTYPE html>
3
3
  <html lang="en">
4
4
  <head>
5
5
  <meta charset="UTF-8">
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+CpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASzD"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASzD"}
@@ -33,6 +33,7 @@ export declare function GQLQuery(name?: string, options?: {
33
33
  deprecationReason?: string;
34
34
  }): MethodDecorator;
35
35
  export { GQLQuery as GraphQLQuery };
36
+ export { GQLQuery as Query };
36
37
  /**
37
38
  * @GQLMutation decorator - Marks a method as a GraphQL mutation
38
39
  *
@@ -50,6 +51,7 @@ export declare function GQLMutation(name?: string, options?: {
50
51
  deprecationReason?: string;
51
52
  }): MethodDecorator;
52
53
  export { GQLMutation as GraphQLMutation };
54
+ export { GQLMutation as Mutation };
53
55
  /**
54
56
  * @GQLSubscription decorator - Marks a method as a GraphQL subscription
55
57
  *
@@ -67,6 +69,7 @@ export declare function GQLSubscription(name?: string, options?: {
67
69
  deprecationReason?: string;
68
70
  }): MethodDecorator;
69
71
  export { GQLSubscription as GraphQLSubscription };
72
+ export { GQLSubscription as Subscription };
70
73
  /**
71
74
  * @Arg decorator - Marks a parameter as a GraphQL argument with validation
72
75
  *
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/decorators/graphql.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EAExB,MAAM,UAAU,CAAC;AAOlB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAStD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAElB;AAGD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAElB;AAGD,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAElB;AAGD,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,CAAC;AAmClD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,SAAS,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,CAAC,EACV,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,kBAAkB,CAkBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,kBAAkB,CAe/C;AAGD,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC;AAMpC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,uBAAuB,GAAG,SAAS,CAEpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,oBAAoB,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEnG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAEhG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE1E"}
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/decorators/graphql.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EAExB,MAAM,UAAU,CAAC;AAOlB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAStD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAElB;AAGD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAElB;AAGD,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAC;AAC1C,OAAO,EAAE,WAAW,IAAI,QAAQ,EAAE,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAElB;AAGD,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,CAAC;AAClD,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,CAAC;AAmC3C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,SAAS,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,CAAC,EACV,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,kBAAkB,CAkBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,kBAAkB,CAe/C;AAGD,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC;AAMpC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,uBAAuB,GAAG,SAAS,CAEpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,oBAAoB,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEnG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAEhG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE1E"}
@@ -1,4 +1,5 @@
1
1
  export * from './schema-builder';
2
2
  export * from './zod-to-graphql';
3
3
  export * from './plugin';
4
+ export * from '../decorators/graphql';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphql/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphql/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AAGzB,cAAc,uBAAuB,CAAC"}
@@ -6,7 +6,7 @@ export { MetadataRegistry } from './core/metadata';
6
6
  export { RouterCompiler } from './core/router-compiler';
7
7
  export { MetadataCompiler, type CompiledRouteMetadata } from './core/compiled-metadata';
8
8
  export * from './decorators/http';
9
- export * from './decorators/params';
9
+ export { Body, Param, Header, Cookie, Ctx } from './decorators/params';
10
10
  export * from './decorators/dependencies';
11
11
  export * from './decorators/middleware';
12
12
  export * from './decorators/docs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGxF,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGtF,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AAEvC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG5I,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACzR,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGxF,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACvE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGtF,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AAEvC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG5I,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACzR,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veloce-ts",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "A modern, fast web framework for TypeScript with authentication, RBAC, GraphQL, and WebSockets",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/src/index.js",
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["..\\..\\src\\cli\\commands\\new.ts"],
4
- "sourcesContent": [
5
- "import { Command } from 'commander';\r\nimport { mkdir, writeFile } from 'fs/promises';\r\nimport { join } from 'path';\r\nimport { existsSync } from 'fs';\r\n\r\nasync function generateSwaggerUI(projectPath: string): Promise<void> {\r\n const html = `<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"utf-8\" />\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\r\n <title>API Documentation</title>\r\n <link rel=\"stylesheet\" href=\"https://unpkg.com/swagger-ui-dist@5.9.0/swagger-ui.css\" />\r\n <style>\r\n body { margin: 0; padding: 0; }\r\n </style>\r\n</head>\r\n<body>\r\n <div id=\"swagger-ui\"></div>\r\n <script src=\"https://unpkg.com/swagger-ui-dist@5.9.0/swagger-ui-bundle.js\" crossorigin></script>\r\n <script src=\"https://unpkg.com/swagger-ui-dist@5.9.0/swagger-ui-standalone-preset.js\" crossorigin></script>\r\n <script>\r\n window.onload = () => {\r\n window.ui = SwaggerUIBundle({\r\n url: 'http://localhost:3000/openapi.json',\r\n dom_id: '#swagger-ui',\r\n deepLinking: true,\r\n presets: [\r\n SwaggerUIBundle.presets.apis,\r\n SwaggerUIStandalonePreset\r\n ],\r\n layout: \"StandaloneLayout\"\r\n });\r\n };\r\n </script>\r\n</body>\r\n</html>`;\r\n \r\n await writeFile(join(projectPath, 'public', 'docs.html'), html);\r\n}\r\n\r\ntype Template = 'rest' | 'graphql' | 'websocket' | 'fullstack';\r\n\r\ninterface ProjectOptions {\r\n template: Template;\r\n}\r\n\r\nexport function registerNewCommand(program: Command): void {\r\n program\r\n .command('new')\r\n .description('Create a new VeloceTS project')\r\n .argument('<name>', 'Project name')\r\n .option('-t, --template <template>', 'Project template (rest, graphql, websocket, fullstack)', 'rest')\r\n .action(async (name: string, options: ProjectOptions) => {\r\n await createProject(name, options);\r\n });\r\n}\r\n\r\nasync function createProject(name: string, options: ProjectOptions): Promise<void> {\r\n const projectPath = join(process.cwd(), name);\r\n\r\n // Check if directory already exists\r\n if (existsSync(projectPath)) {\r\n console.error(`Error: Directory \"${name}\" already exists`);\r\n process.exit(1);\r\n }\r\n\r\n console.log(`Creating new VeloceTS project: ${name}`);\r\n console.log(`Template: ${options.template}`);\r\n\r\n try {\r\n // Create project directory\r\n await mkdir(projectPath, { recursive: true });\r\n\r\n // Create subdirectories\r\n await mkdir(join(projectPath, 'src'), { recursive: true });\r\n await mkdir(join(projectPath, 'src', 'controllers'), { recursive: true });\r\n\r\n // Generate files based on template\r\n await generatePackageJson(projectPath, name);\r\n await generateTsConfig(projectPath);\r\n await generateGitignore(projectPath);\r\n await generateReadme(projectPath, name, options.template);\r\n\r\n switch (options.template) {\r\n case 'rest':\r\n await generateRestTemplate(projectPath);\r\n break;\r\n case 'graphql':\r\n await generateGraphQLTemplate(projectPath);\r\n break;\r\n case 'websocket':\r\n await generateWebSocketTemplate(projectPath);\r\n break;\r\n case 'fullstack':\r\n await generateFullstackTemplate(projectPath);\r\n break;\r\n }\r\n\r\n // Generate public directory with Swagger UI HTML\r\n await mkdir(join(projectPath, 'public'), { recursive: true });\r\n await generateSwaggerUI(projectPath);\r\n\r\n console.log('\\n✓ Project created successfully!');\r\n console.log('\\nNext steps:');\r\n console.log(` cd ${name}`);\r\n console.log(' bun install');\r\n console.log(' bun run dev');\r\n } catch (error) {\r\n console.error('Error creating project:', error);\r\n process.exit(1);\r\n }\r\n}\r\n\r\nasync function generatePackageJson(projectPath: string, name: string): Promise<void> {\r\n const packageJson = {\r\n name,\r\n version: '0.1.0',\r\n description: 'A Veloce-TS application',\r\n type: 'module',\r\n main: './dist/index.js',\r\n scripts: {\r\n dev: 'bun --watch src/index.ts',\r\n build: 'bun build src/index.ts --outdir dist --target bun',\r\n start: 'bun run dist/index.js',\r\n 'generate:openapi': 'bun run node_modules/veloce-ts/bin/veloce.ts generate openapi',\r\n 'generate:client': 'bun run node_modules/veloce-ts/bin/veloce.ts generate client',\r\n },\r\n dependencies: {\r\n 'veloce-ts': '^0.1.0',\r\n hono: '^4.0.0',\r\n 'reflect-metadata': '^0.2.0',\r\n zod: '^3.22.0',\r\n },\r\n devDependencies: {\r\n '@types/bun': 'latest',\r\n typescript: '^5.3.0',\r\n },\r\n };\r\n\r\n await writeFile(\r\n join(projectPath, 'package.json'),\r\n JSON.stringify(packageJson, null, 2)\r\n );\r\n}\r\n\r\nasync function generateTsConfig(projectPath: string): Promise<void> {\r\n const tsConfig = {\r\n compilerOptions: {\r\n target: 'ES2022',\r\n module: 'ESNext',\r\n lib: ['ES2022'],\r\n moduleResolution: 'bundler',\r\n experimentalDecorators: true,\r\n emitDecoratorMetadata: true,\r\n strict: true,\r\n esModuleInterop: true,\r\n skipLibCheck: true,\r\n forceConsistentCasingInFileNames: true,\r\n resolveJsonModule: true,\r\n outDir: './dist',\r\n rootDir: './src',\r\n },\r\n include: ['src/**/*'],\r\n exclude: ['node_modules', 'dist'],\r\n };\r\n\r\n await writeFile(\r\n join(projectPath, 'tsconfig.json'),\r\n JSON.stringify(tsConfig, null, 2)\r\n );\r\n}\r\n\r\nasync function generateGitignore(projectPath: string): Promise<void> {\r\n const gitignore = `node_modules/\r\ndist/\r\n*.log\r\n.env\r\n.DS_Store\r\n`;\r\n\r\n await writeFile(join(projectPath, '.gitignore'), gitignore);\r\n}\r\n\r\nasync function generateReadme(projectPath: string, name: string, template: Template): Promise<void> {\r\n const readme = `# ${name}\r\n\r\nA modern TypeScript API built with [Veloce-TS](https://github.com/AlfredoMejia3001/veloce-ts) using the **${template}** template.\r\n\r\n## Getting Started\r\n\r\n### Install Dependencies\r\n\r\n\\`\\`\\`bash\r\nbun install\r\n\\`\\`\\`\r\n\r\n### Development\r\n\r\nRun the development server with hot reload:\r\n\r\n\\`\\`\\`bash\r\nbun run dev\r\n\\`\\`\\`\r\n\r\nYour API will be available at http://localhost:3000\r\n\r\n### Production\r\n\r\nBuild and start the production server:\r\n\r\n\\`\\`\\`bash\r\nbun run build\r\nbun run start\r\n\\`\\`\\`\r\n\r\n## Documentation\r\n\r\n- **API Documentation**: Visit http://localhost:3000/docs.html for interactive Swagger UI\r\n- **Veloce-TS Docs**: Check out the [official documentation](https://docs.veloce-ts.com)\r\n\r\n## Project Structure\r\n\r\n\\`\\`\\`\r\n${name}/\r\n├── src/\r\n│ └── index.ts # Application entry point\r\n├── package.json\r\n├── tsconfig.json\r\n└── README.md\r\n\\`\\`\\`\r\n\r\n## Learn More\r\n\r\n- [Veloce-TS GitHub](https://github.com/AlfredoMejia3001/veloce-ts)\r\n- [TypeScript Documentation](https://www.typescriptlang.org/docs/)\r\n- [Bun Documentation](https://bun.sh/docs)\r\n\r\n---\r\n\r\nBuilt with Veloce-TS\r\n`;\r\n\r\n await writeFile(join(projectPath, 'README.md'), readme);\r\n}\r\n\r\nasync function generateRestTemplate(projectPath: string): Promise<void> {\r\n // Create main entry point\r\n const mainFile = `import 'reflect-metadata';\r\nimport { Veloce } from 'veloce-ts';\r\nimport { OpenAPIPlugin } from 'veloce-ts/plugins';\r\nimport { UserController } from './controllers/user.controller';\r\nimport { cors } from 'hono/cors';\r\nimport { serveStatic } from 'hono/bun';\r\n\r\nconst app = new Veloce({\r\n title: 'My REST API',\r\n version: '1.0.0',\r\n docs: true,\r\n});\r\n\r\n// Enable CORS\r\napp.use(cors());\r\n\r\n// Serve static files (for Swagger UI)\r\napp.use(serveStatic({ root: './public' }));\r\n\r\n// Enable OpenAPI documentation\r\napp.usePlugin(new OpenAPIPlugin({\r\n path: '/openapi.json',\r\n docsPath: '/docs',\r\n}));\r\n\r\n// Register controllers\r\napp.include(UserController);\r\n\r\n// Compile routes\r\nawait app.compile();\r\n\r\n// Start server\r\napp.listen(3000, () => {\r\n console.log('Server running on http://localhost:3000');\r\n console.log('API Docs available at http://localhost:3000/docs.html');\r\n console.log('OpenAPI Spec at http://localhost:3000/openapi.json');\r\n});\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'index.ts'), mainFile);\r\n\r\n // Create example controller\r\n const controllerFile = `import { Controller, Get, Post, Body, Param } from 'veloce-ts';\r\nimport { z } from 'zod';\r\n\r\nconst UserSchema = z.object({\r\n name: z.string(),\r\n email: z.string().email(),\r\n age: z.number().min(0).optional(),\r\n});\r\n\r\ntype User = z.infer<typeof UserSchema>;\r\n\r\n@Controller('/users')\r\nexport class UserController {\r\n private users: User[] = [];\r\n\r\n @Get('/')\r\n async getUsers() {\r\n return { users: this.users };\r\n }\r\n\r\n @Get('/:id')\r\n async getUser(@Param('id') id: string) {\r\n const user = this.users[parseInt(id)];\r\n if (!user) {\r\n throw new Error('User not found');\r\n }\r\n return user;\r\n }\r\n\r\n @Post('/')\r\n async createUser(@Body(UserSchema) user: User) {\r\n this.users.push(user);\r\n return { message: 'User created', user };\r\n }\r\n}\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'controllers', 'user.controller.ts'), controllerFile);\r\n}\r\n\r\nasync function generateGraphQLTemplate(projectPath: string): Promise<void> {\r\n await mkdir(join(projectPath, 'src', 'resolvers'), { recursive: true });\r\n\r\n const mainFile = `import 'reflect-metadata';\r\nimport { Veloce } from 'veloce-ts';\r\nimport { GraphQLPlugin } from 'veloce-ts/plugins';\r\nimport { UserResolver } from './resolvers/user.resolver';\r\n\r\nconst app = new Veloce({\r\n title: 'My GraphQL API',\r\n version: '1.0.0',\r\n});\r\n\r\n// Enable GraphQL\r\napp.usePlugin(new GraphQLPlugin({\r\n resolvers: [UserResolver],\r\n}));\r\n\r\n// Compile routes\r\nawait app.compile();\r\n\r\napp.listen(3000, () => {\r\n console.log('Server running on http://localhost:3000');\r\n console.log('GraphQL Playground at http://localhost:3000/graphql');\r\n});\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'index.ts'), mainFile);\r\n\r\n const resolverFile = `import { Resolver, Query, Mutation, Arg } from 'veloce-ts/graphql';\r\nimport { z } from 'zod';\r\n\r\nconst UserSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n email: z.string().email(),\r\n});\r\n\r\ntype User = z.infer<typeof UserSchema>;\r\n\r\n@Resolver()\r\nexport class UserResolver {\r\n private users: User[] = [];\r\n\r\n @Query()\r\n async users(): Promise<User[]> {\r\n return this.users;\r\n }\r\n\r\n @Query()\r\n async user(@Arg('id', z.string()) id: string): Promise<User | null> {\r\n return this.users.find(u => u.id === id) || null;\r\n }\r\n\r\n @Mutation()\r\n async createUser(\r\n @Arg('name', z.string()) name: string,\r\n @Arg('email', z.string().email()) email: string\r\n ): Promise<User> {\r\n const user = { id: Date.now().toString(), name, email };\r\n this.users.push(user);\r\n return user;\r\n }\r\n}\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'resolvers', 'user.resolver.ts'), resolverFile);\r\n}\r\n\r\nasync function generateWebSocketTemplate(projectPath: string): Promise<void> {\r\n await mkdir(join(projectPath, 'src', 'websockets'), { recursive: true });\r\n\r\n const mainFile = `import 'reflect-metadata';\r\nimport { Veloce } from 'veloce-ts';\r\nimport { WebSocketPlugin } from 'veloce-ts/plugins';\r\nimport { ChatWebSocket } from './websockets/chat.websocket';\r\n\r\nconst app = new Veloce({\r\n title: 'My WebSocket API',\r\n version: '1.0.0',\r\n});\r\n\r\n// Enable WebSocket\r\napp.usePlugin(new WebSocketPlugin({\r\n handlers: [ChatWebSocket],\r\n}));\r\n\r\n// Compile routes\r\nawait app.compile();\r\n\r\napp.listen(3000, () => {\r\n console.log('Server running on http://localhost:3000');\r\n console.log('WebSocket endpoint at ws://localhost:3000/ws/chat');\r\n});\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'index.ts'), mainFile);\r\n\r\n const websocketFile = `import { WebSocket, OnConnect, OnMessage, OnDisconnect } from 'veloce-ts/websocket';\r\nimport { z } from 'zod';\r\nimport type { WebSocketConnection } from 'veloce-ts/websocket';\r\n\r\nconst MessageSchema = z.object({\r\n type: z.enum(['message', 'join', 'leave']),\r\n content: z.string(),\r\n username: z.string(),\r\n});\r\n\r\n@WebSocket('/ws/chat')\r\nexport class ChatWebSocket {\r\n @OnConnect()\r\n handleConnect(connection: WebSocketConnection) {\r\n console.log('Client connected:', connection.id);\r\n connection.send({ type: 'system', content: 'Welcome to the chat!' });\r\n }\r\n\r\n @OnMessage(MessageSchema)\r\n async handleMessage(connection: WebSocketConnection, message: z.infer<typeof MessageSchema>) {\r\n console.log('Received message:', message);\r\n \r\n // Broadcast to all clients\r\n connection.broadcast({\r\n type: 'message',\r\n username: message.username,\r\n content: message.content,\r\n timestamp: new Date().toISOString(),\r\n });\r\n }\r\n\r\n @OnDisconnect()\r\n handleDisconnect(connection: WebSocketConnection) {\r\n console.log('Client disconnected:', connection.id);\r\n }\r\n}\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'websockets', 'chat.websocket.ts'), websocketFile);\r\n}\r\n\r\nasync function generateFullstackTemplate(projectPath: string): Promise<void> {\r\n await mkdir(join(projectPath, 'src', 'controllers'), { recursive: true });\r\n await mkdir(join(projectPath, 'src', 'resolvers'), { recursive: true });\r\n await mkdir(join(projectPath, 'src', 'websockets'), { recursive: true });\r\n\r\n // Generate main file\r\n const mainFile = `import 'reflect-metadata';\r\nimport { Veloce } from 'veloce-ts';\r\nimport { OpenAPIPlugin, GraphQLPlugin, WebSocketPlugin } from 'veloce-ts/plugins';\r\nimport { UserController } from './controllers/user.controller';\r\nimport { UserResolver } from './resolvers/user.resolver';\r\nimport { ChatWebSocket } from './websockets/chat.websocket';\r\n\r\nconst app = new Veloce({\r\n title: 'My Fullstack API',\r\n version: '1.0.0',\r\n docs: true,\r\n});\r\n\r\n// Enable OpenAPI documentation\r\napp.usePlugin(new OpenAPIPlugin({\r\n path: '/docs',\r\n}));\r\n\r\n// REST API\r\napp.include(UserController);\r\n\r\n// GraphQL\r\napp.usePlugin(new GraphQLPlugin({\r\n resolvers: [UserResolver],\r\n}));\r\n\r\n// WebSocket\r\napp.usePlugin(new WebSocketPlugin({\r\n handlers: [ChatWebSocket],\r\n}));\r\n\r\n// Compile routes\r\nawait app.compile();\r\n\r\napp.listen(3000, () => {\r\n console.log('Server running on http://localhost:3000');\r\n console.log('REST API docs at http://localhost:3000/docs');\r\n console.log('GraphQL Playground at http://localhost:3000/graphql');\r\n console.log('WebSocket endpoint at ws://localhost:3000/ws/chat');\r\n});\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'index.ts'), mainFile);\r\n\r\n // Generate REST controller\r\n const controllerFile = `import { Controller, Get, Post, Body, Param } from 'veloce-ts';\r\nimport { z } from 'zod';\r\n\r\nconst UserSchema = z.object({\r\n name: z.string(),\r\n email: z.string().email(),\r\n age: z.number().min(0).optional(),\r\n});\r\n\r\ntype User = z.infer<typeof UserSchema>;\r\n\r\n@Controller('/users')\r\nexport class UserController {\r\n private users: User[] = [];\r\n\r\n @Get('/')\r\n async getUsers() {\r\n return { users: this.users };\r\n }\r\n\r\n @Get('/:id')\r\n async getUser(@Param('id') id: string) {\r\n const user = this.users[parseInt(id)];\r\n if (!user) {\r\n throw new Error('User not found');\r\n }\r\n return user;\r\n }\r\n\r\n @Post('/')\r\n async createUser(@Body(UserSchema) user: User) {\r\n this.users.push(user);\r\n return { message: 'User created', user };\r\n }\r\n}\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'controllers', 'user.controller.ts'), controllerFile);\r\n\r\n // Generate GraphQL resolver\r\n const resolverFile = `import { Resolver, Query, Mutation, Arg } from 'veloce-ts/graphql';\r\nimport { z } from 'zod';\r\n\r\nconst UserSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n email: z.string().email(),\r\n});\r\n\r\ntype User = z.infer<typeof UserSchema>;\r\n\r\n@Resolver()\r\nexport class UserResolver {\r\n private users: User[] = [];\r\n\r\n @Query()\r\n async users(): Promise<User[]> {\r\n return this.users;\r\n }\r\n\r\n @Query()\r\n async user(@Arg('id', z.string()) id: string): Promise<User | null> {\r\n return this.users.find(u => u.id === id) || null;\r\n }\r\n\r\n @Mutation()\r\n async createUser(\r\n @Arg('name', z.string()) name: string,\r\n @Arg('email', z.string().email()) email: string\r\n ): Promise<User> {\r\n const user = { id: Date.now().toString(), name, email };\r\n this.users.push(user);\r\n return user;\r\n }\r\n}\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'resolvers', 'user.resolver.ts'), resolverFile);\r\n\r\n // Generate WebSocket handler\r\n const websocketFile = `import { WebSocket, OnConnect, OnMessage, OnDisconnect } from 'veloce-ts/websocket';\r\nimport { z } from 'zod';\r\nimport type { WebSocketConnection } from 'veloce-ts/websocket';\r\n\r\nconst MessageSchema = z.object({\r\n type: z.enum(['message', 'join', 'leave']),\r\n content: z.string(),\r\n username: z.string(),\r\n});\r\n\r\n@WebSocket('/ws/chat')\r\nexport class ChatWebSocket {\r\n @OnConnect()\r\n handleConnect(connection: WebSocketConnection) {\r\n console.log('Client connected:', connection.id);\r\n connection.send({ type: 'system', content: 'Welcome to the chat!' });\r\n }\r\n\r\n @OnMessage(MessageSchema)\r\n async handleMessage(connection: WebSocketConnection, message: z.infer<typeof MessageSchema>) {\r\n console.log('Received message:', message);\r\n \r\n // Broadcast to all clients\r\n connection.broadcast({\r\n type: 'message',\r\n username: message.username,\r\n content: message.content,\r\n timestamp: new Date().toISOString(),\r\n });\r\n }\r\n\r\n @OnDisconnect()\r\n handleDisconnect(connection: WebSocketConnection) {\r\n console.log('Client disconnected:', connection.id);\r\n }\r\n}\r\n`;\r\n\r\n await writeFile(join(projectPath, 'src', 'websockets', 'chat.websocket.ts'), websocketFile);\r\n}\r\n"
6
- ],
7
- "mappings": "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",
8
- "debugId": "A328E8A0CC06468C64756E2164756E21",
9
- "names": []
10
- }