@siyavuyachagi/typesharp 0.1.0 → 0.1.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.
Files changed (42) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +196 -49
  3. package/dist/cli/index.js +7 -5
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/core/create-sample-config.d.ts +5 -0
  6. package/dist/core/create-sample-config.d.ts.map +1 -0
  7. package/dist/core/create-sample-config.js +110 -0
  8. package/dist/core/create-sample-config.js.map +1 -0
  9. package/dist/core/index.d.ts +5 -5
  10. package/dist/core/index.d.ts.map +1 -1
  11. package/dist/core/index.js +36 -66
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/generator/index.js +77 -53
  14. package/dist/generator/index.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/parser/index.d.ts.map +1 -1
  20. package/dist/parser/index.js +12 -176
  21. package/dist/parser/index.js.map +1 -1
  22. package/dist/parser/parse-properties.d.ts +6 -0
  23. package/dist/parser/parse-properties.d.ts.map +1 -0
  24. package/dist/parser/parse-properties.js +250 -0
  25. package/dist/parser/parse-properties.js.map +1 -0
  26. package/dist/parser/resolve-project-files-from-source.d.ts +29 -0
  27. package/dist/parser/resolve-project-files-from-source.d.ts.map +1 -0
  28. package/dist/parser/resolve-project-files-from-source.js +98 -0
  29. package/dist/parser/resolve-project-files-from-source.js.map +1 -0
  30. package/dist/types/index.d.ts +7 -1
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/types/naming-convention-config.d.ts +9 -0
  33. package/dist/types/naming-convention-config.d.ts.map +1 -0
  34. package/dist/types/naming-convention-config.js +3 -0
  35. package/dist/types/naming-convention-config.js.map +1 -0
  36. package/dist/types/naming-convention.d.ts +5 -0
  37. package/dist/types/naming-convention.d.ts.map +1 -0
  38. package/dist/types/naming-convention.js +3 -0
  39. package/dist/types/naming-convention.js.map +1 -0
  40. package/dist/types/typesharp-config.d.ts +29 -25
  41. package/dist/types/typesharp-config.d.ts.map +1 -1
  42. package/package.json +14 -6
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resolveProjectFilesFromSource = resolveProjectFilesFromSource;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ /**
40
+ * Resolves a list of `.csproj` file paths from one or more source entries.
41
+ *
42
+ * Supported source types:
43
+ * - `.csproj` — used directly
44
+ * - `.sln` — parsed using regex to extract referenced `.csproj` paths
45
+ * - `.slnx` — parsed as XML to extract `<Project Path="..." />` entries
46
+ *
47
+ * @param source - A single path or array of paths to `.csproj`, `.sln`, or `.slnx` files
48
+ * @returns A flat array of resolved absolute `.csproj` file paths
49
+ * @throws If a source file type is not `.csproj`, `.sln`, or `.slnx`
50
+ *
51
+ * @example
52
+ * // Single solution file
53
+ * resolveProjectFilesFromSource('C:/MyApp/MyApp.sln');
54
+ *
55
+ * @example
56
+ * // XML solution file
57
+ * resolveProjectFilesFromSource('C:/MyApp/MyApp.slnx');
58
+ *
59
+ * @example
60
+ * // Mixed sources
61
+ * resolveProjectFilesFromSource([
62
+ * 'C:/MyApp/MyApp.slnx',
63
+ * 'C:/Other/Other.csproj'
64
+ * ]);
65
+ */
66
+ function resolveProjectFilesFromSource(source) {
67
+ const sources = Array.isArray(source) ? source : [source];
68
+ const csprojFiles = [];
69
+ for (const s of sources) {
70
+ if (s.endsWith('.sln')) {
71
+ const content = fs.readFileSync(s, 'utf-8');
72
+ const slnDir = path.dirname(s);
73
+ const matches = [...content.matchAll(/"([^"]+\.csproj)"/g)];
74
+ for (const match of matches) {
75
+ const relPath = match[1].replace(/\\/g, path.sep);
76
+ csprojFiles.push(path.resolve(slnDir, relPath));
77
+ }
78
+ }
79
+ else if (s.endsWith('.slnx')) {
80
+ const content = fs.readFileSync(s, 'utf-8');
81
+ const slnDir = path.dirname(s);
82
+ const matches = [...content.matchAll(/<Project\s+Path="([^"]+\.csproj)"\s*\/>/g)];
83
+ for (const match of matches) {
84
+ const relPath = match[1].replace(/\\/g, path.sep);
85
+ csprojFiles.push(path.resolve(slnDir, relPath));
86
+ }
87
+ }
88
+ else if (s.endsWith('.csproj')) {
89
+ csprojFiles.push(s);
90
+ }
91
+ else {
92
+ throw new Error(`Unsupported source file type: "${path.basename(s)}". Expected .csproj, .sln, or .slnx`);
93
+ }
94
+ }
95
+ console.log('csproj files', csprojFiles);
96
+ return csprojFiles;
97
+ }
98
+ //# sourceMappingURL=resolve-project-files-from-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-project-files-from-source.js","sourceRoot":"","sources":["../../src/parser/resolve-project-files-from-source.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,sEA8BC;AA5DD,uCAAyB;AACzB,2CAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,6BAA6B,CAAC,MAAyB;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC,CAAC;YAClF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;IACxC,OAAO,WAAW,CAAC;AACvB,CAAC"}
@@ -1,4 +1,5 @@
1
- import { NamingConvention } from "./typesharp-config";
1
+ import { NamingConvention } from "./naming-convention";
2
+ import { NamingConventionConfig } from "./naming-convention-config";
2
3
  import { TypeSharpConfig } from "./typesharp-config";
