@voxgig/sdkgen 4.32.1 → 4.34.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/bin/voxgig-sdkgen +1 -1
- package/dist/action/copies.d.ts +21 -0
- package/dist/action/copies.js +146 -0
- package/dist/action/copies.js.map +1 -0
- package/dist/action/doctor.d.ts +15 -2
- package/dist/action/doctor.js +169 -23
- package/dist/action/doctor.js.map +1 -1
- package/dist/action/edition.js +6 -2
- package/dist/action/edition.js.map +1 -1
- package/dist/action/feature.js +6 -2
- package/dist/action/feature.js.map +1 -1
- package/dist/action/package.js +28 -10
- package/dist/action/package.js.map +1 -1
- package/dist/action/remove.js +2 -0
- package/dist/action/remove.js.map +1 -1
- package/dist/action/resolve.d.ts +1 -0
- package/dist/action/resolve.js +10 -2
- package/dist/action/resolve.js.map +1 -1
- package/dist/action/target.js +6 -2
- package/dist/action/target.js.map +1 -1
- package/dist/helpers/naming.js +1 -1
- package/dist/helpers/naming.js.map +1 -1
- package/dist/sdkgen.d.ts +2 -1
- package/dist/sdkgen.js +36 -3
- package/dist/sdkgen.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/model/sdkgen.aontu +7 -1
- package/package.json +1 -1
- package/project/.sdk/model/feature/debug.aontu +3 -1
- package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +8 -28
- package/project/.sdk/src/cmp/c/TestClean_c.ts +774 -0
- package/project/.sdk/src/cmp/c/Test_c.ts +3 -0
- package/project/.sdk/src/cmp/c/fragment/Entity.fragment.c +16 -5
- package/project/.sdk/src/cmp/c/fragment/Main.fragment.c +1 -1
- package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +3 -0
- package/project/.sdk/src/cmp/clojure/TestClean_clojure.ts +473 -0
- package/project/.sdk/src/cmp/clojure/Test_clojure.ts +6 -0
- package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +18 -8
- package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +3 -0
- package/project/.sdk/src/cmp/cpp/TestClean_cpp.ts +782 -0
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +1 -1
- package/project/.sdk/src/cmp/cpp/Test_cpp.ts +2 -0
- package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +3 -0
- package/project/.sdk/src/cmp/csharp/TestClean_csharp.ts +887 -0
- package/project/.sdk/src/cmp/csharp/Test_csharp.ts +2 -0
- package/project/.sdk/src/cmp/csharp/fragment/EntityBase.fragment.cs +68 -4
- package/project/.sdk/src/cmp/csharp/fragment/Main.fragment.cs +8 -2
- package/project/.sdk/src/cmp/csharp/fragment/SdkError.fragment.cs +49 -0
- package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +3 -0
- package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +20 -10
- package/project/.sdk/src/cmp/elixir/TestClean_elixir.ts +666 -0
- package/project/.sdk/src/cmp/elixir/Test_elixir.ts +4 -0
- package/project/.sdk/src/cmp/elixir/fragment/Main.fragment.ex +1 -1
- package/project/.sdk/src/cmp/elixir/fragment/Pipeline.fragment.ex +14 -2
- package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +3 -0
- package/project/.sdk/src/cmp/go/TestClean_go.ts +804 -0
- package/project/.sdk/src/cmp/go/Test_go.ts +3 -0
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +54 -4
- package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +27 -2
- package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +3 -0
- package/project/.sdk/src/cmp/java/TestClean_java.ts +884 -0
- package/project/.sdk/src/cmp/java/Test_java.ts +2 -0
- package/project/.sdk/src/cmp/java/fragment/EntityBase.fragment.java +56 -11
- package/project/.sdk/src/cmp/java/fragment/SdkError.fragment.java +36 -3
- package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +3 -0
- package/project/.sdk/src/cmp/js/TestClean_js.ts +458 -0
- package/project/.sdk/src/cmp/js/Test_js.ts +2 -0
- package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +5 -4
- package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +7 -1
- package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +7 -1
- package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +7 -1
- package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +7 -1
- package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +7 -1
- package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +11 -2
- package/project/.sdk/src/cmp/js/fragment/SdkError.fragment.js +17 -1
- package/project/.sdk/src/cmp/kotlin/Package_kotlin.ts +5 -0
- package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +3 -0
- package/project/.sdk/src/cmp/kotlin/TestClean_kotlin.ts +654 -0
- package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +3 -0
- package/project/.sdk/src/cmp/kotlin/fragment/EntityBase.fragment.kt +44 -11
- package/project/.sdk/src/cmp/kotlin/fragment/SdkError.fragment.kt +31 -0
- package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +3 -0
- package/project/.sdk/src/cmp/lua/TestClean_lua.ts +769 -0
- package/project/.sdk/src/cmp/lua/Test_lua.ts +3 -0
- package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +77 -1
- package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +49 -2
- package/project/.sdk/src/cmp/ocaml/Entity_ocaml.ts +3 -2
- package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +4 -25
- package/project/.sdk/src/cmp/ocaml/TestClean_ocaml.ts +538 -0
- package/project/.sdk/src/cmp/ocaml/Test_ocaml.ts +5 -0
- package/project/.sdk/src/cmp/ocaml/fragment/RunOp.fragment.ml +16 -4
- package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +3 -0
- package/project/.sdk/src/cmp/perl/TestClean_perl.ts +619 -0
- package/project/.sdk/src/cmp/perl/Test_perl.ts +3 -0
- package/project/.sdk/src/cmp/perl/fragment/Entity.fragment.pm +67 -5
- package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +13 -1
- package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +3 -0
- package/project/.sdk/src/cmp/php/TestClean_php.ts +809 -0
- package/project/.sdk/src/cmp/php/Test_php.ts +2 -0
- package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +96 -55
- package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +15 -2
- package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +3 -0
- package/project/.sdk/src/cmp/py/TestClean_py.ts +549 -0
- package/project/.sdk/src/cmp/py/Test_py.ts +3 -0
- package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +83 -55
- package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +19 -3
- package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +3 -0
- package/project/.sdk/src/cmp/rb/TestClean_rb.ts +535 -0
- package/project/.sdk/src/cmp/rb/Test_rb.ts +3 -0
- package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +108 -46
- package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +12 -1
- package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +9 -45
- package/project/.sdk/src/cmp/rust/TestClean_rust.ts +881 -0
- package/project/.sdk/src/cmp/rust/Test_rust.ts +3 -0
- package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +14 -6
- package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +17 -1
- package/project/.sdk/src/cmp/rust/fragment/SdkError.fragment.rs +34 -2
- package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +3 -0
- package/project/.sdk/src/cmp/scala/TestClean_scala.ts +608 -0
- package/project/.sdk/src/cmp/scala/Test_scala.ts +3 -0
- package/project/.sdk/src/cmp/scala/fragment/EntityBase.fragment.scala +58 -6
- package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +3 -0
- package/project/.sdk/src/cmp/swift/TestClean_swift.ts +671 -0
- package/project/.sdk/src/cmp/swift/Test_swift.ts +3 -0
- package/project/.sdk/src/cmp/swift/fragment/EntityBase.fragment.swift +10 -0
- package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +16 -2
- package/project/.sdk/src/cmp/swift/fragment/SdkError.fragment.swift +47 -3
- package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +3 -0
- package/project/.sdk/src/cmp/ts/TestClean_ts.ts +465 -0
- package/project/.sdk/src/cmp/ts/Test_ts.ts +2 -0
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +5 -4
- package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +7 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +7 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +7 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +7 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +7 -1
- package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +8 -2
- package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +20 -2
- package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +3 -0
- package/project/.sdk/src/cmp/zig/TestClean_zig.ts +791 -0
- package/project/.sdk/src/cmp/zig/Test_zig.ts +5 -0
- package/project/.sdk/src/cmp/zig/fragment/Build.fragment.zig +19 -0
- package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +14 -5
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +1 -1
- package/project/.sdk/tm/c/core/context.c +25 -0
- package/project/.sdk/tm/c/core/error.c +16 -0
- package/project/.sdk/tm/c/core/sdk.h +22 -0
- package/project/.sdk/tm/c/feature/audit.c +2 -0
- package/project/.sdk/tm/c/feature/cost.c +1 -0
- package/project/.sdk/tm/c/feature/debug.c +19 -29
- package/project/.sdk/tm/c/feature/log.c +21 -2
- package/project/.sdk/tm/c/feature/proxy.c +55 -3
- package/project/.sdk/tm/c/feature/secrets.c +7 -0
- package/project/.sdk/tm/c/feature/telemetry.c +2 -0
- package/project/.sdk/tm/c/tests/feature_test.c +2 -2
- package/project/.sdk/tm/c/utility/clean.c +530 -8
- package/project/.sdk/tm/c/utility/done.c +28 -12
- package/project/.sdk/tm/c/utility/make_error.c +4 -3
- package/project/.sdk/tm/c/utility/make_options.c +71 -45
- package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +15 -0
- package/project/.sdk/tm/clojure/src/sdk/client.clj +20 -4
- package/project/.sdk/tm/clojure/src/sdk/core.clj +319 -35
- package/project/.sdk/tm/clojure/src/sdk/features.clj +68 -30
- package/project/.sdk/tm/clojure/test/sdk/test/feature.clj +4 -2
- package/project/.sdk/tm/clojure/test/sdk/test/pipeline.clj +47 -20
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +4 -0
- package/project/.sdk/tm/cpp/core/types.hpp +93 -3
- package/project/.sdk/tm/cpp/feature/audit.hpp +1 -0
- package/project/.sdk/tm/cpp/feature/cost.hpp +1 -0
- package/project/.sdk/tm/cpp/feature/debug.hpp +20 -12
- package/project/.sdk/tm/cpp/feature/log.hpp +31 -9
- package/project/.sdk/tm/cpp/feature/proxy.hpp +52 -6
- package/project/.sdk/tm/cpp/feature/secrets.hpp +13 -0
- package/project/.sdk/tm/cpp/feature/telemetry.hpp +4 -2
- package/project/.sdk/tm/cpp/test/feature_test.cpp +2 -2
- package/project/.sdk/tm/cpp/utility/pipeline.hpp +426 -51
- package/project/.sdk/tm/csharp/core/Context.cs +32 -0
- package/project/.sdk/tm/csharp/core/Utility.cs +2 -0
- package/project/.sdk/tm/csharp/feature/AuditFeature.cs +1 -0
- package/project/.sdk/tm/csharp/feature/CostFeature.cs +7 -5
- package/project/.sdk/tm/csharp/feature/DebugFeature.cs +19 -16
- package/project/.sdk/tm/csharp/feature/FeatureOptions.cs +16 -0
- package/project/.sdk/tm/csharp/feature/LogFeature.cs +4 -1
- package/project/.sdk/tm/csharp/feature/ProxyFeature.cs +26 -5
- package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +16 -0
- package/project/.sdk/tm/csharp/feature/TelemetryFeature.cs +4 -2
- package/project/.sdk/tm/csharp/test/FeatureTest.cs +2 -2
- package/project/.sdk/tm/csharp/utility/Clean.cs +440 -2
- package/project/.sdk/tm/csharp/utility/Done.cs +27 -11
- package/project/.sdk/tm/csharp/utility/MakeError.cs +19 -8
- package/project/.sdk/tm/csharp/utility/MakeOptions.cs +119 -29
- package/project/.sdk/tm/csharp/utility/MakeResponse.cs +21 -11
- package/project/.sdk/tm/csharp/utility/Register.cs +1 -0
- package/project/.sdk/tm/elixir/lib/projectname/context.ex +19 -0
- package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +22 -1
- package/project/.sdk/tm/elixir/lib/projectname/error.ex +24 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/audit.ex +2 -2
- package/project/.sdk/tm/elixir/lib/projectname/feature/cost.ex +2 -2
- package/project/.sdk/tm/elixir/lib/projectname/feature/debug.ex +13 -13
- package/project/.sdk/tm/elixir/lib/projectname/feature/log.ex +18 -5
- package/project/.sdk/tm/elixir/lib/projectname/feature/proxy.ex +19 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +15 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/telemetry.ex +4 -2
- package/project/.sdk/tm/elixir/lib/projectname/feature.ex +22 -0
- package/project/.sdk/tm/elixir/lib/projectname/utility.ex +464 -41
- package/project/.sdk/tm/elixir/test/feature_test.exs +3 -2
- package/project/.sdk/tm/go/core/context.go +42 -0
- package/project/.sdk/tm/go/core/error.go +30 -10
- package/project/.sdk/tm/go/core/utility_type.go +2 -0
- package/project/.sdk/tm/go/feature/audit_feature.go +1 -0
- package/project/.sdk/tm/go/feature/base_feature.go +12 -0
- package/project/.sdk/tm/go/feature/cost_feature.go +2 -2
- package/project/.sdk/tm/go/feature/debug_feature.go +14 -12
- package/project/.sdk/tm/go/feature/log_feature.go +13 -8
- package/project/.sdk/tm/go/feature/proxy_feature.go +26 -6
- package/project/.sdk/tm/go/feature/secrets_feature.go +19 -0
- package/project/.sdk/tm/go/feature/telemetry_feature.go +4 -2
- package/project/.sdk/tm/go/test/feature_test.go +2 -2
- package/project/.sdk/tm/go/utility/clean.go +585 -2
- package/project/.sdk/tm/go/utility/done.go +29 -9
- package/project/.sdk/tm/go/utility/make_error.go +51 -16
- package/project/.sdk/tm/go/utility/make_options.go +77 -36
- package/project/.sdk/tm/go/utility/register.go +12 -0
- package/project/.sdk/tm/java/core/Context.java +29 -0
- package/project/.sdk/tm/java/core/SdkClient.java +4 -2
- package/project/.sdk/tm/java/core/Utility.java +7 -0
- package/project/.sdk/tm/java/feature/AuditFeature.java +6 -0
- package/project/.sdk/tm/java/feature/CostFeature.java +5 -0
- package/project/.sdk/tm/java/feature/DebugFeature.java +25 -14
- package/project/.sdk/tm/java/feature/LogFeature.java +11 -4
- package/project/.sdk/tm/java/feature/ProxyFeature.java +41 -6
- package/project/.sdk/tm/java/feature/SecretsFeature.java +18 -0
- package/project/.sdk/tm/java/feature/TelemetryFeature.java +8 -2
- package/project/.sdk/tm/java/test/FeatureTest.java +2 -2
- package/project/.sdk/tm/java/utility/Clean.java +519 -1
- package/project/.sdk/tm/java/utility/Done.java +1 -1
- package/project/.sdk/tm/java/utility/MakeError.java +5 -1
- package/project/.sdk/tm/java/utility/MakeOptions.java +55 -31
- package/project/.sdk/tm/java/utility/Register.java +4 -0
- package/project/.sdk/tm/js/src/Context.js +5 -1
- package/project/.sdk/tm/js/src/feature/audit/AuditFeature.js +2 -2
- package/project/.sdk/tm/js/src/feature/cost/CostFeature.js +2 -2
- package/project/.sdk/tm/js/src/feature/debug/DebugFeature.js +13 -7
- package/project/.sdk/tm/js/src/feature/log/LogFeature.js +9 -5
- package/project/.sdk/tm/js/src/feature/proxy/ProxyFeature.js +19 -1
- package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +14 -0
- package/project/.sdk/tm/js/src/feature/telemetry/TelemetryFeature.js +4 -2
- package/project/.sdk/tm/js/src/utility/CleanUtility.js +294 -21
- package/project/.sdk/tm/js/src/utility/DoneUtility.js +17 -5
- package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +18 -2
- package/project/.sdk/tm/js/src/utility/MakeOptionsUtility.js +39 -15
- package/project/.sdk/tm/js/src/utility/Utility.js +4 -2
- package/project/.sdk/tm/js/test/feature/harness.js +11 -1
- package/project/.sdk/tm/js/test/feature.test.js +9 -2
- package/project/.sdk/tm/kotlin/core/Context.kt +19 -0
- package/project/.sdk/tm/kotlin/core/SdkClient.kt +9 -2
- package/project/.sdk/tm/kotlin/core/Utility.kt +2 -0
- package/project/.sdk/tm/kotlin/feature/AuditFeature.kt +11 -9
- package/project/.sdk/tm/kotlin/feature/CostFeature.kt +8 -5
- package/project/.sdk/tm/kotlin/feature/DebugFeature.kt +15 -22
- package/project/.sdk/tm/kotlin/feature/LogFeature.kt +8 -4
- package/project/.sdk/tm/kotlin/feature/ProxyFeature.kt +26 -2
- package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +11 -0
- package/project/.sdk/tm/kotlin/feature/TelemetryFeature.kt +4 -2
- package/project/.sdk/tm/kotlin/test/FeatureTest.kt +2 -2
- package/project/.sdk/tm/kotlin/utility/CoreUtil.kt +447 -11
- package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +38 -31
- package/project/.sdk/tm/kotlin/utility/Register.kt +1 -0
- package/project/.sdk/tm/lua/core/context.lua +43 -0
- package/project/.sdk/tm/lua/core/error.lua +36 -1
- package/project/.sdk/tm/lua/core/utility_type.lua +4 -0
- package/project/.sdk/tm/lua/feature/audit_feature.lua +2 -2
- package/project/.sdk/tm/lua/feature/cost_feature.lua +2 -2
- package/project/.sdk/tm/lua/feature/debug_feature.lua +21 -17
- package/project/.sdk/tm/lua/feature/log_feature.lua +2 -1
- package/project/.sdk/tm/lua/feature/proxy_feature.lua +23 -1
- package/project/.sdk/tm/lua/feature/secrets_feature.lua +18 -0
- package/project/.sdk/tm/lua/feature/telemetry_feature.lua +4 -2
- package/project/.sdk/tm/lua/test/feature/secrets/secrets_feature_test.lua +3 -2
- package/project/.sdk/tm/lua/test/feature_test.lua +10 -3
- package/project/.sdk/tm/lua/utility/clean.lua +426 -2
- package/project/.sdk/tm/lua/utility/clean_explain.lua +34 -0
- package/project/.sdk/tm/lua/utility/done.lua +1 -7
- package/project/.sdk/tm/lua/utility/make_error.lua +3 -1
- package/project/.sdk/tm/lua/utility/make_options.lua +76 -30
- package/project/.sdk/tm/lua/utility/register.lua +4 -1
- package/project/.sdk/tm/ocaml/Makefile +5 -1
- package/project/.sdk/tm/ocaml/feature/secrets_feature.ml +12 -1
- package/project/.sdk/tm/ocaml/sdk_features.ml +78 -18
- package/project/.sdk/tm/ocaml/sdk_helpers.ml +27 -0
- package/project/.sdk/tm/ocaml/sdk_runtime.ml +304 -26
- package/project/.sdk/tm/ocaml/sdk_types.ml +1 -0
- package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +3 -1
- package/project/.sdk/tm/ocaml/test/t_feature.ml +2 -2
- package/project/.sdk/tm/perl/core/context.pm +27 -0
- package/project/.sdk/tm/perl/core/error.pm +52 -5
- package/project/.sdk/tm/perl/feature/audit_feature.pm +2 -2
- package/project/.sdk/tm/perl/feature/cost_feature.pm +2 -2
- package/project/.sdk/tm/perl/feature/debug_feature.pm +17 -13
- package/project/.sdk/tm/perl/feature/log_feature.pm +3 -1
- package/project/.sdk/tm/perl/feature/proxy_feature.pm +21 -1
- package/project/.sdk/tm/perl/feature/secrets_feature.pm +20 -1
- package/project/.sdk/tm/perl/feature/telemetry_feature.pm +4 -2
- package/project/.sdk/tm/perl/t/feature.t +4 -2
- package/project/.sdk/tm/perl/utility/clean.pm +345 -1
- package/project/.sdk/tm/perl/utility/done.pm +24 -6
- package/project/.sdk/tm/perl/utility/make_error.pm +17 -4
- package/project/.sdk/tm/perl/utility/make_options.pm +33 -14
- package/project/.sdk/tm/php/core/Context.php +24 -1
- package/project/.sdk/tm/php/core/Error.php +34 -3
- package/project/.sdk/tm/php/core/UtilityType.php +4 -0
- package/project/.sdk/tm/php/feature/AuditFeature.php +2 -2
- package/project/.sdk/tm/php/feature/CostFeature.php +2 -2
- package/project/.sdk/tm/php/feature/DebugFeature.php +18 -9
- package/project/.sdk/tm/php/feature/LogFeature.php +5 -2
- package/project/.sdk/tm/php/feature/ProxyFeature.php +20 -1
- package/project/.sdk/tm/php/feature/SecretsFeature.php +18 -0
- package/project/.sdk/tm/php/feature/TelemetryFeature.php +4 -2
- package/project/.sdk/tm/php/test/FeatureTest.php +2 -2
- package/project/.sdk/tm/php/utility/Clean.php +438 -2
- package/project/.sdk/tm/php/utility/Done.php +14 -7
- package/project/.sdk/tm/php/utility/MakeError.php +9 -7
- package/project/.sdk/tm/php/utility/MakeOptions.php +62 -38
- package/project/.sdk/tm/php/utility/Register.php +2 -0
- package/project/.sdk/tm/py/pkg/core/context.py +17 -0
- package/project/.sdk/tm/py/pkg/core/error.py +42 -1
- package/project/.sdk/tm/py/pkg/core/utility_type.py +4 -0
- package/project/.sdk/tm/py/pkg/feature/audit_feature.py +2 -2
- package/project/.sdk/tm/py/pkg/feature/cost_feature.py +2 -2
- package/project/.sdk/tm/py/pkg/feature/debug_feature.py +17 -12
- package/project/.sdk/tm/py/pkg/feature/log_feature.py +2 -1
- package/project/.sdk/tm/py/pkg/feature/proxy_feature.py +18 -1
- package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +12 -0
- package/project/.sdk/tm/py/pkg/feature/telemetry_feature.py +4 -2
- package/project/.sdk/tm/py/pkg/utility/clean.py +311 -1
- package/project/.sdk/tm/py/pkg/utility/done.py +18 -5
- package/project/.sdk/tm/py/pkg/utility/make_error.py +9 -6
- package/project/.sdk/tm/py/pkg/utility/make_options.py +64 -25
- package/project/.sdk/tm/py/pkg/utility/make_response.py +19 -13
- package/project/.sdk/tm/py/pkg/utility/register.py +4 -2
- package/project/.sdk/tm/py/test/feature_harness.py +4 -0
- package/project/.sdk/tm/py/test/test_feature.py +2 -2
- package/project/.sdk/tm/py/test/test_primary_utility.py +1 -0
- package/project/.sdk/tm/rb/core/context.rb +28 -0
- package/project/.sdk/tm/rb/core/error.rb +30 -0
- package/project/.sdk/tm/rb/core/utility_type.rb +1 -1
- package/project/.sdk/tm/rb/feature/audit_feature.rb +2 -2
- package/project/.sdk/tm/rb/feature/cost_feature.rb +2 -2
- package/project/.sdk/tm/rb/feature/debug_feature.rb +15 -12
- package/project/.sdk/tm/rb/feature/log_feature.rb +3 -1
- package/project/.sdk/tm/rb/feature/proxy_feature.rb +25 -1
- package/project/.sdk/tm/rb/feature/secrets_feature.rb +17 -0
- package/project/.sdk/tm/rb/feature/telemetry_feature.rb +4 -2
- package/project/.sdk/tm/rb/test/feature_test.rb +4 -2
- package/project/.sdk/tm/rb/utility/clean.rb +312 -1
- package/project/.sdk/tm/rb/utility/done.rb +15 -5
- package/project/.sdk/tm/rb/utility/make_error.rb +13 -4
- package/project/.sdk/tm/rb/utility/make_options.rb +31 -12
- package/project/.sdk/tm/rb/utility/register.rb +2 -0
- package/project/.sdk/tm/rust/core/context.rs +55 -0
- package/project/.sdk/tm/rust/core/utility_type.rs +17 -0
- package/project/.sdk/tm/rust/feature/audit.rs +2 -0
- package/project/.sdk/tm/rust/feature/cost.rs +3 -2
- package/project/.sdk/tm/rust/feature/debug.rs +16 -16
- package/project/.sdk/tm/rust/feature/log.rs +42 -7
- package/project/.sdk/tm/rust/feature/proxy.rs +48 -2
- package/project/.sdk/tm/rust/feature/secrets.rs +12 -0
- package/project/.sdk/tm/rust/feature/telemetry.rs +2 -0
- package/project/.sdk/tm/rust/tests/feature_test.rs +2 -2
- package/project/.sdk/tm/rust/utility/clean.rs +446 -5
- package/project/.sdk/tm/rust/utility/done.rs +22 -12
- package/project/.sdk/tm/rust/utility/make_error.rs +4 -1
- package/project/.sdk/tm/rust/utility/make_options.rs +73 -19
- package/project/.sdk/tm/scala/Makefile +3 -1
- package/project/.sdk/tm/scala/core/Context.scala +16 -0
- package/project/.sdk/tm/scala/core/SdkClient.scala +14 -4
- package/project/.sdk/tm/scala/core/SdkError.scala +28 -0
- package/project/.sdk/tm/scala/core/Types.scala +3 -0
- package/project/.sdk/tm/scala/core/Utility.scala +2 -0
- package/project/.sdk/tm/scala/feature/AuditFeature.scala +16 -10
- package/project/.sdk/tm/scala/feature/CostFeature.scala +10 -5
- package/project/.sdk/tm/scala/feature/DebugFeature.scala +24 -21
- package/project/.sdk/tm/scala/feature/LogFeature.scala +9 -4
- package/project/.sdk/tm/scala/feature/ProxyFeature.scala +23 -2
- package/project/.sdk/tm/scala/feature/SecretsFeature.scala +14 -0
- package/project/.sdk/tm/scala/feature/TelemetryFeature.scala +9 -2
- package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +2 -2
- package/project/.sdk/tm/scala/utility/Make.scala +63 -20
- package/project/.sdk/tm/scala/utility/Misc.scala +358 -5
- package/project/.sdk/tm/scala/utility/Register.scala +1 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Context.swift +29 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Utility.swift +2 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/AuditFeature.swift +10 -9
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/CostFeature.swift +7 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/DebugFeature.swift +19 -15
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/FeatureOptions.swift +16 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/LogFeature.swift +4 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ProxyFeature.swift +20 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/SecretsFeature.swift +13 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TelemetryFeature.swift +4 -2
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeError.swift +15 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +58 -19
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Register.swift +1 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/ResultUtil.swift +391 -4
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/FeatureTest.swift +2 -2
- package/project/.sdk/tm/ts/src/Context.ts +5 -1
- package/project/.sdk/tm/ts/src/feature/audit/AuditFeature.ts +2 -2
- package/project/.sdk/tm/ts/src/feature/cost/CostFeature.ts +2 -2
- package/project/.sdk/tm/ts/src/feature/debug/DebugFeature.ts +13 -7
- package/project/.sdk/tm/ts/src/feature/log/LogFeature.ts +9 -5
- package/project/.sdk/tm/ts/src/feature/proxy/ProxyFeature.ts +19 -1
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +12 -0
- package/project/.sdk/tm/ts/src/feature/telemetry/TelemetryFeature.ts +4 -2
- package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +287 -9
- package/project/.sdk/tm/ts/src/utility/DoneUtility.ts +18 -5
- package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +18 -8
- package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +38 -16
- package/project/.sdk/tm/ts/src/utility/Utility.ts +4 -2
- package/project/.sdk/tm/ts/test/feature/harness.ts +11 -1
- package/project/.sdk/tm/ts/test/feature.test.ts +9 -2
- package/project/.sdk/tm/zig/core/context.zig +34 -0
- package/project/.sdk/tm/zig/core/error.zig +22 -1
- package/project/.sdk/tm/zig/core/utility.zig +403 -39
- package/project/.sdk/tm/zig/feature/audit.zig +4 -2
- package/project/.sdk/tm/zig/feature/cost.zig +3 -2
- package/project/.sdk/tm/zig/feature/debug.zig +20 -25
- package/project/.sdk/tm/zig/feature/log.zig +3 -1
- package/project/.sdk/tm/zig/feature/proxy.zig +47 -6
- package/project/.sdk/tm/zig/feature/secrets.zig +7 -0
- package/project/.sdk/tm/zig/feature/telemetry.zig +4 -2
- package/project/.sdk/tm/zig/test/feature_test.zig +2 -2
- package/project/sdkgen-package.json +1 -1
- package/src/action/copies.ts +219 -0
- package/src/action/doctor.ts +247 -21
- package/src/action/edition.ts +10 -2
- package/src/action/feature.ts +11 -2
- package/src/action/package.ts +31 -10
- package/src/action/remove.ts +4 -0
- package/src/action/resolve.ts +16 -3
- package/src/action/target.ts +10 -2
- package/src/helpers/naming.ts +1 -1
- package/src/sdkgen.ts +45 -5
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
-- ProjectName SDK error
|
|
2
2
|
|
|
3
|
+
local json = require("dkjson")
|
|
4
|
+
|
|
3
5
|
local ProjectNameError = {}
|
|
4
6
|
ProjectNameError.__index = ProjectNameError
|
|
5
7
|
|
|
8
|
+
-- Reachable for a debugger, absent from the table itself: the context holds
|
|
9
|
+
-- the live spec and options, and an error is what gets dumped or encoded.
|
|
10
|
+
local CONTEXT = setmetatable({}, { __mode = "k" })
|
|
11
|
+
|
|
6
12
|
|
|
7
13
|
function ProjectNameError.new(code, msg, ctx)
|
|
8
14
|
local self = setmetatable({}, ProjectNameError)
|
|
@@ -10,21 +16,50 @@ function ProjectNameError.new(code, msg, ctx)
|
|
|
10
16
|
self.sdk = "ProjectName"
|
|
11
17
|
self.code = code or ""
|
|
12
18
|
self.msg = msg or ""
|
|
13
|
-
self.ctx = ctx
|
|
14
19
|
self.result = nil
|
|
15
20
|
self.spec = nil
|
|
21
|
+
CONTEXT[self] = ctx
|
|
16
22
|
return self
|
|
17
23
|
end
|
|
18
24
|
|
|
19
25
|
|
|
26
|
+
function ProjectNameError:context()
|
|
27
|
+
return CONTEXT[self]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
|
|
20
31
|
function ProjectNameError:error()
|
|
21
32
|
return self.msg
|
|
22
33
|
end
|
|
23
34
|
|
|
24
35
|
|
|
36
|
+
-- What make_error attached is already cleaned; the context is not part of
|
|
37
|
+
-- the record.
|
|
38
|
+
function ProjectNameError:to_table()
|
|
39
|
+
return {
|
|
40
|
+
sdk = self.sdk,
|
|
41
|
+
code = self.code,
|
|
42
|
+
msg = self.msg,
|
|
43
|
+
status = self.status,
|
|
44
|
+
result = self.result,
|
|
45
|
+
spec = self.spec,
|
|
46
|
+
}
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
function ProjectNameError:to_json()
|
|
51
|
+
return json.encode(self:to_table())
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
|
|
25
55
|
function ProjectNameError:__tostring()
|
|
26
56
|
return self.msg
|
|
27
57
|
end
|
|
28
58
|
|
|
29
59
|
|
|
60
|
+
function ProjectNameError.__tojson(self)
|
|
61
|
+
return self:to_json()
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
|
|
30
65
|
return ProjectNameError
|
|
@@ -10,6 +10,8 @@ function Utility.new()
|
|
|
10
10
|
|
|
11
11
|
-- All utility functions are set by the register module
|
|
12
12
|
self.clean = nil
|
|
13
|
+
self.clean_add = nil
|
|
14
|
+
self.clean_explain = nil
|
|
13
15
|
self.done = nil
|
|
14
16
|
self.make_error = nil
|
|
15
17
|
self.feature_add = nil
|
|
@@ -51,6 +53,8 @@ end
|
|
|
51
53
|
function Utility.copy(src)
|
|
52
54
|
local u = Utility.new()
|
|
53
55
|
u.clean = src.clean
|
|
56
|
+
u.clean_add = src.clean_add
|
|
57
|
+
u.clean_explain = src.clean_explain
|
|
54
58
|
u.done = src.done
|
|
55
59
|
u.make_error = src.make_error
|
|
56
60
|
u.feature_add = src.feature_add
|
|
@@ -94,7 +94,7 @@ function AuditFeature:_emit(ctx, outcome)
|
|
|
94
94
|
actor = "anonymous"
|
|
95
95
|
end
|
|
96
96
|
|
|
97
|
-
local record = {
|
|
97
|
+
local record = ctx.utility.clean(ctx, {
|
|
98
98
|
seq = self.seq,
|
|
99
99
|
ts = self:_now(),
|
|
100
100
|
actor = actor,
|
|
@@ -103,7 +103,7 @@ function AuditFeature:_emit(ctx, outcome)
|
|
|
103
103
|
outcome = outcome,
|
|
104
104
|
status = ctx.result ~= nil and ctx.result.status or nil,
|
|
105
105
|
correlationId = ctx.id,
|
|
106
|
-
}
|
|
106
|
+
})
|
|
107
107
|
|
|
108
108
|
local client = self.client
|
|
109
109
|
local recs = client._audit.records
|
|
@@ -301,7 +301,7 @@ function CostFeature:_commit(ctx, pending, entity, opname)
|
|
|
301
301
|
self:_bump(cost.actors, actor, amount)
|
|
302
302
|
|
|
303
303
|
self.seq = self.seq + 1
|
|
304
|
-
local record = {
|
|
304
|
+
local record = ctx.utility.clean(ctx, {
|
|
305
305
|
seq = self.seq,
|
|
306
306
|
entity = entity,
|
|
307
307
|
op = opname,
|
|
@@ -310,7 +310,7 @@ function CostFeature:_commit(ctx, pending, entity, opname)
|
|
|
310
310
|
currency = cost.currency,
|
|
311
311
|
source = source,
|
|
312
312
|
attempts = pending.attempts,
|
|
313
|
-
}
|
|
313
|
+
})
|
|
314
314
|
cost.last = record
|
|
315
315
|
|
|
316
316
|
local sink = self.options["sink"]
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
--
|
|
3
3
|
-- Request/response capture for debugging. Records a bounded ring buffer
|
|
4
4
|
-- of per-operation traces — op, method, URL, redacted headers, response
|
|
5
|
-
-- status and timing — on `client._debug.entries`.
|
|
6
|
-
-- (
|
|
7
|
-
-- names
|
|
8
|
-
-- (camelCase `onEntry` also accepted, matching the
|
|
9
|
-
-- receives each finished entry. `max` caps the buffer
|
|
10
|
-
-- clock is injectable (`now`) for deterministic tests.
|
|
5
|
+
-- status and timing — on `client._debug.entries`. Every entry passes
|
|
6
|
+
-- through the SDK's clean rules (clean.keys and every registered secret);
|
|
7
|
+
-- the `redact` option ADDS header names on top of them. An optional
|
|
8
|
+
-- `on_entry` callback (camelCase `onEntry` also accepted, matching the
|
|
9
|
+
-- other targets) receives each finished entry. `max` caps the buffer
|
|
10
|
+
-- (default 100). The clock is injectable (`now`) for deterministic tests.
|
|
11
11
|
|
|
12
12
|
local BaseFeature = require("feature.base_feature")
|
|
13
13
|
|
|
@@ -16,12 +16,6 @@ DebugFeature.__index = DebugFeature
|
|
|
16
16
|
setmetatable(DebugFeature, { __index = BaseFeature })
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
local REDACT = {
|
|
20
|
-
"authorization", "cookie", "set-cookie", "api-key", "apikey",
|
|
21
|
-
"x-api-key", "idempotency-key",
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
19
|
function DebugFeature.new()
|
|
26
20
|
local self = setmetatable(BaseFeature.new(), DebugFeature)
|
|
27
21
|
self.version = "0.0.1"
|
|
@@ -76,7 +70,7 @@ function DebugFeature:PreRequest(ctx)
|
|
|
76
70
|
((ctx.op ~= nil and ctx.op.name) or "_"),
|
|
77
71
|
method = method,
|
|
78
72
|
url = url,
|
|
79
|
-
headers = self:_redact(headers),
|
|
73
|
+
headers = self:_redact(ctx, headers),
|
|
80
74
|
start = self:_now(),
|
|
81
75
|
}
|
|
82
76
|
self.entries[ctx] = entry
|
|
@@ -140,6 +134,11 @@ function DebugFeature:_finish(ctx, ok)
|
|
|
140
134
|
entry.status = ctx.result.status
|
|
141
135
|
end
|
|
142
136
|
|
|
137
|
+
-- The whole entry leaves through the buffer and the callback: the url
|
|
138
|
+
-- and the error message can carry a query credential the header mask
|
|
139
|
+
-- above never saw.
|
|
140
|
+
entry = ctx.utility.clean(ctx, entry)
|
|
141
|
+
|
|
143
142
|
local client = self.client
|
|
144
143
|
local buf = client._debug.entries
|
|
145
144
|
table.insert(buf, entry)
|
|
@@ -155,11 +154,16 @@ function DebugFeature:_finish(ctx, ok)
|
|
|
155
154
|
end
|
|
156
155
|
|
|
157
156
|
|
|
158
|
-
|
|
157
|
+
-- The core clean rules apply (clean.keys, every registered value); the
|
|
158
|
+
-- feature's own `redact` list ADDS header names on top of them.
|
|
159
|
+
function DebugFeature:_redact(ctx, headers)
|
|
159
160
|
if headers == nil then
|
|
160
161
|
return {}
|
|
161
162
|
end
|
|
162
|
-
local patterns =
|
|
163
|
+
local patterns = {}
|
|
164
|
+
for _, p in ipairs(self.options["redact"] or {}) do
|
|
165
|
+
patterns[#patterns + 1] = string.lower(tostring(p))
|
|
166
|
+
end
|
|
163
167
|
local out = {}
|
|
164
168
|
for k, v in pairs(headers) do
|
|
165
169
|
local masked = false
|
|
@@ -173,12 +177,12 @@ function DebugFeature:_redact(headers)
|
|
|
173
177
|
end
|
|
174
178
|
end
|
|
175
179
|
if masked then
|
|
176
|
-
out[k] = "
|
|
180
|
+
out[k] = "[redacted]"
|
|
177
181
|
else
|
|
178
182
|
out[k] = v
|
|
179
183
|
end
|
|
180
184
|
end
|
|
181
|
-
return out
|
|
185
|
+
return ctx.utility.clean(ctx, out)
|
|
182
186
|
end
|
|
183
187
|
|
|
184
188
|
|
|
@@ -55,7 +55,8 @@ function LogFeature:_loghook(hook, ctx, level)
|
|
|
55
55
|
opname = ctx.op.name
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
-- A log line leaves the pipeline, so it is cleaned like every record.
|
|
59
|
+
local msg = ctx.utility.clean(ctx, "hook=" .. hook .. " op=" .. opname)
|
|
59
60
|
|
|
60
61
|
local log_fn = self.logger[level]
|
|
61
62
|
if type(log_fn) == "function" then
|
|
@@ -27,6 +27,7 @@ function ProxyFeature.new()
|
|
|
27
27
|
self.options = nil
|
|
28
28
|
self.url = nil
|
|
29
29
|
self.no_proxy = {}
|
|
30
|
+
self._ctx = nil
|
|
30
31
|
return self
|
|
31
32
|
end
|
|
32
33
|
|
|
@@ -64,6 +65,22 @@ function ProxyFeature:init(ctx, options)
|
|
|
64
65
|
end
|
|
65
66
|
|
|
66
67
|
self.url = url
|
|
68
|
+
self._ctx = ctx
|
|
69
|
+
|
|
70
|
+
-- A proxy URL may carry credentials as userinfo, from the option or the
|
|
71
|
+
-- environment, and neither is under a sensitive key name.
|
|
72
|
+
if type(url) == "string" then
|
|
73
|
+
local userinfo = string.match(url, "^%a[%w+.-]*://([^@/]+)@")
|
|
74
|
+
if userinfo ~= nil then
|
|
75
|
+
for part in string.gmatch(userinfo, "[^:]+") do
|
|
76
|
+
ctx.utility.clean_add(ctx, part)
|
|
77
|
+
ctx.utility.clean_add(ctx, (string.gsub(part, "%%(%x%x)", function(hex)
|
|
78
|
+
return string.char(tonumber(hex, 16))
|
|
79
|
+
end)))
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
67
84
|
self.no_proxy = {}
|
|
68
85
|
if type(no_proxy) == "string" then
|
|
69
86
|
for part in string.gmatch(no_proxy, "[^,]+") do
|
|
@@ -138,7 +155,12 @@ end
|
|
|
138
155
|
function ProxyFeature:_track(fullurl)
|
|
139
156
|
local client = self.client
|
|
140
157
|
if client._proxy == nil then
|
|
141
|
-
|
|
158
|
+
local ctx = self._ctx
|
|
159
|
+
local url = self.url
|
|
160
|
+
if ctx ~= nil and type(url) == "string" then
|
|
161
|
+
url = ctx.utility.clean(ctx, url)
|
|
162
|
+
end
|
|
163
|
+
client._proxy = { routed = 0, url = url }
|
|
142
164
|
end
|
|
143
165
|
client._proxy.routed = client._proxy.routed + 1
|
|
144
166
|
end
|
|
@@ -153,16 +153,30 @@ function SecretsFeature.new()
|
|
|
153
153
|
self._resolved = false
|
|
154
154
|
self._initerr = nil
|
|
155
155
|
|
|
156
|
+
-- The context this feature was initialised against: where clean_add is.
|
|
157
|
+
self._rootctx = nil
|
|
158
|
+
|
|
156
159
|
return self
|
|
157
160
|
end
|
|
158
161
|
|
|
159
162
|
|
|
163
|
+
-- Every value this feature resolves or buys is a secret the SDK handles,
|
|
164
|
+
-- and none arrives under an option key the intake registration saw.
|
|
165
|
+
function SecretsFeature:_register(value)
|
|
166
|
+
local ctx = self._rootctx
|
|
167
|
+
if ctx ~= nil and ctx.utility ~= nil and type(ctx.utility.clean_add) == "function" then
|
|
168
|
+
ctx.utility.clean_add(ctx, value)
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
|
|
160
173
|
-- init is sync by feature contract: build the chain, never look anything
|
|
161
174
|
-- up here.
|
|
162
175
|
function SecretsFeature:init(ctx, options)
|
|
163
176
|
self.client = ctx.client
|
|
164
177
|
self.options = options or {}
|
|
165
178
|
self._liveopts = ctx.options or {}
|
|
179
|
+
self._rootctx = ctx
|
|
166
180
|
self.active = (self.options["active"] == true)
|
|
167
181
|
|
|
168
182
|
if not self.active then
|
|
@@ -227,6 +241,7 @@ function SecretsFeature:init(ctx, options)
|
|
|
227
241
|
local specs = {}
|
|
228
242
|
|
|
229
243
|
if type(explicit) == "string" and explicit ~= "" then
|
|
244
|
+
self:_register(explicit)
|
|
230
245
|
local ok, key = pcall(sekreto.envkey, self._secretname, "")
|
|
231
246
|
if ok then
|
|
232
247
|
specs[#specs + 1] = {
|
|
@@ -358,6 +373,7 @@ function SecretsFeature:_resolve_once()
|
|
|
358
373
|
if not ok then
|
|
359
374
|
return found
|
|
360
375
|
end
|
|
376
|
+
self:_register(found)
|
|
361
377
|
|
|
362
378
|
if self._exchange == nil then
|
|
363
379
|
-- A hit is the credential. An UNCACHED miss after an earlier hit is a
|
|
@@ -683,6 +699,8 @@ function SecretsFeature:_buy_once()
|
|
|
683
699
|
"secrets: token exchange returned no '" .. x.response .. "' field from " .. url)
|
|
684
700
|
end
|
|
685
701
|
|
|
702
|
+
self:_register(token)
|
|
703
|
+
|
|
686
704
|
return token, nil
|
|
687
705
|
end
|
|
688
706
|
|
|
@@ -123,13 +123,15 @@ function TelemetryFeature:_close(ctx, ok)
|
|
|
123
123
|
span.durationMs = math.max(0, span["end"] - span.start)
|
|
124
124
|
span.ok = ok
|
|
125
125
|
|
|
126
|
+
local out = ctx.utility.clean(ctx, span)
|
|
127
|
+
|
|
126
128
|
local client = self.client
|
|
127
129
|
client._telemetry.active = client._telemetry.active - 1
|
|
128
|
-
table.insert(client._telemetry.spans,
|
|
130
|
+
table.insert(client._telemetry.spans, out)
|
|
129
131
|
|
|
130
132
|
local exporter = self.options["exporter"]
|
|
131
133
|
if type(exporter) == "function" then
|
|
132
|
-
pcall(exporter,
|
|
134
|
+
pcall(exporter, out)
|
|
133
135
|
end
|
|
134
136
|
end
|
|
135
137
|
|
|
@@ -195,9 +195,10 @@ end
|
|
|
195
195
|
|
|
196
196
|
-- The entity accessors this SDK generated, found from the client's own
|
|
197
197
|
-- config: this file is a TEMPLATE and no project's entity names are known
|
|
198
|
-
-- here. Accessors are PascalCase methods on the SDK class
|
|
198
|
+
-- here. Accessors are PascalCase methods on the SDK class, which is the
|
|
199
|
+
-- client's metatable: its __index is a function that hides the options.
|
|
199
200
|
local function entity_accessors(client)
|
|
200
|
-
local class = getmetatable(client)
|
|
201
|
+
local class = getmetatable(client)
|
|
201
202
|
local out = {}
|
|
202
203
|
for name, _ in pairs(client:options_map().entity or {}) do
|
|
203
204
|
local flat = name:gsub("_", ""):lower()
|
|
@@ -111,7 +111,14 @@ local function make_client(spec)
|
|
|
111
111
|
local base = spec.base or "http://api.test"
|
|
112
112
|
local server = spec.server or default_server
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
-- Every feature cleans what it emits, so the fake utility carries the real
|
|
115
|
+
-- clean seam beside the transport.
|
|
116
|
+
local cleanmod = require("utility.clean")
|
|
117
|
+
local utility = {
|
|
118
|
+
fetcher = server,
|
|
119
|
+
clean = cleanmod.clean,
|
|
120
|
+
clean_add = cleanmod.clean_add,
|
|
121
|
+
}
|
|
115
122
|
|
|
116
123
|
local client = {
|
|
117
124
|
mode = "test",
|
|
@@ -922,7 +929,7 @@ describe("feature", function()
|
|
|
922
929
|
local entries = h.client._debug.entries
|
|
923
930
|
assert.are.equal(1, #entries) -- ring buffer capped at max
|
|
924
931
|
assert.are.equal(2, #seen)
|
|
925
|
-
assert.are.equal("
|
|
932
|
+
assert.are.equal("[redacted]", seen[1].headers.authorization)
|
|
926
933
|
end)
|
|
927
934
|
|
|
928
935
|
if has_feature("netsim") then it("captures failures", function()
|
|
@@ -940,7 +947,7 @@ describe("feature", function()
|
|
|
940
947
|
} })
|
|
941
948
|
h.op({ op = "load", headers = { ["x-secret"] = "hide", ["x-ok"] = "show" } })
|
|
942
949
|
local e = h.client._debug.entries[1]
|
|
943
|
-
assert.are.equal("
|
|
950
|
+
assert.are.equal("[redacted]", e.headers["x-secret"])
|
|
944
951
|
assert.are.equal("show", e.headers["x-ok"])
|
|
945
952
|
end)
|
|
946
953
|
|