@autobe/utils 0.17.1 → 0.19.1

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.
@@ -0,0 +1,3 @@
1
+ export declare namespace MapUtil {
2
+ function take<K, V>(map: Map<K, V>, key: K, value: () => V): V;
3
+ }
package/lib/MapUtil.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MapUtil = void 0;
4
+ var MapUtil;
5
+ (function (MapUtil) {
6
+ function take(map, key, value) {
7
+ if (map.has(key)) {
8
+ return map.get(key);
9
+ }
10
+ const newValue = value();
11
+ map.set(key, newValue);
12
+ return newValue;
13
+ }
14
+ MapUtil.take = take;
15
+ })(MapUtil || (exports.MapUtil = MapUtil = {}));
16
+ //# sourceMappingURL=MapUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapUtil.js","sourceRoot":"","sources":["../src/MapUtil.ts"],"names":[],"mappings":";;;AAAA,IAAiB,OAAO,CASvB;AATD,WAAiB,OAAO;IACtB,SAAgB,IAAI,CAAO,GAAc,EAAE,GAAM,EAAE,KAAc;QAC/D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAPe,YAAI,OAOnB,CAAA;AACH,CAAC,EATgB,OAAO,uBAAP,OAAO,QASvB"}
package/lib/StringUtil.js CHANGED
@@ -4,11 +4,34 @@ exports.StringUtil = void 0;
4
4
  var StringUtil;
