@siyavuyachagi/typesharp 0.1.1 → 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 (43) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +47 -10
  3. package/dist/cli/index.js +6 -4
  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.d.ts.map +1 -1
  14. package/dist/generator/index.js +5 -4
  15. package/dist/generator/index.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -2
  19. package/dist/index.js.map +1 -1
  20. package/dist/parser/index.d.ts.map +1 -1
  21. package/dist/parser/index.js +12 -190
  22. package/dist/parser/index.js.map +1 -1
  23. package/dist/parser/parse-properties.d.ts +6 -0
  24. package/dist/parser/parse-properties.d.ts.map +1 -0
  25. package/dist/parser/parse-properties.js +250 -0
  26. package/dist/parser/parse-properties.js.map +1 -0
  27. package/dist/parser/resolve-project-files-from-source.d.ts +29 -0
  28. package/dist/parser/resolve-project-files-from-source.d.ts.map +1 -0
  29. package/dist/parser/resolve-project-files-from-source.js +98 -0
  30. package/dist/parser/resolve-project-files-from-source.js.map +1 -0
  31. package/dist/types/index.d.ts +7 -2
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/types/naming-convention-config.d.ts +9 -0
  34. package/dist/types/naming-convention-config.d.ts.map +1 -0
  35. package/dist/types/naming-convention-config.js +3 -0
  36. package/dist/types/naming-convention-config.js.map +1 -0
  37. package/dist/types/naming-convention.d.ts +5 -0
  38. package/dist/types/naming-convention.d.ts.map +1 -0
  39. package/dist/types/naming-convention.js +3 -0
  40. package/dist/types/naming-convention.js.map +1 -0
  41. package/dist/types/typesharp-config.d.ts +18 -25
  42. package/dist/types/typesharp-config.d.ts.map +1 -1
  43. package/package.json +13 -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, NamingConventionConfig } 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,6 +44,6 @@ export interface GenerationOptions {
39
44
  classes: CSharpClass[];
40
45
  }
41
46
  export type { TypeSharpConfig };
42
- export type { NamingConvention };
43
47
  export type { NamingConventionConfig };
48
+ export type { NamingConvention };
44
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,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,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;AAChC,YAAY,EAAE,sBAAsB,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,22 +1,26 @@
1
+ import { NamingConvention } from "./naming-convention";
2
+ import { NamingConventionConfig } from "./naming-convention-config";
1
3
  /**
2
- * TypeSharp configuration
4
+ * TypeSharp configuration file
3
5
  * @see https://github.com/siyavuyachagi/typesharp
4
6
  */
5
7
  export interface TypeSharpConfig {
6
8
  /**
7
- * Full path(s) to the C# .csproj file(s).
8
- * Can be a single path or an array of paths.
9
- * Example (Windows):
10
- * ```
11
- * `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"
12
15
  * // or
13
- * [
14
- * `C:\\Users\\User\\Desktop\\MyApp\\Api\\Api.csproj`,
15
- * `C:\\Users\\User\\Desktop\\MyApp\\Domain\\Domain.csproj`
16
- * ]
17
- * ```
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
18
22
  */
19
- projectFiles: string | string[];
23
+ projectFiles?: string | string[];
20
24
  /**
21
25
  * Path where TypeScript files will be generated
22
26
  */
@@ -26,7 +30,7 @@ export interface TypeSharpConfig {
26
30
  */
27
31
  targetAnnotation?: string;
28
32
  /**
29
- * 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`)
30
34
  *
31
35
  * - true → All generated types go into a single file: "index.ts"
32
36
  * - false → Each file is written separately, using the naming convention.
@@ -34,7 +38,7 @@ export interface TypeSharpConfig {
34
38
  */
35
39
  singleOutputFile?: boolean;
36
40
  /**
37
- * Naming convention for property names in generated types
41
+ * Naming convention for property names in generated types (default: `camel`)
38
42
  * @example
39
43
  * "namingConvention": "camel",
40
44
  * // or
@@ -57,15 +61,4 @@ export interface TypeSharpConfig {
57
61
  */
58
62
  fileSuffix?: string;
59
63
  }
60
- /**
61
- * Naming convention options for path, file and property names
62
- */
63
- export type NamingConvention = 'kebab' | 'snake' | 'camel' | 'pascal';
64
- /**
65
- * More specific naming convension configuration
66
- */
67
- export type NamingConventionConfig = {
68
- file: NamingConvention;
69
- dir: NamingConvention;
70
- };
71
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;;;GAGG;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;IAO3B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;IAE7D;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,gBAAgB,CAAC;CACzB,CAAA"}
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.1",
4
+ "version": "0.1.2",
5
5
  "license": "MIT",
6
6
  "author": "Siyavuya Chagi <syavuya08@gmail.com>",
7
7
  "repository": {
@@ -22,20 +22,27 @@
22
22
  "LICENSE"
23
23
  ],
24
24
  "keywords": [
25
- "typescript",
26
- "csharp",
25
+ "cli",
27
26
  "code-generation",
28
- "types"
27
+ "csharp",
28
+ "type-sharp",
29
+ "types",
30
+ "typescript"
29
31
  ],
30
32
  "scripts": {
31
33
  "build": "tsc",
32
34
  "dev": "tsc --watch",
33
35
  "prepublishOnly": "npm run build",
34
- "test": "echo \"Error: no test specified\" && exit 1"
36
+ "test": "vitest",
37
+ "test:run": "vitest run",
38
+ "test:ui": "npx vitest --ui"
35
39
  },
36
40
  "devDependencies": {
37
41
  "@types/node": "^25.0.0",
38
- "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"
39
46
  },
40
47
  "dependencies": {
41
48
  "chalk": "^5.6.2",