@voxgig/sdkgen-langpack 0.0.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/.sdk/model/target/dart.aon +63 -0
- package/.sdk/model/target/haskell.aon +72 -0
- package/.sdk/model/target/lean.aon +91 -0
- package/.sdk/src/cmp/dart/Config_dart.ts +248 -0
- package/.sdk/src/cmp/dart/EntityBase_dart.ts +34 -0
- package/.sdk/src/cmp/dart/EntityOperation_dart.ts +43 -0
- package/.sdk/src/cmp/dart/EntityTypes_dart.ts +207 -0
- package/.sdk/src/cmp/dart/Entity_dart.ts +87 -0
- package/.sdk/src/cmp/dart/Gitignore_dart.ts +34 -0
- package/.sdk/src/cmp/dart/MainEntity_dart.ts +33 -0
- package/.sdk/src/cmp/dart/Main_dart.ts +178 -0
- package/.sdk/src/cmp/dart/Package_dart.ts +82 -0
- package/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +177 -0
- package/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +238 -0
- package/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +53 -0
- package/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +152 -0
- package/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +59 -0
- package/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +65 -0
- package/.sdk/src/cmp/dart/ReadmeModel_dart.ts +151 -0
- package/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +63 -0
- package/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +225 -0
- package/.sdk/src/cmp/dart/ReadmeRef_dart.ts +397 -0
- package/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +24 -0
- package/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +106 -0
- package/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +78 -0
- package/.sdk/src/cmp/dart/SdkError_dart.ts +42 -0
- package/.sdk/src/cmp/dart/TestDirect_dart.ts +516 -0
- package/.sdk/src/cmp/dart/TestEntity_dart.ts +628 -0
- package/.sdk/src/cmp/dart/Test_dart.ts +138 -0
- package/.sdk/src/cmp/dart/fragment/Config.data.fragment.dart +98 -0
- package/.sdk/src/cmp/dart/fragment/Config.fragment.dart +70 -0
- package/.sdk/src/cmp/dart/fragment/Direct.test.fragment.dart +25 -0
- package/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +29 -0
- package/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +28 -0
- package/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +302 -0
- package/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +98 -0
- package/.sdk/src/cmp/dart/fragment/EntityListOp.fragment.dart +90 -0
- package/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +102 -0
- package/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +108 -0
- package/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +102 -0
- package/.sdk/src/cmp/dart/fragment/Main.fragment.dart +339 -0
- package/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +26 -0
- package/.sdk/src/cmp/dart/tsconfig.json +15 -0
- package/.sdk/src/cmp/dart/utility_dart.ts +155 -0
- package/.sdk/src/cmp/haskell/Config_haskell.ts +98 -0
- package/.sdk/src/cmp/haskell/Entity_haskell.ts +13 -0
- package/.sdk/src/cmp/haskell/Gitignore_haskell.ts +27 -0
- package/.sdk/src/cmp/haskell/Main_haskell.ts +123 -0
- package/.sdk/src/cmp/haskell/Package_haskell.ts +60 -0
- package/.sdk/src/cmp/haskell/ReadmeEntity_haskell.ts +186 -0
- package/.sdk/src/cmp/haskell/ReadmeExamplesTest_haskell.ts +135 -0
- package/.sdk/src/cmp/haskell/ReadmeExplanation_haskell.ts +48 -0
- package/.sdk/src/cmp/haskell/ReadmeHowto_haskell.ts +168 -0
- package/.sdk/src/cmp/haskell/ReadmeInstall_haskell.ts +51 -0
- package/.sdk/src/cmp/haskell/ReadmeIntro_haskell.ts +67 -0
- package/.sdk/src/cmp/haskell/ReadmeModel_haskell.ts +162 -0
- package/.sdk/src/cmp/haskell/ReadmeOptions_haskell.ts +74 -0
- package/.sdk/src/cmp/haskell/ReadmeQuick_haskell.ts +241 -0
- package/.sdk/src/cmp/haskell/ReadmeRef_haskell.ts +408 -0
- package/.sdk/src/cmp/haskell/ReadmeTopHowto_haskell.ts +31 -0
- package/.sdk/src/cmp/haskell/ReadmeTopQuick_haskell.ts +104 -0
- package/.sdk/src/cmp/haskell/ReadmeTopTest_haskell.ts +80 -0
- package/.sdk/src/cmp/haskell/Test_haskell.ts +297 -0
- package/.sdk/src/cmp/haskell/tsconfig.json +15 -0
- package/.sdk/src/cmp/haskell/utility_haskell.ts +166 -0
- package/.sdk/src/cmp/lean/Config_lean.ts +93 -0
- package/.sdk/src/cmp/lean/Entity_lean.ts +9 -0
- package/.sdk/src/cmp/lean/Gitignore_lean.ts +18 -0
- package/.sdk/src/cmp/lean/Main_lean.ts +120 -0
- package/.sdk/src/cmp/lean/Package_lean.ts +93 -0
- package/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +29 -0
- package/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +19 -0
- package/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +25 -0
- package/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +39 -0
- package/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +25 -0
- package/.sdk/src/cmp/lean/ReadmeModel_lean.ts +24 -0
- package/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +22 -0
- package/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +50 -0
- package/.sdk/src/cmp/lean/ReadmeRef_lean.ts +40 -0
- package/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +16 -0
- package/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +23 -0
- package/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +19 -0
- package/.sdk/src/cmp/lean/Test_lean.ts +261 -0
- package/.sdk/src/cmp/lean/utility_lean.ts +129 -0
- package/.sdk/tm/dart/LICENSE +22 -0
- package/.sdk/tm/dart/Makefile +50 -0
- package/.sdk/tm/dart/lib/Context.dart +150 -0
- package/.sdk/tm/dart/lib/Control.dart +15 -0
- package/.sdk/tm/dart/lib/Operation.dart +31 -0
- package/.sdk/tm/dart/lib/Point.dart +51 -0
- package/.sdk/tm/dart/lib/Response.dart +32 -0
- package/.sdk/tm/dart/lib/Result.dart +39 -0
- package/.sdk/tm/dart/lib/Spec.dart +49 -0
- package/.sdk/tm/dart/lib/feature/audit/AuditFeature.dart +103 -0
- package/.sdk/tm/dart/lib/feature/base/BaseFeature.dart +76 -0
- package/.sdk/tm/dart/lib/feature/cache/CacheFeature.dart +152 -0
- package/.sdk/tm/dart/lib/feature/clienttrack/ClienttrackFeature.dart +104 -0
- package/.sdk/tm/dart/lib/feature/cost/CostFeature.dart +446 -0
- package/.sdk/tm/dart/lib/feature/debug/DebugFeature.dart +153 -0
- package/.sdk/tm/dart/lib/feature/idempotency/IdempotencyFeature.dart +92 -0
- package/.sdk/tm/dart/lib/feature/log/LogFeature.dart +85 -0
- package/.sdk/tm/dart/lib/feature/metrics/MetricsFeature.dart +103 -0
- package/.sdk/tm/dart/lib/feature/netsim/NetsimFeature.dart +186 -0
- package/.sdk/tm/dart/lib/feature/paging/PagingFeature.dart +240 -0
- package/.sdk/tm/dart/lib/feature/proxy/ProxyFeature.dart +118 -0
- package/.sdk/tm/dart/lib/feature/ratelimit/RatelimitFeature.dart +103 -0
- package/.sdk/tm/dart/lib/feature/rbac/RbacFeature.dart +121 -0
- package/.sdk/tm/dart/lib/feature/retry/RetryFeature.dart +155 -0
- package/.sdk/tm/dart/lib/feature/secrets/SecretsFeature.dart +649 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/capability.dart +105 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/catalog.dart +46 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/config.dart +297 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/depend.dart +198 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/env.dart +144 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/export.dart +58 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/graph.dart +160 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/host.dart +1067 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/order.dart +172 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/plugin.dart +23 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/point.dart +117 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/ref.dart +105 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/resolve.dart +58 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/types.dart +201 -0
- package/.sdk/tm/dart/lib/feature/secrets/plugin/version.dart +116 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/aws.dart +285 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/azuresecrets.dart +178 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/boru.dart +145 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/crypto.dart +194 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/doppler.dart +101 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/gcpsecrets.dart +143 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/hashicorp.dart +190 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/httpjson.dart +363 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/infisical.dart +149 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/onepassword.dart +146 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/secretspec.dart +116 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/plugins/sigv4.dart +237 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/addr.dart +138 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/json.dart +276 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/provider.dart +31 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/providers.dart +243 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/sekreto.dart +730 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/spec.dart +200 -0
- package/.sdk/tm/dart/lib/feature/secrets/sekreto/src/support.dart +217 -0
- package/.sdk/tm/dart/lib/feature/streaming/StreamingFeature.dart +97 -0
- package/.sdk/tm/dart/lib/feature/telemetry/TelemetryFeature.dart +136 -0
- package/.sdk/tm/dart/lib/feature/test/TestFeature.dart +328 -0
- package/.sdk/tm/dart/lib/feature/timeout/TimeoutFeature.dart +104 -0
- package/.sdk/tm/dart/lib/utility/CleanUtility.dart +12 -0
- package/.sdk/tm/dart/lib/utility/DoneUtility.dart +18 -0
- package/.sdk/tm/dart/lib/utility/ErrUtility.dart +46 -0
- package/.sdk/tm/dart/lib/utility/FeatureAddUtility.dart +35 -0
- package/.sdk/tm/dart/lib/utility/FeatureHookUtility.dart +20 -0
- package/.sdk/tm/dart/lib/utility/FeatureInitUtility.dart +9 -0
- package/.sdk/tm/dart/lib/utility/FetcherUtility.dart +104 -0
- package/.sdk/tm/dart/lib/utility/GraphqlUtility.dart +162 -0
- package/.sdk/tm/dart/lib/utility/MakeContextUtility.dart +6 -0
- package/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +71 -0
- package/.sdk/tm/dart/lib/utility/MakeFetchDefUtility.dart +42 -0
- package/.sdk/tm/dart/lib/utility/MakeOptionsUtility.dart +233 -0
- package/.sdk/tm/dart/lib/utility/MakePointUtility.dart +130 -0
- package/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +66 -0
- package/.sdk/tm/dart/lib/utility/MakeResponseUtility.dart +59 -0
- package/.sdk/tm/dart/lib/utility/MakeResultUtility.dart +49 -0
- package/.sdk/tm/dart/lib/utility/MakeSpecUtility.dart +77 -0
- package/.sdk/tm/dart/lib/utility/MakeUrlUtility.dart +51 -0
- package/.sdk/tm/dart/lib/utility/ParamUtility.dart +56 -0
- package/.sdk/tm/dart/lib/utility/PrepareAuthUtility.dart +46 -0
- package/.sdk/tm/dart/lib/utility/PrepareBodyUtility.dart +19 -0
- package/.sdk/tm/dart/lib/utility/PrepareHeadersUtility.dart +11 -0
- package/.sdk/tm/dart/lib/utility/PrepareMethodUtility.dart +30 -0
- package/.sdk/tm/dart/lib/utility/PrepareParamsUtility.dart +23 -0
- package/.sdk/tm/dart/lib/utility/PreparePathUtility.dart +9 -0
- package/.sdk/tm/dart/lib/utility/PrepareQueryUtility.dart +18 -0
- package/.sdk/tm/dart/lib/utility/ResultBasicUtility.dart +29 -0
- package/.sdk/tm/dart/lib/utility/ResultBodyUtility.dart +15 -0
- package/.sdk/tm/dart/lib/utility/ResultHeadersUtility.dart +18 -0
- package/.sdk/tm/dart/lib/utility/StructUtility.dart +127 -0
- package/.sdk/tm/dart/lib/utility/TransformRequestUtility.dart +28 -0
- package/.sdk/tm/dart/lib/utility/TransformResponseUtility.dart +44 -0
- package/.sdk/tm/dart/lib/utility/Utility.dart +239 -0
- package/.sdk/tm/dart/lib/utility/voxgig_struct.dart +2462 -0
- package/.sdk/tm/dart/src/feature/README.md +3 -0
- package/.sdk/tm/dart/src/feature/audit/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/base/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/cache/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/clienttrack/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/cost/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/debug/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/idempotency/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/log/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/metrics/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/netsim/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/paging/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/proxy/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/ratelimit/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/rbac/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/retry/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/secrets/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/streaming/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/telemetry/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/test/.gitkeep +0 -0
- package/.sdk/tm/dart/src/feature/timeout/.gitkeep +0 -0
- package/.sdk/tm/dart/test/custom_test.dart +65 -0
- package/.sdk/tm/dart/test/exists_test.dart +12 -0
- package/.sdk/tm/dart/test/feature/harness.dart +347 -0
- package/.sdk/tm/dart/test/feature/secrets/secrets_test.dart +1107 -0
- package/.sdk/tm/dart/test/feature_test.dart +1193 -0
- package/.sdk/tm/dart/test/harness.dart +153 -0
- package/.sdk/tm/dart/test/netsim_test.dart +48 -0
- package/.sdk/tm/dart/test/omni.dart +520 -0
- package/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
- package/.sdk/tm/dart/test/pipeline_test.dart +608 -0
- package/.sdk/tm/dart/test/primary_test.dart +476 -0
- package/.sdk/tm/dart/test/sdk-test-control.json +19 -0
- package/.sdk/tm/dart/test/struct_test.dart +468 -0
- package/.sdk/tm/dart/test/utility.dart +198 -0
- package/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
- package/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
- package/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
- package/.sdk/tm/haskell/LICENSE +21 -0
- package/.sdk/tm/haskell/Makefile +22 -0
- package/.sdk/tm/haskell/VERSION +1 -0
- package/.sdk/tm/haskell/src/SdkFeatures.hs +1440 -0
- package/.sdk/tm/haskell/src/SdkHelpers.hs +337 -0
- package/.sdk/tm/haskell/src/SdkJson.hs +111 -0
- package/.sdk/tm/haskell/src/SdkRuntime.hs +1279 -0
- package/.sdk/tm/haskell/src/SdkTypes.hs +195 -0
- package/.sdk/tm/haskell/src/VoxgigStruct.hs +2299 -0
- package/.sdk/tm/haskell/src/Vregex.hs +237 -0
- package/.sdk/tm/haskell/src/feature/README.md +5 -0
- package/.sdk/tm/haskell/src/feature/audit/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/base/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/cache/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/clienttrack/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/debug/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/idempotency/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/log/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/metrics/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/netsim/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/paging/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/proxy/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/ratelimit/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/rbac/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/retry/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/streaming/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/telemetry/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/test/.gitkeep +0 -0
- package/.sdk/tm/haskell/src/feature/timeout/.gitkeep +0 -0
- package/.sdk/tm/haskell/test/Harness.hs +281 -0
- package/.sdk/tm/haskell/test/OmniResolver.hs +252 -0
- package/.sdk/tm/haskell/test/Runner.hs +49 -0
- package/.sdk/tm/haskell/test/StructCorpus.hs +449 -0
- package/.sdk/tm/haskell/test/TCustomUtility.hs +38 -0
- package/.sdk/tm/haskell/test/TFeature.hs +794 -0
- package/.sdk/tm/haskell/test/TNetsim.hs +50 -0
- package/.sdk/tm/haskell/test/TPipeline.hs +334 -0
- package/.sdk/tm/haskell/test/TPrimaryCorpus.hs +263 -0
- package/.sdk/tm/haskell/test/TPrimaryUtility.hs +386 -0
- package/.sdk/tm/haskell/test/Testutil.hs +59 -0
- package/.sdk/tm/haskell/test/vendor/omni/Omni.hs +1147 -0
- package/.sdk/tm/lean/LICENSE +21 -0
- package/.sdk/tm/lean/Makefile +32 -0
- package/.sdk/tm/lean/VERSION +1 -0
- package/.sdk/tm/lean/src/SdkFeature.lean +171 -0
- package/.sdk/tm/lean/src/SdkFeatures.lean +787 -0
- package/.sdk/tm/lean/src/SdkJson.lean +134 -0
- package/.sdk/tm/lean/src/SdkRuntime.lean +374 -0
- package/.sdk/tm/lean/src/SdkUtility.lean +809 -0
- package/.sdk/tm/lean/src/VoxgigStruct.lean +2880 -0
- package/.sdk/tm/lean/src/Vregex.lean +412 -0
- package/.sdk/tm/lean/src/feature/README.md +5 -0
- package/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/cost/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
- package/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
- package/.sdk/tm/lean/test/OmniResolver.lean +358 -0
- package/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
- package/.sdk/tm/lean/test/StructCorpus.lean +368 -0
- package/.sdk/tm/lean/test/TFeature.lean +281 -0
- package/.sdk/tm/lean/test/TPrimaryUtility.lean +227 -0
- package/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
- package/LICENSE +21 -0
- package/README.md +104 -0
- package/package.json +78 -0
- package/sdkgen-package.json +22 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// VENDORED: @voxgig/plugin sdk-20260908-1556-0 (dart/lib/env.dart)
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ 48392f5e2b6d1434ee9b1a4a9a11f4480aaeb46a [tag: sdk-20260908-1556-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
/// Environment overrides (section 9.5) - level 7 of the ladder.
|
|
5
|
+
///
|
|
6
|
+
/// One prefix, so nothing drifts: `VOXGIG_PLUGIN_*`.
|
|
7
|
+
///
|
|
8
|
+
/// VOXGIG_PLUGIN_PROFILE the profile name
|
|
9
|
+
/// VOXGIG_PLUGIN_<REF>_<PATH> one option
|
|
10
|
+
/// VOXGIG_PLUGIN_ACTIVE/INACTIVE comma-separated refs, INACTIVE wins
|
|
11
|
+
///
|
|
12
|
+
/// THE ENCODING IS LOSSY, AND THIS SAYS SO RATHER THAN PRETENDING
|
|
13
|
+
/// OTHERWISE. Ref and path are upper-snake with `$` -> `__` and `.` -> `_`.
|
|
14
|
+
/// But `_` is legal in a name and in a tag, and the mapping folds case, so
|
|
15
|
+
/// `retry$fast` and `retry__fast` both encode to `RETRY__FAST`.
|
|
16
|
+
///
|
|
17
|
+
/// Rather than restrict a grammar the rest of the stack already uses, the
|
|
18
|
+
/// host DETECTS THE COLLISION: it encodes every ref it holds, and a key two
|
|
19
|
+
/// refs claim is `plugin_env_ambiguous`, naming both.
|
|
20
|
+
library;
|
|
21
|
+
|
|
22
|
+
import 'dart:convert';
|
|
23
|
+
|
|
24
|
+
import 'types.dart' as t;
|
|
25
|
+
import 'ref.dart' as r;
|
|
26
|
+
|
|
27
|
+
const envPrefix = 'VOXGIG_PLUGIN_';
|
|
28
|
+
|
|
29
|
+
/// `retry$fast` -> `RETRY__FAST`.
|
|
30
|
+
String encodeRef(String ref) =>
|
|
31
|
+
ref.replaceAll(r'$', '__').replaceAll('.', '_').toUpperCase();
|
|
32
|
+
|
|
33
|
+
/// Values parse as JSON, FALLING BACK TO STRING - so `8080` is a number,
|
|
34
|
+
/// `true` is a boolean, `{"a":1}` is a map, and `hello` is the string it
|
|
35
|
+
/// looks like rather than a parse error. `dart:convert` is the SDK's own
|
|
36
|
+
/// library, not a package: section 16 bars a `pubspec.yaml` dependency
|
|
37
|
+
/// list, which this port does not have.
|
|
38
|
+
dynamic _parseValue(dynamic value) {
|
|
39
|
+
try {
|
|
40
|
+
return jsonDecode(value as String);
|
|
41
|
+
} catch (_) {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
List<String> _split(dynamic value) => '$value'
|
|
47
|
+
.split(',')
|
|
48
|
+
.map((s) => s.trim())
|
|
49
|
+
.where((s) => s.isNotEmpty)
|
|
50
|
+
.toList();
|
|
51
|
+
|
|
52
|
+
void _checkReserved(String ref, List reserved) {
|
|
53
|
+
if (!reserved.contains(r.refName(ref))) return;
|
|
54
|
+
t.fail('plugin_ref_reserved', 'ref is reserved by the host: $ref',
|
|
55
|
+
{'ref': ref});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
Map<String, dynamic> applyEnv(dynamic input) {
|
|
59
|
+
final env = t.get(input, 'env') ?? {};
|
|
60
|
+
final refs = ((t.get(input, 'refs') ?? []) as List).map(r.canonRef).toList();
|
|
61
|
+
final reserved = (t.get(input, 'reserved') ?? []) as List;
|
|
62
|
+
final out = <String, dynamic>{
|
|
63
|
+
'options': <String, dynamic>{},
|
|
64
|
+
'active': <String>[],
|
|
65
|
+
'inactive': <String>[]
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// Encode every ref the host holds, and refuse a key that two of them
|
|
69
|
+
// claim. Done up front so the collision is reported even when no
|
|
70
|
+
// environment variable exercises it - a latent ambiguity is still an
|
|
71
|
+
// ambiguity, and finding it at deploy time is the failure this exists to
|
|
72
|
+
// prevent.
|
|
73
|
+
final byencoded = <String, List<String>>{};
|
|
74
|
+
for (final ref in refs) {
|
|
75
|
+
byencoded.putIfAbsent(encodeRef(ref), () => []).add(ref);
|
|
76
|
+
}
|
|
77
|
+
for (final e in t.sortedKeys(byencoded)) {
|
|
78
|
+
if (byencoded[e]!.length <= 1) continue;
|
|
79
|
+
final pair = List<String>.from(byencoded[e]!)..sort();
|
|
80
|
+
t.fail(
|
|
81
|
+
'plugin_env_ambiguous',
|
|
82
|
+
'refs collide in the environment encoding as $e: ${pair.join(', ')}',
|
|
83
|
+
{'encoded': e, 'refs': pair});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Longest encoded ref first, so `retry$fast` wins over `retry` on
|
|
87
|
+
// `RETRY__FAST_MIN`. Shortest-first would read the tag as a path.
|
|
88
|
+
final encoded =
|
|
89
|
+
t.stableSortBy(t.sortedKeys(byencoded), (e) => [-e.length]);
|
|
90
|
+
|
|
91
|
+
for (final key in t.sortedKeys(env)) {
|
|
92
|
+
if (!key.startsWith(envPrefix)) continue;
|
|
93
|
+
final rest = key.substring(envPrefix.length);
|
|
94
|
+
|
|
95
|
+
if (rest == 'PROFILE') {
|
|
96
|
+
out['profile'] = t.get(env, key);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (rest == 'ACTIVE' || rest == 'INACTIVE') {
|
|
101
|
+
for (final raw in _split(t.get(env, key))) {
|
|
102
|
+
final ref = r.canonRef(raw);
|
|
103
|
+
// The reservation covers EVERY input layer (section 9.1).
|
|
104
|
+
// VOXGIG_PLUGIN_INACTIVE=station is easier to set than editing a
|
|
105
|
+
// config file, and INACTIVE has the final word - so guarding
|
|
106
|
+
// documents alone would leave the one lever this mechanism exists
|
|
107
|
+
// to deny wide open.
|
|
108
|
+
_checkReserved(ref, reserved);
|
|
109
|
+
(out[rest == 'ACTIVE' ? 'active' : 'inactive'] as List).add(ref);
|
|
110
|
+
}
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
final enc = encoded
|
|
115
|
+
.where((e) => rest == e || rest.startsWith('${e}_'))
|
|
116
|
+
.firstOrNull;
|
|
117
|
+
if (enc == null) continue; // not for any ref this host holds
|
|
118
|
+
|
|
119
|
+
final ref = byencoded[enc]![0];
|
|
120
|
+
_checkReserved(ref, reserved);
|
|
121
|
+
|
|
122
|
+
if (rest == enc) continue; // a ref with no path sets nothing
|
|
123
|
+
|
|
124
|
+
final path = rest.substring(enc.length + 1).toLowerCase().split('_');
|
|
125
|
+
|
|
126
|
+
final options = out['options'] as Map<String, dynamic>;
|
|
127
|
+
var node = options[ref];
|
|
128
|
+
if (node is! Map) {
|
|
129
|
+
node = <String, dynamic>{};
|
|
130
|
+
options[ref] = node;
|
|
131
|
+
}
|
|
132
|
+
for (var i = 0; i < path.length - 1; i++) {
|
|
133
|
+
var child = (node as Map)[path[i]];
|
|
134
|
+
if (child is! Map) {
|
|
135
|
+
child = <String, dynamic>{};
|
|
136
|
+
node[path[i]] = child;
|
|
137
|
+
}
|
|
138
|
+
node = child;
|
|
139
|
+
}
|
|
140
|
+
(node as Map)[path[path.length - 1]] = _parseValue(t.get(env, key));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// VENDORED: @voxgig/plugin sdk-20260908-1556-0 (dart/lib/export.dart)
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ 48392f5e2b6d1434ee9b1a4a9a11f4480aaeb46a [tag: sdk-20260908-1556-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
/// Exports (section 11).
|
|
5
|
+
///
|
|
6
|
+
/// An instance publishes values for other plugins and for the application.
|
|
7
|
+
/// Read with `host.exports('retry$fast/client')`.
|
|
8
|
+
///
|
|
9
|
+
/// THE UNQUALIFIED ALIAS IS THE INTERESTING PART. `retry/client` resolves
|
|
10
|
+
/// to the UNTAGGED instance if one exists; if not, and exactly one tagged
|
|
11
|
+
/// instance exports that key, it resolves to that one; if two do, it is
|
|
12
|
+
/// `plugin_export_ambiguous` - deliberately diverging from seneca's silent
|
|
13
|
+
/// last-wins, because with multi-instance as a headline feature an
|
|
14
|
+
/// ambiguous alias is a defect waiting for production.
|
|
15
|
+
library;
|
|
16
|
+
|
|
17
|
+
import 'types.dart' as t;
|
|
18
|
+
import 'ref.dart' as r;
|
|
19
|
+
|
|
20
|
+
/// One published value. An internal shape, never a corpus value.
|
|
21
|
+
class Exported {
|
|
22
|
+
final String ref;
|
|
23
|
+
final String key;
|
|
24
|
+
final dynamic value;
|
|
25
|
+
Exported(this.ref, this.key, this.value);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
dynamic resolveExport(String spec, List<Exported> exported) {
|
|
29
|
+
final cut = spec.indexOf('/');
|
|
30
|
+
if (cut < 0) {
|
|
31
|
+
t.fail('plugin_export_ambiguous', 'export spec needs a key: $spec',
|
|
32
|
+
{'spec': spec});
|
|
33
|
+
}
|
|
34
|
+
final head = spec.substring(0, cut);
|
|
35
|
+
final key = spec.substring(cut + 1);
|
|
36
|
+
|
|
37
|
+
// A fully qualified ref: exactly one answer or none.
|
|
38
|
+
final want = r.canon(head);
|
|
39
|
+
for (final e in exported) {
|
|
40
|
+
if (e.ref == want && e.key == key) return e.value;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// An alias: the name, not a ref. Look at every instance of it.
|
|
44
|
+
final byname =
|
|
45
|
+
exported.where((e) => r.refName(e.ref) == head && e.key == key).toList();
|
|
46
|
+
if (byname.isEmpty) return null;
|
|
47
|
+
|
|
48
|
+
for (final e in byname) {
|
|
49
|
+
if ((r.parseRef(e.ref)['tag'] as String).isEmpty) return e.value;
|
|
50
|
+
}
|
|
51
|
+
if (byname.length == 1) return byname[0].value;
|
|
52
|
+
|
|
53
|
+
final refs = byname.map((e) => e.ref).toList()..sort();
|
|
54
|
+
t.fail(
|
|
55
|
+
'plugin_export_ambiguous',
|
|
56
|
+
'alias $spec matches ${refs.length} instances: ${refs.join(', ')}',
|
|
57
|
+
{'spec': spec, 'refs': refs});
|
|
58
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// VENDORED: @voxgig/plugin sdk-20260908-1556-0 (dart/lib/graph.dart)
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ 48392f5e2b6d1434ee9b1a4a9a11f4480aaeb46a [tag: sdk-20260908-1556-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
/// Whole-graph resolution (section 11.4) - a phase, not a discovery.
|
|
5
|
+
///
|
|
6
|
+
/// "Activate, and wait in `pending` if you must" is correct and, on its own,
|
|
7
|
+
/// produces a terrible experience: apply twenty instances against a registry
|
|
8
|
+
/// missing one thing and you get NINETEEN pending rows and no statement of
|
|
9
|
+
/// what is actually wrong.
|
|
10
|
+
///
|
|
11
|
+
/// `resolveGraph` is a PURE FUNCTION of the registry and the intended
|
|
12
|
+
/// activation set. No callbacks run, no state changes, nothing is touched.
|
|
13
|
+
/// It answers for the whole graph at once which instances can be live, and
|
|
14
|
+
/// for each blocked one THE SPECIFIC REQUIREMENT that is unmet, and why.
|
|
15
|
+
///
|
|
16
|
+
/// The failure mode being designed against is a famous one: OSGi's resolver
|
|
17
|
+
/// is correct and its diagnostics are legendarily unusable. A resolver that
|
|
18
|
+
/// says "blocked" without saying WHY has moved the problem rather than
|
|
19
|
+
/// solved it, so `why` is part of the contract and the corpus pins its
|
|
20
|
+
/// shape.
|
|
21
|
+
library;
|
|
22
|
+
|
|
23
|
+
import 'types.dart' as t;
|
|
24
|
+
import 'ref.dart' as r;
|
|
25
|
+
import 'capability.dart' as cap;
|
|
26
|
+
import 'version.dart' as v;
|
|
27
|
+
|
|
28
|
+
Map<String, dynamic> resolveGraph(dynamic nodes) {
|
|
29
|
+
final byref = <String, dynamic>{};
|
|
30
|
+
for (final n in nodes as List) {
|
|
31
|
+
byref[t.get(n, 'ref') as String] = n;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
final resolved = <String>{};
|
|
35
|
+
|
|
36
|
+
// Fixed point: a node resolves when every mandatory requirement is met by
|
|
37
|
+
// an ALREADY-RESOLVED provider. Iterating to a fixed point is what makes a
|
|
38
|
+
// provider that is itself blocked propagate, rather than each node being
|
|
39
|
+
// judged against the raw registry.
|
|
40
|
+
var moved = true;
|
|
41
|
+
while (moved) {
|
|
42
|
+
moved = false;
|
|
43
|
+
for (final n in nodes) {
|
|
44
|
+
final ref = t.get(n, 'ref') as String;
|
|
45
|
+
if (resolved.contains(ref)) continue;
|
|
46
|
+
if (firstUnmet(n, byref, resolved) != null) continue;
|
|
47
|
+
resolved.add(ref);
|
|
48
|
+
moved = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
final blocked = <String, dynamic>{};
|
|
53
|
+
for (final n in nodes) {
|
|
54
|
+
final ref = t.get(n, 'ref') as String;
|
|
55
|
+
if (resolved.contains(ref)) continue;
|
|
56
|
+
final why = firstUnmet(n, byref, resolved);
|
|
57
|
+
if (why != null) blocked[ref] = why;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
'resolved': resolved.toList()..sort(),
|
|
62
|
+
'blocked': (blocked.keys.toList()..sort()).map((r) => blocked[r]).toList(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/// The FIRST unmet requirement, with the most specific explanation
|
|
67
|
+
/// available. Order matters: "no provider at all" and "a provider at the
|
|
68
|
+
/// wrong version" are different problems and a reader must not have to guess
|
|
69
|
+
/// which they have.
|
|
70
|
+
Map<String, dynamic>? firstUnmet(
|
|
71
|
+
dynamic node, Map<String, dynamic> byref, Set<String> resolved) {
|
|
72
|
+
for (final req in (t.get(node, 'requires') ?? []) as List) {
|
|
73
|
+
if (t.truthy(t.get(req, 'optional'))) continue;
|
|
74
|
+
final name = t.get(req, 'name') as String;
|
|
75
|
+
|
|
76
|
+
final all = graphCandidates(byref, name);
|
|
77
|
+
if (all.isEmpty) return _why(node, name, {'kind': 'absent'});
|
|
78
|
+
|
|
79
|
+
final ok = cap.resolveCapability(req, all);
|
|
80
|
+
if (ok.isNotEmpty) {
|
|
81
|
+
// A provider exists and matches - but if none of them is itself
|
|
82
|
+
// resolved, this node is blocked BEHIND it, and the chain is the
|
|
83
|
+
// useful answer rather than "unmet".
|
|
84
|
+
if (ok.any((c) => resolved.contains(t.get(c, 'ref')))) continue;
|
|
85
|
+
final chain = ok.map((c) => t.get(c, 'ref') as String).toList()..sort();
|
|
86
|
+
return _why(node, name, {'kind': 'blocked', 'chain': chain});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Providers exist and none matched. Say which test failed.
|
|
90
|
+
final range = t.get(req, 'range');
|
|
91
|
+
if (range != null) {
|
|
92
|
+
final versions = all
|
|
93
|
+
.map((c) => t.get(t.get(c, 'provides'), 'version'))
|
|
94
|
+
.where((ver) => ver == null || !v.satisfiesq(ver, range))
|
|
95
|
+
.map((ver) => (ver ?? '(none)') as String)
|
|
96
|
+
.toList();
|
|
97
|
+
if (versions.isNotEmpty) {
|
|
98
|
+
return _why(node, name,
|
|
99
|
+
{'kind': 'version', 'range': range, 'found': versions..sort()});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
final match = t.get(req, 'match');
|
|
104
|
+
if (match != null) {
|
|
105
|
+
for (final c in all) {
|
|
106
|
+
final attrs = t.get(t.get(c, 'provides'), 'attrs') ?? {};
|
|
107
|
+
for (final k in t.sortedKeys(match)) {
|
|
108
|
+
if (t.has(attrs, k) &&
|
|
109
|
+
cap.matchValue(t.get(match, k), t.get(attrs, k))) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
return _why(node, name, {
|
|
113
|
+
'kind': 'match',
|
|
114
|
+
'failing': k,
|
|
115
|
+
'want': t.get(match, k),
|
|
116
|
+
'found': t.get(attrs, k)
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return _why(node, name, {'kind': 'absent'});
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
Map<String, dynamic> _why(dynamic node, String name, dynamic reason) =>
|
|
128
|
+
{'ref': t.get(node, 'ref'), 'unmet': name, 'why': reason};
|
|
129
|
+
|
|
130
|
+
List<dynamic> graphCandidates(Map<String, dynamic> byref, String name) {
|
|
131
|
+
final out = <dynamic>[];
|
|
132
|
+
// A NODE SATISFIES ITS OWN REF (section 11.1), and the graph learned it
|
|
133
|
+
// here. Considering only declared capabilities made `resolve` answer
|
|
134
|
+
// `absent` about a provider sitting right there and live - section
|
|
135
|
+
// 11.4's job is explaining the graph the runtime reconciles, and it was
|
|
136
|
+
// explaining a different one.
|
|
137
|
+
final asref = r.canon(name);
|
|
138
|
+
for (final ref in t.sortedKeys(byref)) {
|
|
139
|
+
final node = byref[ref];
|
|
140
|
+
// The ref match WINS OUTRIGHT for that node, as at runtime: one
|
|
141
|
+
// candidate, not two, for a node both named `b` and providing `b`.
|
|
142
|
+
if (ref == asref) {
|
|
143
|
+
out.add({
|
|
144
|
+
'ref': t.get(node, 'ref'),
|
|
145
|
+
'pos': t.get(node, 'pos') ?? 0,
|
|
146
|
+
'provides': {'name': name}
|
|
147
|
+
});
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
for (final prov in (t.get(node, 'provides') ?? []) as List) {
|
|
151
|
+
if (t.get(prov, 'name') != name) continue;
|
|
152
|
+
out.add({
|
|
153
|
+
'ref': t.get(node, 'ref'),
|
|
154
|
+
'pos': t.get(node, 'pos') ?? 0,
|
|
155
|
+
'provides': prov
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return out;
|
|
160
|
+
}
|