@greenpandastudios/aug-cli 0.19.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/LICENSE +21 -0
- package/README.md +13 -0
- package/THIRD_PARTY_NOTICES.md +18 -0
- package/bin/aug.mjs +3 -0
- package/docs/api/crypto.md +351 -0
- package/docs/api/io.md +207 -0
- package/docs/api/json.md +21 -0
- package/docs/api/memory.md +109 -0
- package/docs/api/time.md +54 -0
- package/docs/api/web.md +184 -0
- package/docs/assets/benchmarks/execution.svg +2978 -0
- package/docs/assets/benchmarks/http.svg +1674 -0
- package/docs/assets/benchmarks/improvements.svg +2315 -0
- package/docs/assets/benchmarks/memory.svg +1891 -0
- package/docs/benchmark-baseline.json +1087 -0
- package/docs/benchmark-results.json +91123 -0
- package/docs/benchmarks.json +38 -0
- package/docs/compatibility.md +42 -0
- package/docs/concurrency-implementation.md +18 -0
- package/docs/diagnostics.md +97 -0
- package/docs/docker.md +35 -0
- package/docs/example-projects.json +26 -0
- package/docs/examples/approved-design/counters.md +253 -0
- package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/approved-design/domain/app.md +165 -0
- package/docs/examples/approved-design/domain/export.md +83 -0
- package/docs/examples/approved-design/domain/models.md +80 -0
- package/docs/examples/approved-design/domain/numbers.md +248 -0
- package/docs/examples/approved-design/index.md +39 -0
- package/docs/examples/approved-design/main-yaml.md +24 -0
- package/docs/examples/approved-design/main.md +215 -0
- package/docs/examples/benchmark/index.md +33 -0
- package/docs/examples/benchmark/main-yaml.md +17 -0
- package/docs/examples/benchmark/main.md +117 -0
- package/docs/examples/cli-args/index.md +32 -0
- package/docs/examples/cli-args/main.md +107 -0
- package/docs/examples/collections/index.md +32 -0
- package/docs/examples/collections/main.md +118 -0
- package/docs/examples/collections-benchmark/index.md +34 -0
- package/docs/examples/collections-benchmark/main.md +115 -0
- package/docs/examples/cpu-benchmark/index.md +34 -0
- package/docs/examples/cpu-benchmark/main.md +90 -0
- package/docs/examples/developer-workflow/calculator.md +357 -0
- package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/developer-workflow/index.md +37 -0
- package/docs/examples/developer-workflow/logging/console.md +124 -0
- package/docs/examples/developer-workflow/logging/export.md +70 -0
- package/docs/examples/developer-workflow/logging/logger.md +111 -0
- package/docs/examples/developer-workflow/main.md +172 -0
- package/docs/examples/drop/index.md +33 -0
- package/docs/examples/drop/main.md +85 -0
- package/docs/examples/drop/resource.md +95 -0
- package/docs/examples/errors/errors.md +85 -0
- package/docs/examples/errors/index.md +33 -0
- package/docs/examples/errors/main.md +92 -0
- package/docs/examples/ffi/index.md +33 -0
- package/docs/examples/ffi/main.md +75 -0
- package/docs/examples/ffi/native.md +93 -0
- package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/generic-di/index.md +33 -0
- package/docs/examples/generic-di/main.md +111 -0
- package/docs/examples/generic-di/types.md +180 -0
- package/docs/examples/generics/index.md +33 -0
- package/docs/examples/generics/main.md +120 -0
- package/docs/examples/generics/types.md +189 -0
- package/docs/examples/hello/app/export.md +67 -0
- package/docs/examples/hello/app/greeter.md +190 -0
- package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/hello/index.md +37 -0
- package/docs/examples/hello/logging/console.md +121 -0
- package/docs/examples/hello/logging/export.md +71 -0
- package/docs/examples/hello/logging/logger.md +120 -0
- package/docs/examples/hello/main.md +115 -0
- package/docs/examples/http-benchmark/index.md +35 -0
- package/docs/examples/http-benchmark/main.md +79 -0
- package/docs/examples/http-benchmark/routes.md +88 -0
- package/docs/examples/index.md +60 -0
- package/docs/examples/interceptors/app.md +250 -0
- package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/interceptors/index.md +35 -0
- package/docs/examples/interceptors/interceptors.md +284 -0
- package/docs/examples/interceptors/logging.md +155 -0
- package/docs/examples/interceptors/main.md +162 -0
- package/docs/examples/json-benchmark/data.md +71 -0
- package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +103 -0
- package/docs/examples/json-benchmark/index.md +35 -0
- package/docs/examples/json-benchmark/main.md +131 -0
- package/docs/examples/new-syntax/console.md +118 -0
- package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/new-syntax/greeter.md +145 -0
- package/docs/examples/new-syntax/index.md +36 -0
- package/docs/examples/new-syntax/logger.md +111 -0
- package/docs/examples/new-syntax/main.md +135 -0
- package/docs/examples/new-syntax/math.md +79 -0
- package/docs/examples/oidc-login/client/contracts.md +151 -0
- package/docs/examples/oidc-login/client/endpoints.md +263 -0
- package/docs/examples/oidc-login/client/export.md +107 -0
- package/docs/examples/oidc-login/client/login.md +515 -0
- package/docs/examples/oidc-login/client/logout.md +249 -0
- package/docs/examples/oidc-login/client/protocol.md +595 -0
- package/docs/examples/oidc-login/client/session.md +297 -0
- package/docs/examples/oidc-login/client/views.md +144 -0
- package/docs/examples/oidc-login/common/export.md +115 -0
- package/docs/examples/oidc-login/common/headers.md +162 -0
- package/docs/examples/oidc-login/common/keys.md +336 -0
- package/docs/examples/oidc-login/common/settings.md +116 -0
- package/docs/examples/oidc-login/common/views.md +103 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +925 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +434 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +103 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +374 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +150 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +532 -0
- package/docs/examples/oidc-login/index.md +57 -0
- package/docs/examples/oidc-login/main-yaml.md +28 -0
- package/docs/examples/oidc-login/main.md +283 -0
- package/docs/examples/oidc-login/provider/authorization.md +457 -0
- package/docs/examples/oidc-login/provider/contracts.md +267 -0
- package/docs/examples/oidc-login/provider/credentials.md +148 -0
- package/docs/examples/oidc-login/provider/discovery.md +215 -0
- package/docs/examples/oidc-login/provider/export.md +131 -0
- package/docs/examples/oidc-login/provider/token.md +364 -0
- package/docs/examples/oidc-login/provider/userinfo.md +228 -0
- package/docs/examples/oidc-login/provider/views.md +137 -0
- package/docs/examples/ownership/counter.md +140 -0
- package/docs/examples/ownership/index.md +33 -0
- package/docs/examples/ownership/main.md +90 -0
- package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/ownership-transfer/index.md +33 -0
- package/docs/examples/ownership-transfer/main.md +125 -0
- package/docs/examples/ownership-transfer/resource.md +150 -0
- package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +117 -0
- package/docs/examples/packages-app/index.md +34 -0
- package/docs/examples/packages-app/main-yaml.md +18 -0
- package/docs/examples/packages-app/main.md +80 -0
- package/docs/examples/packages-math/aug-package-json.md +24 -0
- package/docs/examples/packages-math/index.md +36 -0
- package/docs/examples/packages-math/package-json.md +25 -0
- package/docs/examples/packages-math/src/arithmetic.md +121 -0
- package/docs/examples/packages-math/src/export.md +63 -0
- package/docs/examples/startup-benchmark/index.md +34 -0
- package/docs/examples/startup-benchmark/main.md +68 -0
- package/docs/examples/visibility/counter.md +142 -0
- package/docs/examples/visibility/index.md +33 -0
- package/docs/examples/visibility/main.md +96 -0
- package/docs/examples.json +47 -0
- package/docs/getting-started.md +5 -0
- package/docs/grammar.md +136 -0
- package/docs/implementation-map.md +106 -0
- package/docs/index.md +46 -0
- package/docs/language-conformance.md +30 -0
- package/docs/language-constructs.md +1461 -0
- package/docs/language-design-audit.md +147 -0
- package/docs/maintaining-docs.md +43 -0
- package/docs/packages.md +184 -0
- package/docs/performance.md +535 -0
- package/docs/production-readiness.md +39 -0
- package/docs/reference.md +361 -0
- package/docs/release-review.md +23 -0
- package/docs/releasing.md +79 -0
- package/docs/roadmap.md +13 -0
- package/docs/specifications.md +86 -0
- package/docs/testing.md +120 -0
- package/docs/tooling.md +197 -0
- package/docs/web-implementation-plan.md +39 -0
- package/docs/web-library-gaps.md +27 -0
- package/docs/web.md +197 -0
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/approved-design/.aug-spec/manifest.json +14 -0
- package/examples/approved-design/counters.aug +22 -0
- package/examples/approved-design/counters.aug.md +177 -0
- package/examples/approved-design/domain/app.aug +12 -0
- package/examples/approved-design/domain/app.aug.md +97 -0
- package/examples/approved-design/domain/export.aug +5 -0
- package/examples/approved-design/domain/export.aug.md +25 -0
- package/examples/approved-design/domain/models.aug +2 -0
- package/examples/approved-design/domain/models.aug.md +30 -0
- package/examples/approved-design/domain/numbers.aug +29 -0
- package/examples/approved-design/domain/numbers.aug.md +141 -0
- package/examples/approved-design/main.aug +26 -0
- package/examples/approved-design/main.aug.md +108 -0
- package/examples/approved-design/main.yaml +8 -0
- package/examples/benchmark/.aug-spec/manifest.json +7 -0
- package/examples/benchmark/main.aug +17 -0
- package/examples/benchmark/main.aug.md +43 -0
- package/examples/benchmark/main.yaml +1 -0
- package/examples/cli-args/.aug-spec/manifest.json +7 -0
- package/examples/cli-args/main.aug +15 -0
- package/examples/cli-args/main.aug.md +38 -0
- package/examples/collections/.aug-spec/manifest.json +7 -0
- package/examples/collections/main.aug +18 -0
- package/examples/collections/main.aug.md +43 -0
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/developer-workflow/.aug-spec/manifest.json +13 -0
- package/examples/developer-workflow/calculator.aug +55 -0
- package/examples/developer-workflow/calculator.aug.md +228 -0
- package/examples/developer-workflow/logging/console.aug +8 -0
- package/examples/developer-workflow/logging/console.aug.md +67 -0
- package/examples/developer-workflow/logging/export.aug +2 -0
- package/examples/developer-workflow/logging/export.aug.md +19 -0
- package/examples/developer-workflow/logging/logger.aug +6 -0
- package/examples/developer-workflow/logging/logger.aug.md +57 -0
- package/examples/developer-workflow/main.aug +25 -0
- package/examples/developer-workflow/main.aug.md +79 -0
- package/examples/drop/.aug-spec/manifest.json +8 -0
- package/examples/drop/main.aug +3 -0
- package/examples/drop/main.aug.md +35 -0
- package/examples/drop/resource.aug +8 -0
- package/examples/drop/resource.aug.md +44 -0
- package/examples/errors/.aug-spec/manifest.json +8 -0
- package/examples/errors/errors.aug +6 -0
- package/examples/errors/errors.aug.md +33 -0
- package/examples/errors/main.aug +7 -0
- package/examples/errors/main.aug.md +36 -0
- package/examples/ffi/.aug-spec/manifest.json +8 -0
- package/examples/ffi/main.aug +2 -0
- package/examples/ffi/main.aug.md +27 -0
- package/examples/ffi/native.aug +6 -0
- package/examples/ffi/native.aug.md +43 -0
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/generic-di/.aug-spec/manifest.json +10 -0
- package/examples/generic-di/main.aug +9 -0
- package/examples/generic-di/main.aug.md +49 -0
- package/examples/generic-di/types.aug +17 -0
- package/examples/generic-di/types.aug.md +124 -0
- package/examples/generics/.aug-spec/manifest.json +8 -0
- package/examples/generics/main.aug +9 -0
- package/examples/generics/main.aug.md +58 -0
- package/examples/generics/types.aug +19 -0
- package/examples/generics/types.aug.md +132 -0
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/hello/.aug-spec/manifest.json +14 -0
- package/examples/hello/app/export.aug +1 -0
- package/examples/hello/app/export.aug.md +17 -0
- package/examples/hello/app/greeter.aug +22 -0
- package/examples/hello/app/greeter.aug.md +109 -0
- package/examples/hello/logging/console.aug +7 -0
- package/examples/hello/logging/console.aug.md +65 -0
- package/examples/hello/logging/export.aug +2 -0
- package/examples/hello/logging/export.aug.md +19 -0
- package/examples/hello/logging/logger.aug +9 -0
- package/examples/hello/logging/logger.aug.md +59 -0
- package/examples/hello/main.aug +9 -0
- package/examples/hello/main.aug.md +49 -0
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/interceptors/.aug-spec/manifest.json +12 -0
- package/examples/interceptors/app.aug +28 -0
- package/examples/interceptors/app.aug.md +162 -0
- package/examples/interceptors/interceptors.aug +40 -0
- package/examples/interceptors/interceptors.aug.md +180 -0
- package/examples/interceptors/logging.aug +12 -0
- package/examples/interceptors/logging.aug.md +96 -0
- package/examples/interceptors/main.aug +22 -0
- package/examples/interceptors/main.aug.md +76 -0
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/new-syntax/.aug-spec/manifest.json +13 -0
- package/examples/new-syntax/console.aug +7 -0
- package/examples/new-syntax/console.aug.md +63 -0
- package/examples/new-syntax/greeter.aug +10 -0
- package/examples/new-syntax/greeter.aug.md +89 -0
- package/examples/new-syntax/logger.aug +6 -0
- package/examples/new-syntax/logger.aug.md +57 -0
- package/examples/new-syntax/main.aug +12 -0
- package/examples/new-syntax/main.aug.md +64 -0
- package/examples/new-syntax/math.aug +3 -0
- package/examples/new-syntax/math.aug.md +29 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug +73 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +791 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug +68 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +266 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug +6 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +55 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug +45 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +250 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug +11 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +96 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug +58 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +420 -0
- package/examples/oidc-login/.aug-spec/manifest.json +40 -0
- package/examples/oidc-login/README.md +29 -0
- package/examples/oidc-login/client/contracts.aug +7 -0
- package/examples/oidc-login/client/contracts.aug.md +80 -0
- package/examples/oidc-login/client/endpoints.aug +21 -0
- package/examples/oidc-login/client/endpoints.aug.md +161 -0
- package/examples/oidc-login/client/export.aug +7 -0
- package/examples/oidc-login/client/export.aug.md +29 -0
- package/examples/oidc-login/client/login.aug +58 -0
- package/examples/oidc-login/client/login.aug.md +331 -0
- package/examples/oidc-login/client/logout.aug +18 -0
- package/examples/oidc-login/client/logout.aug.md +150 -0
- package/examples/oidc-login/client/protocol.aug +106 -0
- package/examples/oidc-login/client/protocol.aug.md +326 -0
- package/examples/oidc-login/client/session.aug +34 -0
- package/examples/oidc-login/client/session.aug.md +155 -0
- package/examples/oidc-login/client/views.aug +21 -0
- package/examples/oidc-login/client/views.aug.md +68 -0
- package/examples/oidc-login/common/export.aug +9 -0
- package/examples/oidc-login/common/export.aug.md +33 -0
- package/examples/oidc-login/common/headers.aug +11 -0
- package/examples/oidc-login/common/headers.aug.md +79 -0
- package/examples/oidc-login/common/keys.aug +37 -0
- package/examples/oidc-login/common/keys.aug.md +207 -0
- package/examples/oidc-login/common/settings.aug +4 -0
- package/examples/oidc-login/common/settings.aug.md +47 -0
- package/examples/oidc-login/common/views.aug +16 -0
- package/examples/oidc-login/common/views.aug.md +34 -0
- package/examples/oidc-login/main.aug +39 -0
- package/examples/oidc-login/main.aug.md +166 -0
- package/examples/oidc-login/main.yaml +12 -0
- package/examples/oidc-login/provider/authorization.aug +59 -0
- package/examples/oidc-login/provider/authorization.aug.md +264 -0
- package/examples/oidc-login/provider/contracts.aug +15 -0
- package/examples/oidc-login/provider/contracts.aug.md +193 -0
- package/examples/oidc-login/provider/credentials.aug +10 -0
- package/examples/oidc-login/provider/credentials.aug.md +64 -0
- package/examples/oidc-login/provider/discovery.aug +13 -0
- package/examples/oidc-login/provider/discovery.aug.md +133 -0
- package/examples/oidc-login/provider/export.aug +13 -0
- package/examples/oidc-login/provider/export.aug.md +41 -0
- package/examples/oidc-login/provider/token.aug +37 -0
- package/examples/oidc-login/provider/token.aug.md +223 -0
- package/examples/oidc-login/provider/userinfo.aug +26 -0
- package/examples/oidc-login/provider/userinfo.aug.md +104 -0
- package/examples/oidc-login/provider/views.aug +18 -0
- package/examples/oidc-login/provider/views.aug.md +63 -0
- package/examples/ownership/.aug-spec/manifest.json +8 -0
- package/examples/ownership/counter.aug +14 -0
- package/examples/ownership/counter.aug.md +85 -0
- package/examples/ownership/main.aug +4 -0
- package/examples/ownership/main.aug.md +38 -0
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/ownership-transfer/.aug-spec/manifest.json +10 -0
- package/examples/ownership-transfer/main.aug +9 -0
- package/examples/ownership-transfer/main.aug.md +63 -0
- package/examples/ownership-transfer/resource.aug +16 -0
- package/examples/ownership-transfer/resource.aug.md +89 -0
- package/examples/packages/README.md +15 -0
- package/examples/packages/app/.aug-spec/manifest.json +9 -0
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +9 -0
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +63 -0
- package/examples/packages/app/main.aug +2 -0
- package/examples/packages/app/main.aug.md +33 -0
- package/examples/packages/app/main.yaml +2 -0
- package/examples/packages/math/.aug-spec/manifest.json +8 -0
- package/examples/packages/math/README.md +3 -0
- package/examples/packages/math/aug-package.json +8 -0
- package/examples/packages/math/package.json +9 -0
- package/examples/packages/math/src/arithmetic.aug +8 -0
- package/examples/packages/math/src/arithmetic.aug.md +63 -0
- package/examples/packages/math/src/export.aug +1 -0
- package/examples/packages/math/src/export.aug.md +17 -0
- package/examples/visibility/.aug-spec/manifest.json +8 -0
- package/examples/visibility/counter.aug +14 -0
- package/examples/visibility/counter.aug.md +87 -0
- package/examples/visibility/main.aug +7 -0
- package/examples/visibility/main.aug.md +39 -0
- package/package.json +50 -0
- package/runtime/aug_crypto.c +121 -0
- package/runtime/aug_html.c +93 -0
- package/runtime/aug_http.c +829 -0
- package/runtime/aug_json.c +165 -0
- package/runtime/aug_runtime.c +792 -0
- package/runtime/aug_runtime.h +245 -0
- package/runtime/aug_tasks.c +172 -0
- package/runtime/aug_time.c +5 -0
- package/runtime/aug_values.c +80 -0
- package/scripts/bootstrap-native.mjs +121 -0
- package/scripts/native-dependencies.lock.json +65 -0
- package/scripts/native-home.mjs +11 -0
- package/src/actions.js +109 -0
- package/src/ast.js +19 -0
- package/src/builtins.js +93 -0
- package/src/checker.js +2896 -0
- package/src/cli.js +344 -0
- package/src/codegen.js +1159 -0
- package/src/config.js +149 -0
- package/src/continuation.js +110 -0
- package/src/di.js +24 -0
- package/src/documentation.js +27 -0
- package/src/editor.js +782 -0
- package/src/effects.js +29 -0
- package/src/fixes.js +222 -0
- package/src/formatter.js +296 -0
- package/src/freshness.js +154 -0
- package/src/help.js +212 -0
- package/src/html.js +27 -0
- package/src/http-policies.js +90 -0
- package/src/inference.js +16 -0
- package/src/interceptors.js +70 -0
- package/src/javadoc.js +67 -0
- package/src/lexer.js +199 -0
- package/src/libraries.js +31 -0
- package/src/lsp.js +180 -0
- package/src/native.js +144 -0
- package/src/navigation.js +162 -0
- package/src/openapi.js +220 -0
- package/src/ownership.js +232 -0
- package/src/package-manager.js +299 -0
- package/src/parser.js +1155 -0
- package/src/policies.js +130 -0
- package/src/project-init.js +19 -0
- package/src/project.js +292 -0
- package/src/schemas.js +62 -0
- package/src/semantic.js +255 -0
- package/src/spec.js +738 -0
- package/src/testing.js +186 -0
- package/src/types.js +10 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AugScript contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# August CLI
|
|
2
|
+
|
|
3
|
+
`@greenpandastudios/aug-cli` installs `aug` and `aug-cli` (compiler, project starter, native builds, tests and language server) and `aug-native` (explicit native dependency bootstrap).
|
|
4
|
+
|
|
5
|
+
Requires Node.js 24+ and a C11 compiler. The CLI installs matching standard, web and crypto packages. Source imports remain `august.io`, `august.web`, and `august.crypto`.
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npx @greenpandastudios/aug-cli@next init hello-august
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The starter refuses a nonempty directory. It includes `main.aug`, an interface and implementation with a same-file test, and a README. Early npm releases use `@next`; publication status is tracked in the installation guide. Native builds support macOS and Linux.
|
|
12
|
+
|
|
13
|
+
See [installation](https://github.com/GreenPandaStudios/augscript/blob/main/docs/packages.md), [the language wiki](https://GreenPandaStudios.github.io/augscript/) and [the repository](https://github.com/GreenPandaStudios/augscript). Guides and examples are included in this package.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Native dependency sources
|
|
2
|
+
|
|
3
|
+
August's compiler/runtime code is MIT licensed. Native dependencies are downloaded explicitly by `aug-native` or `scripts/bootstrap-native.mjs`; their source archives, headers and binaries are not included in these source/npm/VSIX artifacts. Versions and archive checksums are pinned in `scripts/native-dependencies.lock.json`.
|
|
4
|
+
|
|
5
|
+
| Dependency | Official source and license information |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| CMake | [Kitware CMake](https://github.com/Kitware/CMake), `Copyright.txt` |
|
|
8
|
+
| GMP | [GNU GMP](https://gmplib.org/manual/Copying), LGPL 3 or later or GPL 2 or later; `COPYING` and `COPYING.LESSERv3` in its source archive |
|
|
9
|
+
| Nettle | [GNU Nettle](https://www.lysator.liu.se/~nisse/nettle/), LGPL 3 or later or GPL 2 or later; source archive license files |
|
|
10
|
+
| GnuTLS | [GnuTLS](https://www.gnutls.org/), LGPL 2.1 or later core; `COPYING` and `COPYING.LESSERv2` in its source archive |
|
|
11
|
+
| libtasn1, included by GnuTLS build | [GNU libtasn1](https://www.gnu.org/software/libtasn1/), LGPL 2.1 or later; inspect bundled source license files |
|
|
12
|
+
| libunistring, included by GnuTLS build | [GNU libunistring](https://www.gnu.org/software/libunistring/manual/html_node/Licenses.html), LGPL 3 or later or GPL 2 or later; inspect bundled source license files |
|
|
13
|
+
| libwebsockets | [libwebsockets](https://github.com/warmcat/libwebsockets/blob/main/LICENSE), MIT core with additional notices for selected bundled files; `LICENSE` |
|
|
14
|
+
| yyjson | [yyjson](https://github.com/ibireme/yyjson/blob/master/LICENSE), MIT |
|
|
15
|
+
| minicoro | [minicoro](https://github.com/edubart/minicoro/blob/main/LICENSE), public domain or MIT No Attribution |
|
|
16
|
+
| zlib | Host system library; [zlib](https://zlib.net/zlib_license.html) |
|
|
17
|
+
|
|
18
|
+
Applications built using web/crypto link native libraries from the selected dependency prefix. Redistributors of compiled applications must preserve the notices and satisfy the licenses of the libraries they include. The release process currently distributes compiler/library source packages and VSIX rather than prebuilt native dependency bundles.
|
package/bin/aug.mjs
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
---
|
|
2
|
+
generated: true
|
|
3
|
+
source: src/stdlib/crypto
|
|
4
|
+
editLink: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# august.crypto
|
|
8
|
+
|
|
9
|
+
Public declarations exported by this module. Import names explicitly from `august.crypto`. Built-in wire/value types are described in [language constructs](../language-constructs.md).
|
|
10
|
+
|
|
11
|
+
- [Crypto](#api-Crypto)
|
|
12
|
+
- [GnuTlsCrypto](#api-GnuTlsCrypto)
|
|
13
|
+
- [JwtError](#api-JwtError)
|
|
14
|
+
- [RsaJwk](#api-RsaJwk)
|
|
15
|
+
- [RsaJwks](#api-RsaJwks)
|
|
16
|
+
- [rsaJwk](#api-rsaJwk)
|
|
17
|
+
- [importJwk](#api-importJwk)
|
|
18
|
+
- [signJwt](#api-signJwt)
|
|
19
|
+
- [verifyJwt](#api-verifyJwt)
|
|
20
|
+
|
|
21
|
+
## Crypto {#api-Crypto}
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
capability Crypto
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Explicit permission for native cryptographic operations. Keys and bytes are immutable.
|
|
28
|
+
|
|
29
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L2)
|
|
30
|
+
|
|
31
|
+
### Crypto.random
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
random(int size) returns Bytes uses Crypto.random unless CryptoError
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Generate unpredictable bytes with the operating-system-backed GnuTLS RNG.
|
|
38
|
+
|
|
39
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L4)
|
|
40
|
+
|
|
41
|
+
### Crypto.sha256
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
sha256(Bytes input) returns Bytes uses Crypto.sha256 unless CryptoError
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Hash the complete input using SHA-256.
|
|
48
|
+
|
|
49
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L6)
|
|
50
|
+
|
|
51
|
+
### Crypto.generateRsa
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
generateRsa() returns RsaPrivateKey uses Crypto.generateRsa unless CryptoError
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation.
|
|
58
|
+
|
|
59
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L8)
|
|
60
|
+
|
|
61
|
+
### Crypto.publicRsa
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
publicRsa(RsaPrivateKey key) returns RsaPublicKey uses Crypto.publicRsa unless CryptoError
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Export the corresponding public key as an opaque immutable value.
|
|
68
|
+
|
|
69
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L10)
|
|
70
|
+
|
|
71
|
+
### Crypto.signRsa
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
signRsa(RsaPrivateKey key, Bytes input) returns Bytes uses Crypto.signRsa unless CryptoError
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256).
|
|
78
|
+
|
|
79
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L12)
|
|
80
|
+
|
|
81
|
+
### Crypto.verifyRsa
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
verifyRsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool uses Crypto.verifyRsa unless CryptoError
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError.
|
|
88
|
+
|
|
89
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L14)
|
|
90
|
+
|
|
91
|
+
### Crypto.decodeBase64url
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
decodeBase64url(string input) returns Bytes uses Crypto.decodeBase64url unless CryptoError
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits.
|
|
98
|
+
|
|
99
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L16)
|
|
100
|
+
|
|
101
|
+
### Crypto.equal
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
equal(Bytes left, Bytes right) returns bool uses Crypto.equal
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Compare bytes without early exit on their contents. Length remains observable.
|
|
108
|
+
|
|
109
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L18)
|
|
110
|
+
|
|
111
|
+
### Crypto.exportRsa
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
exportRsa(RsaPublicKey publicKey) returns Tuple<Bytes, Bytes> uses Crypto.exportRsa unless CryptoError
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Export unsigned big-endian modulus and exponent for an RSA JWK.
|
|
118
|
+
|
|
119
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L20)
|
|
120
|
+
|
|
121
|
+
### Crypto.importRsa
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
importRsa(Bytes modulus, Bytes exponent) returns RsaPublicKey uses Crypto.importRsa unless CryptoError
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Import canonical public RSA parameters. Keys must have 2048 to 8192 bits.
|
|
128
|
+
|
|
129
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L22)
|
|
130
|
+
|
|
131
|
+
### Crypto.passwordHash
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
passwordHash(Bytes password, Bytes salt, int iterations) returns Bytes uses Crypto.passwordHash unless CryptoError
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000.
|
|
138
|
+
|
|
139
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L24)
|
|
140
|
+
|
|
141
|
+
## GnuTlsCrypto {#api-GnuTlsCrypto}
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
GnuTlsCrypto() implements Crypto
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
GnuTLS-backed capability adapter. Its constructor performs no I/O or key generation.
|
|
148
|
+
|
|
149
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L39)
|
|
150
|
+
|
|
151
|
+
### GnuTlsCrypto.random
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
random(int size) returns Bytes unless CryptoError
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Generate unpredictable bytes with the operating-system-backed GnuTLS RNG.
|
|
158
|
+
|
|
159
|
+
Inferred capabilities: `Crypto.random`.
|
|
160
|
+
|
|
161
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L40)
|
|
162
|
+
|
|
163
|
+
### GnuTlsCrypto.sha256
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
sha256(Bytes input) returns Bytes unless CryptoError
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Hash the complete input using SHA-256.
|
|
170
|
+
|
|
171
|
+
Inferred capabilities: `Crypto.sha256`.
|
|
172
|
+
|
|
173
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L43)
|
|
174
|
+
|
|
175
|
+
### GnuTlsCrypto.generateRsa
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
generateRsa() returns RsaPrivateKey unless CryptoError
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation.
|
|
182
|
+
|
|
183
|
+
Inferred capabilities: `Crypto.generateRsa`.
|
|
184
|
+
|
|
185
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L46)
|
|
186
|
+
|
|
187
|
+
### GnuTlsCrypto.publicRsa
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
publicRsa(RsaPrivateKey key) returns RsaPublicKey unless CryptoError
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Export the corresponding public key as an opaque immutable value.
|
|
194
|
+
|
|
195
|
+
Inferred capabilities: `Crypto.publicRsa`.
|
|
196
|
+
|
|
197
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L49)
|
|
198
|
+
|
|
199
|
+
### GnuTlsCrypto.signRsa
|
|
200
|
+
|
|
201
|
+
```text
|
|
202
|
+
signRsa(RsaPrivateKey key, Bytes input) returns Bytes unless CryptoError
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256).
|
|
206
|
+
|
|
207
|
+
Inferred capabilities: `Crypto.signRsa`.
|
|
208
|
+
|
|
209
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L52)
|
|
210
|
+
|
|
211
|
+
### GnuTlsCrypto.verifyRsa
|
|
212
|
+
|
|
213
|
+
```text
|
|
214
|
+
verifyRsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool unless CryptoError
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError.
|
|
218
|
+
|
|
219
|
+
Inferred capabilities: `Crypto.verifyRsa`.
|
|
220
|
+
|
|
221
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L55)
|
|
222
|
+
|
|
223
|
+
### GnuTlsCrypto.decodeBase64url
|
|
224
|
+
|
|
225
|
+
```text
|
|
226
|
+
decodeBase64url(string input) returns Bytes unless CryptoError
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits.
|
|
230
|
+
|
|
231
|
+
Inferred capabilities: `Crypto.decodeBase64url`.
|
|
232
|
+
|
|
233
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L58)
|
|
234
|
+
|
|
235
|
+
### GnuTlsCrypto.equal
|
|
236
|
+
|
|
237
|
+
```text
|
|
238
|
+
equal(Bytes left, Bytes right) returns bool
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Compare bytes without early exit on their contents. Length remains observable.
|
|
242
|
+
|
|
243
|
+
Inferred capabilities: `Crypto.equal`.
|
|
244
|
+
|
|
245
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L61)
|
|
246
|
+
|
|
247
|
+
### GnuTlsCrypto.exportRsa
|
|
248
|
+
|
|
249
|
+
```text
|
|
250
|
+
exportRsa(RsaPublicKey publicKey) returns Tuple<Bytes, Bytes> unless CryptoError
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Export unsigned big-endian modulus and exponent for an RSA JWK.
|
|
254
|
+
|
|
255
|
+
Inferred capabilities: `Crypto.exportRsa`.
|
|
256
|
+
|
|
257
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L64)
|
|
258
|
+
|
|
259
|
+
### GnuTlsCrypto.importRsa
|
|
260
|
+
|
|
261
|
+
```text
|
|
262
|
+
importRsa(Bytes modulus, Bytes exponent) returns RsaPublicKey unless CryptoError
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Import canonical public RSA parameters. Keys must have 2048 to 8192 bits.
|
|
266
|
+
|
|
267
|
+
Inferred capabilities: `Crypto.importRsa`.
|
|
268
|
+
|
|
269
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L67)
|
|
270
|
+
|
|
271
|
+
### GnuTlsCrypto.passwordHash
|
|
272
|
+
|
|
273
|
+
```text
|
|
274
|
+
passwordHash(Bytes password, Bytes salt, int iterations) returns Bytes unless CryptoError
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000.
|
|
278
|
+
|
|
279
|
+
Inferred capabilities: `Crypto.passwordHash`.
|
|
280
|
+
|
|
281
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/contracts.aug#L70)
|
|
282
|
+
|
|
283
|
+
## JwtError {#api-JwtError}
|
|
284
|
+
|
|
285
|
+
```text
|
|
286
|
+
JwtError() implements Error
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
A failed JOSE validation reveals no unverified claims.
|
|
290
|
+
|
|
291
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L5)
|
|
292
|
+
|
|
293
|
+
## RsaJwk {#api-RsaJwk}
|
|
294
|
+
|
|
295
|
+
```text
|
|
296
|
+
record RsaJwk(string kty, string kid, string alg, string use, string n, string e)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Public signing-key metadata in RFC 7517 / RFC 7518 form.
|
|
300
|
+
|
|
301
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L10)
|
|
302
|
+
|
|
303
|
+
## RsaJwks {#api-RsaJwks}
|
|
304
|
+
|
|
305
|
+
```text
|
|
306
|
+
record RsaJwks(List<RsaJwk> keys)
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
The signature defines this public contract.
|
|
310
|
+
|
|
311
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L11)
|
|
312
|
+
|
|
313
|
+
## rsaJwk {#api-rsaJwk}
|
|
314
|
+
|
|
315
|
+
```text
|
|
316
|
+
rsaJwk(RsaPublicKey publicKey, string kid, resolve Crypto crypto) returns RsaJwk uses crypto.exportRsa unless CryptoError
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Export public parameters. Private key material never enters the JSON document.
|
|
320
|
+
|
|
321
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L14)
|
|
322
|
+
|
|
323
|
+
## importJwk {#api-importJwk}
|
|
324
|
+
|
|
325
|
+
```text
|
|
326
|
+
importJwk(RsaJwk jwk, resolve Crypto crypto) returns RsaPublicKey uses crypto.decodeBase64url and crypto.importRsa unless JwtError
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Import only an RSA signing key for RS256. The transport caller selects the trusted JWKS URL.
|
|
330
|
+
|
|
331
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L19)
|
|
332
|
+
|
|
333
|
+
## signJwt {#api-signJwt}
|
|
334
|
+
|
|
335
|
+
```text
|
|
336
|
+
signJwt(RsaPrivateKey key, Json claims, string kid, string tokenType, resolve Crypto crypto) returns string uses crypto.signRsa unless JwtError
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Sign immutable JSON with an explicit key id and token type. Claims are validated by the protocol that consumes the token.
|
|
340
|
+
|
|
341
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L30)
|
|
342
|
+
|
|
343
|
+
## verifyJwt {#api-verifyJwt}
|
|
344
|
+
|
|
345
|
+
```text
|
|
346
|
+
verifyJwt(string token, RsaPublicKey publicKey, string kid, string tokenType, resolve Crypto crypto) returns Json uses crypto.decodeBase64url and crypto.verifyRsa unless JwtError
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Verify the signature and configured algorithm, key id, and type before exposing the JSON payload. Never follows token-supplied URLs.
|
|
350
|
+
|
|
351
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/crypto/jose.aug#L43)
|
package/docs/api/io.md
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
generated: true
|
|
3
|
+
source: src/stdlib/io
|
|
4
|
+
editLink: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# august.io
|
|
8
|
+
|
|
9
|
+
Public declarations exported by this module. Import names explicitly from `august.io`. Built-in wire/value types are described in [language constructs](../language-constructs.md).
|
|
10
|
+
|
|
11
|
+
- [Console](#api-Console)
|
|
12
|
+
- [SystemConsole](#api-SystemConsole)
|
|
13
|
+
- [FileReader](#api-FileReader)
|
|
14
|
+
- [FileWriter](#api-FileWriter)
|
|
15
|
+
- [LocalFiles](#api-LocalFiles)
|
|
16
|
+
- [Arguments](#api-Arguments)
|
|
17
|
+
- [ProcessArguments](#api-ProcessArguments)
|
|
18
|
+
|
|
19
|
+
## Console {#api-Console}
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
capability Console
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Permission to write to a console, provided by an explicitly selected adapter.
|
|
26
|
+
|
|
27
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L2)
|
|
28
|
+
|
|
29
|
+
### Console.write
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
write<T>(T value) uses Console.write
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Write one line of text.
|
|
36
|
+
|
|
37
|
+
**Parameters**
|
|
38
|
+
- `value`: Text to display.
|
|
39
|
+
|
|
40
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L4)
|
|
41
|
+
|
|
42
|
+
## SystemConsole {#api-SystemConsole}
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
SystemConsole() implements Console
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The native standard-output adapter. Construction performs no output.
|
|
49
|
+
|
|
50
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L7)
|
|
51
|
+
|
|
52
|
+
### SystemConsole.write
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
write<T>(T value)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Write one line of text.
|
|
59
|
+
|
|
60
|
+
**Parameters**
|
|
61
|
+
- `value`: Text to display.
|
|
62
|
+
|
|
63
|
+
Inferred capabilities: `Console.write`.
|
|
64
|
+
|
|
65
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L8)
|
|
66
|
+
|
|
67
|
+
## FileReader {#api-FileReader}
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
capability FileReader
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
74
|
+
|
|
75
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L12)
|
|
76
|
+
|
|
77
|
+
### FileReader.read
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Read text.
|
|
84
|
+
|
|
85
|
+
**Parameters**
|
|
86
|
+
- `path`: File path.
|
|
87
|
+
|
|
88
|
+
**Throws**
|
|
89
|
+
- `FileError`: The file could not be read.
|
|
90
|
+
|
|
91
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L14)
|
|
92
|
+
|
|
93
|
+
## FileWriter {#api-FileWriter}
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
capability FileWriter
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
100
|
+
|
|
101
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L17)
|
|
102
|
+
|
|
103
|
+
### FileWriter.write
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Write text.
|
|
110
|
+
|
|
111
|
+
**Parameters**
|
|
112
|
+
- `path`: File path.
|
|
113
|
+
- `content`: Text.
|
|
114
|
+
|
|
115
|
+
**Throws**
|
|
116
|
+
- `FileError`: Writing failed.
|
|
117
|
+
|
|
118
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L19)
|
|
119
|
+
|
|
120
|
+
## LocalFiles {#api-LocalFiles}
|
|
121
|
+
|
|
122
|
+
```text
|
|
123
|
+
LocalFiles() implements FileReader, FileWriter
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Native files. Operations are explicit; construction opens no files.
|
|
127
|
+
|
|
128
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L22)
|
|
129
|
+
|
|
130
|
+
### LocalFiles.read
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
read(string path) returns string unless FileError
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Read text.
|
|
137
|
+
|
|
138
|
+
**Parameters**
|
|
139
|
+
- `path`: File path.
|
|
140
|
+
|
|
141
|
+
**Throws**
|
|
142
|
+
- `FileError`: The file could not be read.
|
|
143
|
+
|
|
144
|
+
Inferred capabilities: `FileReader.read`.
|
|
145
|
+
|
|
146
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L23)
|
|
147
|
+
|
|
148
|
+
### LocalFiles.write
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
write(string path, string content) unless FileError
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Write text.
|
|
155
|
+
|
|
156
|
+
**Parameters**
|
|
157
|
+
- `path`: File path.
|
|
158
|
+
- `content`: Text.
|
|
159
|
+
|
|
160
|
+
**Throws**
|
|
161
|
+
- `FileError`: Writing failed.
|
|
162
|
+
|
|
163
|
+
Inferred capabilities: `FileWriter.write`.
|
|
164
|
+
|
|
165
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L25)
|
|
166
|
+
|
|
167
|
+
## Arguments {#api-Arguments}
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
capability Arguments
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Read command-line input through an explicit dependency.
|
|
174
|
+
|
|
175
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L29)
|
|
176
|
+
|
|
177
|
+
### Arguments.read
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
read() returns List<string> uses Arguments.read
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The signature declares inputs, result, effects and checked errors.
|
|
184
|
+
|
|
185
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L30)
|
|
186
|
+
|
|
187
|
+
## ProcessArguments {#api-ProcessArguments}
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
ProcessArguments() implements Arguments
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Native command-line arguments.
|
|
194
|
+
|
|
195
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L33)
|
|
196
|
+
|
|
197
|
+
### ProcessArguments.read
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
read() returns List<string>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
The signature declares inputs, result, effects and checked errors.
|
|
204
|
+
|
|
205
|
+
Inferred capabilities: `Arguments.read`.
|
|
206
|
+
|
|
207
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/io/contracts.aug#L34)
|
package/docs/api/json.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
generated: true
|
|
3
|
+
source: src/stdlib/json
|
|
4
|
+
editLink: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# august.json
|
|
8
|
+
|
|
9
|
+
Public declarations exported by this module. Import names explicitly from `august.json`. Built-in wire/value types are described in [language constructs](../language-constructs.md).
|
|
10
|
+
|
|
11
|
+
- [parse](#api-parse)
|
|
12
|
+
|
|
13
|
+
## parse {#api-parse}
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
parse(string input) returns Json unless JsonError
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Parse strict UTF-8 JSON. Duplicate keys, invalid Unicode, oversized integers, and nesting beyond 64 levels raise JsonError.
|
|
20
|
+
|
|
21
|
+
[Source](https://github.com/GreenPandaStudios/augscript/blob/main/src/stdlib/json/contracts.aug#L3)
|