@trapi/swagger 0.3.8 → 1.0.0-alpha.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.
Files changed (154) hide show
  1. package/dist/config/index.d.ts +3 -0
  2. package/dist/config/index.d.ts.map +1 -0
  3. package/dist/config/index.js +25 -0
  4. package/dist/config/index.js.map +1 -0
  5. package/dist/config/type.d.ts +83 -0
  6. package/dist/config/type.d.ts.map +1 -0
  7. package/dist/config/type.js +9 -0
  8. package/dist/config/type.js.map +1 -0
  9. package/dist/config/utils.d.ts +3 -0
  10. package/dist/config/utils.d.ts.map +1 -0
  11. package/dist/config/utils.js +54 -0
  12. package/dist/config/utils.js.map +1 -0
  13. package/dist/constants.d.ts +15 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +27 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/generator/abstract.d.ts +29 -0
  18. package/dist/generator/abstract.d.ts.map +1 -0
  19. package/dist/generator/abstract.js +215 -0
  20. package/dist/generator/abstract.js.map +1 -0
  21. package/dist/{specification → generator}/index.d.ts +0 -2
  22. package/dist/generator/index.d.ts.map +1 -0
  23. package/dist/{specification → generator}/index.js +1 -3
  24. package/dist/generator/index.js.map +1 -0
  25. package/dist/generator/module.d.ts +14 -0
  26. package/dist/generator/module.d.ts.map +1 -0
  27. package/dist/generator/module.js +35 -0
  28. package/dist/generator/module.js.map +1 -0
  29. package/dist/generator/v2/index.d.ts +2 -0
  30. package/dist/generator/v2/index.d.ts.map +1 -0
  31. package/dist/{specification/utils → generator/v2}/index.js +2 -2
  32. package/dist/generator/v2/index.js.map +1 -0
  33. package/dist/generator/v2/module.d.ts +27 -0
  34. package/dist/generator/v2/module.d.ts.map +1 -0
  35. package/dist/generator/v2/module.js +517 -0
  36. package/dist/generator/v2/module.js.map +1 -0
  37. package/dist/generator/v3/index.d.ts +2 -0
  38. package/dist/generator/v3/index.d.ts.map +1 -0
  39. package/dist/generator/v3/index.js +24 -0
  40. package/dist/generator/v3/index.js.map +1 -0
  41. package/dist/generator/v3/module.d.ts +31 -0
  42. package/dist/generator/v3/module.d.ts.map +1 -0
  43. package/dist/generator/v3/module.js +508 -0
  44. package/dist/generator/v3/module.js.map +1 -0
  45. package/dist/index.d.ts +4 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -2
  48. package/dist/index.js.map +1 -1
  49. package/dist/metadata.d.ts +3 -4
  50. package/dist/metadata.d.ts.map +1 -1
  51. package/dist/metadata.js +3 -15
  52. package/dist/metadata.js.map +1 -1
  53. package/dist/schema/constants.d.ts +7 -0
  54. package/dist/schema/constants.d.ts.map +1 -0
  55. package/dist/schema/constants.js +17 -0
  56. package/dist/schema/constants.js.map +1 -0
  57. package/dist/schema/index.d.ts +5 -0
  58. package/dist/schema/index.d.ts.map +1 -0
  59. package/dist/schema/index.js +27 -0
  60. package/dist/schema/index.js.map +1 -0
  61. package/dist/schema/type.d.ts +140 -0
  62. package/dist/schema/type.d.ts.map +1 -0
  63. package/dist/schema/type.js.map +1 -0
  64. package/dist/schema/v2/constants.d.ts +8 -0
  65. package/dist/schema/v2/constants.d.ts.map +1 -0
  66. package/dist/schema/v2/constants.js +18 -0
  67. package/dist/schema/v2/constants.js.map +1 -0
  68. package/dist/schema/v2/index.d.ts +3 -0
  69. package/dist/schema/v2/index.d.ts.map +1 -0
  70. package/dist/{specification/v3 → schema/v2}/index.js +1 -1
  71. package/dist/schema/v2/index.js.map +1 -0
  72. package/dist/schema/v2/type.d.ts +116 -0
  73. package/dist/schema/v2/type.d.ts.map +1 -0
  74. package/dist/schema/v2/type.js.map +1 -0
  75. package/dist/schema/v3/constants.d.ts +7 -0
  76. package/dist/schema/v3/constants.d.ts.map +1 -0
  77. package/dist/schema/v3/constants.js +17 -0
  78. package/dist/schema/v3/constants.js.map +1 -0
  79. package/dist/schema/v3/index.d.ts +3 -0
  80. package/dist/schema/v3/index.d.ts.map +1 -0
  81. package/dist/{specification/v2 → schema/v3}/index.js +1 -1
  82. package/dist/schema/v3/index.js.map +1 -0
  83. package/dist/schema/v3/type.d.ts +158 -0
  84. package/dist/schema/v3/type.d.ts.map +1 -0
  85. package/dist/schema/v3/type.js +9 -0
  86. package/dist/schema/v3/type.js.map +1 -0
  87. package/dist/type.d.ts +44 -2
  88. package/dist/type.d.ts.map +1 -1
  89. package/dist/utils/character.d.ts +3 -0
  90. package/dist/utils/character.d.ts.map +1 -0
  91. package/dist/{specification/utils → utils}/character.js +4 -5
  92. package/dist/utils/character.js.map +1 -0
  93. package/dist/utils/index.d.ts +2 -1
  94. package/dist/utils/index.d.ts.map +1 -1
  95. package/dist/utils/index.js +2 -1
  96. package/dist/utils/index.js.map +1 -1
  97. package/dist/utils/object.d.ts.map +1 -1
  98. package/dist/utils/object.js +1 -0
  99. package/dist/utils/object.js.map +1 -1
  100. package/dist/utils/value.d.ts +2 -0
  101. package/dist/utils/value.d.ts.map +1 -0
  102. package/dist/utils/value.js +26 -0
  103. package/dist/utils/value.js.map +1 -0
  104. package/package.json +7 -10
  105. package/dist/module.d.ts +0 -8
  106. package/dist/module.d.ts.map +0 -1
  107. package/dist/module.js +0 -31
  108. package/dist/module.js.map +0 -1
  109. package/dist/specification/abstract.d.ts +0 -29
  110. package/dist/specification/abstract.d.ts.map +0 -1
  111. package/dist/specification/abstract.js +0 -226
  112. package/dist/specification/abstract.js.map +0 -1
  113. package/dist/specification/index.d.ts.map +0 -1
  114. package/dist/specification/index.js.map +0 -1
  115. package/dist/specification/module.d.ts +0 -5
  116. package/dist/specification/module.d.ts.map +0 -1
  117. package/dist/specification/module.js +0 -29
  118. package/dist/specification/module.js.map +0 -1
  119. package/dist/specification/type.d.ts +0 -268
  120. package/dist/specification/type.d.ts.map +0 -1
  121. package/dist/specification/type.js +0 -18
  122. package/dist/specification/type.js.map +0 -1
  123. package/dist/specification/utils/character.d.ts +0 -3
  124. package/dist/specification/utils/character.d.ts.map +0 -1
  125. package/dist/specification/utils/character.js.map +0 -1
  126. package/dist/specification/utils/index.d.ts +0 -2
  127. package/dist/specification/utils/index.d.ts.map +0 -1
  128. package/dist/specification/utils/index.js.map +0 -1
  129. package/dist/specification/v2/index.d.ts +0 -3
  130. package/dist/specification/v2/index.d.ts.map +0 -1
  131. package/dist/specification/v2/index.js.map +0 -1
  132. package/dist/specification/v2/module.d.ts +0 -24
  133. package/dist/specification/v2/module.d.ts.map +0 -1
  134. package/dist/specification/v2/module.js +0 -389
  135. package/dist/specification/v2/module.js.map +0 -1
  136. package/dist/specification/v2/type.d.ts +0 -79
  137. package/dist/specification/v2/type.d.ts.map +0 -1
  138. package/dist/specification/v2/type.js.map +0 -1
  139. package/dist/specification/v3/index.d.ts +0 -3
  140. package/dist/specification/v3/index.d.ts.map +0 -1
  141. package/dist/specification/v3/index.js.map +0 -1
  142. package/dist/specification/v3/module.d.ts +0 -25
  143. package/dist/specification/v3/module.d.ts.map +0 -1
  144. package/dist/specification/v3/module.js +0 -377
  145. package/dist/specification/v3/module.js.map +0 -1
  146. package/dist/specification/v3/type.d.ts +0 -121
  147. package/dist/specification/v3/type.d.ts.map +0 -1
  148. package/dist/specification/v3/type.js.map +0 -1
  149. package/dist/utils/package-json.d.ts +0 -3
  150. package/dist/utils/package-json.d.ts.map +0 -1
  151. package/dist/utils/package-json.js +0 -35
  152. package/dist/utils/package-json.js.map +0 -1
  153. /package/dist/{specification/v2 → schema}/type.js +0 -0
  154. /package/dist/{specification/v3 → schema/v2}/type.js +0 -0