3
4
  /**
4
5
  * Parsed C# property
@@ -9,6 +10,10 @@ export interface CSharpProperty {
9
10
  isNullable: boolean;
10
11
  isArray: boolean;
11
12
  isGeneric: boolean;
13
+ /** Whether the property is marked as obsolete/deprecated */
14
+ isDeprecated: boolean;
15
+ /** Optional message from [Obsolete("...")] */
16
+ deprecationMessage?: string;
12
17
  genericType?: string;
13
18
  }
14
19
  /**
@@ -39,5 +44,6 @@ export interface GenerationOptions {
39
44
  classes: CSharpClass[];
40
45
  }
41
46
  export type { TypeSharpConfig };
47
+ export type { NamingConventionConfig };
42
48
  export type { NamingConvention };
43
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAGD,YAAY,EAAE,eAAe,EAAE,CAAA;AAC/B,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAGD,YAAY,EAAE,eAAe,EAAE,CAAA;AAC/B,YAAY,EAAE,sBAAsB,EAAE,CAAA;AACtC,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { NamingConvention } from "./naming-convention";
2
+ /**
3
+ * More specific naming convension configuration
4
+ */
5
+ export type NamingConventionConfig = {
6
+ file: NamingConvention;
7
+ dir: NamingConvention;
8
+ };
9
+ //# sourceMappingURL=naming-convention-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-convention-config.d.ts","sourceRoot":"","sources":["../../src/types/naming-convention-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,gBAAgB,CAAC;CACzB,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=naming-convention-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-convention-config.js","sourceRoot":"","sources":["../../src/types/naming-convention-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Naming convention options for path, file and property names
3
+ */
4
+ export type NamingConvention = 'kebab' | 'snake' | 'camel' | 'pascal';
5
+ //# sourceMappingURL=naming-convention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-convention.d.ts","sourceRoot":"","sources":["../../src/types/naming-convention.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=naming-convention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/types/naming-convention.ts"],"names":[],"mappings":""}
@@ -1,21 +1,26 @@
1
+ import { NamingConvention } from "./naming-convention";
2
+ import { NamingConventionConfig } from "./naming-convention-config";
1
3
  /**
2
- * TypeSharp configuration
4
+ * TypeSharp configuration file
5
+ * @see https://github.com/siyavuyachagi/typesharp
3
6
  */
