@nestia/sdk 12.0.0-dev.20260601.1 → 12.0.0-dev.20260619.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.
- package/LICENSE +21 -21
- package/README.md +93 -93
- package/assets/bundle/api/HttpError.ts +1 -1
- package/assets/bundle/api/IConnection.ts +1 -1
- package/assets/bundle/api/Primitive.ts +1 -1
- package/assets/bundle/api/Resolved.ts +1 -1
- package/assets/bundle/api/index.ts +4 -4
- package/assets/bundle/api/module.ts +6 -6
- package/assets/bundle/distribute/README.md +37 -37
- package/assets/bundle/distribute/package.json +28 -28
- package/assets/bundle/distribute/tsconfig.json +109 -109
- package/assets/bundle/e2e/index.ts +42 -42
- package/assets/config/nestia.config.ts +97 -97
- package/lib/NestiaSdkApplication.js +29 -7
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/NestiaSwaggerComposer.js +21 -13
- package/lib/NestiaSwaggerComposer.js.map +1 -1
- package/lib/analyses/AccessorAnalyzer.d.ts +4 -1
- package/lib/analyses/AccessorAnalyzer.js.map +1 -1
- package/lib/analyses/ConfigAnalyzer.js +1 -1
- package/lib/analyses/PathAnalyzer.d.ts +18 -3
- package/lib/analyses/PathAnalyzer.js +32 -0
- package/lib/analyses/PathAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectControllerAnalyzer.js +3 -2
- package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.js +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +53 -20
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +14 -0
- package/lib/analyses/ReflectMcpOperationAnalyzer.js +79 -0
- package/lib/analyses/ReflectMcpOperationAnalyzer.js.map +1 -0
- package/lib/analyses/TypedMcpRouteAnalyzer.d.ts +9 -0
- package/lib/analyses/TypedMcpRouteAnalyzer.js +31 -0
- package/lib/analyses/TypedMcpRouteAnalyzer.js.map +1 -0
- package/lib/executable/internal/NestiaConfigLoader.js +5 -1
- package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.js +30 -14
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/executable/internal/NestiaSdkWatcher.d.ts +10 -0
- package/lib/executable/internal/NestiaSdkWatcher.js +322 -0
- package/lib/executable/internal/NestiaSdkWatcher.js.map +1 -0
- package/lib/executable/sdk.js +12 -12
- package/lib/executable/sdk.js.map +1 -1
- package/lib/factories/ExpressionFactory.d.ts +9 -0
- package/lib/factories/ExpressionFactory.js +16 -0
- package/lib/factories/ExpressionFactory.js.map +1 -0
- package/lib/factories/IdentifierFactory.d.ts +22 -0
- package/lib/factories/IdentifierFactory.js +50 -0
- package/lib/factories/IdentifierFactory.js.map +1 -0
- package/lib/factories/LiteralFactory.d.ts +9 -0
- package/lib/factories/LiteralFactory.js +48 -0
- package/lib/factories/LiteralFactory.js.map +1 -0
- package/lib/factories/StatementFactory.d.ts +14 -0
- package/lib/factories/StatementFactory.js +20 -0
- package/lib/factories/StatementFactory.js.map +1 -0
- package/lib/factories/TypeFactory.d.ts +24 -0
- package/lib/factories/TypeFactory.js +27 -0
- package/lib/factories/TypeFactory.js.map +1 -0
- package/lib/generates/CloneGenerator.js +6 -4
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/SdkGenerator.js +50 -1
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.js +18 -2
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +32 -29
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/FilePrinter.d.ts +2 -2
- package/lib/generates/internal/FilePrinter.js +14 -25
- package/lib/generates/internal/FilePrinter.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.d.ts +2 -1
- package/lib/generates/internal/ImportDictionary.js +16 -10
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +12 -10
- package/lib/generates/internal/SdkAliasCollection.js +29 -22
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkDistributionComposer.d.ts +1 -0
- package/lib/generates/internal/SdkDistributionComposer.js +3 -0
- package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js +6 -3
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +3 -3
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpCloneReferencer.js +42 -9
- package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +47 -51
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +63 -61
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpParameterProgrammer.js +11 -13
- package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +52 -47
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +15 -0
- package/lib/generates/internal/SdkMcpRouteProgrammer.js +149 -0
- package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -0
- package/lib/generates/internal/SdkRouteDirectory.d.ts +2 -1
- package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
- package/lib/generates/internal/SdkTypeProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkTypeProgrammer.js +42 -43
- package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +2 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.js +7 -9
- package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketCloneProgrammer.d.ts +6 -0
- package/lib/generates/internal/SdkWebSocketCloneProgrammer.js +283 -0
- package/lib/generates/internal/SdkWebSocketCloneProgrammer.js.map +1 -0
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +45 -47
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -9
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +37 -41
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationParameterComposer.js +10 -2
- package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +1 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.js +6 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerReadonlyArrayEmender.d.ts +9 -0
- package/lib/generates/internal/SwaggerReadonlyArrayEmender.js +174 -0
- package/lib/generates/internal/SwaggerReadonlyArrayEmender.js.map +1 -0
- package/lib/structures/INestiaSdkInput.d.ts +9 -2
- package/lib/structures/IReflectController.d.ts +2 -1
- package/lib/structures/IReflectHttpOperationSuccess.d.ts +4 -2
- package/lib/structures/IReflectMcpOperation.d.ts +35 -0
- package/lib/structures/IReflectMcpOperation.js +3 -0
- package/lib/structures/IReflectMcpOperation.js.map +1 -0
- package/lib/structures/IReflectMcpOperationParameter.d.ts +19 -0
- package/lib/structures/IReflectMcpOperationParameter.js +3 -0
- package/lib/structures/IReflectMcpOperationParameter.js.map +1 -0
- package/lib/structures/ITypedApplication.d.ts +2 -1
- package/lib/structures/ITypedHttpRouteSuccess.d.ts +3 -1
- package/lib/structures/ITypedMcpRoute.d.ts +31 -0
- package/lib/structures/ITypedMcpRoute.js +3 -0
- package/lib/structures/ITypedMcpRoute.js.map +1 -0
- package/lib/transform.d.ts +5 -9
- package/lib/transform.js +8 -31
- package/lib/transform.js.map +1 -1
- package/lib/utils/HttpResponseContentTypeUtil.d.ts +5 -0
- package/lib/utils/HttpResponseContentTypeUtil.js +22 -0
- package/lib/utils/HttpResponseContentTypeUtil.js.map +1 -0
- package/native/go.mod +52 -52
- package/native/go.sum +84 -54
- package/native/sdk/register.go +322 -165
- package/native/sdk/sdk.go +17 -17
- package/native/sdk/sdk_metadata_json.go +327 -327
- package/native/sdk/sdk_transform.go +1879 -1549
- package/package.json +13 -11
- package/src/INestiaConfig.ts +267 -267
- package/src/NestiaSdkApplication.ts +39 -8
- package/src/NestiaSwaggerComposer.ts +153 -142
- package/src/analyses/AccessorAnalyzer.ts +64 -67
- package/src/analyses/ConfigAnalyzer.ts +330 -330
- package/src/analyses/ImportAnalyzer.ts +92 -92
- package/src/analyses/PathAnalyzer.ts +130 -69
- package/src/analyses/ReflectControllerAnalyzer.ts +112 -105
- package/src/analyses/ReflectHttpOperationAnalyzer.ts +183 -183
- package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +90 -90
- package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +350 -350
- package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +163 -130
- package/src/analyses/ReflectMcpOperationAnalyzer.ts +124 -0
- package/src/analyses/ReflectMetadataAnalyzer.ts +44 -44
- package/src/analyses/SecurityAnalyzer.ts +25 -25
- package/src/analyses/TypedMcpRouteAnalyzer.ts +34 -0
- package/src/decorators/OperationMetadata.ts +29 -29
- package/src/executable/internal/CommandParser.ts +15 -15
- package/src/executable/internal/NestiaConfigLoader.ts +451 -446
- package/src/executable/internal/NestiaSdkCommand.ts +124 -106
- package/src/executable/internal/NestiaSdkWatcher.ts +342 -0
- package/src/executable/sdk.ts +90 -88
- package/src/factories/ExpressionFactory.ts +23 -0
- package/src/factories/IdentifierFactory.ts +84 -0
- package/src/factories/LiteralFactory.ts +54 -0
- package/src/factories/StatementFactory.ts +56 -0
- package/src/factories/TypeFactory.ts +27 -0
- package/src/generates/CloneGenerator.ts +74 -66
- package/src/generates/E2eGenerator.ts +32 -32
- package/src/generates/SdkGenerator.ts +176 -118
- package/src/generates/SwaggerGenerator.ts +342 -310
- package/src/generates/internal/E2eFileProgrammer.ts +246 -233
- package/src/generates/internal/FilePrinter.ts +57 -65
- package/src/generates/internal/ImportDictionary.ts +207 -204
- package/src/generates/internal/SdkAliasCollection.ts +280 -261
- package/src/generates/internal/SdkDistributionComposer.ts +123 -116
- package/src/generates/internal/SdkFileProgrammer.ts +113 -112
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +124 -126
- package/src/generates/internal/SdkHttpCloneReferencer.ts +131 -77
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +290 -301
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +507 -510
- package/src/generates/internal/SdkHttpParameterProgrammer.ts +163 -165
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +109 -109
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +322 -314
- package/src/generates/internal/SdkImportWizard.ts +62 -62
- package/src/generates/internal/SdkMcpRouteProgrammer.ts +447 -0
- package/src/generates/internal/SdkRouteDirectory.ts +21 -18
- package/src/generates/internal/SdkTypeProgrammer.ts +389 -382
- package/src/generates/internal/SdkTypeTagProgrammer.ts +110 -114
- package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +319 -0
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +383 -389
- package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +91 -89
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +304 -323
- package/src/generates/internal/SwaggerDescriptionComposer.ts +64 -64
- package/src/generates/internal/SwaggerOperationComposer.ts +119 -119
- package/src/generates/internal/SwaggerOperationParameterComposer.ts +175 -162
- package/src/generates/internal/SwaggerOperationResponseComposer.ts +115 -110
- package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +262 -0
- package/src/index.ts +4 -4
- package/src/internal/legacy.ts +492 -492
- package/src/module.ts +4 -4
- package/src/structures/INestiaProject.ts +10 -10
- package/src/structures/INestiaSdkInput.ts +27 -20
- package/src/structures/IOperationMetadata.ts +41 -41
- package/src/structures/IReflectController.ts +18 -15
- package/src/structures/IReflectHttpOperation.ts +26 -26
- package/src/structures/IReflectHttpOperationException.ts +18 -18
- package/src/structures/IReflectHttpOperationParameter.ts +79 -79
- package/src/structures/IReflectHttpOperationSuccess.ts +18 -21
- package/src/structures/IReflectImport.ts +6 -6
- package/src/structures/IReflectMcpOperation.ts +38 -0
- package/src/structures/IReflectMcpOperationParameter.ts +27 -0
- package/src/structures/IReflectOperationError.ts +26 -26
- package/src/structures/IReflectType.ts +4 -4
- package/src/structures/IReflectWebSocketOperation.ts +17 -17
- package/src/structures/ITypedApplication.ts +12 -11
- package/src/structures/ITypedHttpRoute.ts +41 -41
- package/src/structures/ITypedHttpRouteException.ts +15 -15
- package/src/structures/ITypedHttpRouteParameter.ts +41 -41
- package/src/structures/ITypedHttpRouteSuccess.ts +18 -22
- package/src/structures/ITypedMcpRoute.ts +33 -0
- package/src/structures/ITypedWebSocketRoute.ts +24 -24
- package/src/structures/ITypedWebSocketRouteParameter.ts +3 -3
- package/src/transform.ts +28 -59
- package/src/typings/get-function-location.d.ts +7 -7
- package/src/utils/ArrayUtil.ts +26 -26
- package/src/utils/EmittedJavaScriptPatcher.ts +88 -88
- package/src/utils/FileRetriever.ts +22 -22
- package/src/utils/HttpResponseContentTypeUtil.ts +30 -0
- package/src/utils/MapUtil.ts +14 -14
- package/src/utils/PathUtil.ts +10 -10
- package/src/utils/SourceFinder.ts +63 -63
- package/src/utils/StringUtil.ts +17 -17
- package/src/utils/TsConfigReader.ts +108 -108
- package/src/utils/TtscExecutor.ts +68 -68
- package/src/utils/VersioningStrategy.ts +28 -28
- package/src/validators/HttpHeadersValidator.ts +11 -11
- package/src/validators/HttpQueryValidator.ts +11 -11
- package/src/validators/TextPlainValidator.ts +17 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpressionFactory.js","sourceRoot":"","sources":["../../src/factories/ExpressionFactory.ts"],"names":[],"mappings":";;;AAAA,2CAKuB;AAEvB;;;;GAIG;AACH,IAAiB,iBAAiB,CAUjC;AAVD,WAAiB,iBAAiB;IACnB,wBAAM,GAAG,CACpB,KAAa,EAC2B,EAAE,CAC1C,KAAK,GAAG,CAAC;QACP,CAAC,CAAC,iBAAO,CAAC,2BAA2B,CACjC,oBAAU,CAAC,UAAU,EACrB,iBAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAC9C;QACH,CAAC,CAAC,iBAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,EAVgB,iBAAiB,aAAjB,iBAAiB,GAAjB,iBAAiB,QAUjC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type Expression, type Identifier, type ParameterDeclaration, type StringLiteral, type Token, type TypeNode } from "@ttsc/factory";
|
|
2
|
+
/**
|
|
3
|
+
* Identifier and member-access helpers. The surface kept here is the subset
|
|
4
|
+
* nestia generators actually call (`identifier`, `access`, `parameter`).
|
|
5
|
+
*/
|
|
6
|
+
export declare namespace IdentifierFactory {
|
|
7
|
+
/**
|
|
8
|
+
* Build an identifier or string literal depending on whether `name` is a
|
|
9
|
+
* valid JavaScript identifier.
|
|
10
|
+
*/
|
|
11
|
+
const identifier: (name: string) => Identifier | StringLiteral;
|
|
12
|
+
/**
|
|
13
|
+
* Member access on `input` by `key`. Falls back to element access when the
|
|
14
|
+
* key is not a valid identifier.
|
|
15
|
+
*/
|
|
16
|
+
const access: (input: Expression, key: string, chain?: boolean) => Expression;
|
|
17
|
+
/**
|
|
18
|
+
* Parameter declaration with default `any` type when the caller omits one.
|
|
19
|
+
* Passing a `QuestionToken` as `init` marks the parameter optional.
|
|
20
|
+
*/
|
|
21
|
+
const parameter: (name: string | Identifier, type?: TypeNode, init?: Expression | Token) => ParameterDeclaration;
|
|
22
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IdentifierFactory = void 0;
|
|
4
|
+
const factory_1 = require("@ttsc/factory");
|
|
5
|
+
const TypeFactory_1 = require("./TypeFactory");
|
|
6
|
+
// Conservative "is this string a syntactically valid JavaScript variable
|
|
7
|
+
// name?" test, inlined to avoid pulling in @typia/utils' full namespace.
|
|
8
|
+
const VARIABLE_REGEX = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
9
|
+
const isVariableName = (str) => VARIABLE_REGEX.test(str);
|
|
10
|
+
/**
|
|
11
|
+
* Identifier and member-access helpers. The surface kept here is the subset
|
|
12
|
+
* nestia generators actually call (`identifier`, `access`, `parameter`).
|
|
13
|
+
*/
|
|
14
|
+
var IdentifierFactory;
|
|
15
|
+
(function (IdentifierFactory) {
|
|
16
|
+
/**
|
|
17
|
+
* Build an identifier or string literal depending on whether `name` is a
|
|
18
|
+
* valid JavaScript identifier.
|
|
19
|
+
*/
|
|
20
|
+
IdentifierFactory.identifier = (name) => isVariableName(name)
|
|
21
|
+
? factory_1.factory.createIdentifier(name)
|
|
22
|
+
: factory_1.factory.createStringLiteral(name);
|
|
23
|
+
/**
|
|
24
|
+
* Member access on `input` by `key`. Falls back to element access when the
|
|
25
|
+
* key is not a valid identifier.
|
|
26
|
+
*/
|
|
27
|
+
IdentifierFactory.access = (input, key, chain) => {
|
|
28
|
+
const postfix = IdentifierFactory.identifier(key);
|
|
29
|
+
if (postfix.kind === "StringLiteral")
|
|
30
|
+
return chain === true
|
|
31
|
+
? factory_1.factory.createElementAccessChain(input, factory_1.factory.createToken(factory_1.SyntaxKind.QuestionDotToken), postfix)
|
|
32
|
+
: factory_1.factory.createElementAccessExpression(input, postfix);
|
|
33
|
+
return chain === true
|
|
34
|
+
? factory_1.factory.createPropertyAccessChain(input, factory_1.factory.createToken(factory_1.SyntaxKind.QuestionDotToken), postfix)
|
|
35
|
+
: factory_1.factory.createPropertyAccessExpression(input, postfix);
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Parameter declaration with default `any` type when the caller omits one.
|
|
39
|
+
* Passing a `QuestionToken` as `init` marks the parameter optional.
|
|
40
|
+
*/
|
|
41
|
+
IdentifierFactory.parameter = (name, type, init) => {
|
|
42
|
+
const isQuestionToken = !!init &&
|
|
43
|
+
init.kind === "Token" &&
|
|
44
|
+
init.token === factory_1.SyntaxKind.QuestionToken;
|
|
45
|
+
return factory_1.factory.createParameterDeclaration(undefined, undefined, name, isQuestionToken
|
|
46
|
+
? factory_1.factory.createToken(factory_1.SyntaxKind.QuestionToken)
|
|
47
|
+
: undefined, type !== null && type !== void 0 ? type : TypeFactory_1.TypeFactory.keyword("any"), isQuestionToken ? undefined : init);
|
|
48
|
+
};
|
|
49
|
+
})(IdentifierFactory || (exports.IdentifierFactory = IdentifierFactory = {}));
|
|
50
|
+
//# sourceMappingURL=IdentifierFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentifierFactory.js","sourceRoot":"","sources":["../../src/factories/IdentifierFactory.ts"],"names":[],"mappings":";;;AAAA,2CASuB;AAEvB,+CAA4C;AAE5C,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,cAAc,GAAG,4BAA4B,CAAC;AACpD,MAAM,cAAc,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1E;;;GAGG;AACH,IAAiB,iBAAiB,CA6DjC;AA7DD,WAAiB,iBAAiB;IAChC;;;OAGG;IACU,4BAAU,GAAG,CAAC,IAAY,EAA8B,EAAE,CACrE,cAAc,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,iBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC,iBAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAExC;;;OAGG;IACU,wBAAM,GAAG,CACpB,KAAiB,EACjB,GAAW,EACX,KAAe,EACH,EAAE;QACd,MAAM,OAAO,GAAG,4BAAU,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe;YAClC,OAAO,KAAK,KAAK,IAAI;gBACnB,CAAC,CAAC,iBAAO,CAAC,wBAAwB,CAC9B,KAAK,EACL,iBAAO,CAAC,WAAW,CAAC,oBAAU,CAAC,gBAAgB,CAAC,EAChD,OAAO,CACR;gBACH,CAAC,CAAC,iBAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,KAAK,KAAK,IAAI;YACnB,CAAC,CAAC,iBAAO,CAAC,yBAAyB,CAC/B,KAAK,EACL,iBAAO,CAAC,WAAW,CAAC,oBAAU,CAAC,gBAAgB,CAAC,EAChD,OAAO,CACR;YACH,CAAC,CAAC,iBAAO,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF;;;OAGG;IACU,2BAAS,GAAG,CACvB,IAAyB,EACzB,IAAe,EACf,IAAyB,EACH,EAAE;QACxB,MAAM,eAAe,GACnB,CAAC,CAAC,IAAI;YACN,IAAI,CAAC,IAAI,KAAK,OAAO;YACpB,IAAc,CAAC,KAAK,KAAK,oBAAU,CAAC,aAAa,CAAC;QACrD,OAAO,iBAAO,CAAC,0BAA0B,CACvC,SAAS,EACT,SAAS,EACT,IAAI,EACJ,eAAe;YACb,CAAC,CAAC,iBAAO,CAAC,WAAW,CAAC,oBAAU,CAAC,aAAa,CAAC;YAC/C,CAAC,CAAC,SAAS,EACb,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAClC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAA+B,CAC/D,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,EA7DgB,iBAAiB,aAAjB,iBAAiB,GAAjB,iBAAiB,QA6DjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Expression } from "@ttsc/factory";
|
|
2
|
+
/**
|
|
3
|
+
* Recursive value-to-AST-literal builder. Hands back already-AST inputs
|
|
4
|
+
* unchanged (so callers can mix factory output with raw JS values inside the
|
|
5
|
+
* same object/array), and emits the appropriate literal node otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare namespace LiteralFactory {
|
|
8
|
+
const write: (input: any) => Expression;
|
|
9
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LiteralFactory = void 0;
|
|
4
|
+
const factory_1 = require("@ttsc/factory");
|
|
5
|
+
const ExpressionFactory_1 = require("./ExpressionFactory");
|
|
6
|
+
const IdentifierFactory_1 = require("./IdentifierFactory");
|
|
7
|
+
const PASSTHROUGH_KINDS = new Set([
|
|
8
|
+
"ArrowFunction",
|
|
9
|
+
"CallExpression",
|
|
10
|
+
"Identifier",
|
|
11
|
+
]);
|
|
12
|
+
const isNode = (value) => typeof value === "object" &&
|
|
13
|
+
value !== null &&
|
|
14
|
+
typeof value.kind === "string";
|
|
15
|
+
/**
|
|
16
|
+
* Recursive value-to-AST-literal builder. Hands back already-AST inputs
|
|
17
|
+
* unchanged (so callers can mix factory output with raw JS values inside the
|
|
18
|
+
* same object/array), and emits the appropriate literal node otherwise.
|
|
19
|
+
*/
|
|
20
|
+
var LiteralFactory;
|
|
21
|
+
(function (LiteralFactory) {
|
|
22
|
+
LiteralFactory.write = (input) => {
|
|
23
|
+
if (input === null)
|
|
24
|
+
return factory_1.factory.createNull();
|
|
25
|
+
if (isNode(input) && PASSTHROUGH_KINDS.has(input.kind))
|
|
26
|
+
return input;
|
|
27
|
+
if (Array.isArray(input))
|
|
28
|
+
return writeArray(input);
|
|
29
|
+
if (typeof input === "object")
|
|
30
|
+
return writeObject(input);
|
|
31
|
+
if (typeof input === "boolean")
|
|
32
|
+
return input ? factory_1.factory.createTrue() : factory_1.factory.createFalse();
|
|
33
|
+
if (typeof input === "number")
|
|
34
|
+
return ExpressionFactory_1.ExpressionFactory.number(input);
|
|
35
|
+
if (typeof input === "string")
|
|
36
|
+
return factory_1.factory.createStringLiteral(input);
|
|
37
|
+
if (typeof input === "bigint")
|
|
38
|
+
return factory_1.factory.createStringLiteral(input.toString());
|
|
39
|
+
if (typeof input === "function")
|
|
40
|
+
return factory_1.factory.createIdentifier("undefined");
|
|
41
|
+
throw new TypeError("LiteralFactory.write: unsupported input type.");
|
|
42
|
+
};
|
|
43
|
+
const writeObject = (obj) => factory_1.factory.createObjectLiteralExpression(Object.entries(obj)
|
|
44
|
+
.filter(([, value]) => value !== undefined)
|
|
45
|
+
.map(([key, value]) => factory_1.factory.createPropertyAssignment(IdentifierFactory_1.IdentifierFactory.identifier(key), LiteralFactory.write(value))), true);
|
|
46
|
+
const writeArray = (array) => factory_1.factory.createArrayLiteralExpression(array.map(LiteralFactory.write), true);
|
|
47
|
+
})(LiteralFactory || (exports.LiteralFactory = LiteralFactory = {}));
|
|
48
|
+
//# sourceMappingURL=LiteralFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiteralFactory.js","sourceRoot":"","sources":["../../src/factories/LiteralFactory.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAEzD,2DAAwD;AACxD,2DAAwD;AAExD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,eAAe;IACf,gBAAgB;IAChB,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,KAAc,EAAuB,EAAE,CACrD,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAEzD;;;;GAIG;AACH,IAAiB,cAAc,CAgC9B;AAhCD,WAAiB,cAAc;IAChB,oBAAK,GAAG,CAAC,KAAU,EAAc,EAAE;QAC9C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,iBAAO,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,KAAe,CAAC,CAAC;QACnE,IAAI,OAAO,KAAK,KAAK,SAAS;YAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,iBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,iBAAO,CAAC,WAAW,EAAE,CAAC;QAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,qCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC3B,OAAO,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,KAAK,UAAU;YAC7B,OAAO,iBAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAc,EAAE,CAC9C,iBAAO,CAAC,6BAA6B,CACnC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACpB,iBAAO,CAAC,wBAAwB,CAC9B,qCAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EACjC,oBAAK,CAAC,KAAK,CAAC,CACb,CACF,EACH,IAAI,CACL,CAAC;IAEJ,MAAM,UAAU,GAAG,CAAC,KAAqB,EAAc,EAAE,CACvD,iBAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC,EAhCgB,cAAc,aAAd,cAAc,GAAd,cAAc,QAgC9B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Expression, type TypeNode, type VariableStatement } from "@ttsc/factory";
|
|
2
|
+
/** Variable-statement helpers. `constant` emits `const`, `mut` emits `let`. */
|
|
3
|
+
export declare namespace StatementFactory {
|
|
4
|
+
const mut: (props: {
|
|
5
|
+
name: string;
|
|
6
|
+
type?: TypeNode | undefined;
|
|
7
|
+
initializer?: Expression | undefined;
|
|
8
|
+
}) => VariableStatement;
|
|
9
|
+
const constant: (props: {
|
|
10
|
+
name: string;
|
|
11
|
+
type?: TypeNode | undefined;
|
|
12
|
+
value?: Expression | undefined;
|
|
13
|
+
}) => VariableStatement;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StatementFactory = void 0;
|
|
4
|
+
const factory_1 = require("@ttsc/factory");
|
|
5
|
+
const TypeFactory_1 = require("./TypeFactory");
|
|
6
|
+
/** Variable-statement helpers. `constant` emits `const`, `mut` emits `let`. */
|
|
7
|
+
var StatementFactory;
|
|
8
|
+
(function (StatementFactory) {
|
|
9
|
+
StatementFactory.mut = (props) => factory_1.factory.createVariableStatement(undefined, factory_1.factory.createVariableDeclarationList([
|
|
10
|
+
factory_1.factory.createVariableDeclaration(props.name, undefined, props.type !== undefined
|
|
11
|
+
? props.type
|
|
12
|
+
: props.initializer === undefined
|
|
13
|
+
? TypeFactory_1.TypeFactory.keyword("any")
|
|
14
|
+
: undefined, props.initializer),
|
|
15
|
+
], factory_1.NodeFlags.Let));
|
|
16
|
+
StatementFactory.constant = (props) => factory_1.factory.createVariableStatement(undefined, factory_1.factory.createVariableDeclarationList([
|
|
17
|
+
factory_1.factory.createVariableDeclaration(props.name, undefined, props.type, props.value),
|
|
18
|
+
], factory_1.NodeFlags.Const));
|
|
19
|
+
})(StatementFactory || (exports.StatementFactory = StatementFactory = {}));
|
|
20
|
+
//# sourceMappingURL=StatementFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatementFactory.js","sourceRoot":"","sources":["../../src/factories/StatementFactory.ts"],"names":[],"mappings":";;;AAAA,2CAMuB;AAEvB,+CAA4C;AAE5C,+EAA+E;AAC/E,IAAiB,gBAAgB,CA4ChC;AA5CD,WAAiB,gBAAgB;IAClB,oBAAG,GAAG,CAAC,KAInB,EAAqB,EAAE,CACtB,iBAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,iBAAO,CAAC,6BAA6B,CACnC;QACE,iBAAO,CAAC,yBAAyB,CAC/B,KAAK,CAAC,IAAI,EACV,SAAS,EACT,KAAK,CAAC,IAAI,KAAK,SAAS;YACtB,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBAC/B,CAAC,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,SAAS,EACf,KAAK,CAAC,WAAW,CAClB;KACF,EACD,mBAAS,CAAC,GAAG,CACd,CACF,CAAC;IAES,yBAAQ,GAAG,CAAC,KAIxB,EAAqB,EAAE,CACtB,iBAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,iBAAO,CAAC,6BAA6B,CACnC;QACE,iBAAO,CAAC,yBAAyB,CAC/B,KAAK,CAAC,IAAI,EACV,SAAS,EACT,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,CACZ;KACF,EACD,mBAAS,CAAC,KAAK,CAChB,CACF,CAAC;AACN,CAAC,EA5CgB,gBAAgB,aAAhB,gBAAgB,GAAhB,gBAAgB,QA4ChC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type KeywordTypeNode, SyntaxKind } from "@ttsc/factory";
|
|
2
|
+
/**
|
|
3
|
+
* Higher-level type-keyword factory.
|
|
4
|
+
*
|
|
5
|
+
* Wraps {@link factory.createKeywordTypeNode} with a name-based interface so
|
|
6
|
+
* generator code reads as `TypeFactory.keyword("any")` instead of selecting the
|
|
7
|
+
* `SyntaxKind.AnyKeyword` token by hand.
|
|
8
|
+
*/
|
|
9
|
+
export declare namespace TypeFactory {
|
|
10
|
+
const KEYWORDS: {
|
|
11
|
+
readonly void: SyntaxKind.VoidKeyword;
|
|
12
|
+
readonly any: SyntaxKind.AnyKeyword;
|
|
13
|
+
readonly unknown: SyntaxKind.UnknownKeyword;
|
|
14
|
+
readonly boolean: SyntaxKind.BooleanKeyword;
|
|
15
|
+
readonly number: SyntaxKind.NumberKeyword;
|
|
16
|
+
readonly bigint: SyntaxKind.BigIntKeyword;
|
|
17
|
+
readonly string: SyntaxKind.StringKeyword;
|
|
18
|
+
readonly never: SyntaxKind.NeverKeyword;
|
|
19
|
+
readonly undefined: SyntaxKind.UndefinedKeyword;
|
|
20
|
+
};
|
|
21
|
+
export type Keyword = keyof typeof KEYWORDS;
|
|
22
|
+
export const keyword: (type: Keyword) => KeywordTypeNode;
|
|
23
|
+
export {};
|
|
24
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeFactory = void 0;
|
|
4
|
+
const factory_1 = require("@ttsc/factory");
|
|
5
|
+
/**
|
|
6
|
+
* Higher-level type-keyword factory.
|
|
7
|
+
*
|
|
8
|
+
* Wraps {@link factory.createKeywordTypeNode} with a name-based interface so
|
|
9
|
+
* generator code reads as `TypeFactory.keyword("any")` instead of selecting the
|
|
10
|
+
* `SyntaxKind.AnyKeyword` token by hand.
|
|
11
|
+
*/
|
|
12
|
+
var TypeFactory;
|
|
13
|
+
(function (TypeFactory) {
|
|
14
|
+
const KEYWORDS = {
|
|
15
|
+
void: factory_1.SyntaxKind.VoidKeyword,
|
|
16
|
+
any: factory_1.SyntaxKind.AnyKeyword,
|
|
17
|
+
unknown: factory_1.SyntaxKind.UnknownKeyword,
|
|
18
|
+
boolean: factory_1.SyntaxKind.BooleanKeyword,
|
|
19
|
+
number: factory_1.SyntaxKind.NumberKeyword,
|
|
20
|
+
bigint: factory_1.SyntaxKind.BigIntKeyword,
|
|
21
|
+
string: factory_1.SyntaxKind.StringKeyword,
|
|
22
|
+
never: factory_1.SyntaxKind.NeverKeyword,
|
|
23
|
+
undefined: factory_1.SyntaxKind.UndefinedKeyword,
|
|
24
|
+
};
|
|
25
|
+
TypeFactory.keyword = (type) => factory_1.factory.createKeywordTypeNode(KEYWORDS[type]);
|
|
26
|
+
})(TypeFactory || (exports.TypeFactory = TypeFactory = {}));
|
|
27
|
+
//# sourceMappingURL=TypeFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeFactory.js","sourceRoot":"","sources":["../../src/factories/TypeFactory.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAE1E;;;;;;GAMG;AACH,IAAiB,WAAW,CAiB3B;AAjBD,WAAiB,WAAW;IAC1B,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,oBAAU,CAAC,WAAW;QAC5B,GAAG,EAAE,oBAAU,CAAC,UAAU;QAC1B,OAAO,EAAE,oBAAU,CAAC,cAAc;QAClC,OAAO,EAAE,oBAAU,CAAC,cAAc;QAClC,MAAM,EAAE,oBAAU,CAAC,aAAa;QAChC,MAAM,EAAE,oBAAU,CAAC,aAAa;QAChC,MAAM,EAAE,oBAAU,CAAC,aAAa;QAChC,KAAK,EAAE,oBAAU,CAAC,YAAY;QAC9B,SAAS,EAAE,oBAAU,CAAC,gBAAgB;KAC9B,CAAC;IAIE,mBAAO,GAAG,CAAC,IAAa,EAAmB,EAAE,CACxD,iBAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC,EAjBgB,WAAW,aAAX,WAAW,GAAX,WAAW,QAiB3B"}
|
|
@@ -13,19 +13,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.CloneGenerator = void 0;
|
|
16
|
-
const factory_1 = require("@
|
|
16
|
+
const factory_1 = require("@ttsc/factory");
|
|
17
17
|
const fs_1 = __importDefault(require("fs"));
|
|
18
18
|
const FilePrinter_1 = require("./internal/FilePrinter");
|
|
19
19
|
const ImportDictionary_1 = require("./internal/ImportDictionary");
|
|
20
20
|
const SdkHttpCloneProgrammer_1 = require("./internal/SdkHttpCloneProgrammer");
|
|
21
21
|
const SdkHttpCloneReferencer_1 = require("./internal/SdkHttpCloneReferencer");
|
|
22
|
+
const SdkWebSocketCloneProgrammer_1 = require("./internal/SdkWebSocketCloneProgrammer");
|
|
22
23
|
var CloneGenerator;
|
|
23
24
|
(function (CloneGenerator) {
|
|
24
25
|
CloneGenerator.write = (app) => __awaiter(this, void 0, void 0, function* () {
|
|
25
26
|
const dict = SdkHttpCloneProgrammer_1.SdkHttpCloneProgrammer.write(app);
|
|
26
|
-
|
|
27
|
+
const websocket = yield SdkWebSocketCloneProgrammer_1.SdkWebSocketCloneProgrammer.write(app);
|
|
28
|
+
if (dict.size === 0 && websocket.size === 0)
|
|
27
29
|
return;
|
|
28
|
-
SdkHttpCloneReferencer_1.SdkHttpCloneReferencer.replace(app);
|
|
30
|
+
SdkHttpCloneReferencer_1.SdkHttpCloneReferencer.replace(app, websocket);
|
|
29
31
|
try {
|
|
30
32
|
yield fs_1.default.promises.mkdir(`${app.project.config.output}/structures`);
|
|
31
33
|
}
|
|
@@ -56,7 +58,7 @@ var CloneGenerator;
|
|
|
56
58
|
const internal = [];
|
|
57
59
|
for (const child of modulo.children.values())
|
|
58
60
|
internal.push(...iterate(importer)(child));
|
|
59
|
-
output.push(factory_1.
|
|
61
|
+
output.push(factory_1.factory.createModuleDeclaration([factory_1.factory.createModifier(factory_1.SyntaxKind.ExportKeyword)], factory_1.factory.createIdentifier(modulo.name), factory_1.factory.createModuleBlock(internal), factory_1.NodeFlags.Namespace));
|
|
60
62
|
}
|
|
61
63
|
return output;
|
|
62
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloneGenerator.js","sourceRoot":"","sources":["../../src/generates/CloneGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CloneGenerator.js","sourceRoot":"","sources":["../../src/generates/CloneGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,11 +50,14 @@ var SdkGenerator;
|
|
|
50
50
|
if (app.project.config.distribute !== undefined)
|
|
51
51
|
yield SdkDistributionComposer_1.SdkDistributionComposer.compose({
|
|
52
52
|
config: app.project.config,
|
|
53
|
+
mcp: app.routes.some((r) => r.protocol === "mcp"),
|
|
53
54
|
websocket: app.routes.some((r) => r.protocol === "websocket"),
|
|
54
55
|
});
|
|
55
56
|
});
|
|
56
57
|
SdkGenerator.validate = (app) => {
|
|
57
58
|
const errors = [];
|
|
59
|
+
validateMcpDuplicates(errors)(app.routes);
|
|
60
|
+
validateMcpAccessors(errors)(app.routes);
|
|
58
61
|
if (app.project.config.clone === true)
|
|
59
62
|
return errors;
|
|
60
63
|
for (const route of app.routes)
|
|
@@ -66,6 +69,51 @@ var SdkGenerator;
|
|
|
66
69
|
});
|
|
67
70
|
return errors;
|
|
68
71
|
};
|
|
72
|
+
const validateMcpDuplicates = (errors) => (routes) => {
|
|
73
|
+
var _a;
|
|
74
|
+
const dict = new Map();
|
|
75
|
+
for (const route of routes)
|
|
76
|
+
if (route.protocol === "mcp") {
|
|
77
|
+
const array = (_a = dict.get(route.toolName)) !== null && _a !== void 0 ? _a : [];
|
|
78
|
+
array.push(route);
|
|
79
|
+
dict.set(route.toolName, array);
|
|
80
|
+
}
|
|
81
|
+
for (const [toolName, list] of dict)
|
|
82
|
+
if (list.length > 1)
|
|
83
|
+
for (const route of list)
|
|
84
|
+
errors.push({
|
|
85
|
+
file: route.controller.file,
|
|
86
|
+
class: route.controller.class.name,
|
|
87
|
+
function: route.function.name || route.name,
|
|
88
|
+
from: `@McpRoute(${JSON.stringify(toolName)})`,
|
|
89
|
+
contents: [
|
|
90
|
+
`Duplicate MCP tool name ${JSON.stringify(toolName)} is not allowed.`,
|
|
91
|
+
],
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
const validateMcpAccessors = (errors) => (routes) => {
|
|
95
|
+
var _a;
|
|
96
|
+
const dict = new Map();
|
|
97
|
+
for (const route of routes)
|
|
98
|
+
if (route.protocol === "mcp") {
|
|
99
|
+
const accessor = route.accessor.join(".");
|
|
100
|
+
const array = (_a = dict.get(accessor)) !== null && _a !== void 0 ? _a : [];
|
|
101
|
+
array.push(route);
|
|
102
|
+
dict.set(accessor, array);
|
|
103
|
+
}
|
|
104
|
+
for (const [accessor, list] of dict)
|
|
105
|
+
if (list.length > 1)
|
|
106
|
+
for (const route of list)
|
|
107
|
+
errors.push({
|
|
108
|
+
file: route.controller.file,
|
|
109
|
+
class: route.controller.class.name,
|
|
110
|
+
function: route.function.name || route.name,
|
|
111
|
+
from: `@McpRoute(${JSON.stringify(route.toolName)})`,
|
|
112
|
+
contents: [
|
|
113
|
+
`MCP tool name ${JSON.stringify(route.toolName)} conflicts on generated SDK accessor "api.functional.${accessor}".`,
|
|
114
|
+
],
|
|
115
|
+
});
|
|
116
|
+
};
|
|
69
117
|
const validateImplicit = (props) => {
|
|
70
118
|
for (const p of SdkHttpParameterProgrammer_1.SdkHttpParameterProgrammer.getAll(props.route)) {
|
|
71
119
|
if (isImplicitType(p.type))
|
|
@@ -87,7 +135,8 @@ var SdkGenerator;
|
|
|
87
135
|
from: `exception ${JSON.stringify(key)}`,
|
|
88
136
|
contents: [`implicit (unnamed) exception type.`],
|
|
89
137
|
});
|
|
90
|
-
if (
|
|
138
|
+
if (props.route.success.binary === false &&
|
|
139
|
+
isImplicitType(props.route.success.type))
|
|
91
140
|
props.errors.push({
|
|
92
141
|
file: props.route.controller.file,
|
|
93
142
|
class: props.route.controller.class.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdkGenerator.js","sourceRoot":"","sources":["../../src/generates/SdkGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAA4B;
|
|
1
|
+
{"version":3,"file":"SdkGenerator.js","sourceRoot":"","sources":["../../src/generates/SdkGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,14 +13,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SwaggerGenerator = void 0;
|
|
16
|
-
const legacy_1 = require("../internal/legacy");
|
|
17
16
|
const utils_1 = require("@typia/utils");
|
|
18
17
|
const fs_1 = __importDefault(require("fs"));
|
|
19
18
|
const path_1 = __importDefault(require("path"));
|
|
20
19
|
const tstl_1 = require("tstl");
|
|
20
|
+
const legacy_1 = require("../internal/legacy");
|
|
21
21
|
const FileRetriever_1 = require("../utils/FileRetriever");
|
|
22
22
|
const SdkHttpParameterProgrammer_1 = require("./internal/SdkHttpParameterProgrammer");
|
|
23
23
|
const SwaggerOperationComposer_1 = require("./internal/SwaggerOperationComposer");
|
|
24
|
+
const SwaggerReadonlyArrayEmender_1 = require("./internal/SwaggerReadonlyArrayEmender");
|
|
24
25
|
var SwaggerGenerator;
|
|
25
26
|
(function (SwaggerGenerator) {
|
|
26
27
|
SwaggerGenerator.generate = (app) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -60,7 +61,7 @@ var SwaggerGenerator;
|
|
|
60
61
|
var _a;
|
|
61
62
|
var _b;
|
|
62
63
|
// GATHER METADATA
|
|
63
|
-
const routes = props.routes.filter((r) => r.jsDocTags.every((tag) => tag.name !== "internal" && tag.name !== "hidden"));
|
|
64
|
+
const routes = props.routes.filter((r) => r.jsDocTags.every((tag) => tag.name !== "internal" && tag.name !== "hidden") && isSwaggerExcluded(r) === false);
|
|
64
65
|
const metadatas = routes
|
|
65
66
|
.map((r) => [
|
|
66
67
|
r.success.metadata,
|
|
@@ -74,6 +75,11 @@ var SwaggerGenerator;
|
|
|
74
75
|
version: "3.1",
|
|
75
76
|
metadatas,
|
|
76
77
|
});
|
|
78
|
+
json.schemas.forEach((schema, i) => SwaggerReadonlyArrayEmender_1.SwaggerReadonlyArrayEmender.emend({
|
|
79
|
+
components: json.components,
|
|
80
|
+
schema,
|
|
81
|
+
metadata: metadatas[i],
|
|
82
|
+
}));
|
|
77
83
|
const dict = new WeakMap();
|
|
78
84
|
json.schemas.forEach((schema, i) => dict.set(metadatas[i], schema));
|
|
79
85
|
const schema = (metadata) => dict.get(metadata);
|
|
@@ -210,5 +216,15 @@ var SwaggerGenerator;
|
|
|
210
216
|
str = str.replace(`:${param.field}`, `{${param.field}}`);
|
|
211
217
|
return str;
|
|
212
218
|
};
|
|
219
|
+
const isSwaggerExcluded = (route) => {
|
|
220
|
+
const controller = Reflect.getMetadata("swagger/apiExcludeController", route.controller.class);
|
|
221
|
+
if (Array.isArray(controller) && controller[0] === true)
|
|
222
|
+
return true;
|
|
223
|
+
const endpoint = Reflect.getMetadata("swagger/apiExcludeEndpoint", route.function);
|
|
224
|
+
return (endpoint !== undefined &&
|
|
225
|
+
(typeof endpoint !== "object" ||
|
|
226
|
+
endpoint === null ||
|
|
227
|
+
endpoint.disable !== false));
|
|
228
|
+
};
|
|
213
229
|
})(SwaggerGenerator || (exports.SwaggerGenerator = SwaggerGenerator = {}));
|
|
214
230
|
//# sourceMappingURL=SwaggerGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerGenerator.js","sourceRoot":"","sources":["../../src/generates/SwaggerGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SwaggerGenerator.js","sourceRoot":"","sources":["../../src/generates/SwaggerGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.E2eFileProgrammer = void 0;
|
|
13
|
-
const factory_1 = require("@
|
|
14
|
-
const
|
|
13
|
+
const factory_1 = require("@ttsc/factory");
|
|
14
|
+
const IdentifierFactory_1 = require("../../factories/IdentifierFactory");
|
|
15
|
+
const LiteralFactory_1 = require("../../factories/LiteralFactory");
|
|
15
16
|
const FilePrinter_1 = require("./FilePrinter");
|
|
16
17
|
const ImportDictionary_1 = require("./ImportDictionary");
|
|
17
18
|
const SdkAliasCollection_1 = require("./SdkAliasCollection");
|
|
@@ -39,24 +40,24 @@ var E2eFileProgrammer;
|
|
|
39
40
|
],
|
|
40
41
|
});
|
|
41
42
|
});
|
|
42
|
-
const generateFunctor = (project) => (importer) => (route) => factory_1.
|
|
43
|
-
factory_1.
|
|
43
|
+
const generateFunctor = (project) => (importer) => (route) => factory_1.factory.createVariableStatement([factory_1.factory.createModifier(factory_1.SyntaxKind.ExportKeyword)], factory_1.factory.createVariableDeclarationList([
|
|
44
|
+
factory_1.factory.createVariableDeclaration(factory_1.factory.createIdentifier(getFunctionName(route)), undefined, undefined, generateArrow(project)(importer)(route)),
|
|
44
45
|
], factory_1.NodeFlags.Const));
|
|
45
46
|
const generateArrow = (project) => (importer) => (route) => {
|
|
46
|
-
const random =
|
|
47
|
+
const random = IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier(SdkImportWizard_1.SdkImportWizard.typia(importer)), "random");
|
|
47
48
|
const connection = route.headerObject
|
|
48
|
-
? factory_1.
|
|
49
|
-
factory_1.
|
|
50
|
-
factory_1.
|
|
51
|
-
factory_1.
|
|
52
|
-
factory_1.
|
|
53
|
-
project.config.clone === true
|
|
49
|
+
? factory_1.factory.createObjectLiteralExpression([
|
|
50
|
+
factory_1.factory.createSpreadAssignment(factory_1.factory.createIdentifier("connection")),
|
|
51
|
+
factory_1.factory.createPropertyAssignment("headers", factory_1.factory.createObjectLiteralExpression([
|
|
52
|
+
factory_1.factory.createSpreadAssignment(IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier("connection"), "headers")),
|
|
53
|
+
factory_1.factory.createSpreadAssignment(factory_1.factory.createCallExpression(random, [
|
|
54
|
+
(project.config.clone === true
|
|
54
55
|
? SdkAliasCollection_1.SdkAliasCollection.from(project)(importer)(route.headerObject.metadata)
|
|
55
|
-
: SdkAliasCollection_1.SdkAliasCollection.name(route.headerObject),
|
|
56
|
+
: SdkAliasCollection_1.SdkAliasCollection.name(route.headerObject)),
|
|
56
57
|
], undefined)),
|
|
57
58
|
], true)),
|
|
58
59
|
], true)
|
|
59
|
-
: factory_1.
|
|
60
|
+
: factory_1.factory.createIdentifier("connection");
|
|
60
61
|
const entries = SdkHttpParameterProgrammer_1.SdkHttpParameterProgrammer.getEntries({
|
|
61
62
|
project,
|
|
62
63
|
importer,
|
|
@@ -65,43 +66,45 @@ var E2eFileProgrammer;
|
|
|
65
66
|
e2e: true,
|
|
66
67
|
prefix: ["api", "functional", ...route.accessor].join(".") + ".",
|
|
67
68
|
});
|
|
68
|
-
const fetch = factory_1.
|
|
69
|
+
const fetch = factory_1.factory.createCallExpression(factory_1.factory.createIdentifier(["api", "functional", ...route.accessor].join(".")), undefined, [
|
|
69
70
|
connection,
|
|
70
71
|
...(project.config.keyword === true && entries.length !== 0
|
|
71
72
|
? [
|
|
72
|
-
|
|
73
|
+
LiteralFactory_1.LiteralFactory.write(Object.fromEntries(entries.map((e) => [
|
|
73
74
|
e.key,
|
|
74
|
-
factory_1.
|
|
75
|
+
factory_1.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier(SdkImportWizard_1.SdkImportWizard.typia(importer)), "random"), [getRandomType(importer)(e)], undefined),
|
|
75
76
|
]))),
|
|
76
77
|
]
|
|
77
|
-
: entries.map((e) => factory_1.
|
|
78
|
+
: entries.map((e) => factory_1.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier(SdkImportWizard_1.SdkImportWizard.typia(importer)), "random"), [getRandomType(importer)(e)], undefined))),
|
|
78
79
|
]);
|
|
79
|
-
const assert = factory_1.
|
|
80
|
-
return factory_1.
|
|
81
|
-
|
|
82
|
-
], undefined, undefined, factory_1.
|
|
83
|
-
factory_1.
|
|
84
|
-
factory_1.
|
|
80
|
+
const assert = factory_1.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(factory_1.factory.createIdentifier(SdkImportWizard_1.SdkImportWizard.typia(importer)), "assert"), undefined, [factory_1.factory.createIdentifier("output")]);
|
|
81
|
+
return factory_1.factory.createArrowFunction([factory_1.factory.createModifier(factory_1.SyntaxKind.AsyncKeyword)], undefined, [
|
|
82
|
+
IdentifierFactory_1.IdentifierFactory.parameter("connection", factory_1.factory.createTypeReferenceNode("api.IConnection")),
|
|
83
|
+
], undefined, undefined, factory_1.factory.createBlock([
|
|
84
|
+
factory_1.factory.createVariableStatement([], factory_1.factory.createVariableDeclarationList([
|
|
85
|
+
factory_1.factory.createVariableDeclaration("output", undefined, project.config.propagate !== true &&
|
|
85
86
|
route.success.type.name === "void"
|
|
86
87
|
? undefined
|
|
87
|
-
: SdkAliasCollection_1.SdkAliasCollection.response(project)(importer)(route), factory_1.
|
|
88
|
+
: SdkAliasCollection_1.SdkAliasCollection.response(project)(importer)(route), factory_1.factory.createAwaitExpression(fetch)),
|
|
88
89
|
], factory_1.NodeFlags.Const)),
|
|
89
|
-
|
|
90
|
+
...(route.success.binary === true
|
|
91
|
+
? []
|
|
92
|
+
: [factory_1.factory.createExpressionStatement(assert)]),
|
|
90
93
|
]));
|
|
91
94
|
};
|
|
92
95
|
})(E2eFileProgrammer || (exports.E2eFileProgrammer = E2eFileProgrammer = {}));
|
|
93
96
|
const getRandomType = (importer) => (entry) => {
|
|
94
97
|
if (isPlainStringPathParameter(entry) === false)
|
|
95
98
|
return entry.type;
|
|
96
|
-
return factory_1.
|
|
99
|
+
return factory_1.factory.createIntersectionTypeNode([
|
|
97
100
|
entry.type,
|
|
98
|
-
factory_1.
|
|
101
|
+
factory_1.factory.createTypeReferenceNode(factory_1.factory.createQualifiedName(factory_1.factory.createIdentifier(importer.external({
|
|
99
102
|
declaration: true,
|
|
100
103
|
file: "typia",
|
|
101
104
|
type: "element",
|
|
102
105
|
name: "tags",
|
|
103
|
-
})), factory_1.
|
|
104
|
-
factory_1.
|
|
106
|
+
})), factory_1.factory.createIdentifier("MinLength")), [
|
|
107
|
+
factory_1.factory.createLiteralTypeNode(LiteralFactory_1.LiteralFactory.write(1)),
|
|
105
108
|
]),
|
|
106
109
|
]);
|
|
107
110
|
};
|