@@ -0,0 +1,3 @@
1
+ export * from './type';
2
+ export * from './utils';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./type"), exports);
24
+ __exportStar(require("./utils"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,yCAAuB;AACvB,0CAAwB"}
@@ -0,0 +1,83 @@
1
+ import type { CollectionFormat, Metadata, Options as MetadataOptions } from '@trapi/metadata';
2
+ import type { SecurityDefinitions } from '../type';
3
+ export type ServerOption = {
4
+ url: string;
5
+ description?: string;
6
+ };
7
+ export interface Options {
8
+ /**
9
+ * Generate a yaml file
10
+ */
11
+ yaml?: boolean;
12
+ /**
13
+ * Specify if an output file should be generated.
14
+ *
15
+ * default: true
16
+ */
17
+ output: boolean;
18
+ /**
19
+ * Generated swagger.{json|yaml} will output here.
20
+ *
21
+ * default: process.cwd()
22
+ */
23
+ outputDirectory: string;
24
+ /**
25
+ * Generated documentation base file name.
26
+ *
27
+ * default: swagger
28
+ */
29
+ outputFileName: string;
30
+ /**
31
+ * API host, expressTemplate.g. localhost:3000 or https://myapi.com
32
+ */
33
+ servers?: ServerOption[];
34
+ /**
35
+ * Metadata options or metadata itself.
36
+ */
37
+ metadata?: MetadataOptions | Metadata;
38
+ /**
39
+ * API version number; defaults to npm package version
40
+ */
41
+ version?: string;
42
+ /**
43
+ * API name; defaults to npm package name
44
+ */
45
+ name?: string;
46
+ /**
47
+ * 'API description; defaults to npm package description
48
+ */
49
+ description?: string;
50
+ /**
51
+ * API license; defaults to npm package license
52
+ */
53
+ license?: string;
54
+ /**
55
+ * Extend generated swagger spec with this object
56
+ * Note that generated properties will always take precedence over what get specified here
57
+ */
58
+ specificationExtra?: Record<string, any>;
59
+ /**
60
+ * Security Definitions Object
61
+ * A declaration of the security schemes available to be used in the
62
+ * specification. This does not enforce the security schemes on the operations
63
+ * and only serves to provide the relevant details for each scheme.
64
+ */
65
+ securityDefinitions?: SecurityDefinitions;
66
+ /**
67
+ * Default consumes property for the entire API
68
+ */
69
+ consumes?: string[];
70
+ /**
71
+ * Default produces property for the entire API
72
+ */
73
+ produces?: string[];
74
+ /**
75
+ * Default collectionFormat property for query parameters of array type.
76
+ * Possible values are `csv`, `ssv`, `tsv`, `pipes`, `multi`. If not specified, Swagger defaults to `csv`.
77
+ */
78
+ collectionFormat?: `${CollectionFormat}`;
79
+ }
80
+ export type OptionsInput = Omit<Partial<Options>, 'servers'> & {
81
+ servers?: string | string[] | ServerOption | ServerOption[];
82
+ };
83
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/config/type.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,GAAG,YAAY,EAAE,CAAA;CAC9D,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/config/type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,3 @@
1
+ import type { Options, OptionsInput } from './type';
2
+ export declare function buildOptions(input: OptionsInput): Options;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAgB,MAAM,QAAQ,CAAC;AAElE,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAI,OAAO,CAmC1D"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildOptions = void 0;
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const node_process_1 = __importDefault(require("node:process"));
15
+ function buildOptions(input) {
16
+ const servers = [];
17
+ if (input.servers) {
18
+ if (Array.isArray(input.servers)) {
19
+ for (let i = 0; i < input.servers.length; i++) {
20
+ const server = input.servers[i];
21
+ if (typeof server === 'string') {
22
+ servers.push({ url: server });
23
+ }
24
+ else {
25
+ servers.push(server);
26
+ }
27
+ }
28
+ }
29
+ else if (typeof input.servers === 'string') {
30
+ servers.push({ url: input.servers });
31
+ }
32
+ else {
33
+ servers.push(input.servers);
34
+ }
35
+ }
36
+ let outputDirectory;
37
+ if (input.outputDirectory) {
38
+ outputDirectory = node_path_1.default.isAbsolute(input.outputDirectory) ?
39
+ input.outputDirectory :
40
+ node_path_1.default.join(node_process_1.default.cwd(), input.outputDirectory);
41
+ }
42
+ else {
43
+ outputDirectory = node_process_1.default.cwd();
44
+ }
45
+ return {
46
+ ...input,
47
+ output: input.output ?? true,
48
+ outputDirectory,
49
+ outputFileName: input.outputFileName || 'swagger',
50
+ servers,
51
+ };
52
+ }
53
+ exports.buildOptions = buildOptions;
54
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,0DAA6B;AAC7B,gEAAmC;AAGnC,SAAgB,YAAY,CAAC,KAAmB;IAC5C,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,EAAE;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;oBAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;iBACjC;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACxB;aACJ;SACJ;aAAM,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACxC;aAAM;YACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC/B;KACJ;IAED,IAAI,eAAwB,CAAC;IAC7B,IAAI,KAAK,CAAC,eAAe,EAAE;QACvB,eAAe,GAAG,mBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YACtD,KAAK,CAAC,eAAe,CAAC,CAAC;YACvB,mBAAI,CAAC,IAAI,CAAC,sBAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;KACvD;SAAM;QACH,eAAe,GAAG,sBAAO,CAAC,GAAG,EAAE,CAAC;KACnC;IAED,OAAO;QACH,GAAG,KAAK;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,eAAe;QACf,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;QACjD,OAAO;KACV,CAAC;AACN,CAAC;AAnCD,oCAmCC"}
@@ -0,0 +1,15 @@
1
+ export declare enum Version {
2
+ V2 = "V2",
3
+ V3 = "V3"
4
+ }
5
+ export declare enum DocumentFormat {
6
+ YAML = "yaml",
7
+ JSON = "json"
8
+ }
9
+ export declare enum SecurityType {
10
+ API_KEY = "apiKey",
11
+ BASIC = "basic",
12
+ HTTP = "http",
13
+ OAUTH2 = "oauth2"
14
+ }
15
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,OAAO;IACf,EAAE,OAAO;IACT,EAAE,OAAO;CACZ;AAED,oBAAY,cAAc;IACtB,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED,oBAAY,YAAY;IACpB,OAAO,WAAW;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;CACpB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SecurityType = exports.DocumentFormat = exports.Version = void 0;
10
+ var Version;
11
+ (function (Version) {
12
+ Version["V2"] = "V2";
13
+ Version["V3"] = "V3";
14
+ })(Version = exports.Version || (exports.Version = {}));
15
+ var DocumentFormat;
16
+ (function (DocumentFormat) {
17
+ DocumentFormat["YAML"] = "yaml";
18
+ DocumentFormat["JSON"] = "json";
19
+ })(DocumentFormat = exports.DocumentFormat || (exports.DocumentFormat = {}));
20
+ var SecurityType;
21
+ (function (SecurityType) {
22
+ SecurityType["API_KEY"] = "apiKey";
23
+ SecurityType["BASIC"] = "basic";
24
+ SecurityType["HTTP"] = "http";
25
+ SecurityType["OAUTH2"] = "oauth2";
26
+ })(SecurityType = exports.SecurityType || (exports.SecurityType = {}));
27
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,oBAAS,CAAA;IACT,oBAAS,CAAA;AACb,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,kCAAkB,CAAA;IAClB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACrB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB"}
@@ -0,0 +1,29 @@
1
+ import type { BaseType, EnumType, IntersectionType, Metadata, NestedObjectLiteralType, Parameter, ParameterSource, ReferenceType, ResolverProperty, UnionType, Validators, VariableType } from '@trapi/metadata';
2
+ import type { Options, OptionsInput } from '../config';
3
+ import type { DocumentFormat } from '../constants';
4
+ import type { DocumentFormatData } from '../type';
5
+ import type { BaseSchema, Info, SchemaV2, SchemaV3, SpecV2, SpecV3 } from '../schema';
6
+ export declare abstract class AbstractSpecGenerator<Spec extends SpecV2 | SpecV3, Schema extends SchemaV3 | SchemaV2> {
7
+ protected spec: Spec | undefined;
8
+ protected readonly metadata: Metadata;
9
+ protected readonly config: Options;
10
+ constructor(metadata: Metadata, config: OptionsInput);
11
+ save(): Promise<Record<`${DocumentFormat}`, DocumentFormatData>>;
12
+ abstract build(): Promise<Spec>;
13
+ protected buildInfo(): Info;
14
+ protected getSwaggerType(type: BaseType): Schema | BaseSchema<Schema>;
15
+ protected abstract getSwaggerTypeForIntersectionType(type: IntersectionType): Schema;
16
+ protected abstract getSwaggerTypeForEnumType(enumType: EnumType): Schema;
17
+ private getSwaggerTypeForPrimitiveType;
18
+ private getSwaggerTypeForArrayType;
19
+ getSwaggerTypeForObjectLiteral(objectLiteral: NestedObjectLiteralType): BaseSchema<Schema>;
20
+ protected abstract getSwaggerTypeForReferenceType(referenceType: ReferenceType): Schema;
21
+ protected abstract getSwaggerTypeForUnionType(type: UnionType): Schema;
22
+ protected abstract buildProperties(properties: ResolverProperty[]): Record<string, Schema>;
23
+ protected determineTypesUsedInEnum(anEnum: Array<string | number | boolean | null>): VariableType[];
24
+ protected decideEnumType(input: Array<string | number | boolean>): 'string' | 'number' | 'boolean';
25
+ protected getOperationId(name: string): string;
26
+ protected groupParameters(items: Parameter[]): Partial<Record<ParameterSource, Parameter[]>>;
27
+ protected buildSchemaForValidators(input?: Validators): Record<string, any>;
28
+ }
29
+ //# sourceMappingURL=abstract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../src/generator/abstract.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAER,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,uBAAuB,EACvB,SAAS,EACT,eAAe,EAEf,aAAa,EACb,gBAAgB,EAEhB,SAAS,EACT,UAAU,EACV,YAAY,EACf,MAAM,iBAAiB,CAAC;AAkBzB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACT,MAAM,WAAW,CAAC;AAEnB,8BAAsB,qBAAqB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,SAAS,QAAQ,GAAG,QAAQ;IACxG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEvB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY;IAK9C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,cAAc,EAAE,EAAE,kBAAkB,CAAC,CAAC;aAwCtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtC,SAAS,CAAC,SAAS;IAiBnB,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAqCrE,SAAS,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAEpF,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAExE,OAAO,CAAC,8BAA8B;IA0BtC,OAAO,CAAC,0BAA0B;IAI3B,8BAA8B,CAAC,aAAa,EAAE,uBAAuB,GAAG,UAAU,CAAC,MAAM,CAAC;IAkBjG,SAAS,CAAC,QAAQ,CAAC,8BAA8B,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAEvF,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE,SAAS,GAAI,MAAM;IAEvE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAE1F,SAAS,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GAAI,YAAY,EAAE;IAapG,SAAS,CAAC,cAAc,CACpB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACxC,QAAQ,GAAG,QAAQ,GAAG,SAAS;IAgClC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM;IAIrC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAI,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;IAc7F,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAqB/E"}
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2021-2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AbstractSpecGenerator = void 0;
13
+ const metadata_1 = require("@trapi/metadata");
14
+ const node_path_1 = __importDefault(require("node:path"));
15
+ const node_fs_1 = __importDefault(require("node:fs"));
16
+ const smob_1 = require("smob");
17
+ const yamljs_1 = __importDefault(require("yamljs"));
18
+ const config_1 = require("../config");
19
+ class AbstractSpecGenerator {
20
+ constructor(metadata, config) {
21
+ this.metadata = metadata;
22
+ this.config = (0, config_1.buildOptions)(config);
23
+ }
24
+ async save() {
25
+ if (!this.config.output) {
26
+ return;
27
+ }
28
+ if (typeof this.spec === 'undefined') {
29
+ throw new Error('The spec has not been build yet...');
30
+ }
31
+ try {
32
+ await node_fs_1.default.promises.access(this.config.outputDirectory, node_fs_1.default.constants.R_OK | node_fs_1.default.constants.O_DIRECTORY);
33
+ }
34
+ catch (e) {
35
+ await node_fs_1.default.promises.mkdir(this.config.outputDirectory, { recursive: true });
36
+ }
37
+ const data = [
38
+ {
39
+ path: node_path_1.default.join(this.config.outputDirectory, `${this.config.outputFileName}.json`),
40
+ name: 'swagger.json',
41
+ content: JSON.stringify(this.spec, null, 4),
42
+ },
43
+ ];
44
+ if (this.config.yaml) {
45
+ data.push({
46
+ path: node_path_1.default.join(this.config.outputDirectory, `${this.config.outputFileName}.yaml`),
47
+ name: 'swagger.yaml',
48
+ content: yamljs_1.default.stringify(this.spec, 1000),
49
+ });
50
+ }
51
+ const promises = [];
52
+ for (let i = 0; i < data.length; i++) {
53
+ promises.push(node_fs_1.default.promises.writeFile(data[i].path, data[i].content, { encoding: 'utf-8' }));
54
+ }
55
+ await Promise.all(promises);
56
+ }
57
+ buildInfo() {
58
+ const info = {
59
+ title: this.config.name || '',
60
+ version: this.config.version || '1.0.0',
61
+ };
62
+ if (this.config.description) {
63
+ info.description = this.config.description;
64
+ }
65
+ if (this.config.license) {
66
+ info.license = { name: this.config.license };
67
+ }
68
+ return info;
69
+ }
70
+ getSwaggerType(type) {
71
+ if ((0, metadata_1.isVoidType)(type)) {
72
+ return {};
73
+ }
74
+ if ((0, metadata_1.isReferenceType)(type)) {
75
+ return this.getSwaggerTypeForReferenceType(type);
76
+ }
77
+ if (type.typeName === 'any' ||
78
+ type.typeName === 'binary' ||
79
+ type.typeName === 'boolean' ||
80
+ type.typeName === 'buffer' ||
81
+ type.typeName === 'byte' ||
82
+ type.typeName === 'date' ||
83
+ type.typeName === 'datetime' ||
84
+ type.typeName === 'double' ||
85
+ type.typeName === 'float' ||
86
+ type.typeName === 'file' ||
87
+ type.typeName === 'integer' ||
88
+ type.typeName === 'long' ||
89
+ type.typeName === 'object' ||
90
+ type.typeName === 'string') {
91
+ return this.getSwaggerTypeForPrimitiveType(type.typeName);
92
+ }
93
+ if ((0, metadata_1.isArrayType)(type)) {
94
+ return this.getSwaggerTypeForArrayType(type);
95
+ }
96
+ if ((0, metadata_1.isEnumType)(type)) {
97
+ return this.getSwaggerTypeForEnumType(type);
98
+ }
99
+ if ((0, metadata_1.isUnionType)(type)) {
100
+ return this.getSwaggerTypeForUnionType(type);
101
+ }
102
+ if ((0, metadata_1.isIntersectionType)(type)) {
103
+ return this.getSwaggerTypeForIntersectionType(type);
104
+ }
105
+ if ((0, metadata_1.isNestedObjectLiteralType)(type)) {
106
+ return this.getSwaggerTypeForObjectLiteral(type);
107
+ }
108
+ return {};
109
+ }
110
+ getSwaggerTypeForPrimitiveType(type) {
111
+ const PrimitiveSwaggerTypeMap = {
112
+ any: {
113
+ additionalProperties: true,
114
+ },
115
+ binary: { type: 'string', format: 'binary' },
116
+ boolean: { type: 'boolean' },
117
+ buffer: { type: 'string', format: 'byte' },
118
+ byte: { type: 'string', format: 'byte' },
119
+ date: { type: 'string', format: 'date' },
120
+ datetime: { type: 'string', format: 'date-time' },
121
+ double: { type: 'number', format: 'double' },
122
+ file: { type: 'string', format: 'binary' },
123
+ float: { type: 'number', format: 'float' },
124
+ integer: { type: 'integer', format: 'int32' },
125
+ long: { type: 'integer', format: 'int64' },
126
+ object: {
127
+ type: 'object',
128
+ additionalProperties: true,
129
+ },
130
+ string: { type: 'string' },
131
+ };
132
+ return PrimitiveSwaggerTypeMap[type];
133
+ }
134
+ getSwaggerTypeForArrayType(arrayType) {
135
+ return { type: 'array', items: this.getSwaggerType(arrayType.elementType) };
136
+ }
137
+ getSwaggerTypeForObjectLiteral(objectLiteral) {
138
+ const properties = this.buildProperties(objectLiteral.properties);
139
+ const additionalProperties = objectLiteral.additionalProperties && this.getSwaggerType(objectLiteral.additionalProperties);
140
+ const required = objectLiteral.properties
141
+ .filter((prop) => prop.required).map((prop) => prop.name);
142
+ // An empty list required: [] is not valid.
143
+ // If all properties are optional, do not specify the required keyword.
144
+ return {
145
+ properties,
146
+ ...(additionalProperties && { additionalProperties }),
147
+ ...(required && required.length && { required }),
148
+ type: 'object',
149
+ };
150
+ }
151
+ determineTypesUsedInEnum(anEnum) {
152
+ const set = new Set();
153
+ for (let i = 0; i < anEnum.length; i++) {
154
+ if (anEnum[i] === null) {
155
+ continue;
156
+ }
157
+ set.add(typeof anEnum[i]);
158
+ }
159
+ return Array.from(set);
160
+ }
161
+ decideEnumType(input) {
162
+ const types = this.determineTypesUsedInEnum(input);
163
+ if (types.length === 1) {
164
+ const value = types[0];
165
+ if (value === 'string' ||
166
+ value === 'number' ||
167
+ value === 'boolean') {
168
+ return value;
169
+ }
170
+ throw new Error(`Enums can only have string or number values, but type "${types[0] || 'unknown'}" given.`);
171
+ }
172
+ for (let i = 0; i < types.length; i++) {
173
+ const type = types[i];
174
+ if (type !== 'string' &&
175
+ type !== 'number' &&
176
+ type !== 'boolean') {
177
+ const values = types.join(',');
178
+ throw new Error(`Enums can only have string or number values, but types ${values} given.`);
179
+ }
180
+ }
181
+ return 'string';
182
+ }
183
+ getOperationId(name) {
184
+ return name.charAt(0).toUpperCase() + name.substring(1);
185
+ }
186
+ groupParameters(items) {
187
+ const output = {};
188
+ for (let i = 0; i < items.length; i++) {
189
+ if (typeof output[items[i].in] === 'undefined') {
190
+ output[items[i].in] = [];
191
+ }
192
+ output[items[i].in].push(items[i]);
193
+ }
194
+ return output;
195
+ }
196
+ buildSchemaForValidators(input) {
197
+ if (!(0, smob_1.isObject)(input)) {
198
+ return {};
199
+ }
200
+ const keys = Object.keys(input);
201
+ const output = {};
202
+ for (let i = 0; i < keys.length; i++) {
203
+ const key = keys[i];
204
+ if (key.startsWith('is') ||
205
+ key === metadata_1.ValidatorName.MIN_DATE ||
206
+ key === metadata_1.ValidatorName.MAX_DATE) {
207
+ continue;
208
+ }
209
+ output[key] = input[key].value;
210
+ }
211
+ return output;
212
+ }
213
+ }
214
+ exports.AbstractSpecGenerator = AbstractSpecGenerator;
215
+ //# sourceMappingURL=abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../src/generator/abstract.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,4 @@ export * from './v2';
2
2
  export * from './v3';
3
3
  export * from './abstract';
4
4
  export * from './module';
5
- export * from './type';
6
- export * from './utils';
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAOA,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2021.
3
+ * Copyright (c) 2023.
4
4
  * Author Peter Placzek (tada5hi)
5
5
  * For the full copyright and license information,
6
6
  * view the LICENSE file that was distributed with this source code.
@@ -24,6 +24,4 @@ __exportStar(require("./v2"), exports);
24
24
  __exportStar(require("./v3"), exports);
25
25
  __exportStar(require("./abstract"), exports);
26
26
  __exportStar(require("./module"), exports);
27
- __exportStar(require("./type"), exports);
28
- __exportStar(require("./utils"), exports);
29
27
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,uCAAqB;AACrB,uCAAqB;AACrB,6CAA2B;AAC3B,2CAAyB"}
@@ -0,0 +1,14 @@
1
+ import type { TsConfig } from '@trapi/metadata';
2
+ import type { OptionsInput } from '../config';
3
+ import { Version } from '../constants';
4
+ import type { SpecV2, SpecV3 } from '../schema';
5
+ export declare function buildMetadata(options: OptionsInput, tsConfig?: TsConfig | string): Promise<import("@trapi/metadata").Metadata>;
6
+ export type DocumentationGenerationContext<V extends `${Version}`> = {
7
+ version: V;
8
+ options: OptionsInput;
9
+ tsConfig?: TsConfig | string;
10
+ };
11
+ type OutputSpec<V extends `${Version}`> = V extends `${Version.V2}` ? SpecV2 : SpecV3;
12
+ export declare function generate<V extends `${Version}`>(context: DocumentationGenerationContext<V>): Promise<OutputSpec<V>>;
13
+ export {};
14
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/generator/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIhD,wBAAsB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,+CAMtF;AAED,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,GAAG,OAAO,EAAE,IAAI;IACjE,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CAC/B,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,SAAS,GAAG,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,EAAE,GAC/D,MAAM,GACN,MAAM,CAAC;AAEX,wBAAsB,QAAQ,CAAC,CAAC,SAAS,GAAG,OAAO,EAAE,EACjD,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAexB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2021-2023.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.generate = exports.buildMetadata = void 0;
10
+ const metadata_1 = require("@trapi/metadata");
11
+ const constants_1 = require("../constants");
12
+ const v2_1 = require("./v2");
13
+ const v3_1 = require("./v3");
14
+ async function buildMetadata(options, tsConfig) {
15
+ if ((0, metadata_1.isMetadata)(options.metadata)) {
16
+ return options.metadata;
17
+ }
18
+ return (0, metadata_1.generateMetadata)(options.metadata, tsConfig);
19
+ }
20
+ exports.buildMetadata = buildMetadata;
21
+ async function generate(context) {
22
+ const metadata = await buildMetadata(context.options, context.tsConfig);
23
+ switch (context.version) {
24
+ case constants_1.Version.V3: {
25
+ const generator = new v3_1.V3Generator(metadata, context.options);
26
+ return await generator.build();
27
+ }
28
+ default: {
29
+ const generator = new v2_1.V2Generator(metadata, context.options);
30
+ return await generator.build();
31
+ }
32
+ }
33
+ }
34
+ exports.generate = generate;
35
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/generator/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,8CAA+D;AAE/D,4CAAuC;AAEvC,6BAAmC;AACnC,6BAAmC;AAE5B,KAAK,UAAU,aAAa,CAAC,OAAqB,EAAE,QAA4B;IACnF,IAAI,IAAA,qBAAU,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC;KAC3B;IAED,OAAO,IAAA,2BAAgB,EAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAND,sCAMC;AAYM,KAAK,UAAU,QAAQ,CAC1B,OAA0C;IAE1C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExE,QAAQ,OAAO,CAAC,OAAO,EAAE;QACrB,KAAK,mBAAO,CAAC,EAAE,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,gBAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,OAAO,MAAM,SAAS,CAAC,KAAK,EAAmB,CAAC;SACnD;QACD,OAAO,CAAC,CAAC;YACL,MAAM,SAAS,GAAG,IAAI,gBAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,OAAO,MAAM,SAAS,CAAC,KAAK,EAAmB,CAAC;SACnD;KACJ;AACL,CAAC;AAjBD,4BAiBC"}
@@ -0,0 +1,2 @@
1
+ export * from './module';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generator/v2/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2022-2022.
3
+ * Copyright (c) 2023.
4
4
  * Author Peter Placzek (tada5hi)
5
5
  * For the full copyright and license information,
6
6
  * view the LICENSE file that was distributed with this source code.
@@ -20,5 +20,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./character"), exports);
23
+ __exportStar(require("./module"), exports);
24
24
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/v2/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB"}