4
7
  export interface TypeSharpConfig {
5
8
  /**
6
- * Full path(s) to the C# .csproj file(s).
7
- * Can be a single path or an array of paths.
8
- * Example (Windows):
9
- * ```
10
- * `C:\\Users\\User\\Desktop\\MyApp\\Api\\Api.csproj`
9
+ * Path(s) to C# source(s): `.csproj` file(s) or a `.sln` solution file.
10
+ * When a `.sln` is provided, TypeSharp automatically discovers all projects within it.
11
+ *
12
+ * Replaces the deprecated `projectFiles` option.
13
+ * @example
14
+ * source: "C:/MyApp/MyApp.sln"
11
15
  * // or
12
- * [
13
- * `C:\\Users\\User\\Desktop\\MyApp\\Api\\Api.csproj`,
14
- * `C:\\Users\\User\\Desktop\\MyApp\\Domain\\Domain.csproj`
15
- * ]
16
- * ```
16
+ * source: ["C:/MyApp/Api/Api.csproj", "C:/MyApp/Domain/Domain.csproj"]
17
+ */
18
+ source: string | string[];
19
+ /**
20
+ * @deprecated Use `source` instead. Will be removed in a future version.
21
+ * @see source
17
22
  */
18
- projectFiles: string | string[];
23
+ projectFiles?: string | string[];
19
24
  /**
20
25
  * Path where TypeScript files will be generated
21
26
  */
@@ -25,26 +30,29 @@ export interface TypeSharpConfig {
25
30
  */
26
31
  targetAnnotation?: string;
27
32
  /**
28
- * Controls whether generated types are written to one file or multiple files.
33
+ * Controls whether generated types are written to one file or multiple files. (default: `false`)
29
34
  *
30
35
  * - true → All generated types go into a single file: "index.ts"
31
- * - false → Each type is written to its own file, using the naming convention.
36
+ * - false → Each file is written separately, using the naming convention.
32
37
  * The original folder structure is preserved in the output.
33
38
  */
34
39
  singleOutputFile?: boolean;
35
40
  /**
36
- * Naming convention for generated file names
41
+ * Naming convention for property names in generated types (default: `camel`)
42
+ * @example
43
+ * "namingConvention": "camel",
44
+ * // or
45
+ * "namingConvention": {
46
+ * dir: 'kebab',
47
+ * file: 'camel',
48
+ * }
37
49
  */
38
- fileNamingConvention?: NamingConvention;
39
- /**
40
- * Naming convention for property names in generated types
41
- */
42
- namingConvention?: NamingConvention;
50
+ namingConvention?: NamingConvention | NamingConventionConfig;
43
51
  /**
44
52
  * Suffix appended to generated TypeScript type names.
45
53
  * The suffix is formatted based on the selected naming convention.
46
54
  * ```
47
- * Examples (suffix = "Dto"):
55
+ * Examples (suffix = "dto"):
48
56
  * camel : User -> userDto
49
57
  * pascal: User -> UserDto
50
58
  * snake : User -> user_dto
@@ -53,8 +61,4 @@ export interface TypeSharpConfig {
53
61
  */
54
62
  fileSuffix?: string;
55
63
  }
56
- /**
57
- * Naming convention options for file and property names
58
- */
59
- export type NamingConvention = 'kebab' | 'snake' | 'camel' | 'pascal';
60
64
  //# sourceMappingURL=typesharp-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typesharp-config.d.ts","sourceRoot":"","sources":["../../src/types/typesharp-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAE5B;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEhC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IAExC;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"typesharp-config.d.ts","sourceRoot":"","sources":["../../src/types/typesharp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE5B;;;;;;;;;OASG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEjC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAO3B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;IAE7D;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@siyavuyachagi/typesharp",
3
3
  "description": "Generate TypeScript types from C# models with TypeSharp attribute",
4
- "version": "0.1.0",
4
+ "version": "0.1.2",
5
5
  "license": "MIT",
6
6
  "author": "Siyavuya Chagi <syavuya08@gmail.com>",
7
7
  "repository": {
@@ -16,25 +16,33 @@
16
16
  },
17
17
  "type": "commonjs",
18
18
  "files": [
19
+ "bin",
19
20
  "dist",
20
21
  "README.md",
21
22
  "LICENSE"
22
23
  ],
23
24
  "keywords": [
24
- "typescript",
25
- "csharp",
25
+ "cli",
26
26
  "code-generation",
27
- "types"
27
+ "csharp",
28
+ "type-sharp",
29
+ "types",
30
+ "typescript"
28
31
  ],
29
32
  "scripts": {
30
33
  "build": "tsc",
31
34
  "dev": "tsc --watch",
32
35
  "prepublishOnly": "npm run build",
33
- "test": "echo \"Error: no test specified\" && exit 1"
36
+ "test": "vitest",
37
+ "test:run": "vitest run",
38
+ "test:ui": "npx vitest --ui"
34
39
  },
35
40
  "devDependencies": {
36
41
  "@types/node": "^25.0.0",
37
- "typescript": "^5.9.3"
42
+ "@vitest/ui": "^4.0.18",
43
+ "tsx": "^4.21.0",
44
+ "typescript": "^5.9.3",
45
+ "vitest": "^4.0.18"
38
46
  },
39
47
  "dependencies": {
40
48
  "chalk": "^5.6.2",