openapi-sync 2.1.8 → 2.1.10

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.
@@ -498,14 +498,82 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
498
498
  return endpointUrl;
499
499
  }
500
500
  };
501
+ // Helper function to check if an endpoint should be excluded
502
+ const shouldExcludeEndpoint = (path, method, tags = []) => {
503
+ var _a, _b;
504
+ const excludeConfig = (_a = config === null || config === void 0 ? void 0 : config.endpoints) === null || _a === void 0 ? void 0 : _a.exclude;
505
+ const includeConfig = (_b = config === null || config === void 0 ? void 0 : config.endpoints) === null || _b === void 0 ? void 0 : _b.include;
506
+ // If include is specified
507
+ if (includeConfig) {
508
+ // Check if endpoint matches include criteria
509
+ const matchesIncludeTags = includeConfig.tags && includeConfig.tags.length > 0
510
+ ? tags.some((tag) => includeConfig.tags.includes(tag))
511
+ : true;
512
+ const matchesIncludeEndpoints = includeConfig.endpoints && includeConfig.endpoints.length > 0
513
+ ? includeConfig.endpoints.some((endpoint) => {
514
+ const methodMatches = !endpoint.method ||
515
+ endpoint.method.toLowerCase() === method.toLowerCase();
516
+ // Use exact path match if path is provided
517
+ if (endpoint.path) {
518
+ return path === endpoint.path && methodMatches;
519
+ }
520
+ // Use regex match if regex is provided
521
+ else if (endpoint.regex) {
522
+ const pathRegex = new RegExp(endpoint.regex);
523
+ return pathRegex.test(path) && methodMatches;
524
+ }
525
+ return false;
526
+ })
527
+ : true;
528
+ // If include is specified but endpoint doesn't match, exclude it
529
+ if (!matchesIncludeTags || !matchesIncludeEndpoints) {
530
+ return true;
531
+ }
532
+ }
533
+ // Check exclude criteria, it takes precedence over include
534
+ if (excludeConfig) {
535
+ // Check tags exclusion
536
+ if (excludeConfig.tags && excludeConfig.tags.length > 0) {
537
+ const hasExcludedTag = tags.some((tag) => excludeConfig.tags.includes(tag));
538
+ if (hasExcludedTag)
539
+ return true;
540
+ }
541
+ // Check endpoint exclusion
542
+ if (excludeConfig.endpoints && excludeConfig.endpoints.length > 0) {
543
+ const matchesExcludedEndpoint = excludeConfig.endpoints.some((endpoint) => {
544
+ const methodMatches = !endpoint.method ||
545
+ endpoint.method.toLowerCase() === method.toLowerCase();
546
+ // Use exact path match if path is provided
547
+ if (endpoint.path) {
548
+ return path === endpoint.path && methodMatches;
549
+ }
550
+ // Use regex match if regex is provided
551
+ else if (endpoint.regex) {
552
+ const pathRegex = new RegExp(endpoint.regex);
553
+ return pathRegex.test(path) && methodMatches;
554
+ }
555
+ return false;
556
+ });
557
+ if (matchesExcludedEndpoint)
558
+ return true;
559
+ }
560
+ }
561
+ return false;
562
+ };
501
563
  Object.keys(spec.paths || {}).forEach((endpointPath) => {
502
564
  const endpointSpec = spec.paths[endpointPath];
503
565
  const endpointMethods = Object.keys(endpointSpec);
504
566
  endpointMethods.forEach((_method) => {
505
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
567
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
506
568
  const method = _method;
507
569
  const endpoint = (0, helpers_1.getEndpointDetails)(endpointPath, method);
508
- const endpointUrlTxt = (((_b = (_a = config === null || config === void 0 ? void 0 : config.endpoints) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.includeServer) ? serverUrl : "") +
570
+ // Get endpoint tags for filtering
571
+ const endpointTags = ((_a = endpointSpec[method]) === null || _a === void 0 ? void 0 : _a.tags) || [];
572
+ // Check if this endpoint should be excluded
573
+ if (shouldExcludeEndpoint(endpointPath, method, endpointTags)) {
574
+ return; // Skip this endpoint
575
+ }
576
+ const endpointUrlTxt = (((_c = (_b = config === null || config === void 0 ? void 0 : config.endpoints) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.includeServer) ? serverUrl : "") +
509
577
  endpoint.pathParts
510
578
  .map((part) => {
511
579
  // check if part is a variable
@@ -546,18 +614,24 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
546
614
  if (queryTypeCnt) {
547
615
  queryTypeCnt = `{\n${queryTypeCnt}}`;
548
616
  let name = `${endpoint.name}Query`;
549
- if ((_d = (_c = config === null || config === void 0 ? void 0 : config.types) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.format) {
617
+ // Use operationId if configured and available
618
+ if (((_e = (_d = config === null || config === void 0 ? void 0 : config.types) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.useOperationId) && (eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId)) {
619
+ name = `${eSpec.operationId}Query`;
620
+ }
621
+ name = (0, helpers_1.capitalize)(`${typePrefix}${name}`);
622
+ if ((_g = (_f = config === null || config === void 0 ? void 0 : config.types) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.format) {
550
623
  const formattedName = config === null || config === void 0 ? void 0 : config.types.name.format("endpoint", {
551
624
  code: "",
552
625
  type: "query",
553
626
  method,
554
627
  path: endpointPath,
555
628
  summary: eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary,
629
+ operationId: eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId,
556
630
  }, name);
557
631
  if (formattedName)
558
- name = formattedName;
632
+ name = `${typePrefix}${formattedName}`;
559
633
  }
560
- typesFileContent += `export type ${typePrefix}${name} = ${queryTypeCnt};\n`;
634
+ typesFileContent += `export type ${name} = ${queryTypeCnt};\n`;
561
635
  }
562
636
  }
563
637
  const requestBody = eSpec === null || eSpec === void 0 ? void 0 : eSpec.requestBody;
@@ -567,18 +641,24 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
567
641
  dtoTypeCnt = getBodySchemaType(requestBody);
568
642
  if (dtoTypeCnt) {
569
643
  let name = `${endpoint.name}DTO`;
570
- if ((_f = (_e = config === null || config === void 0 ? void 0 : config.types) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.format) {
644
+ // Use operationId if configured and available
645
+ if (((_j = (_h = config === null || config === void 0 ? void 0 : config.types) === null || _h === void 0 ? void 0 : _h.name) === null || _j === void 0 ? void 0 : _j.useOperationId) && (eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId)) {
646
+ name = `${eSpec.operationId}DTO`;
647
+ }
648
+ name = (0, helpers_1.capitalize)(`${typePrefix}${name}`);
649
+ if ((_l = (_k = config === null || config === void 0 ? void 0 : config.types) === null || _k === void 0 ? void 0 : _k.name) === null || _l === void 0 ? void 0 : _l.format) {
571
650
  const formattedName = config === null || config === void 0 ? void 0 : config.types.name.format("endpoint", {
572
651
  code: "",
573
652
  type: "dto",
574
653
  method,
575
654
  path: endpointPath,
576
655
  summary: eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary,
656
+ operationId: eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId,
577
657
  }, name);
578
658
  if (formattedName)
579
- name = formattedName;
659
+ name = `${typePrefix}${formattedName}`;
580
660
  }
581
- typesFileContent += `export type ${typePrefix}${name} = ${dtoTypeCnt};\n`;
661
+ typesFileContent += `export type ${name} = ${dtoTypeCnt};\n`;
582
662
  }
583
663
  }
584
664
  const responseTypeObject = {};
@@ -588,23 +668,29 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
588
668
  const responses = eSpec === null || eSpec === void 0 ? void 0 : eSpec.responses;
589
669
  const resCodes = Object.keys(responses);
590
670
  resCodes.forEach((code) => {
591
- var _a, _b;
671
+ var _a, _b, _c, _d;
592
672
  responseTypeCnt = getBodySchemaType(responses[code]);
593
673
  responseTypeObject[code] = responseTypeCnt;
594
674
  if (responseTypeCnt) {
595
675
  let name = `${endpoint.name}${code}Response`;
596
- if ((_b = (_a = config === null || config === void 0 ? void 0 : config.types) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.format) {
676
+ // Use operationId if configured and available
677
+ if (((_b = (_a = config === null || config === void 0 ? void 0 : config.types) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.useOperationId) && (eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId)) {
678
+ name = `${eSpec.operationId}${code}Response`;
679
+ }
680
+ name = (0, helpers_1.capitalize)(`${typePrefix}${name}`);
681
+ if ((_d = (_c = config === null || config === void 0 ? void 0 : config.types) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.format) {
597
682
  const formattedName = config === null || config === void 0 ? void 0 : config.types.name.format("endpoint", {
598
683
  code,
599
684
  type: "response",
600
685
  method,
601
686
  path: endpointPath,
602
687
  summary: eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary,
688
+ operationId: eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId,
603
689
  }, name);
604
690
  if (formattedName)
605
- name = formattedName;
691
+ name = `${typePrefix}${formattedName}`;
606
692
  }
607
- typesFileContent += `export type ${typePrefix}${name} = ${responseTypeCnt};\n`;
693
+ typesFileContent += `export type ${name} = ${responseTypeCnt};\n`;
608
694
  }
609
695
  });
610
696
  }
@@ -634,9 +720,9 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
634
720
  ? formatSecuritySpec(eSpec.security)
635
721
  : "";
636
722
  let doc = "";
637
- if (!((_h = (_g = config === null || config === void 0 ? void 0 : config.endpoints) === null || _g === void 0 ? void 0 : _g.doc) === null || _h === void 0 ? void 0 : _h.disable)) {
723
+ if (!((_o = (_m = config === null || config === void 0 ? void 0 : config.endpoints) === null || _m === void 0 ? void 0 : _m.doc) === null || _o === void 0 ? void 0 : _o.disable)) {
638
724
  let curl = "";
639
- if ((_k = (_j = config === null || config === void 0 ? void 0 : config.endpoints) === null || _j === void 0 ? void 0 : _j.doc) === null || _k === void 0 ? void 0 : _k.showCurl) {
725
+ if ((_q = (_p = config === null || config === void 0 ? void 0 : config.endpoints) === null || _p === void 0 ? void 0 : _p.doc) === null || _q === void 0 ? void 0 : _q.showCurl) {
640
726
  // console.log("cirl data", {
641
727
  // body: eSpec?.requestBody,
642
728
  // bodyContent:
@@ -647,7 +733,7 @@ const OpenapiSync = (apiUrl, apiName, config, refetchInterval) => __awaiter(void
647
733
  const headers = {};
648
734
  let body = "";
649
735
  let extras = "";
650
- if ((_l = eSpec.requestBody) === null || _l === void 0 ? void 0 : _l.content) {
736
+ if ((_r = eSpec.requestBody) === null || _r === void 0 ? void 0 : _r.content) {
651
737
  const contentTypes = Object.keys(eSpec.requestBody.content);
652
738
  contentTypes.forEach((contentType) => {
653
739
  // console.log("requestBody content", {
@@ -712,7 +798,7 @@ ${(0, curl_generator_1.CurlGenerator)({
712
798
  doc = `/**${(eSpec === null || eSpec === void 0 ? void 0 : eSpec.description) ? `\n* ${eSpec === null || eSpec === void 0 ? void 0 : eSpec.description} ` : ""}
713
799
  * **Method**: \`${method.toUpperCase()}\`
714
800
  * **Summary**: ${(eSpec === null || eSpec === void 0 ? void 0 : eSpec.summary) || ""}
715
- * **Tags**: [${((_m = eSpec === null || eSpec === void 0 ? void 0 : eSpec.tags) === null || _m === void 0 ? void 0 : _m.join(", ")) || ""}]
801
+ * **Tags**: [${((_s = eSpec === null || eSpec === void 0 ? void 0 : eSpec.tags) === null || _s === void 0 ? void 0 : _s.join(", ")) || ""}]
716
802
  * **OperationId**: ${(eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId) || ""} ${queryTypeCnt
717
803
  ? `\n * **Query**: ${(0, helpers_1.renderTypeRefMD)(queryTypeCnt)} `
718
804
  : ""}${dtoTypeCnt ? `\n * **DTO**: ${(0, helpers_1.renderTypeRefMD)(dtoTypeCnt)} ` : ""}${responseTypeCnt
@@ -722,11 +808,11 @@ ${(0, curl_generator_1.CurlGenerator)({
722
808
  : ""}${securitySpec ? `\n * **Security**: ${securitySpec}\n` : ""}${curl}
723
809
  */\n`;
724
810
  }
725
- let name = ((_p = (_o = config === null || config === void 0 ? void 0 : config.endpoints) === null || _o === void 0 ? void 0 : _o.name) === null || _p === void 0 ? void 0 : _p.useOperationId) &&
726
- ((_q = eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId) === null || _q === void 0 ? void 0 : _q.length) > 0
811
+ let name = ((_u = (_t = config === null || config === void 0 ? void 0 : config.endpoints) === null || _t === void 0 ? void 0 : _t.name) === null || _u === void 0 ? void 0 : _u.useOperationId) &&
812
+ ((_v = eSpec === null || eSpec === void 0 ? void 0 : eSpec.operationId) === null || _v === void 0 ? void 0 : _v.length) > 0
727
813
  ? eSpec.operationId
728
814
  : `${endpoint.name}`;
729
- if ((_s = (_r = config === null || config === void 0 ? void 0 : config.endpoints) === null || _r === void 0 ? void 0 : _r.name) === null || _s === void 0 ? void 0 : _s.format) {
815
+ if ((_x = (_w = config === null || config === void 0 ? void 0 : config.endpoints) === null || _w === void 0 ? void 0 : _w.name) === null || _x === void 0 ? void 0 : _x.format) {
730
816
  const formattedName = config === null || config === void 0 ? void 0 : config.endpoints.name.format({
731
817
  method,
732
818
  path: endpointPath,
@@ -743,7 +829,7 @@ ${(0, curl_generator_1.CurlGenerator)({
743
829
  tags: (eSpec === null || eSpec === void 0 ? void 0 : eSpec.tags) || [],
744
830
  };
745
831
  // Add the endpoint url
746
- endpointsFileContent += `${doc}export const ${endpointPrefix}${name} = ${((_u = (_t = config === null || config === void 0 ? void 0 : config.endpoints) === null || _t === void 0 ? void 0 : _t.value) === null || _u === void 0 ? void 0 : _u.type) === "object"
832
+ endpointsFileContent += `${doc}export const ${endpointPrefix}${name} = ${((_z = (_y = config === null || config === void 0 ? void 0 : config.endpoints) === null || _y === void 0 ? void 0 : _y.value) === null || _z === void 0 ? void 0 : _z.type) === "object"
747
833
  ? (0, helpers_1.JSONStringify)(content)
748
834
  : endpointUrl};
749
835
  `;
package/dist/helpers.js CHANGED
@@ -107,7 +107,23 @@ const JSONStringify = (obj, indent = 1) => {
107
107
  const key = keys[i];
108
108
  const value = obj[key];
109
109
  result += "\n" + " ".repeat(indent) + key + ": ";
110
- if (typeof value === "object" && value !== null) {
110
+ if (Array.isArray(value)) {
111
+ result += "[";
112
+ for (let j = 0; j < value.length; j++) {
113
+ const item = value[j];
114
+ if (typeof item === "object" && item !== null) {
115
+ result += (0, exports.JSONStringify)(item, indent + 1);
116
+ }
117
+ else {
118
+ result += typeof item === "string" ? `"${item}"` : item;
119
+ }
120
+ if (j < value.length - 1) {
121
+ result += ", ";
122
+ }
123
+ }
124
+ result += "]";
125
+ }
126
+ else if (typeof value === "object" && value !== null) {
111
127
  result += "" + (0, exports.JSONStringify)(value, indent + 1);
112
128
  }
113
129
  else {
package/dist/index.js CHANGED
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.Init = void 0;
30
30
  const Openapi_sync_1 = __importDefault(require("./Openapi-sync"));
31
- const dotenv_1 = __importDefault(require("dotenv"));
32
31
  const path_1 = __importDefault(require("path"));
33
32
  const fs_1 = __importDefault(require("fs"));
34
33
  const state_1 = require("./Openapi-sync/state");
@@ -36,7 +35,6 @@ const state_1 = require("./Openapi-sync/state");
36
35
  __exportStar(require("./types"), exports);
37
36
  __exportStar(require("./helpers"), exports);
38
37
  __exportStar(require("./regex"), exports);
39
- dotenv_1.default.config();
40
38
  const rootUsingCwd = process.cwd();
41
39
  const Init = (options) => __awaiter(void 0, void 0, void 0, function* () {
42
40
  // Load config file
@@ -48,7 +46,7 @@ const Init = (options) => __awaiter(void 0, void 0, void 0, function* () {
48
46
  catch (registerError) {
49
47
  throw registerError;
50
48
  }
51
- const jsConfigPath = path_1.default.join(rootUsingCwd, "openapi.sync.");
49
+ const jsConfigPath = path_1.default.join(rootUsingCwd, "openapi.sync.js");
52
50
  const tsConfigPath = path_1.default.join(rootUsingCwd, "openapi.sync.ts");
53
51
  const jsonConfigPath = path_1.default.join(rootUsingCwd, "openapi.sync.json");
54
52
  const configPaths = [jsConfigPath, tsConfigPath, jsonConfigPath];
@@ -8,14 +8,20 @@ const config = {
8
8
  example2: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore.yaml",
9
9
  },
10
10
  server: 0,
11
+ // Configuration for excluding endpoints from code generation
11
12
  types: {
12
13
  name: {
13
14
  prefix: "",
15
+ useOperationId: true, // Use operationId for type naming when available
14
16
  format: (source, data, defaultName) => {
15
17
  if (source === "shared") {
16
18
  return `${data.name}`;
17
19
  }
18
20
  else if (source === "endpoint") {
21
+ // Use operationId if available, otherwise fall back to path-based naming
22
+ if (data.operationId) {
23
+ return `${data.operationId}${data.code}${data.type}`;
24
+ }
19
25
  return `${data.method.toLowerCase()}${data
20
26
  .path.replace(/\//g, "_")
21
27
  .replace(/{|}/g, "")}${data.code}${data.type}`;
@@ -50,6 +56,34 @@ const config = {
50
56
  disable: false,
51
57
  showCurl: true,
52
58
  },
59
+ exclude: {
60
+ // Exclude endpoints by tags
61
+ tags: ["deprecated", "internal"],
62
+ // Exclude individual endpoints by path and method
63
+ endpoints: [
64
+ // Exact path match
65
+ { path: "/admin/users", method: "DELETE" },
66
+ // Regex pattern match
67
+ { regex: "^/internal/.*", method: "GET" },
68
+ { regex: ".*/debug$", method: "GET" },
69
+ // Don't specify method to exclude all methods
70
+ { path: "/debug/logs" },
71
+ ],
72
+ },
73
+ include: {
74
+ // Include endpoints by tags
75
+ tags: ["public"],
76
+ // Include individual endpoints by path and method
77
+ endpoints: [
78
+ // Exact path match
79
+ { path: "/public/users", method: "GET" },
80
+ // Regex pattern match
81
+ { regex: "^/public/.*", method: "GET" },
82
+ { regex: ".*/logs$", method: "GET" },
83
+ // Don't specify method to include all methods
84
+ { path: "/public/logs" },
85
+ ],
86
+ },
53
87
  },
54
88
  };
55
89
  module.exports = config;
package/dist/types.d.ts CHANGED
@@ -48,20 +48,36 @@ export type IConfigReplaceWord = {
48
48
  /** string and regular expression as a string*/
49
49
  replace: string;
50
50
  with: string;
51
- type?: "endpoint" | "type";
52
51
  };
53
52
  export type IConfigDoc = {
54
53
  disable?: boolean;
55
54
  showCurl?: boolean;
56
55
  };
56
+ export type IConfigExclude = {
57
+ /** Exclude/Include endpoints by tags */
58
+ tags?: string[];
59
+ /** Exclude/Include individual endpoints by path and method */
60
+ endpoints?: Array<{
61
+ /** Exact path match (regex will be ignore when provided)*/
62
+ path?: string;
63
+ /** Regular expression pattern for path matching */
64
+ regex?: string;
65
+ /** Don't specify method to exclude all methods */
66
+ method?: Method;
67
+ }>;
68
+ };
69
+ export interface IConfigInclude extends IConfigExclude {
70
+ }
57
71
  export type IConfig = {
58
72
  refetchInterval?: number;
59
73
  folder?: string;
60
74
  api: Record<string, string>;
61
75
  server?: number | string;
76
+ /** Configuration for excluding endpoints from code generation */
62
77
  types?: {
63
78
  name?: {
64
79
  prefix?: string;
80
+ useOperationId?: boolean;
65
81
  format?: (source: "shared" | "endpoint", data: {
66
82
  name?: string;
67
83
  type?: "response" | "dto" | "query";
@@ -69,6 +85,7 @@ export type IConfig = {
69
85
  method?: Method;
70
86
  path?: string;
71
87
  summary?: string;
88
+ operationId?: string;
72
89
  }, defaultName: string) => string | null | undefined;
73
90
  };
74
91
  doc?: IConfigDoc;
@@ -90,6 +107,8 @@ export type IConfig = {
90
107
  useOperationId?: boolean;
91
108
  };
92
109
  doc?: IConfigDoc;
110
+ exclude?: IConfigExclude;
111
+ include?: IConfigInclude;
93
112
  };
94
113
  };
95
114
  export type IOpenApiSecuritySchemes = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openapi-sync",
3
- "version": "2.1.8",
3
+ "version": "2.1.10",
4
4
  "description": "A developer-friendly tool designed to keep your API up-to-date by leveraging OpenAPI schemas. It automates the generation of endpoint URIs and type definitions, including shared types, directly from your OpenAPI specification.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -61,7 +61,7 @@
61
61
  "scripts": {
62
62
  "test": "echo \"Error: no test specified\"",
63
63
  "build": "rm -rf dist && tsc",
64
- "publish-package": "npm run build && npm version patch && npm publish",
64
+ "publish-package": "npm run build && npm publish",
65
65
  "start": "npm run build && openapi-sync"
66
66
  },
67
67
  "author": "P-Technologies",
@@ -78,9 +78,8 @@
78
78
  "axios-retry": "^4.5.0",
79
79
  "esbuild-register": "^3.6.0",
80
80
  "curl-generator": "^0.4.2",
81
- "dotenv": "^16.4.5",
82
81
  "js-yaml": "^4.1.0",
83
82
  "lodash": "^4.17.21",
84
83
  "yargs": "^17.7.2"
85
84
  }
86
- }
85
+ }