5
5
  (function (StringUtil) {
6
6
  function trim(strings, ...values) {
7
- var _a;
8
- let result = strings[0];
7
+ // First remove indentation from each string part
8
+ const processedStrings = strings.map((str) => {
9
+ const lines = str.split("\n");
10
+ // Remove only indentation, not empty lines
11
+ const nonEmptyLines = lines.filter((line) => line.trim() !== "");
12
+ if (nonEmptyLines.length === 0)
13
+ return str; // Return original if all lines are empty
14
+ // Find minimum indentation among all non-empty lines
15
+ const indentLengths = nonEmptyLines.map((line) => {
16
+ var _a;
17
+ const leadingWhitespace = ((_a = line.match(/^[ \t]*/)) === null || _a === void 0 ? void 0 : _a[0]) || "";
18
+ return leadingWhitespace.length;
19
+ });
20
+ const indentLength = Math.min(...indentLengths);
21
+ // Remove indentation from all lines
22
+ const trimmedLines = lines.map((line) => {
23
+ if (line.trim() === "")
24
+ return "";
25
+ return line.slice(indentLength);
26
+ });
27
+ return trimmedLines.join("\n");
28
+ });
29
+ // Combine the indentation-removed strings with values
30
+ let result = processedStrings[0];
9
31
  for (let i = 0; i < values.length; i++) {
10
- result += String(values[i]) + strings[i + 1];
32
+ result += String(values[i]) + processedStrings[i + 1];
11
33
  }
34
+ // Remove leading and trailing empty lines from final result
12
35
  const lines = result.split("\n");
13
36
  while (lines.length > 0 && lines[0].trim() === "") {
14
37
  lines.shift();
@@ -16,19 +39,7 @@ var StringUtil;
16
39
  while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
17
40
  lines.pop();
18
41
  }
19
- if (lines.length === 0)
20
- return "";
21
- const firstNonEmptyLine = lines.find((line) => line.trim() !== "");
22
- if (!firstNonEmptyLine)
23
- return "";
24
- const leadingWhitespace = ((_a = firstNonEmptyLine.match(/^[ \t]*/)) === null || _a === void 0 ? void 0 : _a[0]) || "";
25
- const indentLength = leadingWhitespace.length;
26
- const trimmedLines = lines.map((line) => {
27
- if (line.trim() === "")
28
- return "";
29
- return line.slice(indentLength);
30
- });
31
- return trimmedLines.join("\n");
42
+ return lines.join("\n");
32
43
  }
33
44
  StringUtil.trim = trim;
34
45
  function singleLine(strings, ...values) {
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../src/StringUtil.ts"],"names":[],"mappings":";;;AAAA,IAAiB,UAAU,CA4C1B;AA5CD,WAAiB,UAAU;IACzB,SAAgB,IAAI,CAClB,OAA6B,EAC7B,GAAG,MAAa;;QAEhB,IAAI,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACjE,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,iBAAiB,GAAuB,KAAK,CAAC,IAAI,CACtD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAC7B,CAAC;QACF,IAAI,CAAC,iBAAiB;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,iBAAiB,GACrB,CAAA,MAAA,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;QAChD,MAAM,YAAY,GAAW,iBAAiB,CAAC,MAAM,CAAC;QACtD,MAAM,YAAY,GAAa,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IA/Be,eAAI,OA+BnB,CAAA;IAED,SAAgB,UAAU,CACxB,OAA6B,EAC7B,GAAG,MAAa;QAEhB,IAAI,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IATe,qBAAU,aASzB,CAAA;AACH,CAAC,EA5CgB,UAAU,0BAAV,UAAU,QA4C1B"}
1
+ {"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../src/StringUtil.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./interface";
2
2
  export * from "./test";
3
+ export * from "./MapUtil";
3
4
  export * from "./StringUtil";
package/lib/index.js CHANGED
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./interface"), exports);
18
18
  __exportStar(require("./test"), exports);
19
+ __exportStar(require("./MapUtil"), exports);
19
20
  __exportStar(require("./StringUtil"), exports);
20
21
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,yCAAuB;AAEvB,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,yCAAuB;AAEvB,4CAA0B;AAC1B,+CAA6B"}
@@ -12,6 +12,7 @@ function invertOpenApiDocument(document) {
12
12
  var _a, _b, _c, _d, _e, _f;
13
13
  return ({
14
14
  specification: empty("specification"),
15
+ authorizationType: null,
15
16
  method: r.method,
16
17
  path: r.path,
17
18
  summary: (_a = r.operation().summary) !== null && _a !== void 0 ? _a : empty("summary"),
@@ -1 +1 @@
1
- {"version":3,"file":"invertOpenApiDocument.js","sourceRoot":"","sources":["../../src/interface/invertOpenApiDocument.ts"],"names":[],"mappings":";;AAQA,sDAqDC;AA5DD,8CAK0B;AAE1B,SAAgB,qBAAqB,CACnC,QAA2B;;IAE3B,MAAM,GAAG,GAA4B,uBAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzE,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,MAAM;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;aAC/B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE;;YACJ,OAAA,CAAC;gBACC,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC;gBACrC,MAAM,EAAE,CAAC,CAAC,MAAgB;gBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,MAAA,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,mCAAI,KAAK,CAAC,SAAS,CAAC;gBAClD,WAAW,EAAE,MAAA,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,mCAAI,KAAK,CAAC,aAAa,CAAC;gBAC9D,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE;;oBACJ,OAAA,CAAC;wBACC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EACT,MAAA,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,mCAAI,KAAK,CAAC,aAAa,CAAC;wBACnD,MAAM,EAAE,CAAC,CAAC,MAAa;qBACxB,CAAoC,CAAA;iBAAA,CACxC;gBACD,WAAW,EACT,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,IAAI,MAAK,kBAAkB;oBACnC,4BAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC3C,CAAC,CAAC;wBACE,WAAW,EAAE,MAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,mCAAI,KAAK,CAAC,aAAa,CAAC;wBACzD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;qBAC/C;oBACH,CAAC,CAAC,IAAI;gBACV,YAAY,EACV,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,IAAI,MAAK,kBAAkB;oBACtC,4BAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC9C,CAAC,CAAC;wBACE,WAAW,EACT,MAAA,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAI,KAAK,CAAC,aAAa,CAAC;wBACjD,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;qBAClD;oBACH,CAAC,CAAC,IAAI;gBACV,iBAAiB,EAAE,IAAI;gBACvB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE;aACzB,CAAoC,CAAA;SAAA,CACxC;QACH,UAAU,EAAE;YACV,OAAO,EAAE,CAAC,MAAA,MAAA,QAAQ,CAAC,UAAU,0CAAE,OAAO,mCAAI,EAAE,CAG3C;YACD,aAAa,EAAE,EAAE;SAClB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,YAAY,GAAG,oDAAoD,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"invertOpenApiDocument.js","sourceRoot":"","sources":["../../src/interface/invertOpenApiDocument.ts"],"names":[],"mappings":";;AAQA,sDAsDC;AA7DD,8CAK0B;AAE1B,SAAgB,qBAAqB,CACnC,QAA2B;;IAE3B,MAAM,GAAG,GAA4B,uBAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzE,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,MAAM;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;aAC/B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE;;YACJ,OAAA,CAAC;gBACC,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC;gBACrC,iBAAiB,EAAE,IAAI;gBACvB,MAAM,EAAE,CAAC,CAAC,MAAgB;gBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,MAAA,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,mCAAI,KAAK,CAAC,SAAS,CAAC;gBAClD,WAAW,EAAE,MAAA,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,mCAAI,KAAK,CAAC,aAAa,CAAC;gBAC9D,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE;;oBACJ,OAAA,CAAC;wBACC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EACT,MAAA,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,mCAAI,KAAK,CAAC,aAAa,CAAC;wBACnD,MAAM,EAAE,CAAC,CAAC,MAAa;qBACxB,CAAoC,CAAA;iBAAA,CACxC;gBACD,WAAW,EACT,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,IAAI,MAAK,kBAAkB;oBACnC,4BAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC3C,CAAC,CAAC;wBACE,WAAW,EAAE,MAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,mCAAI,KAAK,CAAC,aAAa,CAAC;wBACzD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;qBAC/C;oBACH,CAAC,CAAC,IAAI;gBACV,YAAY,EACV,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,IAAI,MAAK,kBAAkB;oBACtC,4BAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC9C,CAAC,CAAC;wBACE,WAAW,EACT,MAAA,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAI,KAAK,CAAC,aAAa,CAAC;wBACjD,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;qBAClD;oBACH,CAAC,CAAC,IAAI;gBACV,iBAAiB,EAAE,IAAI;gBACvB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE;aACzB,CAAoC,CAAA;SAAA,CACxC;QACH,UAAU,EAAE;YACV,OAAO,EAAE,CAAC,MAAA,MAAA,QAAQ,CAAC,UAAU,0CAAE,OAAO,mCAAI,EAAE,CAG3C;YACD,aAAa,EAAE,EAAE;SAClB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,YAAY,GAAG,oDAAoD,CAAC;AAC7E,CAAC"}
@@ -2,15 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformOpenApiDocument = transformOpenApiDocument;
4
4
  const openapi_1 = require("@samchon/openapi");
5
+ const tstl_1 = require("tstl");
6
+ const AutoBeEndpointComparator_1 = require("./AutoBeEndpointComparator");
5
7
  function transformOpenApiDocument(document) {
6
- var _a;
7
- var _b;
8
+ var _a, _b;
9
+ var _c;
10
+ const dict = new tstl_1.HashMap(AutoBeEndpointComparator_1.AutoBeEndpointComparator.hashCode, AutoBeEndpointComparator_1.AutoBeEndpointComparator.equals);
8
11
  const paths = {};
9
12
  for (const op of document.operations) {
10
- (_a = paths[_b = op.path]) !== null && _a !== void 0 ? _a : (paths[_b] = {});
13
+ dict.set(op, op.name);
14
+ (_a = paths[_c = op.path]) !== null && _a !== void 0 ? _a : (paths[_c] = {});
11
15
  paths[op.path][op.method] = {
12
16
  summary: op.summary,
13
- description: op.description,
17
+ description: op.description +
18
+ (op.authorizationType !== null &&
19
+ ((_b = op.responseBody) === null || _b === void 0 ? void 0 : _b.typeName.endsWith(".IAuthorized")) === true
20
+ ? "\n\n@setHeader token.access Authorization"
21
+ : ""),
14
22
  parameters: op.parameters.map((p) => ({
15
23
  name: p.name,
16
24
  in: "path",
@@ -47,10 +55,24 @@ function transformOpenApiDocument(document) {
47
55
  : undefined,
48
56
  };
49
57
  }
50
- return openapi_1.OpenApi.convert({
58
+ const result = openapi_1.OpenApi.convert({
51
59
  openapi: "3.1.0",
52
60
  paths,
53
61
  components: document.components,
54
62
  });
63
+ const migrate = openapi_1.HttpMigration.application(result);
64
+ migrate.routes.forEach((r) => {
65
+ if (r.method === "head")
66
+ return;
67
+ const name = dict.get({
68
+ method: r.method,
69
+ path: r.path,
70
+ });
71
+ if (r.accessor.length >= 2 && r.accessor.at(-2) === name)
72
+ r.accessor.pop();
73
+ r.accessor[r.accessor.length - 1] = name;
74
+ r.operation()["x-samchon-accessor"] = r.accessor;
75
+ });
76
+ return result;
55
77
  }
56
78
  //# sourceMappingURL=transformOpenApiDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformOpenApiDocument.js","sourceRoot":"","sources":["../../src/interface/transformOpenApiDocument.ts"],"names":[],"mappings":";;AAGA,4DAkDC;AApDD,8CAAwD;AAExD,SAAgB,wBAAwB,CACtC,QAAiC;;;IAEjC,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACrC,MAAA,KAAK,MAAC,EAAE,CAAC,IAAI,qCAAb,KAAK,OAAc,EAAE,EAAC;QACtB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG;YAC1B,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,WAAW,EAAE,EAAE,CAAC,WAAW;gBACzB,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,wBAAwB,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE;6BACxD;yBACF;qBACF;oBACD,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW;oBACvC,QAAQ,EAAE,IAAI;iBACf;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,EAAE,CAAC,YAAY;gBACxB,CAAC,CAAC;oBACE,CAAC,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;wBAClC,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE;oCACN,IAAI,EAAE,wBAAwB,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE;iCACzD;6BACF;yBACF;wBACD,WAAW,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW;qBACzC;iBACF;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IACD,OAAO,iBAAO,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,OAAO;QAChB,KAAK;QACL,UAAU,EAAE,QAAQ,CAAC,UAAU;KACP,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"transformOpenApiDocument.js","sourceRoot":"","sources":["../../src/interface/transformOpenApiDocument.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autobe/utils",
3
- "version": "0.17.1",
3
+ "version": "0.19.1",
4
4
  "description": "AI backend server code generator",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [],
@@ -24,10 +24,10 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@samchon/openapi": "^4.6.0",
27
+ "@samchon/openapi": "^4.7.1",
28
28
  "tstl": "^3.0.0",
29
- "typia": "^9.6.1",
30
- "@autobe/interface": "^0.17.1"
29
+ "typia": "^9.7.1",
30
+ "@autobe/interface": "^0.19.1"
31
31
  },
32
32
  "devDependencies": {
33
33
  "rimraf": "^6.0.1",
package/src/MapUtil.ts ADDED
@@ -0,0 +1,10 @@
1
+ export namespace MapUtil {
2
+ export function take<K, V>(map: Map<K, V>, key: K, value: () => V): V {
3
+ if (map.has(key)) {
4
+ return map.get(key) as V;
5
+ }
6
+ const newValue = value();
7
+ map.set(key, newValue);
8
+ return newValue;
9
+ }
10
+ }
package/src/StringUtil.ts CHANGED
@@ -3,11 +3,37 @@ export namespace StringUtil {
3
3
  strings: TemplateStringsArray,
4
4
  ...values: any[]
5
5
  ): string {
6
- let result: string = strings[0];
6
+ // First remove indentation from each string part
7
+ const processedStrings = strings.map((str) => {
8
+ const lines = str.split("\n");
9
+
10
+ // Remove only indentation, not empty lines
11
+ const nonEmptyLines = lines.filter((line) => line.trim() !== "");
12
+ if (nonEmptyLines.length === 0) return str; // Return original if all lines are empty
13
+
14
+ // Find minimum indentation among all non-empty lines
15
+ const indentLengths = nonEmptyLines.map((line) => {
16
+ const leadingWhitespace = line.match(/^[ \t]*/)?.[0] || "";
17
+ return leadingWhitespace.length;
18
+ });
19
+ const indentLength = Math.min(...indentLengths);
20
+
21
+ // Remove indentation from all lines
22
+ const trimmedLines = lines.map((line) => {
23
+ if (line.trim() === "") return "";
24
+ return line.slice(indentLength);
25
+ });
26
+
27
+ return trimmedLines.join("\n");
28
+ });
29
+
30
+ // Combine the indentation-removed strings with values
31
+ let result: string = processedStrings[0];
7
32
  for (let i = 0; i < values.length; i++) {
8
- result += String(values[i]) + strings[i + 1];
33
+ result += String(values[i]) + processedStrings[i + 1];
9
34
  }
10
35
 
36
+ // Remove leading and trailing empty lines from final result
11
37
  const lines: string[] = result.split("\n");
12
38
  while (lines.length > 0 && lines[0].trim() === "") {
13
39
  lines.shift();
@@ -15,21 +41,8 @@ export namespace StringUtil {
15
41
  while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
16
42
  lines.pop();
17
43
  }
18
- if (lines.length === 0) return "";
19
-
20
- const firstNonEmptyLine: string | undefined = lines.find(
21
- (line) => line.trim() !== "",
22
- );
23
- if (!firstNonEmptyLine) return "";
24
-
25
- const leadingWhitespace: string =
26
- firstNonEmptyLine.match(/^[ \t]*/)?.[0] || "";
27
- const indentLength: number = leadingWhitespace.length;
28
- const trimmedLines: string[] = lines.map((line) => {
29
- if (line.trim() === "") return "";
30
- return line.slice(indentLength);
31
- });
32
- return trimmedLines.join("\n");
44
+
45
+ return lines.join("\n");
33
46
  }
34
47
 
35
48
  export function singleLine(
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./interface";
2
2
  export * from "./test";
3
3
 
4
+ export * from "./MapUtil";
4
5
  export * from "./StringUtil";
@@ -17,6 +17,7 @@ export function invertOpenApiDocument(
17
17
  (r) =>
18
18
  ({
19
19
  specification: empty("specification"),
20
+ authorizationType: null,
20
21
  method: r.method as "post",
21
22
  path: r.path,
22
23
  summary: r.operation().summary ?? empty("summary"),
@@ -1,15 +1,34 @@
1
1
  import { AutoBeOpenApi } from "@autobe/interface";
2
- import { OpenApi, OpenApiV3_1 } from "@samchon/openapi";
2
+ import {
3
+ HttpMigration,
4
+ IHttpMigrateApplication,
5
+ OpenApi,
6
+ OpenApiV3_1,
7
+ } from "@samchon/openapi";
8
+ import { HashMap } from "tstl";
9
+
10
+ import { AutoBeEndpointComparator } from "./AutoBeEndpointComparator";
3
11
 
4
12
  export function transformOpenApiDocument(
5
13
  document: AutoBeOpenApi.IDocument,
6
14
  ): OpenApi.IDocument {
15
+ const dict: HashMap<AutoBeOpenApi.IEndpoint, string> = new HashMap(
16
+ AutoBeEndpointComparator.hashCode,
17
+ AutoBeEndpointComparator.equals,
18
+ );
7
19
  const paths: Record<string, OpenApi.IPath> = {};
20
+
8
21
  for (const op of document.operations) {
22
+ dict.set(op, op.name);
9
23
  paths[op.path] ??= {};
10
24
  paths[op.path][op.method] = {
11
25
  summary: op.summary,
12
- description: op.description,
26
+ description:
27
+ op.description +
28
+ (op.authorizationType !== null &&
29
+ op.responseBody?.typeName.endsWith(".IAuthorized") === true
30
+ ? "\n\n@setHeader token.access Authorization"
31
+ : ""),
13
32
  parameters: op.parameters.map((p) => ({
14
33
  name: p.name,
15
34
  in: "path",
@@ -46,9 +65,22 @@ export function transformOpenApiDocument(
46
65
  : undefined,
47
66
  };
48
67
  }
49
- return OpenApi.convert({
68
+
69
+ const result: OpenApi.IDocument = OpenApi.convert({
50
70
  openapi: "3.1.0",
51
71
  paths,
52
72
  components: document.components,
53
73
  } as OpenApiV3_1.IDocument);
74
+ const migrate: IHttpMigrateApplication = HttpMigration.application(result);
75
+ migrate.routes.forEach((r) => {
76
+ if (r.method === "head") return;
77
+ const name: string = dict.get({
78
+ method: r.method,
79
+ path: r.path,
80
+ });
81
+ if (r.accessor.length >= 2 && r.accessor.at(-2) === name) r.accessor.pop();
82
+ r.accessor[r.accessor.length - 1] = name;
83
+ r.operation()["x-samchon-accessor"] = r.accessor;
84
+ });
85
+ return result;
54
86
  }