@ir-kit/openapi-kotlin 2.0.0 → 2.1.0
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/README.md +13 -13
- package/dist/ast/index.d.ts +168 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +194 -0
- package/dist/ast/index.js.map +1 -0
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +7 -7
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/identifiers.d.ts +7 -0
- package/dist/ir/identifiers.d.ts.map +1 -1
- package/dist/ir/identifiers.js +92 -3
- package/dist/ir/identifiers.js.map +1 -1
- package/dist/ir/impl/body.d.ts +4 -3
- package/dist/ir/impl/body.d.ts.map +1 -1
- package/dist/ir/impl/body.js +11 -8
- package/dist/ir/impl/body.js.map +1 -1
- package/dist/ir/impl/decode.d.ts +3 -2
- package/dist/ir/impl/decode.d.ts.map +1 -1
- package/dist/ir/impl/decode.js +16 -16
- package/dist/ir/impl/decode.js.map +1 -1
- package/dist/ir/impl/headers.d.ts +1 -1
- package/dist/ir/impl/headers.d.ts.map +1 -1
- package/dist/ir/impl/headers.js +3 -3
- package/dist/ir/impl/headers.js.map +1 -1
- package/dist/ir/impl/index.d.ts +5 -2
- package/dist/ir/impl/index.d.ts.map +1 -1
- package/dist/ir/impl/index.js +6 -7
- package/dist/ir/impl/index.js.map +1 -1
- package/dist/ir/impl/request.d.ts +6 -6
- package/dist/ir/impl/request.d.ts.map +1 -1
- package/dist/ir/impl/request.js +18 -8
- package/dist/ir/impl/request.js.map +1 -1
- package/dist/ir/impl/serializer.d.ts +4 -2
- package/dist/ir/impl/serializer.d.ts.map +1 -1
- package/dist/ir/impl/serializer.js +41 -60
- package/dist/ir/impl/serializer.js.map +1 -1
- package/dist/ir/impl/url.d.ts +1 -1
- package/dist/ir/impl/url.d.ts.map +1 -1
- package/dist/ir/impl/url.js +4 -4
- package/dist/ir/impl/url.js.map +1 -1
- package/dist/ir/index.d.ts +1 -1
- package/dist/ir/index.d.ts.map +1 -1
- package/dist/ir/index.js +1 -1
- package/dist/ir/index.js.map +1 -1
- package/dist/ir/operation/body.d.ts +1 -1
- package/dist/ir/operation/body.d.ts.map +1 -1
- package/dist/ir/operation/body.js +3 -3
- package/dist/ir/operation/body.js.map +1 -1
- package/dist/ir/operation/params.d.ts +1 -1
- package/dist/ir/operation/params.d.ts.map +1 -1
- package/dist/ir/operation/params.js +3 -3
- package/dist/ir/operation/params.js.map +1 -1
- package/dist/ir/operation/response.d.ts +3 -1
- package/dist/ir/operation/response.d.ts.map +1 -1
- package/dist/ir/operation/response.js +3 -4
- package/dist/ir/operation/response.js.map +1 -1
- package/dist/ir/operation/signature.d.ts +4 -2
- package/dist/ir/operation/signature.d.ts.map +1 -1
- package/dist/ir/operation/signature.js +5 -4
- package/dist/ir/operation/signature.js.map +1 -1
- package/dist/ir/operations.d.ts +7 -1
- package/dist/ir/operations.d.ts.map +1 -1
- package/dist/ir/operations.js +13 -7
- package/dist/ir/operations.js.map +1 -1
- package/dist/ir/runtime/index.d.ts +1 -1
- package/dist/ir/runtime/index.d.ts.map +1 -1
- package/dist/ir/runtime/index.js +1 -1
- package/dist/ir/runtime/index.js.map +1 -1
- package/dist/ir/runtime/templates.d.ts +1 -21
- package/dist/ir/runtime/templates.d.ts.map +1 -1
- package/dist/ir/runtime/templates.js +24 -428
- package/dist/ir/runtime/templates.js.map +1 -1
- package/dist/ir/schema.d.ts +3 -2
- package/dist/ir/schema.d.ts.map +1 -1
- package/dist/ir/schema.js +24 -11
- package/dist/ir/schema.js.map +1 -1
- package/dist/ir/type/context.d.ts +1 -1
- package/dist/ir/type/context.d.ts.map +1 -1
- package/dist/ir/type/index.d.ts +5 -3
- package/dist/ir/type/index.d.ts.map +1 -1
- package/dist/ir/type/index.js +12 -8
- package/dist/ir/type/index.js.map +1 -1
- package/dist/ir/type/primitive.d.ts +1 -1
- package/dist/ir/type/primitive.d.ts.map +1 -1
- package/dist/ir/type/primitive.js +1 -1
- package/dist/ir/type/primitive.js.map +1 -1
- package/dist/ir/type-ops.d.ts +2 -2
- package/dist/ir/type-ops.d.ts.map +1 -1
- package/dist/ir/type-ops.js +13 -17
- package/dist/ir/type-ops.js.map +1 -1
- package/dist/kt-compiler/index.d.ts +3 -6
- package/dist/kt-compiler/index.d.ts.map +1 -1
- package/dist/kt-compiler/index.js +7 -22
- package/dist/kt-compiler/index.js.map +1 -1
- package/dist/project/build.d.ts +1 -1
- package/dist/project/build.d.ts.map +1 -1
- package/dist/project/build.js +6 -8
- package/dist/project/build.js.map +1 -1
- package/dist/project/imports.d.ts +12 -12
- package/dist/project/imports.d.ts.map +1 -1
- package/dist/project/imports.js +60 -138
- package/dist/project/imports.js.map +1 -1
- package/dist/project/layout.d.ts +1 -1
- package/dist/project/layout.d.ts.map +1 -1
- package/dist/project/layout.js +1 -3
- package/dist/project/layout.js.map +1 -1
- package/package.json +11 -9
- package/runtime/APIClient.kt +140 -0
- package/runtime/APIError.kt +42 -0
- package/runtime/APIInterceptors.kt +14 -0
- package/runtime/APIKeyLocation.kt +7 -0
- package/runtime/Auth.kt +86 -0
- package/runtime/MultipartFormBody.kt +41 -0
- package/runtime/QueryStyle.kt +12 -0
- package/runtime/RequestOptions.kt +29 -0
- package/runtime/URLEncoding.kt +45 -0
- package/dist/kt-compiler/decl/class.d.ts +0 -6
- package/dist/kt-compiler/decl/class.d.ts.map +0 -1
- package/dist/kt-compiler/decl/class.js +0 -38
- package/dist/kt-compiler/decl/class.js.map +0 -1
- package/dist/kt-compiler/decl/dataClass.d.ts +0 -3
- package/dist/kt-compiler/decl/dataClass.d.ts.map +0 -1
- package/dist/kt-compiler/decl/dataClass.js +0 -18
- package/dist/kt-compiler/decl/dataClass.js.map +0 -1
- package/dist/kt-compiler/decl/enum.d.ts +0 -3
- package/dist/kt-compiler/decl/enum.d.ts.map +0 -1
- package/dist/kt-compiler/decl/enum.js +0 -32
- package/dist/kt-compiler/decl/enum.js.map +0 -1
- package/dist/kt-compiler/decl/fun.d.ts +0 -11
- package/dist/kt-compiler/decl/fun.d.ts.map +0 -1
- package/dist/kt-compiler/decl/fun.js +0 -69
- package/dist/kt-compiler/decl/fun.js.map +0 -1
- package/dist/kt-compiler/decl/index.d.ts +0 -13
- package/dist/kt-compiler/decl/index.d.ts.map +0 -1
- package/dist/kt-compiler/decl/index.js +0 -39
- package/dist/kt-compiler/decl/index.js.map +0 -1
- package/dist/kt-compiler/decl/interface.d.ts +0 -3
- package/dist/kt-compiler/decl/interface.d.ts.map +0 -1
- package/dist/kt-compiler/decl/interface.js +0 -15
- package/dist/kt-compiler/decl/interface.js.map +0 -1
- package/dist/kt-compiler/decl/object.d.ts +0 -3
- package/dist/kt-compiler/decl/object.d.ts.map +0 -1
- package/dist/kt-compiler/decl/object.js +0 -19
- package/dist/kt-compiler/decl/object.js.map +0 -1
- package/dist/kt-compiler/decl/prop.d.ts +0 -20
- package/dist/kt-compiler/decl/prop.d.ts.map +0 -1
- package/dist/kt-compiler/decl/prop.js +0 -42
- package/dist/kt-compiler/decl/prop.js.map +0 -1
- package/dist/kt-compiler/decl/sealedClass.d.ts +0 -3
- package/dist/kt-compiler/decl/sealedClass.d.ts.map +0 -1
- package/dist/kt-compiler/decl/sealedClass.js +0 -32
- package/dist/kt-compiler/decl/sealedClass.js.map +0 -1
- package/dist/kt-compiler/decl/topLevel.d.ts +0 -3
- package/dist/kt-compiler/decl/topLevel.d.ts.map +0 -1
- package/dist/kt-compiler/decl/topLevel.js +0 -5
- package/dist/kt-compiler/decl/topLevel.js.map +0 -1
- package/dist/kt-compiler/decl/typeAlias.d.ts +0 -3
- package/dist/kt-compiler/decl/typeAlias.d.ts.map +0 -1
- package/dist/kt-compiler/decl/typeAlias.js +0 -6
- package/dist/kt-compiler/decl/typeAlias.js.map +0 -1
- package/dist/kt-compiler/expr.d.ts +0 -4
- package/dist/kt-compiler/expr.d.ts.map +0 -1
- package/dist/kt-compiler/expr.js +0 -123
- package/dist/kt-compiler/expr.js.map +0 -1
- package/dist/kt-compiler/format.d.ts +0 -20
- package/dist/kt-compiler/format.d.ts.map +0 -1
- package/dist/kt-compiler/format.js +0 -27
- package/dist/kt-compiler/format.js.map +0 -1
- package/dist/kt-compiler/stmt.d.ts +0 -4
- package/dist/kt-compiler/stmt.d.ts.map +0 -1
- package/dist/kt-compiler/stmt.js +0 -72
- package/dist/kt-compiler/stmt.js.map +0 -1
- package/dist/kt-compiler/type.d.ts +0 -3
- package/dist/kt-compiler/type.d.ts.map +0 -1
- package/dist/kt-compiler/type.js +0 -28
- package/dist/kt-compiler/type.js.map +0 -1
- package/dist/kt-dsl/decl/class.d.ts +0 -50
- package/dist/kt-dsl/decl/class.d.ts.map +0 -1
- package/dist/kt-dsl/decl/class.js +0 -33
- package/dist/kt-dsl/decl/class.js.map +0 -1
- package/dist/kt-dsl/decl/dataClass.d.ts +0 -36
- package/dist/kt-dsl/decl/dataClass.d.ts.map +0 -1
- package/dist/kt-dsl/decl/dataClass.js +0 -25
- package/dist/kt-dsl/decl/dataClass.js.map +0 -1
- package/dist/kt-dsl/decl/enum.d.ts +0 -60
- package/dist/kt-dsl/decl/enum.d.ts.map +0 -1
- package/dist/kt-dsl/decl/enum.js +0 -38
- package/dist/kt-dsl/decl/enum.js.map +0 -1
- package/dist/kt-dsl/decl/index.d.ts +0 -11
- package/dist/kt-dsl/decl/index.d.ts.map +0 -1
- package/dist/kt-dsl/decl/index.js +0 -11
- package/dist/kt-dsl/decl/index.js.map +0 -1
- package/dist/kt-dsl/decl/interface.d.ts +0 -33
- package/dist/kt-dsl/decl/interface.d.ts.map +0 -1
- package/dist/kt-dsl/decl/interface.js +0 -24
- package/dist/kt-dsl/decl/interface.js.map +0 -1
- package/dist/kt-dsl/decl/object.d.ts +0 -34
- package/dist/kt-dsl/decl/object.d.ts.map +0 -1
- package/dist/kt-dsl/decl/object.js +0 -24
- package/dist/kt-dsl/decl/object.js.map +0 -1
- package/dist/kt-dsl/decl/prop.d.ts +0 -47
- package/dist/kt-dsl/decl/prop.d.ts.map +0 -1
- package/dist/kt-dsl/decl/prop.js +0 -28
- package/dist/kt-dsl/decl/prop.js.map +0 -1
- package/dist/kt-dsl/decl/sealedClass.d.ts +0 -68
- package/dist/kt-dsl/decl/sealedClass.d.ts.map +0 -1
- package/dist/kt-dsl/decl/sealedClass.js +0 -52
- package/dist/kt-dsl/decl/sealedClass.js.map +0 -1
- package/dist/kt-dsl/decl/topLevel.d.ts +0 -19
- package/dist/kt-dsl/decl/topLevel.d.ts.map +0 -1
- package/dist/kt-dsl/decl/topLevel.js +0 -17
- package/dist/kt-dsl/decl/topLevel.js.map +0 -1
- package/dist/kt-dsl/decl/typeAlias.d.ts +0 -23
- package/dist/kt-dsl/decl/typeAlias.d.ts.map +0 -1
- package/dist/kt-dsl/decl/typeAlias.js +0 -18
- package/dist/kt-dsl/decl/typeAlias.js.map +0 -1
- package/dist/kt-dsl/decl/types.d.ts +0 -10
- package/dist/kt-dsl/decl/types.d.ts.map +0 -1
- package/dist/kt-dsl/decl/types.js +0 -2
- package/dist/kt-dsl/decl/types.js.map +0 -1
- package/dist/kt-dsl/expr/access.d.ts +0 -48
- package/dist/kt-dsl/expr/access.d.ts.map +0 -1
- package/dist/kt-dsl/expr/access.js +0 -59
- package/dist/kt-dsl/expr/access.js.map +0 -1
- package/dist/kt-dsl/expr/call.d.ts +0 -38
- package/dist/kt-dsl/expr/call.d.ts.map +0 -1
- package/dist/kt-dsl/expr/call.js +0 -38
- package/dist/kt-dsl/expr/call.js.map +0 -1
- package/dist/kt-dsl/expr/index.d.ts +0 -7
- package/dist/kt-dsl/expr/index.d.ts.map +0 -1
- package/dist/kt-dsl/expr/index.js +0 -7
- package/dist/kt-dsl/expr/index.js.map +0 -1
- package/dist/kt-dsl/expr/literal.d.ts +0 -100
- package/dist/kt-dsl/expr/literal.d.ts.map +0 -1
- package/dist/kt-dsl/expr/literal.js +0 -108
- package/dist/kt-dsl/expr/literal.js.map +0 -1
- package/dist/kt-dsl/expr/misc.d.ts +0 -45
- package/dist/kt-dsl/expr/misc.d.ts.map +0 -1
- package/dist/kt-dsl/expr/misc.js +0 -63
- package/dist/kt-dsl/expr/misc.js.map +0 -1
- package/dist/kt-dsl/expr/op.d.ts +0 -25
- package/dist/kt-dsl/expr/op.d.ts.map +0 -1
- package/dist/kt-dsl/expr/op.js +0 -24
- package/dist/kt-dsl/expr/op.js.map +0 -1
- package/dist/kt-dsl/expr/types.d.ts +0 -93
- package/dist/kt-dsl/expr/types.d.ts.map +0 -1
- package/dist/kt-dsl/expr/types.js +0 -2
- package/dist/kt-dsl/expr/types.js.map +0 -1
- package/dist/kt-dsl/file.d.ts +0 -14
- package/dist/kt-dsl/file.d.ts.map +0 -1
- package/dist/kt-dsl/file.js +0 -9
- package/dist/kt-dsl/file.js.map +0 -1
- package/dist/kt-dsl/fun.d.ts +0 -73
- package/dist/kt-dsl/fun.d.ts.map +0 -1
- package/dist/kt-dsl/fun.js +0 -50
- package/dist/kt-dsl/fun.js.map +0 -1
- package/dist/kt-dsl/index.d.ts +0 -8
- package/dist/kt-dsl/index.d.ts.map +0 -1
- package/dist/kt-dsl/index.js +0 -8
- package/dist/kt-dsl/index.js.map +0 -1
- package/dist/kt-dsl/stmt/binding.d.ts +0 -56
- package/dist/kt-dsl/stmt/binding.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/binding.js +0 -70
- package/dist/kt-dsl/stmt/binding.js.map +0 -1
- package/dist/kt-dsl/stmt/control.d.ts +0 -80
- package/dist/kt-dsl/stmt/control.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/control.js +0 -77
- package/dist/kt-dsl/stmt/control.js.map +0 -1
- package/dist/kt-dsl/stmt/index.d.ts +0 -4
- package/dist/kt-dsl/stmt/index.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/index.js +0 -4
- package/dist/kt-dsl/stmt/index.js.map +0 -1
- package/dist/kt-dsl/stmt/types.d.ts +0 -62
- package/dist/kt-dsl/stmt/types.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/types.js +0 -2
- package/dist/kt-dsl/stmt/types.js.map +0 -1
- package/dist/kt-dsl/type/builders.d.ts +0 -75
- package/dist/kt-dsl/type/builders.d.ts.map +0 -1
- package/dist/kt-dsl/type/builders.js +0 -83
- package/dist/kt-dsl/type/builders.js.map +0 -1
- package/dist/kt-dsl/type/index.d.ts +0 -3
- package/dist/kt-dsl/type/index.d.ts.map +0 -1
- package/dist/kt-dsl/type/index.js +0 -3
- package/dist/kt-dsl/type/index.js.map +0 -1
- package/dist/kt-dsl/type/types.d.ts +0 -25
- package/dist/kt-dsl/type/types.d.ts.map +0 -1
- package/dist/kt-dsl/type/types.js +0 -2
- package/dist/kt-dsl/type/types.js.map +0 -1
- package/dist/kt-dsl/visibility.d.ts +0 -2
- package/dist/kt-dsl/visibility.d.ts.map +0 -1
- package/dist/kt-dsl/visibility.js +0 -2
- package/dist/kt-dsl/visibility.js.map +0 -1
package/dist/ir/type/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { enumType, iterateObjectProperties, schemaToType as sharedSchemaToType, } from "@ir-kit/openapi";
|
|
2
2
|
import { getEnumLiterals } from "@ir-kit/openapi-tools";
|
|
3
|
+
import { ktRef, ktTypeAlias } from "../../ast/index.js";
|
|
3
4
|
import { ktOps } from "../type-ops.js";
|
|
4
5
|
/**
|
|
5
6
|
* Top-level dispatch from canonical {@link Schema} to a `KtType`.
|
|
@@ -12,13 +13,16 @@ export function schemaToType(schema, ctx) {
|
|
|
12
13
|
export function buildStruct(name, schema, ctx) {
|
|
13
14
|
const properties = Array.from(iterateObjectProperties(schema));
|
|
14
15
|
const dispatch = (s, c) => sharedSchemaToType(s, c, ktOps);
|
|
15
|
-
return ktOps.buildStructDecl(name, properties, { emit: ctx.emit, ownerName: name, propPath: [] }, dispatch);
|
|
16
|
+
return ktOps.buildStructDecl(name, properties, { emit: ctx.emit, names: ctx.names, ownerName: name, propPath: [] }, dispatch);
|
|
16
17
|
}
|
|
17
|
-
export function buildEnumFromIR(name, schema, emit) {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
export function buildEnumFromIR(name, schema, emit, names) {
|
|
19
|
+
const { type, named } = enumType(name, getEnumLiterals(schema), ktOps, {
|
|
20
|
+
emit,
|
|
21
|
+
names,
|
|
22
|
+
});
|
|
23
|
+
if (named)
|
|
24
|
+
return type;
|
|
25
|
+
emit(ktTypeAlias({ name, type }));
|
|
26
|
+
return ktRef(name);
|
|
23
27
|
}
|
|
24
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/type/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/type/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,uBAAuB,EAEvB,YAAY,IAAI,kBAAkB,GACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAe,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,GAAY;IACvD,OAAO,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,MAAc,EACd,GAAoD;IAEpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAU,EAAU,EAAE,CACjD,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,eAAe,CAC1B,IAAI,EACJ,UAAU,EACV,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EACnE,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,MAAc,EACd,IAAyB,EACzB,KAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE;QACrE,IAAI;QACJ,KAAK;KACN,CAAC,CAAC;IACH,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../../src/ir/type/primitive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,
|
|
1
|
+
{"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../../src/ir/type/primitive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,oBAAoB,CAAC;AA8B5B,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB9D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ktBoolean, ktByteArray, ktDouble, ktFloat, ktInt, ktLong, ktRef, ktString, } from "../../
|
|
1
|
+
import { ktBoolean, ktByteArray, ktDouble, ktFloat, ktInt, ktLong, ktRef, ktString, } from "../../ast/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* OpenAPI string `format` → Kotlin / kotlinx-datetime / `String` type.
|
|
4
4
|
* Unknown formats fall back to `String`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../../src/ir/type/primitive.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,GACT,MAAM,
|
|
1
|
+
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../../src/ir/type/primitive.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAAC,MAA0B;IACrD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5B,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;QAC1C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,SAAS;YACZ,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,MAAM,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
|
package/dist/ir/type-ops.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type SchemaToTypeOps } from "@ir-kit/openapi";
|
|
2
|
-
import type { KtDecl } from "../
|
|
3
|
-
import { type KtType } from "../
|
|
2
|
+
import type { KtDecl } from "../ast/index.js";
|
|
3
|
+
import { type KtType } from "../ast/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Kotlin's plug into the shared `schemaToType` dispatcher. Per-target
|
|
6
6
|
* choices: `kotlinx-serialization` `@Serializable` annotations and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-ops.d.ts","sourceRoot":"","sources":["../../src/ir/type-ops.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"type-ops.d.ts","sourceRoot":"","sources":["../../src/ir/type-ops.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,KAAK,MAAM,EAgBZ,MAAM,iBAAiB,CAAC;AAKzB;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAwEjD,CAAC"}
|
package/dist/ir/type-ops.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { synthName } from "@ir-kit/codegen-core";
|
|
2
|
-
import {
|
|
3
|
-
import { ktAnnotation,
|
|
2
|
+
import { uniqueEnumEntries, } from "@ir-kit/openapi";
|
|
3
|
+
import { ktAnnotation, ktDataClass, ktEnum, ktEnumEntry, ktInt, ktJsonElement, ktList, ktMap, ktNullable, ktProp, ktRef, ktStr, ktString, ktTypeAlias, ktUnit, } from "../ast/index.js";
|
|
4
4
|
import { enumEntryIdent } from "./identifiers.js";
|
|
5
5
|
import { typeForPrimitive } from "./type/primitive.js";
|
|
6
6
|
import { propertyName } from "./type/property-naming.js";
|
|
@@ -17,12 +17,12 @@ export const ktOps = {
|
|
|
17
17
|
arrayType: ktList,
|
|
18
18
|
mapType: (value) => ktMap(ktString, value),
|
|
19
19
|
voidType: () => ktUnit,
|
|
20
|
-
anyType: () =>
|
|
20
|
+
anyType: () => ktJsonElement,
|
|
21
21
|
// `null`-typed primitive → `Any?`.
|
|
22
|
-
nullableAnyType: () => ktNullable(
|
|
22
|
+
nullableAnyType: () => ktNullable(ktJsonElement),
|
|
23
23
|
// Single non-null + nullable → wrap in nullable iff not already.
|
|
24
|
-
wrapForUnionSingle: (inner, nullable) => nullable
|
|
25
|
-
unionFallback: (nullable) =>
|
|
24
|
+
wrapForUnionSingle: (inner, nullable) => nullable ? ktNullable(inner) : inner,
|
|
25
|
+
unionFallback: (nullable) => nullable ? ktNullable(ktJsonElement) : ktJsonElement,
|
|
26
26
|
primitiveType: typeForPrimitive,
|
|
27
27
|
// kotlinx convention: `Owner_Property` (underscore joiner).
|
|
28
28
|
synthName,
|
|
@@ -31,18 +31,18 @@ export const ktOps = {
|
|
|
31
31
|
const naming = propertyName(jsonKey);
|
|
32
32
|
const t = dispatch(propSchema, {
|
|
33
33
|
emit: ctx.emit,
|
|
34
|
+
names: ctx.names,
|
|
34
35
|
ownerName: name,
|
|
35
36
|
propPath: [propPathSegment],
|
|
36
37
|
});
|
|
37
38
|
const optional = !required;
|
|
38
|
-
const finalType = optional
|
|
39
|
+
const finalType = optional ? ktNullable(t) : t;
|
|
39
40
|
return ktProp({
|
|
40
41
|
name: naming.kotlinName,
|
|
41
42
|
type: finalType,
|
|
42
|
-
inPrimary: true,
|
|
43
43
|
default: optional ? "null" : undefined,
|
|
44
44
|
annotations: naming.renamed
|
|
45
|
-
? [ktAnnotation("SerialName",
|
|
45
|
+
? [ktAnnotation("SerialName", ktStr(naming.jsonKey))]
|
|
46
46
|
: [],
|
|
47
47
|
});
|
|
48
48
|
});
|
|
@@ -53,18 +53,14 @@ export const ktOps = {
|
|
|
53
53
|
});
|
|
54
54
|
},
|
|
55
55
|
emitStringEnum: (name, rawValues, emit) => {
|
|
56
|
-
const idents = rawValues
|
|
57
|
-
|
|
58
|
-
raw,
|
|
59
|
-
}));
|
|
60
|
-
assertNoEnumCollisions(name, idents);
|
|
61
|
-
const entries = idents.map(({ identifier, raw }) => ktEnumEntry(identifier, JSON.stringify(raw), [
|
|
62
|
-
ktAnnotation("SerialName", JSON.stringify(raw)),
|
|
56
|
+
const idents = uniqueEnumEntries(rawValues, enumEntryIdent, (b, n) => `${b}_${n}`);
|
|
57
|
+
const entries = idents.map(({ identifier, raw }) => ktEnumEntry(identifier, ktStr(raw), [
|
|
58
|
+
ktAnnotation("SerialName", ktStr(raw)),
|
|
63
59
|
]));
|
|
64
60
|
emit(ktEnum({
|
|
65
61
|
name,
|
|
66
62
|
annotations: [ktAnnotation("Serializable")],
|
|
67
|
-
properties: [ktProp({ name: "raw", type: ktString
|
|
63
|
+
properties: [ktProp({ name: "raw", type: ktString })],
|
|
68
64
|
entries,
|
|
69
65
|
}));
|
|
70
66
|
return ktRef(name);
|
package/dist/ir/type-ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-ops.js","sourceRoot":"","sources":["../../src/ir/type-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"type-ops.js","sourceRoot":"","sources":["../../src/ir/type-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGL,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,WAAW,EACX,KAAK,EACL,aAAa,EACb,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,GACP,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAoC;IACpD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1C,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa;IAC5B,mCAAmC;IACnC,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;IAChD,iEAAiE;IACjE,kBAAkB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CACtC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;IACtC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC1B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa;IACtD,aAAa,EAAE,gBAAgB;IAC/B,4DAA4D;IAC5D,SAAS;IACT,eAAe,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAoB,EAAE;gBACvC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,CAAC,eAAe,CAAC;aAC5B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,MAAM,CAAC;gBACZ,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACtC,WAAW,EAAE,MAAM,CAAC,OAAO;oBACzB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrD,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QACF,OAAO,WAAW,CAAC;YACjB,IAAI;YACJ,WAAW,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC3C,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IACD,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAC9B,SAAS,EACT,cAAc,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,CACjD,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YAClC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC,CAAC,CACH,CAAC;QACF,IAAI,CACF,MAAM,CAAC;YACL,IAAI;YACJ,WAAW,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO;SACR,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,2DAA2D;IAC3D,gEAAgE;IAChE,2DAA2D;IAC3D,eAAe,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;QAC1C,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import type { KtFile } from "../
|
|
2
|
-
export declare function printFile(
|
|
3
|
-
export
|
|
4
|
-
export { printExpr } from "./expr.js";
|
|
5
|
-
export { printStmt } from "./stmt.js";
|
|
6
|
-
export { printType } from "./type.js";
|
|
1
|
+
import type { KtDecl, KtFile } from "../ast/index.js";
|
|
2
|
+
export declare function printFile(file: KtFile): string;
|
|
3
|
+
export declare const printDecl: (d: KtDecl) => string;
|
|
7
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kt-compiler/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kt-compiler/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAMtD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ9C;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MACF,CAAC"}
|
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
if (f.imports.length > 0) {
|
|
9
|
-
for (const imp of f.imports)
|
|
10
|
-
out.push(`import ${imp}`);
|
|
11
|
-
out.push("");
|
|
12
|
-
}
|
|
13
|
-
for (let i = 0; i < f.decls.length; i++) {
|
|
14
|
-
out.push(printDecl(f.decls[i]));
|
|
15
|
-
if (i < f.decls.length - 1)
|
|
16
|
-
out.push("");
|
|
17
|
-
}
|
|
18
|
-
return `${out.join("\n")}\n`;
|
|
1
|
+
import { kt } from "@ir-kit/compiler-kotlin";
|
|
2
|
+
const f = kt.factory;
|
|
3
|
+
const printer = kt.createPrinter({ indentSize: 4 });
|
|
4
|
+
const trimEnd = (s) => s.replace(/\n+$/, "");
|
|
5
|
+
export function printFile(file) {
|
|
6
|
+
return printer.printFile(f.createSourceFile(file.decls.map((d) => d.node), file.pkg ? f.createPackageHeader(file.pkg) : undefined, file.imports.map((i) => f.createImportDirective(i))));
|
|
19
7
|
}
|
|
20
|
-
export
|
|
21
|
-
export { printExpr } from "./expr.js";
|
|
22
|
-
export { printStmt } from "./stmt.js";
|
|
23
|
-
export { printType } from "./type.js";
|
|
8
|
+
export const printDecl = (d) => trimEnd(printer.printFile(d.node));
|
|
24
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kt-compiler/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kt-compiler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAI7C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;AACrB,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAErD,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,OAAO,CAAC,SAAS,CACtB,CAAC,CAAC,gBAAgB,CAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CACpD,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
package/dist/project/build.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/project/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/project/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,iBAAiB,CAAC;AAItD,OAAO,EAAgB,KAAK,gBAAgB,EAAa,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC5B,IAAI,GAAE,YAAiB,GACtB,SAAS,EAAE,CAgCb;AAcD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,SAAS,CAMX"}
|
package/dist/project/build.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { ktFile } from "../ast/index.js";
|
|
1
2
|
import { DEFAULT_PACKAGE } from "../ir/constants.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { importsForSource, isApiSurface } from "./imports.js";
|
|
3
|
+
import { printFile } from "../kt-compiler/index.js";
|
|
4
|
+
import { importsFor, isApiSurface, referencedNames } from "./imports.js";
|
|
5
5
|
import { declFileName, placeDecl } from "./layout.js";
|
|
6
6
|
/**
|
|
7
7
|
* Project assembler: places each decl in a file, picks imports, prints
|
|
@@ -29,14 +29,12 @@ export function buildKotlinProject(decls, opts = {}) {
|
|
|
29
29
|
else
|
|
30
30
|
groups.set(path, { decls: [decl], subPkg });
|
|
31
31
|
}
|
|
32
|
+
const declared = new Map(decls.map((d) => [d.name, declPackage(pkg, placeDecl(d, opts).dir)]));
|
|
32
33
|
return [...groups.entries()].map(([path, group]) => {
|
|
33
|
-
// Print bodies first, scan the printed output for actually-used
|
|
34
|
-
// identifiers, then re-print with the right imports. Avoids
|
|
35
|
-
// shipping unused imports per file.
|
|
36
|
-
const bodyOnly = group.decls.map((d) => printDecl(d)).join("\n\n");
|
|
37
34
|
const apiSurface = group.decls.some(isApiSurface);
|
|
38
|
-
const imports =
|
|
35
|
+
const imports = importsFor(referencedNames(group.decls), {
|
|
39
36
|
isApiSurface: apiSurface,
|
|
37
|
+
declared,
|
|
40
38
|
rootPkg: pkg,
|
|
41
39
|
subPkg: group.subPkg,
|
|
42
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/project/build.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/project/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAyB,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB7E;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA4B,EAC5B,OAAqB,EAAE;IAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+C,CAAC;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,QAAQ;YAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CACrE,CAAC;IACF,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACvD,YAAY,EAAE,UAAU;YACxB,QAAQ;YACR,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,SAAS,CAChB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAC3D;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,GAAW;IAC/C,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,GAAG,OAAO,IAAI,MAAM,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,MAAc,EACd,QAAgB,EAChB,OAAe;IAEf,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO;QACL,IAAI,EAAE,GAAG,OAAO,IAAI,MAAM,IAAI,QAAQ,EAAE;QACxC,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type { KtDecl } from "../
|
|
1
|
+
import type { KtDecl } from "../ast/index.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Coarse-import-everything caused unused imports per file; the
|
|
6
|
-
* print-then-scan pattern is precise without needing a full type-tree
|
|
7
|
-
* walker.
|
|
8
|
-
*
|
|
9
|
-
* Identifiers that share names across packages (e.g. `Response` exists
|
|
10
|
-
* in both `okhttp3` and a hypothetical user model) are disambiguated
|
|
11
|
-
* by file kind: API-layer files always pull `okhttp3.Response`, model
|
|
12
|
-
* files never do.
|
|
3
|
+
* Every identifier, type and annotation name the declarations reference,
|
|
4
|
+
* collected from the AST (string literals and comments never count).
|
|
13
5
|
*/
|
|
14
|
-
export declare function
|
|
6
|
+
export declare function referencedNames(decls: ReadonlyArray<KtDecl>): ReadonlySet<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Import list for one Kotlin file. Names shared across packages (e.g.
|
|
9
|
+
* `Response` in `okhttp3` vs. a user model) are disambiguated by file
|
|
10
|
+
* kind: API-layer files pull `okhttp3.Response`, model files never do.
|
|
11
|
+
*/
|
|
12
|
+
export declare function importsFor(names: ReadonlySet<string>, ctx: {
|
|
15
13
|
isApiSurface: boolean;
|
|
14
|
+
/** Package of every generated declaration, by name. */
|
|
15
|
+
declared: ReadonlyMap<string, string>;
|
|
16
16
|
rootPkg: string;
|
|
17
17
|
subPkg: string;
|
|
18
18
|
}): ReadonlyArray<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/project/imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/project/imports.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAC3B,WAAW,CAAC,MAAM,CAAC,CAqBrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,GAAG,EAAE;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,aAAa,CAAC,MAAM,CAAC,CAmCvB;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWlD"}
|
package/dist/project/imports.js
CHANGED
|
@@ -1,149 +1,71 @@
|
|
|
1
|
+
import { kt } from "@ir-kit/compiler-kotlin";
|
|
2
|
+
const K = kt.KotlinNodeKind;
|
|
3
|
+
const NAME_TOKEN = /[A-Za-z_][A-Za-z0-9_]*/g;
|
|
1
4
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Coarse-import-everything caused unused imports per file; the
|
|
5
|
-
* print-then-scan pattern is precise without needing a full type-tree
|
|
6
|
-
* walker.
|
|
7
|
-
*
|
|
8
|
-
* Identifiers that share names across packages (e.g. `Response` exists
|
|
9
|
-
* in both `okhttp3` and a hypothetical user model) are disambiguated
|
|
10
|
-
* by file kind: API-layer files always pull `okhttp3.Response`, model
|
|
11
|
-
* files never do.
|
|
5
|
+
* Every identifier, type and annotation name the declarations reference,
|
|
6
|
+
* collected from the AST (string literals and comments never count).
|
|
12
7
|
*/
|
|
13
|
-
export function
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
set.add("kotlinx.serialization.SerialName");
|
|
21
|
-
}
|
|
22
|
-
// kotlinx-datetime model fields.
|
|
23
|
-
if (/\bInstant\b/.test(source))
|
|
24
|
-
set.add("kotlinx.datetime.Instant");
|
|
25
|
-
if (/\bLocalDate\b/.test(source))
|
|
26
|
-
set.add("kotlinx.datetime.LocalDate");
|
|
27
|
-
// kotlinx-serialization builtins (only when actually mentioned).
|
|
28
|
-
if (/\bListSerializer\(/.test(source)) {
|
|
29
|
-
set.add("kotlinx.serialization.builtins.ListSerializer");
|
|
30
|
-
}
|
|
31
|
-
if (/\bMapSerializer\(/.test(source)) {
|
|
32
|
-
set.add("kotlinx.serialization.builtins.MapSerializer");
|
|
33
|
-
}
|
|
34
|
-
if (/\bByteArraySerializer\(\)/.test(source)) {
|
|
35
|
-
set.add("kotlinx.serialization.builtins.ByteArraySerializer");
|
|
36
|
-
}
|
|
37
|
-
if (/\.nullable\b/.test(source)) {
|
|
38
|
-
set.add("kotlinx.serialization.builtins.nullable");
|
|
39
|
-
}
|
|
40
|
-
if (/\bserializer\(\)/.test(source) && ctx.isApiSurface) {
|
|
41
|
-
// Built-in `String.serializer()`, `Int.serializer()`, etc. live
|
|
42
|
-
// under kotlinx.serialization.builtins. Only the API surface uses
|
|
43
|
-
// them — model files use the auto-generated companion form.
|
|
44
|
-
set.add("kotlinx.serialization.builtins.serializer");
|
|
45
|
-
}
|
|
46
|
-
if (/\bJsonElement\b/.test(source)) {
|
|
47
|
-
set.add("kotlinx.serialization.json.JsonElement");
|
|
48
|
-
}
|
|
49
|
-
// OkHttp types — only API-surface files reference them.
|
|
50
|
-
if (ctx.isApiSurface) {
|
|
51
|
-
if (/\bHttpUrl\b/.test(source))
|
|
52
|
-
set.add("okhttp3.HttpUrl");
|
|
53
|
-
if (/\bRequest\b/.test(source))
|
|
54
|
-
set.add("okhttp3.Request");
|
|
55
|
-
if (/\bResponse\b/.test(source))
|
|
56
|
-
set.add("okhttp3.Response");
|
|
57
|
-
if (/\bFormBody\b/.test(source))
|
|
58
|
-
set.add("okhttp3.FormBody");
|
|
59
|
-
if (/\.toMediaType\(\)/.test(source)) {
|
|
60
|
-
set.add("okhttp3.MediaType.Companion.toMediaType");
|
|
61
|
-
}
|
|
62
|
-
if (/\.toRequestBody\(/.test(source)) {
|
|
63
|
-
set.add("okhttp3.RequestBody.Companion.toRequestBody");
|
|
8
|
+
export function referencedNames(decls) {
|
|
9
|
+
const names = new Set();
|
|
10
|
+
const visit = (value) => {
|
|
11
|
+
if (Array.isArray(value)) {
|
|
12
|
+
for (const item of value)
|
|
13
|
+
visit(item);
|
|
14
|
+
return;
|
|
64
15
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
16
|
+
if (!value || typeof value !== "object")
|
|
17
|
+
return;
|
|
18
|
+
const node = value;
|
|
19
|
+
if ((node.kind === K.Identifier ||
|
|
20
|
+
node.kind === K.UserType ||
|
|
21
|
+
node.kind === K.Annotation) &&
|
|
22
|
+
typeof node.name === "string") {
|
|
23
|
+
for (const m of node.name.matchAll(NAME_TOKEN))
|
|
24
|
+
names.add(m[0]);
|
|
74
25
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
26
|
+
for (const child of Object.values(value))
|
|
27
|
+
visit(child);
|
|
28
|
+
};
|
|
29
|
+
for (const decl of decls)
|
|
30
|
+
visit(decl.node);
|
|
31
|
+
return names;
|
|
78
32
|
}
|
|
79
33
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
34
|
+
* Import list for one Kotlin file. Names shared across packages (e.g.
|
|
35
|
+
* `Response` in `okhttp3` vs. a user model) are disambiguated by file
|
|
36
|
+
* kind: API-layer files pull `okhttp3.Response`, model files never do.
|
|
83
37
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"TimeUnit",
|
|
109
|
-
// kotlinx
|
|
110
|
-
"Instant",
|
|
111
|
-
"LocalDate",
|
|
112
|
-
"JsonElement",
|
|
113
|
-
"Json",
|
|
114
|
-
"Dispatchers",
|
|
115
|
-
"Serializable",
|
|
116
|
-
"SerialName",
|
|
117
|
-
"ListSerializer",
|
|
118
|
-
"MapSerializer",
|
|
119
|
-
"ByteArraySerializer",
|
|
120
|
-
// OkHttp
|
|
121
|
-
"HttpUrl",
|
|
122
|
-
"Request",
|
|
123
|
-
"Response",
|
|
124
|
-
"OkHttpClient",
|
|
125
|
-
"FormBody",
|
|
126
|
-
"MultipartBody",
|
|
127
|
-
"RequestBody",
|
|
128
|
-
"MediaType",
|
|
129
|
-
// Runtime helpers (same package)
|
|
130
|
-
"APIClient",
|
|
131
|
-
"APIError",
|
|
132
|
-
"APIInterceptors",
|
|
133
|
-
"Auth",
|
|
134
|
-
"APIKeyLocation",
|
|
135
|
-
"MultipartFormBody",
|
|
136
|
-
"QueryStyle",
|
|
137
|
-
"RequestOptions",
|
|
138
|
-
"URLEncoding",
|
|
139
|
-
]);
|
|
140
|
-
function hasLikelyModelRef(source) {
|
|
141
|
-
const matches = source.matchAll(/\b([A-Z][A-Za-z0-9_]*)\b/g);
|
|
142
|
-
for (const m of matches) {
|
|
143
|
-
if (!NON_MODEL_TYPES.has(m[1]))
|
|
144
|
-
return true;
|
|
38
|
+
export function importsFor(names, ctx) {
|
|
39
|
+
const set = new Set();
|
|
40
|
+
const when = (name, imp) => {
|
|
41
|
+
if (names.has(name))
|
|
42
|
+
set.add(imp);
|
|
43
|
+
};
|
|
44
|
+
when("Serializable", "kotlinx.serialization.Serializable");
|
|
45
|
+
when("SerialName", "kotlinx.serialization.SerialName");
|
|
46
|
+
when("Instant", "kotlinx.datetime.Instant");
|
|
47
|
+
when("LocalDate", "kotlinx.datetime.LocalDate");
|
|
48
|
+
when("ListSerializer", "kotlinx.serialization.builtins.ListSerializer");
|
|
49
|
+
when("MapSerializer", "kotlinx.serialization.builtins.MapSerializer");
|
|
50
|
+
when("ByteArraySerializer", "kotlinx.serialization.builtins.ByteArraySerializer");
|
|
51
|
+
when("nullable", "kotlinx.serialization.builtins.nullable");
|
|
52
|
+
when("JsonElement", "kotlinx.serialization.json.JsonElement");
|
|
53
|
+
if (ctx.isApiSurface) {
|
|
54
|
+
// `String.serializer()` etc.; model files use generated companions.
|
|
55
|
+
when("serializer", "kotlinx.serialization.builtins.serializer");
|
|
56
|
+
when("HttpUrl", "okhttp3.HttpUrl");
|
|
57
|
+
when("Request", "okhttp3.Request");
|
|
58
|
+
when("Response", "okhttp3.Response");
|
|
59
|
+
when("FormBody", "okhttp3.FormBody");
|
|
60
|
+
when("toMediaType", "okhttp3.MediaType.Companion.toMediaType");
|
|
61
|
+
when("toRequestBody", "okhttp3.RequestBody.Companion.toRequestBody");
|
|
145
62
|
}
|
|
146
|
-
|
|
63
|
+
for (const name of names) {
|
|
64
|
+
const pkg = ctx.declared.get(name);
|
|
65
|
+
if (pkg && pkg !== ctx.subPkg)
|
|
66
|
+
set.add(`${pkg}.${name}`);
|
|
67
|
+
}
|
|
68
|
+
return [...set].filter((i) => !i.startsWith(`${ctx.subPkg}.`)).sort();
|
|
147
69
|
}
|
|
148
70
|
/** API-surface predicate, exposed for the build orchestrator. */
|
|
149
71
|
export function isApiSurface(decl) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/project/imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/project/imports.ts"],"names":[],"mappings":"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"}
|
package/dist/project/layout.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/project/layout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/project/layout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,mEAAmE;IACnE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC9D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAM1E;AAmCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD"}
|
package/dist/project/layout.js
CHANGED
|
@@ -48,9 +48,7 @@ function isApiDecl(decl) {
|
|
|
48
48
|
*/
|
|
49
49
|
export function declFileName(decl) {
|
|
50
50
|
if (decl.kind === "topLevelFun") {
|
|
51
|
-
|
|
52
|
-
const recvName = receiver && receiver.kind === "ref" ? receiver.name : "Extensions";
|
|
53
|
-
return `${recvName}Extensions.kt`;
|
|
51
|
+
return `${decl.receiver ?? "Extensions"}Extensions.kt`;
|
|
54
52
|
}
|
|
55
53
|
return `${decl.name}.kt`;
|
|
56
54
|
}
|