@greenpandastudios/aug-cli 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/THIRD_PARTY_NOTICES.md +4 -0
- package/bin/aug.mjs +12 -2
- package/docs/about.md +27 -0
- package/docs/api/crypto.md +103 -69
- package/docs/api/io.md +35 -33
- package/docs/api/json.md +3 -3
- package/docs/api/memory.md +23 -19
- package/docs/api/time.md +10 -9
- package/docs/api/web.md +33 -38
- package/docs/assets/benchmarks/execution.svg +774 -637
- package/docs/assets/benchmarks/http.svg +278 -249
- package/docs/assets/benchmarks/improvements.svg +66 -66
- package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
- package/docs/assets/benchmarks/kernels.svg +1 -0
- package/docs/assets/benchmarks/memory.svg +153 -153
- package/docs/benchmark-results.json +227089 -90363
- package/docs/compatibility.md +8 -8
- package/docs/contributing-benchmarks.md +68 -0
- package/docs/dev-containers.md +88 -0
- package/docs/dgx-consumers.json +122 -0
- package/docs/dgx-gyms.json +784 -0
- package/docs/dgx-kernels.json +1170 -0
- package/docs/dgx-performance.json +227849 -0
- package/docs/dgx-spark.md +64 -0
- package/docs/diagnostics.md +15 -5
- package/docs/docker.md +173 -12
- package/docs/editor.md +35 -0
- package/docs/example-projects.json +238 -24
- package/docs/examples/approved-design/counters.md +34 -126
- package/docs/examples/approved-design/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/approved-design/domain/app.md +13 -77
- package/docs/examples/approved-design/domain/export.md +5 -19
- package/docs/examples/approved-design/domain/models.md +4 -23
- package/docs/examples/approved-design/domain/numbers.md +24 -114
- package/docs/examples/approved-design/index.md +16 -7
- package/docs/examples/approved-design/main.md +19 -96
- package/docs/examples/benchmark/index.md +6 -5
- package/docs/examples/benchmark/main.md +7 -35
- package/docs/examples/calls-benchmark/index.md +36 -0
- package/docs/examples/calls-benchmark/main.md +78 -0
- package/docs/examples/calls-benchmark/operations.md +60 -0
- package/docs/examples/cli-args/index.md +6 -5
- package/docs/examples/cli-args/main.md +6 -31
- package/docs/examples/collections/index.md +6 -5
- package/docs/examples/collections/main.md +7 -35
- package/docs/examples/collections-benchmark/index.md +6 -5
- package/docs/examples/collections-benchmark/main.md +7 -35
- package/docs/examples/cpu-benchmark/index.md +6 -5
- package/docs/examples/cpu-benchmark/main.md +5 -24
- package/docs/examples/developer-workflow/calculator.md +39 -186
- package/docs/examples/developer-workflow/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/developer-workflow/index.md +16 -7
- package/docs/examples/developer-workflow/logging/console.md +10 -56
- package/docs/examples/developer-workflow/logging/export.md +4 -14
- package/docs/examples/developer-workflow/logging/logger.md +7 -43
- package/docs/examples/developer-workflow/main.md +17 -69
- package/docs/examples/drop/index.md +6 -5
- package/docs/examples/drop/main.md +7 -27
- package/docs/examples/drop/resource.md +7 -30
- package/docs/examples/errors/errors.md +7 -27
- package/docs/examples/errors/index.md +6 -5
- package/docs/examples/errors/main.md +7 -28
- package/docs/examples/errors-benchmark/index.md +36 -0
- package/docs/examples/errors-benchmark/main.md +92 -0
- package/docs/examples/errors-benchmark/operations.md +65 -0
- package/docs/examples/ffi/index.md +6 -5
- package/docs/examples/ffi/main.md +6 -20
- package/docs/examples/ffi/native.md +8 -34
- package/docs/examples/float-benchmark/index.md +35 -0
- package/docs/examples/float-benchmark/main.md +75 -0
- package/docs/examples/generic-di/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/generic-di/index.md +6 -5
- package/docs/examples/generic-di/main.md +9 -39
- package/docs/examples/generic-di/types.md +23 -92
- package/docs/examples/generics/index.md +6 -5
- package/docs/examples/generics/main.md +10 -47
- package/docs/examples/generics/types.md +25 -100
- package/docs/examples/hello/app/export.md +4 -12
- package/docs/examples/hello/app/greeter.md +13 -91
- package/docs/examples/hello/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/hello/index.md +17 -6
- package/docs/examples/hello/logging/console.md +10 -54
- package/docs/examples/hello/logging/export.md +4 -14
- package/docs/examples/hello/logging/logger.md +7 -45
- package/docs/examples/hello/main.md +9 -39
- package/docs/examples/http-benchmark/index.md +6 -5
- package/docs/examples/http-benchmark/main.md +6 -20
- package/docs/examples/http-benchmark/routes.md +9 -31
- package/docs/examples/index.md +63 -29
- package/docs/examples/interceptors/app.md +20 -139
- package/docs/examples/interceptors/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/interceptors/index.md +6 -5
- package/docs/examples/interceptors/interceptors.md +24 -148
- package/docs/examples/interceptors/logging.md +13 -76
- package/docs/examples/interceptors/main.md +10 -65
- package/docs/examples/json-benchmark/data.md +4 -20
- package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/json-benchmark/index.md +7 -5
- package/docs/examples/json-benchmark/main-yaml.md +20 -0
- package/docs/examples/json-benchmark/main.md +10 -49
- package/docs/examples/list-benchmark/index.md +35 -0
- package/docs/examples/list-benchmark/main.md +78 -0
- package/docs/examples/map-churn-benchmark/index.md +35 -0
- package/docs/examples/map-churn-benchmark/main.md +106 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
- package/docs/examples/native-blake3/hashing.md +93 -0
- package/docs/examples/native-blake3/index.md +38 -0
- package/docs/examples/native-blake3/main.md +73 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
- package/docs/examples/native-pytorch/index.md +38 -0
- package/docs/examples/native-pytorch/main.md +73 -0
- package/docs/examples/native-pytorch/tensors.md +123 -0
- package/docs/examples/native-sqlite/database.md +116 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
- package/docs/examples/native-sqlite/index.md +38 -0
- package/docs/examples/native-sqlite/main.md +73 -0
- package/docs/examples/native-zlib/compression.md +99 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
- package/docs/examples/native-zlib/index.md +38 -0
- package/docs/examples/native-zlib/main.md +78 -0
- package/docs/examples/new-syntax/console.md +10 -52
- package/docs/examples/new-syntax/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/new-syntax/greeter.md +13 -71
- package/docs/examples/new-syntax/index.md +6 -5
- package/docs/examples/new-syntax/logger.md +7 -43
- package/docs/examples/new-syntax/main.md +10 -53
- package/docs/examples/new-syntax/math.md +6 -24
- package/docs/examples/oidc-login/client/contracts.md +10 -61
- package/docs/examples/oidc-login/client/endpoints.md +32 -154
- package/docs/examples/oidc-login/client/export.md +5 -23
- package/docs/examples/oidc-login/client/login.md +234 -344
- package/docs/examples/oidc-login/client/logout.md +38 -143
- package/docs/examples/oidc-login/client/protocol.md +183 -304
- package/docs/examples/oidc-login/client/session.md +41 -149
- package/docs/examples/oidc-login/client/views.md +13 -58
- package/docs/examples/oidc-login/common/export.md +6 -26
- package/docs/examples/oidc-login/common/headers.md +42 -72
- package/docs/examples/oidc-login/common/keys.md +40 -164
- package/docs/examples/oidc-login/common/settings.md +24 -40
- package/docs/examples/oidc-login/common/views.md +7 -28
- package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
- package/docs/examples/oidc-login/index.md +8 -7
- package/docs/examples/oidc-login/main-yaml.md +7 -0
- package/docs/examples/oidc-login/main.md +26 -153
- package/docs/examples/oidc-login/provider/authorization.md +232 -275
- package/docs/examples/oidc-login/provider/contracts.md +24 -146
- package/docs/examples/oidc-login/provider/credentials.md +24 -57
- package/docs/examples/oidc-login/provider/discovery.md +48 -122
- package/docs/examples/oidc-login/provider/export.md +11 -37
- package/docs/examples/oidc-login/provider/token.md +159 -237
- package/docs/examples/oidc-login/provider/userinfo.md +47 -102
- package/docs/examples/oidc-login/provider/views.md +13 -53
- package/docs/examples/ownership/counter.md +17 -63
- package/docs/examples/ownership/index.md +6 -5
- package/docs/examples/ownership/main.md +7 -30
- package/docs/examples/ownership-transfer/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/ownership-transfer/index.md +6 -5
- package/docs/examples/ownership-transfer/main.md +10 -52
- package/docs/examples/ownership-transfer/resource.md +15 -67
- package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
- package/docs/examples/packages-app/index.md +7 -6
- package/docs/examples/packages-app/main.md +7 -25
- package/docs/examples/packages-math/aug-package-json.md +1 -1
- package/docs/examples/packages-math/index.md +7 -6
- package/docs/examples/packages-math/src/arithmetic.md +12 -50
- package/docs/examples/packages-math/src/export.md +4 -12
- package/docs/examples/records-benchmark/data.md +55 -0
- package/docs/examples/records-benchmark/index.md +36 -0
- package/docs/examples/records-benchmark/main.md +85 -0
- package/docs/examples/startup-benchmark/index.md +6 -5
- package/docs/examples/startup-benchmark/main.md +5 -17
- package/docs/examples/strings-benchmark/index.md +35 -0
- package/docs/examples/strings-benchmark/main.md +76 -0
- package/docs/examples/tasks-benchmark/index.md +36 -0
- package/docs/examples/tasks-benchmark/main.md +89 -0
- package/docs/examples/tasks-benchmark/operations.md +58 -0
- package/docs/examples/visibility/counter.md +19 -67
- package/docs/examples/visibility/index.md +6 -5
- package/docs/examples/visibility/main.md +7 -31
- package/docs/examples/weather-api/forecasts.md +168 -0
- package/docs/examples/weather-api/index.md +42 -0
- package/docs/examples/weather-api/main-yaml.md +21 -0
- package/docs/examples/weather-api/main.md +65 -0
- package/docs/examples.json +10 -0
- package/docs/getting-started.md +105 -2
- package/docs/grammar.md +7 -5
- package/docs/guides/change-a-module.md +64 -0
- package/docs/guides/index.md +27 -0
- package/docs/gym-results.json +784 -0
- package/docs/implementation-map.md +6 -0
- package/docs/index.md +51 -29
- package/docs/kernel-results.json +1170 -0
- package/docs/language-conformance.md +7 -1
- package/docs/language-constructs.md +30 -22
- package/docs/language-design-audit.md +1 -1
- package/docs/learn/data-and-errors.md +77 -0
- package/docs/learn/index.md +30 -0
- package/docs/learn/modules-and-dependencies.md +73 -0
- package/docs/learn/state-and-tests.md +71 -0
- package/docs/learn/values-and-functions.md +62 -0
- package/docs/lesson-failures.json +8 -0
- package/docs/maintaining-docs.md +16 -4
- package/docs/native-implementation.md +276 -0
- package/docs/native-interop-llvm-plan.md +342 -0
- package/docs/native-package-examples.md +684 -0
- package/docs/native-packages.md +179 -0
- package/docs/packages.md +72 -126
- package/docs/performance.md +61 -68
- package/docs/production-readiness.md +16 -5
- package/docs/public/downloads/approved-design.zip +0 -0
- package/docs/public/downloads/benchmark.zip +0 -0
- package/docs/public/downloads/calls-benchmark.zip +0 -0
- package/docs/public/downloads/cli-args.zip +0 -0
- package/docs/public/downloads/collections-benchmark.zip +0 -0
- package/docs/public/downloads/collections.zip +0 -0
- package/docs/public/downloads/cpu-benchmark.zip +0 -0
- package/docs/public/downloads/developer-workflow.zip +0 -0
- package/docs/public/downloads/drop.zip +0 -0
- package/docs/public/downloads/errors-benchmark.zip +0 -0
- package/docs/public/downloads/errors.zip +0 -0
- package/docs/public/downloads/ffi.zip +0 -0
- package/docs/public/downloads/float-benchmark.zip +0 -0
- package/docs/public/downloads/generic-di.zip +0 -0
- package/docs/public/downloads/generics.zip +0 -0
- package/docs/public/downloads/hello.zip +0 -0
- package/docs/public/downloads/http-benchmark.zip +0 -0
- package/docs/public/downloads/interceptors.zip +0 -0
- package/docs/public/downloads/json-benchmark.zip +0 -0
- package/docs/public/downloads/list-benchmark.zip +0 -0
- package/docs/public/downloads/map-churn-benchmark.zip +0 -0
- package/docs/public/downloads/native-blake3.zip +0 -0
- package/docs/public/downloads/native-pytorch.zip +0 -0
- package/docs/public/downloads/native-sqlite.zip +0 -0
- package/docs/public/downloads/native-zlib.zip +0 -0
- package/docs/public/downloads/new-syntax.zip +0 -0
- package/docs/public/downloads/oidc-login.zip +0 -0
- package/docs/public/downloads/ownership-transfer.zip +0 -0
- package/docs/public/downloads/ownership.zip +0 -0
- package/docs/public/downloads/packages-app.zip +0 -0
- package/docs/public/downloads/packages-math.zip +0 -0
- package/docs/public/downloads/records-benchmark.zip +0 -0
- package/docs/public/downloads/startup-benchmark.zip +0 -0
- package/docs/public/downloads/strings-benchmark.zip +0 -0
- package/docs/public/downloads/tasks-benchmark.zip +0 -0
- package/docs/public/downloads/visibility.zip +0 -0
- package/docs/public/downloads/weather-api.zip +0 -0
- package/docs/qualification-results.md +66 -0
- package/docs/reference.md +47 -17
- package/docs/releasing.md +105 -16
- package/docs/research/code-to-natural-language.md +108 -0
- package/docs/research/ecosystem-workflow.md +41 -0
- package/docs/research/libtorch-native-qualification.md +115 -0
- package/docs/research/native-interop-llvm.md +197 -0
- package/docs/research/qualification-methods.md +15 -0
- package/docs/research/wiki-editorial-design.md +71 -0
- package/docs/roadmap.md +2 -1
- package/docs/safety-gyms.md +41 -0
- package/docs/specifications.md +27 -11
- package/docs/testing.md +19 -5
- package/docs/tooling.md +36 -22
- package/docs/weather-api.md +65 -0
- package/docs/web-library-gaps.md +1 -1
- package/docs/web.md +54 -18
- package/docs/writing-docs.md +49 -0
- package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/approved-design/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/approved-design/.aug-spec/manifest.json +3 -3
- package/examples/approved-design/counters.aug +5 -4
- package/examples/approved-design/counters.aug.md +25 -132
- package/examples/approved-design/domain/app.aug +2 -1
- package/examples/approved-design/domain/app.aug.md +10 -80
- package/examples/approved-design/domain/export.aug +1 -0
- package/examples/approved-design/domain/export.aug.md +4 -20
- package/examples/approved-design/domain/models.aug +1 -0
- package/examples/approved-design/domain/models.aug.md +3 -25
- package/examples/approved-design/domain/numbers.aug +3 -2
- package/examples/approved-design/domain/numbers.aug.md +19 -116
- package/examples/approved-design/main.aug +1 -0
- package/examples/approved-design/main.aug.md +12 -95
- package/examples/benchmark/.aug-spec/manifest.json +1 -1
- package/examples/benchmark/main.aug +1 -0
- package/examples/benchmark/main.aug.md +6 -36
- package/examples/cli-args/.aug-spec/manifest.json +1 -1
- package/examples/cli-args/main.aug +1 -0
- package/examples/cli-args/main.aug.md +5 -32
- package/examples/collections/.aug-spec/manifest.json +1 -1
- package/examples/collections/main.aug +1 -0
- package/examples/collections/main.aug.md +6 -36
- package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/developer-workflow/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
- package/examples/developer-workflow/calculator.aug +3 -2
- package/examples/developer-workflow/calculator.aug.md +28 -189
- package/examples/developer-workflow/logging/console.aug +2 -1
- package/examples/developer-workflow/logging/console.aug.md +7 -57
- package/examples/developer-workflow/logging/export.aug +1 -0
- package/examples/developer-workflow/logging/export.aug.md +3 -15
- package/examples/developer-workflow/logging/logger.aug +1 -0
- package/examples/developer-workflow/logging/logger.aug.md +6 -46
- package/examples/developer-workflow/main.aug +1 -0
- package/examples/developer-workflow/main.aug.md +10 -68
- package/examples/drop/.aug-spec/manifest.json +1 -1
- package/examples/drop/main.aug +1 -0
- package/examples/drop/main.aug.md +6 -28
- package/examples/drop/resource.aug +1 -0
- package/examples/drop/resource.aug.md +6 -34
- package/examples/errors/.aug-spec/manifest.json +1 -1
- package/examples/errors/errors.aug +2 -1
- package/examples/errors/errors.aug.md +4 -27
- package/examples/errors/main.aug +1 -0
- package/examples/errors/main.aug.md +6 -29
- package/examples/ffi/.aug-spec/manifest.json +1 -1
- package/examples/ffi/main.aug +1 -0
- package/examples/ffi/main.aug.md +5 -21
- package/examples/ffi/native.aug +2 -1
- package/examples/ffi/native.aug.md +5 -35
- package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/generic-di/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/generic-di/.aug-spec/manifest.json +3 -3
- package/examples/generic-di/main.aug +1 -0
- package/examples/generic-di/main.aug.md +8 -40
- package/examples/generic-di/types.aug +3 -2
- package/examples/generic-di/types.aug.md +18 -97
- package/examples/generics/.aug-spec/manifest.json +1 -1
- package/examples/generics/main.aug +1 -0
- package/examples/generics/main.aug.md +9 -48
- package/examples/generics/types.aug +4 -3
- package/examples/generics/types.aug.md +18 -104
- package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/hello/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/hello/.aug-spec/manifest.json +3 -3
- package/examples/hello/app/export.aug +1 -0
- package/examples/hello/app/export.aug.md +3 -13
- package/examples/hello/app/greeter.aug +2 -1
- package/examples/hello/app/greeter.aug.md +10 -94
- package/examples/hello/logging/console.aug +2 -1
- package/examples/hello/logging/console.aug.md +7 -55
- package/examples/hello/logging/export.aug +1 -0
- package/examples/hello/logging/export.aug.md +3 -15
- package/examples/hello/logging/logger.aug +1 -0
- package/examples/hello/logging/logger.aug.md +6 -48
- package/examples/hello/main.aug +1 -0
- package/examples/hello/main.aug.md +8 -40
- package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/interceptors/.aug-spec/manifest.json +3 -3
- package/examples/interceptors/app.aug +3 -2
- package/examples/interceptors/app.aug.md +15 -141
- package/examples/interceptors/interceptors.aug +3 -2
- package/examples/interceptors/interceptors.aug.md +19 -152
- package/examples/interceptors/logging.aug +2 -1
- package/examples/interceptors/logging.aug.md +10 -79
- package/examples/interceptors/main.aug +1 -0
- package/examples/interceptors/main.aug.md +9 -66
- package/examples/native-blake3/.aug-spec/manifest.json +16 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
- package/examples/native-blake3/AGENTS.md +5 -0
- package/examples/native-blake3/aug.lock.json +253 -0
- package/examples/native-blake3/hashing.aug +11 -0
- package/examples/native-blake3/hashing.aug.md +25 -0
- package/examples/native-blake3/main.aug +8 -0
- package/examples/native-blake3/main.aug.md +13 -0
- package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
- package/examples/native-pytorch/AGENTS.md +5 -0
- package/examples/native-pytorch/aug.lock.json +309 -0
- package/examples/native-pytorch/main.aug +8 -0
- package/examples/native-pytorch/main.aug.md +13 -0
- package/examples/native-pytorch/tensors.aug +23 -0
- package/examples/native-pytorch/tensors.aug.md +35 -0
- package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
- package/examples/native-sqlite/AGENTS.md +5 -0
- package/examples/native-sqlite/aug.lock.json +236 -0
- package/examples/native-sqlite/database.aug +15 -0
- package/examples/native-sqlite/database.aug.md +27 -0
- package/examples/native-sqlite/main.aug +8 -0
- package/examples/native-sqlite/main.aug.md +13 -0
- package/examples/native-zlib/.aug-spec/manifest.json +16 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
- package/examples/native-zlib/AGENTS.md +5 -0
- package/examples/native-zlib/aug.lock.json +236 -0
- package/examples/native-zlib/compression.aug +15 -0
- package/examples/native-zlib/compression.aug.md +27 -0
- package/examples/native-zlib/main.aug +10 -0
- package/examples/native-zlib/main.aug.md +13 -0
- package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/new-syntax/.aug-spec/manifest.json +3 -3
- package/examples/new-syntax/console.aug +2 -1
- package/examples/new-syntax/console.aug.md +7 -53
- package/examples/new-syntax/greeter.aug +2 -1
- package/examples/new-syntax/greeter.aug.md +10 -74
- package/examples/new-syntax/logger.aug +1 -0
- package/examples/new-syntax/logger.aug.md +6 -46
- package/examples/new-syntax/main.aug +1 -0
- package/examples/new-syntax/main.aug.md +9 -54
- package/examples/new-syntax/math.aug +2 -1
- package/examples/new-syntax/math.aug.md +3 -24
- package/examples/oidc-login/.aug-spec/manifest.json +13 -13
- package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
- package/examples/oidc-login/aug.lock.json +100 -0
- package/examples/oidc-login/client/contracts.aug +1 -0
- package/examples/oidc-login/client/contracts.aug.md +9 -66
- package/examples/oidc-login/client/endpoints.aug +6 -5
- package/examples/oidc-login/client/endpoints.aug.md +13 -145
- package/examples/oidc-login/client/export.aug +1 -0
- package/examples/oidc-login/client/export.aug.md +4 -24
- package/examples/oidc-login/client/login.aug +7 -6
- package/examples/oidc-login/client/login.aug.md +25 -303
- package/examples/oidc-login/client/logout.aug +5 -4
- package/examples/oidc-login/client/logout.aug.md +13 -135
- package/examples/oidc-login/client/protocol.aug +7 -6
- package/examples/oidc-login/client/protocol.aug.md +36 -283
- package/examples/oidc-login/client/session.aug +5 -4
- package/examples/oidc-login/client/session.aug.md +12 -139
- package/examples/oidc-login/client/views.aug +3 -2
- package/examples/oidc-login/client/views.aug.md +8 -57
- package/examples/oidc-login/common/export.aug +1 -0
- package/examples/oidc-login/common/export.aug.md +5 -27
- package/examples/oidc-login/common/headers.aug +4 -3
- package/examples/oidc-login/common/headers.aug.md +9 -67
- package/examples/oidc-login/common/keys.aug +6 -5
- package/examples/oidc-login/common/keys.aug.md +29 -165
- package/examples/oidc-login/common/settings.aug +2 -1
- package/examples/oidc-login/common/settings.aug.md +5 -39
- package/examples/oidc-login/common/views.aug +2 -1
- package/examples/oidc-login/common/views.aug.md +4 -28
- package/examples/oidc-login/main.aug +6 -16
- package/examples/oidc-login/main.aug.md +17 -146
- package/examples/oidc-login/main.yaml +7 -0
- package/examples/oidc-login/provider/authorization.aug +7 -6
- package/examples/oidc-login/provider/authorization.aug.md +23 -238
- package/examples/oidc-login/provider/contracts.aug +1 -0
- package/examples/oidc-login/provider/contracts.aug.md +23 -158
- package/examples/oidc-login/provider/credentials.aug +3 -2
- package/examples/oidc-login/provider/credentials.aug.md +9 -53
- package/examples/oidc-login/provider/discovery.aug +4 -3
- package/examples/oidc-login/provider/discovery.aug.md +11 -118
- package/examples/oidc-login/provider/export.aug +1 -0
- package/examples/oidc-login/provider/export.aug.md +6 -34
- package/examples/oidc-login/provider/token.aug +6 -5
- package/examples/oidc-login/provider/token.aug.md +16 -204
- package/examples/oidc-login/provider/userinfo.aug +4 -3
- package/examples/oidc-login/provider/userinfo.aug.md +10 -92
- package/examples/oidc-login/provider/views.aug +3 -2
- package/examples/oidc-login/provider/views.aug.md +8 -52
- package/examples/ownership/.aug-spec/manifest.json +1 -1
- package/examples/ownership/counter.aug +3 -2
- package/examples/ownership/counter.aug.md +12 -66
- package/examples/ownership/main.aug +1 -0
- package/examples/ownership/main.aug.md +6 -31
- package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
- package/examples/ownership-transfer/main.aug +1 -0
- package/examples/ownership-transfer/main.aug.md +9 -53
- package/examples/ownership-transfer/resource.aug +2 -1
- package/examples/ownership-transfer/resource.aug.md +12 -71
- package/examples/packages/app/.aug-spec/manifest.json +1 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
- package/examples/packages/app/main.aug +1 -0
- package/examples/packages/app/main.aug.md +6 -26
- package/examples/packages/math/.aug-spec/manifest.json +1 -1
- package/examples/packages/math/aug-package.json +1 -1
- package/examples/packages/math/src/arithmetic.aug +2 -1
- package/examples/packages/math/src/arithmetic.aug.md +9 -51
- package/examples/packages/math/src/export.aug +1 -0
- package/examples/packages/math/src/export.aug.md +3 -13
- package/examples/visibility/.aug-spec/manifest.json +1 -1
- package/examples/visibility/counter.aug +4 -3
- package/examples/visibility/counter.aug.md +12 -68
- package/examples/visibility/main.aug +1 -0
- package/examples/visibility/main.aug.md +6 -32
- package/examples/weather-api/.aug-spec/manifest.json +8 -0
- package/examples/weather-api/AGENTS.md +17 -0
- package/examples/weather-api/README.md +19 -0
- package/examples/weather-api/forecasts.aug +47 -0
- package/examples/weather-api/forecasts.aug.md +32 -0
- package/examples/weather-api/main.aug +4 -0
- package/examples/weather-api/main.aug.md +15 -0
- package/examples/weather-api/main.yaml +5 -0
- package/examples/weather-api/weather.http +5 -0
- package/native/compiler-packs.json +43 -0
- package/package.json +4 -4
- package/runtime/aug_http.c +48 -21
- package/runtime/aug_http_ir.c +30 -0
- package/runtime/aug_http_ir.h +18 -0
- package/runtime/aug_ir.c +209 -0
- package/runtime/aug_ir.h +89 -0
- package/runtime/aug_json.c +6 -1
- package/runtime/aug_runtime.c +82 -16
- package/runtime/aug_runtime.h +16 -2
- package/runtime/aug_tasks.c +38 -7
- package/runtime/aug_values.c +12 -6
- package/scripts/bootstrap-native.mjs +184 -106
- package/scripts/native-setup.mjs +98 -0
- package/scripts/native-toolchain.mjs +28 -0
- package/src/ast.js +1 -1
- package/src/builtins.js +1 -1
- package/src/checker.js +369 -100
- package/src/cli.js +198 -26
- package/src/codegen.js +32 -7
- package/src/compiler-packs.js +66 -0
- package/src/config.js +3 -3
- package/src/contracts.js +10 -0
- package/src/editor.js +86 -22
- package/src/fixes.js +90 -2
- package/src/formatter.js +23 -10
- package/src/git-http.js +137 -0
- package/src/git-packages.js +118 -0
- package/src/help.js +33 -24
- package/src/http-contracts.js +14 -0
- package/src/http-policies.js +5 -5
- package/src/ir-types.js +5 -0
- package/src/ir-verify.js +277 -0
- package/src/ir.js +962 -0
- package/src/libraries.js +1 -1
- package/src/llvm-debug.js +101 -0
- package/src/llvm-native.js +152 -0
- package/src/llvm-platform.js +20 -0
- package/src/llvm.js +781 -0
- package/src/lsp.js +14 -5
- package/src/native-artifacts.js +207 -0
- package/src/native-bindings.js +189 -0
- package/src/native-contracts.js +295 -0
- package/src/native-declarations.js +68 -0
- package/src/native-facts.js +63 -0
- package/src/native.js +19 -13
- package/src/navigation.js +4 -2
- package/src/openapi.js +5 -4
- package/src/package-locking.js +88 -0
- package/src/package-manager.js +267 -68
- package/src/parser.js +32 -6
- package/src/policies.js +3 -3
- package/src/project-init.js +78 -4
- package/src/project.js +11 -9
- package/src/runtime-abi.js +23 -0
- package/src/runtime-adapters.js +18 -0
- package/src/schemas.js +24 -17
- package/src/semantic.js +54 -5
- package/src/snippets.js +60 -0
- package/src/spec-hints.js +56 -0
- package/src/spec-tree.js +241 -0
- package/src/spec.js +669 -305
- package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
- package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
- package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
- package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
- package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
|
@@ -1,49 +1,17 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `main.aug`
|
|
3
|
+
# `main.aug`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Providers
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
`Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger). The same instance is shared.
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
- Run 2 other startup steps in source order.
|
|
9
|
+
`app` is provided by [`Greeter`](app/greeter.aug.md#symbol-Greeter). The same instance is shared. It requires bindings for `Logger`.
|
|
11
10
|
|
|
12
|
-
##
|
|
11
|
+
## Startup
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
It sets `greeter` to the instance provided for `app`. It passes `"AugScript"` to [`greeter.greet`](app/greeter.aug.md#symbol-Greeter.greet), using injected `Console`.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
- Provide [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
|
|
18
|
-
- Provide [`Greeter`](app/greeter.aug.md#symbol-Greeter) when `app` is requested. Reuse one instance. Required dependencies: `Logger`.
|
|
15
|
+
## Dependencies
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- Set `greeter` to the instance provided for `app`.
|
|
23
|
-
- Call [`Greeter.greet`](app/greeter.aug.md#symbol-Greeter.greet) on `greeter` with `name` = `"AugScript"`; inject `console` from `Console`.
|
|
24
|
-
|
|
25
|
-
## Dependencies used by this file
|
|
26
|
-
|
|
27
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
28
|
-
|
|
29
|
-
### [`SystemConsole`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-SystemConsole)
|
|
30
|
-
|
|
31
|
-
Class from `august.io`.
|
|
32
|
-
|
|
33
|
-
Used as a type or provider.
|
|
34
|
-
|
|
35
|
-
### [`Greeter`](app/greeter.aug.md#symbol-Greeter)
|
|
36
|
-
|
|
37
|
-
Class from `app`.
|
|
38
|
-
|
|
39
|
-
- [`Greeter.greet`](app/greeter.aug.md#symbol-Greeter.greet) (`name`: `string`) → `void`; inject `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
40
|
-
|
|
41
|
-
### [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger)
|
|
42
|
-
|
|
43
|
-
Class from `logging`.
|
|
44
|
-
|
|
45
|
-
Used as a type or provider.
|
|
46
|
-
|
|
47
|
-
## Shared language rules
|
|
48
|
-
|
|
49
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
17
|
+
It uses [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app/greeter.aug.md#symbol-Greeter) ([`greet`](app/greeter.aug.md#symbol-Greeter.greet)) from `app`. It uses [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger) from `logging`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Generated by aug spec. This is a copy of the installed dependency source.
|
|
2
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
3
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
4
|
+
capability Console:
|
|
5
|
+
/** Write one line of text. @param value Text to display. */
|
|
6
|
+
write<T>(T value) uses Console.write
|
|
7
|
+
|
|
8
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
9
|
+
SystemConsole() implements Console:
|
|
10
|
+
write<T>(T value):
|
|
11
|
+
print(value=value)
|
|
12
|
+
|
|
13
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
14
|
+
capability FileReader:
|
|
15
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
16
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
17
|
+
|
|
18
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
19
|
+
capability FileWriter:
|
|
20
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
21
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
22
|
+
|
|
23
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
24
|
+
LocalFiles() implements FileReader, FileWriter:
|
|
25
|
+
read(string path) :
|
|
26
|
+
return read_file(path=path)
|
|
27
|
+
write(string path, string content) :
|
|
28
|
+
write_file(path=path, content=content)
|
|
29
|
+
|
|
30
|
+
/** Read command-line input through an explicit dependency. */
|
|
31
|
+
capability Arguments:
|
|
32
|
+
read() returns List<string> uses Arguments.read
|
|
33
|
+
|
|
34
|
+
/** Native command-line arguments. */
|
|
35
|
+
ProcessArguments() implements Arguments:
|
|
36
|
+
read() :
|
|
37
|
+
return arguments()
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
|
+
|
|
3
|
+
# `contracts.aug`
|
|
4
|
+
|
|
5
|
+
<a id="symbol-Console"></a>
|
|
6
|
+
## `Console` · capability interface · [source](contracts.aug#L4)
|
|
7
|
+
|
|
8
|
+
Permission to write to a console, provided by an explicitly selected adapter.
|
|
9
|
+
|
|
10
|
+
<a id="symbol-Console.write"></a>
|
|
11
|
+
### `Console.write` · [source](contracts.aug#L6)
|
|
12
|
+
|
|
13
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It can call [`Console.write`](contracts.aug.md#symbol-Console.write).
|
|
14
|
+
|
|
15
|
+
<a id="symbol-SystemConsole"></a>
|
|
16
|
+
## `SystemConsole` · class · [source](contracts.aug#L9)
|
|
17
|
+
|
|
18
|
+
The native standard-output adapter. Construction performs no output. It implements [`Console`](contracts.aug.md#symbol-Console).
|
|
19
|
+
|
|
20
|
+
<a id="symbol-SystemConsole.write"></a>
|
|
21
|
+
### `SystemConsole.write` · [source](contracts.aug#L10)
|
|
22
|
+
|
|
23
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It prints `value`.
|
|
24
|
+
|
|
25
|
+
<a id="symbol-FileReader"></a>
|
|
26
|
+
## `FileReader` · capability interface · [source](contracts.aug#L14)
|
|
27
|
+
|
|
28
|
+
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
29
|
+
|
|
30
|
+
<a id="symbol-FileReader.read"></a>
|
|
31
|
+
### `FileReader.read` · [source](contracts.aug#L16)
|
|
32
|
+
|
|
33
|
+
Read text. It takes `path` as a string (File path).
|
|
34
|
+
|
|
35
|
+
It returns `string`. It can call [`FileReader.read`](contracts.aug.md#symbol-FileReader.read). Failures can raise `FileError` (The file could not be read).
|
|
36
|
+
|
|
37
|
+
<a id="symbol-FileWriter"></a>
|
|
38
|
+
## `FileWriter` · capability interface · [source](contracts.aug#L19)
|
|
39
|
+
|
|
40
|
+
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
41
|
+
|
|
42
|
+
<a id="symbol-FileWriter.write"></a>
|
|
43
|
+
### `FileWriter.write` · [source](contracts.aug#L21)
|
|
44
|
+
|
|
45
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). It can call [`FileWriter.write`](contracts.aug.md#symbol-FileWriter.write). Failures can raise `FileError` (Writing failed).
|
|
46
|
+
|
|
47
|
+
<a id="symbol-LocalFiles"></a>
|
|
48
|
+
## `LocalFiles` · class · [source](contracts.aug#L24)
|
|
49
|
+
|
|
50
|
+
Native files. Operations are explicit; construction opens no files. It implements [`FileReader`](contracts.aug.md#symbol-FileReader) and [`FileWriter`](contracts.aug.md#symbol-FileWriter).
|
|
51
|
+
|
|
52
|
+
<a id="symbol-LocalFiles.read"></a>
|
|
53
|
+
### `LocalFiles.read` · [source](contracts.aug#L25)
|
|
54
|
+
|
|
55
|
+
Read text. It takes `path` as a string (File path). Failures can raise `FileError` (The file could not be read). It returns `read_file` with `path`.
|
|
56
|
+
|
|
57
|
+
<a id="symbol-LocalFiles.write"></a>
|
|
58
|
+
### `LocalFiles.write` · [source](contracts.aug#L27)
|
|
59
|
+
|
|
60
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). Failures can raise `FileError` (Writing failed). It calls `write_file` with `path` and `content`.
|
|
61
|
+
|
|
62
|
+
<a id="symbol-Arguments"></a>
|
|
63
|
+
## `Arguments` · capability interface · [source](contracts.aug#L31)
|
|
64
|
+
|
|
65
|
+
Read command-line input through an explicit dependency.
|
|
66
|
+
|
|
67
|
+
<a id="symbol-Arguments.read"></a>
|
|
68
|
+
### `Arguments.read` · [source](contracts.aug#L32)
|
|
69
|
+
|
|
70
|
+
It returns `List<string>`. It can call [`Arguments.read`](contracts.aug.md#symbol-Arguments.read).
|
|
71
|
+
|
|
72
|
+
<a id="symbol-ProcessArguments"></a>
|
|
73
|
+
## `ProcessArguments` · class · [source](contracts.aug#L35)
|
|
74
|
+
|
|
75
|
+
Native command-line arguments. It implements [`Arguments`](contracts.aug.md#symbol-Arguments).
|
|
76
|
+
|
|
77
|
+
<a id="symbol-ProcessArguments.read"></a>
|
|
78
|
+
### `ProcessArguments.read` · [source](contracts.aug#L36)
|
|
79
|
+
|
|
80
|
+
It returns `arguments`.
|
|
81
|
+
|
|
82
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": 1,
|
|
3
3
|
"files": [
|
|
4
|
-
".aug-spec/august/0.
|
|
5
|
-
".aug-spec/august/0.
|
|
4
|
+
".aug-spec/august/0.21.0/io/contracts.aug",
|
|
5
|
+
".aug-spec/august/0.21.0/io/contracts.aug.md",
|
|
6
6
|
"app.aug.md",
|
|
7
7
|
"interceptors.aug.md",
|
|
8
8
|
"logging.aug.md",
|
|
9
9
|
"main.aug.md"
|
|
10
10
|
],
|
|
11
|
-
"digest": "
|
|
11
|
+
"digest": "7585a80829aa29023840432758d4550c3e7411b89f8e2eab88cdeabb2af935fb"
|
|
12
12
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
1
2
|
import Console from august.io
|
|
2
3
|
import Logger from logging
|
|
3
4
|
import Audit from interceptors
|
|
@@ -11,7 +12,7 @@ import AddOne from interceptors
|
|
|
11
12
|
[Audit]
|
|
12
13
|
[Positive(y=x)]
|
|
13
14
|
[AddOne(y=x)]
|
|
14
|
-
describe(resolve Logger logger, resolve Console console, int x, string label)
|
|
15
|
+
describe(resolve Logger logger, resolve Console console, int x, string label) {
|
|
15
16
|
console.write(value=x)
|
|
16
17
|
return label
|
|
17
18
|
}
|
|
@@ -22,7 +23,7 @@ interface IGreeter {
|
|
|
22
23
|
Greeter(resolve Logger logger to _logger, string name) implements IGreeter {
|
|
23
24
|
/** Method annotations wrap each method invocation separately. */
|
|
24
25
|
[Audit]
|
|
25
|
-
greet(resolve Logger logger, resolve Console console)
|
|
26
|
+
greet(resolve Logger logger, resolve Console console) {
|
|
26
27
|
return "Hello, " + name + "!"
|
|
27
28
|
}
|
|
28
29
|
}
|
|
@@ -1,162 +1,36 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `app.aug`
|
|
4
|
-
|
|
5
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
6
|
-
|
|
7
|
-
## In this file
|
|
8
|
-
|
|
9
|
-
- [`describe`](app.aug.md#symbol-describe) is a function returning `string`.
|
|
10
|
-
- [`IGreeter`](app.aug.md#symbol-IGreeter) is an interface.
|
|
11
|
-
- [`Greeter`](app.aug.md#symbol-Greeter) is a class implementing `IGreeter`.
|
|
3
|
+
# `app.aug`
|
|
12
4
|
|
|
13
5
|
<a id="symbol-describe"></a>
|
|
6
|
+
## `describe` · [source](app.aug#L15)
|
|
14
7
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
[source](app.aug#L14)
|
|
18
|
-
|
|
19
|
-
**Inputs**
|
|
20
|
-
|
|
21
|
-
- `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it.
|
|
22
|
-
- `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
|
|
23
|
-
- `x` (`int`) — required labeled input.
|
|
24
|
-
- `label` (`string`) — required labeled input.
|
|
25
|
-
|
|
26
|
-
Returns: `string`.
|
|
27
|
-
|
|
28
|
-
Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
29
|
-
|
|
30
|
-
Can fail with `ValidationError`. Callers must catch or propagate these errors.
|
|
31
|
-
|
|
32
|
-
**Interceptors, in execution order**
|
|
33
|
-
|
|
34
|
-
1. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
|
|
35
|
-
2. Call [`Positive.around`](interceptors.aug.md#symbol-Positive.around). It can call the next layer or finish with its own result or failure. Map `x` to `y`. Unselected inputs pass through.
|
|
36
|
-
3. Call [`AddOne.around`](interceptors.aug.md#symbol-AddOne.around). It can call the next layer or finish with its own result or failure. Map `x` to `y`. Unselected inputs pass through.
|
|
37
|
-
|
|
38
|
-
The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
|
|
39
|
-
|
|
40
|
-
**What it does**
|
|
41
|
-
|
|
42
|
-
- Call [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write) on `console` with `value` = `x`.
|
|
43
|
-
- Return `label`.
|
|
44
|
-
|
|
45
|
-
**Author documentation**
|
|
8
|
+
Prints a number and returns its label. It takes `x` as an integer (the numeric input, validated and incremented by the chain) and `label` as a string (Text forwarded through each layer unchanged). It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. Failures can raise `ValidationError`.
|
|
46
9
|
|
|
47
|
-
|
|
10
|
+
Layers run in the declared order. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around). Call [`Positive.around`](interceptors.aug.md#symbol-Positive.around). Map `x` to `y`. Call [`AddOne.around`](interceptors.aug.md#symbol-AddOne.around). Map `x` to `y`.
|
|
48
11
|
|
|
49
|
-
|
|
50
|
-
- `x`: The numeric input, validated and incremented by the chain.
|
|
51
|
-
- `label`: Text forwarded through each layer unchanged.
|
|
12
|
+
It passes `x` to [`console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write). It returns `label`.
|
|
52
13
|
|
|
53
14
|
<a id="symbol-IGreeter"></a>
|
|
54
|
-
|
|
55
|
-
## `IGreeter`
|
|
56
|
-
|
|
57
|
-
[source](app.aug#L18)
|
|
58
|
-
|
|
59
|
-
Interface.
|
|
15
|
+
## `IGreeter` · interface · [source](app.aug#L19)
|
|
60
16
|
|
|
61
17
|
<a id="symbol-IGreeter.greet"></a>
|
|
18
|
+
### `IGreeter.greet` · [source](app.aug#L20)
|
|
62
19
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
[source](app.aug#L19)
|
|
66
|
-
|
|
67
|
-
**Inputs**
|
|
68
|
-
|
|
69
|
-
- `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it.
|
|
70
|
-
- `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
|
|
71
|
-
|
|
72
|
-
Returns: `string`.
|
|
73
|
-
|
|
74
|
-
Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
75
|
-
|
|
76
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
20
|
+
It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `string`. It can call [`Console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
|
|
77
21
|
|
|
78
22
|
<a id="symbol-Greeter"></a>
|
|
23
|
+
## `Greeter` · class · [source](app.aug#L23)
|
|
79
24
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
[source](app.aug#L22)
|
|
83
|
-
|
|
84
|
-
Behavioral class.
|
|
85
|
-
|
|
86
|
-
Satisfies [`IGreeter`](app.aug.md#symbol-IGreeter).
|
|
87
|
-
|
|
88
|
-
**Author documentation**
|
|
89
|
-
|
|
90
|
-
Construction stores its inputs; startup is visible in the greet call.
|
|
91
|
-
|
|
92
|
-
**Inputs**
|
|
93
|
-
|
|
94
|
-
- `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it — stored as `_logger` (private) and read-only after initialization.
|
|
95
|
-
- `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
|
|
25
|
+
Construction stores its inputs; startup is visible in the greet call. It implements [`IGreeter`](app.aug.md#symbol-IGreeter). It takes `name` as a string, kept read-only. It gets `_logger` ([`Logger`](logging.aug.md#symbol-Logger)), kept read-only and private as `_logger` from dependency injection.
|
|
96
26
|
|
|
97
27
|
<a id="symbol-Greeter.greet"></a>
|
|
28
|
+
### `Greeter.greet` · [source](app.aug#L26)
|
|
98
29
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
[source](app.aug#L25)
|
|
102
|
-
|
|
103
|
-
**Inputs**
|
|
104
|
-
|
|
105
|
-
- `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it.
|
|
106
|
-
- `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
|
|
107
|
-
|
|
108
|
-
Returns: `string`.
|
|
109
|
-
|
|
110
|
-
Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
111
|
-
|
|
112
|
-
**Interceptors, in execution order**
|
|
113
|
-
|
|
114
|
-
1. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
|
|
115
|
-
|
|
116
|
-
The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
|
|
117
|
-
|
|
118
|
-
**What it does**
|
|
119
|
-
|
|
120
|
-
- Return text formed by joining `"Hello, "`, `name`, `"!"` in order.
|
|
121
|
-
|
|
122
|
-
**Author documentation**
|
|
123
|
-
|
|
124
|
-
Method annotations wrap each method invocation separately.
|
|
125
|
-
|
|
126
|
-
## Dependencies used by this file
|
|
127
|
-
|
|
128
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
129
|
-
|
|
130
|
-
### [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)
|
|
131
|
-
|
|
132
|
-
Capability interface from `august.io`.
|
|
133
|
-
|
|
134
|
-
- [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
135
|
-
|
|
136
|
-
### [`AddOne`](interceptors.aug.md#symbol-AddOne)
|
|
137
|
-
|
|
138
|
-
Interceptor from `interceptors`.
|
|
139
|
-
|
|
140
|
-
- [`AddOne.around`](interceptors.aug.md#symbol-AddOne.around) (`y`: `int`) → `T`.
|
|
141
|
-
|
|
142
|
-
### [`Audit`](interceptors.aug.md#symbol-Audit)
|
|
143
|
-
|
|
144
|
-
Interceptor from `interceptors`.
|
|
145
|
-
|
|
146
|
-
- [`Audit.around`](interceptors.aug.md#symbol-Audit.around) (no caller inputs) → `T`; inject `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
147
|
-
|
|
148
|
-
### [`Positive`](interceptors.aug.md#symbol-Positive)
|
|
149
|
-
|
|
150
|
-
Interceptor from `interceptors`.
|
|
151
|
-
|
|
152
|
-
- [`Positive.around`](interceptors.aug.md#symbol-Positive.around) (`y`: `int`) → `T`; can fail with `ValidationError`.
|
|
153
|
-
|
|
154
|
-
### [`Logger`](logging.aug.md#symbol-Logger)
|
|
155
|
-
|
|
156
|
-
Interface from `logging`.
|
|
30
|
+
Method annotations wrap each method invocation separately. It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. Layers run in the declared order. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around).
|
|
157
31
|
|
|
158
|
-
|
|
32
|
+
It returns the text `Hello, {name}!`.
|
|
159
33
|
|
|
160
|
-
##
|
|
34
|
+
## Dependencies
|
|
161
35
|
|
|
162
|
-
|
|
36
|
+
It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`AddOne`](interceptors.aug.md#symbol-AddOne) ([`around`](interceptors.aug.md#symbol-AddOne.around)), [`Audit`](interceptors.aug.md#symbol-Audit) ([`around`](interceptors.aug.md#symbol-Audit.around)), and [`Positive`](interceptors.aug.md#symbol-Positive) ([`around`](interceptors.aug.md#symbol-Positive.around)) from `interceptors`. It uses [`Logger`](logging.aug.md#symbol-Logger) from `logging`.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// aug-spec: "interceptors.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
1
2
|
import Console from august.io
|
|
2
3
|
import Logger from logging
|
|
3
4
|
/** Raised when a numeric input fails validation. */
|
|
@@ -11,7 +12,7 @@ ValidationError(string message) implements Error {
|
|
|
11
12
|
*/
|
|
12
13
|
interceptor Audit<T>(resolve Logger logger) {
|
|
13
14
|
/** Wrap a call without changing its result. */
|
|
14
|
-
around(resolve Console console)
|
|
15
|
+
around(resolve Console console) {
|
|
15
16
|
logger.log(message="before")
|
|
16
17
|
T result = next()
|
|
17
18
|
logger.log(message="after")
|
|
@@ -24,7 +25,7 @@ interceptor Positive<T>() {
|
|
|
24
25
|
* @param y The target argument selected by a mapping such as y=x.
|
|
25
26
|
* @throws ValidationError When the selected value is negative.
|
|
26
27
|
*/
|
|
27
|
-
around(int y) returns T
|
|
28
|
+
around(int y) returns T {
|
|
28
29
|
if y < 0 {
|
|
29
30
|
throw ValidationError(message="value must be nonnegative")
|
|
30
31
|
}
|
|
@@ -1,180 +1,47 @@
|
|
|
1
1
|
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
2
|
|
|
3
|
-
# `interceptors.aug`
|
|
4
|
-
|
|
5
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
6
|
-
|
|
7
|
-
## In this file
|
|
8
|
-
|
|
9
|
-
- [`ValidationError`](interceptors.aug.md#symbol-ValidationError) is a class implementing `Error`.
|
|
10
|
-
- [`Audit`](interceptors.aug.md#symbol-Audit) is an interceptor.
|
|
11
|
-
- [`Positive`](interceptors.aug.md#symbol-Positive) is an interceptor.
|
|
12
|
-
- [`AddOne`](interceptors.aug.md#symbol-AddOne) is an interceptor.
|
|
3
|
+
# `interceptors.aug`
|
|
13
4
|
|
|
14
5
|
<a id="symbol-ValidationError"></a>
|
|
6
|
+
## `ValidationError` · class · [source](interceptors.aug#L5)
|
|
15
7
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[source](interceptors.aug#L4)
|
|
19
|
-
|
|
20
|
-
Behavioral class.
|
|
21
|
-
|
|
22
|
-
Satisfies `Error`.
|
|
23
|
-
|
|
24
|
-
**Author documentation**
|
|
25
|
-
|
|
26
|
-
Raised when a numeric input fails validation.
|
|
27
|
-
|
|
28
|
-
**Inputs**
|
|
29
|
-
|
|
30
|
-
- `message` (`string`) — required labeled input — stored as `message` and read-only after initialization.
|
|
8
|
+
Raised when a numeric input fails validation. It implements `Error`. It takes `message` as a string, kept read-only.
|
|
31
9
|
|
|
32
10
|
<a id="symbol-Audit"></a>
|
|
33
|
-
|
|
34
|
-
## `Audit`
|
|
35
|
-
|
|
36
|
-
[source](interceptors.aug#L12)
|
|
37
|
-
|
|
38
|
-
Function or constructor middleware.
|
|
39
|
-
|
|
40
|
-
Type parameters: `T`.
|
|
41
|
-
|
|
42
|
-
**Author documentation**
|
|
11
|
+
## `Audit` · interceptor · [source](interceptors.aug#L13)
|
|
43
12
|
|
|
44
13
|
Logs before and after a successful call.
|
|
45
|
-
Generic T is inferred from the annotated function or constructor.
|
|
46
|
-
|
|
47
|
-
**Parameters**
|
|
48
|
-
- `logger`: Shared application logger, injected for each fresh instance.
|
|
14
|
+
Generic T is inferred from the annotated function or constructor. The type parameters are `T`.
|
|
49
15
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
- `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it — stored as `logger` and read-only after initialization.
|
|
53
|
-
|
|
54
|
-
Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
|
|
16
|
+
The `logger` dependency is injected as [`Logger`](logging.aug.md#symbol-Logger) and stored read-only. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
|
|
55
17
|
|
|
56
18
|
<a id="symbol-Audit.around"></a>
|
|
19
|
+
### `Audit.around` · [source](interceptors.aug#L15)
|
|
57
20
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
[source](interceptors.aug#L14)
|
|
61
|
-
|
|
62
|
-
**Inputs**
|
|
63
|
-
|
|
64
|
-
- `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
|
|
65
|
-
|
|
66
|
-
Returns: `T`.
|
|
67
|
-
|
|
68
|
-
Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
69
|
-
|
|
70
|
-
**What it does**
|
|
21
|
+
Wrap a call without changing its result. It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection.
|
|
71
22
|
|
|
72
|
-
|
|
73
|
-
- Set `result` of type `T` to call `next`.
|
|
74
|
-
- Call [`Logger.log`](logging.aug.md#symbol-Logger.log) on `logger` with `message` = `"after"`; inject `console` from `console`.
|
|
75
|
-
- Return `result`.
|
|
76
|
-
|
|
77
|
-
**Author documentation**
|
|
78
|
-
|
|
79
|
-
Wrap a call without changing its result.
|
|
23
|
+
It passes `"before"` to [`logger.log`](logging.aug.md#symbol-Logger.log), using injected `console`. It sets `result` of type `T` to `next`. It passes `"after"` to [`logger.log`](logging.aug.md#symbol-Logger.log), using injected `console`. It returns `result`.
|
|
80
24
|
|
|
81
25
|
<a id="symbol-Positive"></a>
|
|
26
|
+
## `Positive` · interceptor · [source](interceptors.aug#L23)
|
|
82
27
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
[source](interceptors.aug#L22)
|
|
86
|
-
|
|
87
|
-
Function or constructor middleware.
|
|
88
|
-
|
|
89
|
-
Type parameters: `T`.
|
|
90
|
-
|
|
91
|
-
**Author documentation**
|
|
92
|
-
|
|
93
|
-
Rejects negative numbers before the target executes.
|
|
94
|
-
|
|
95
|
-
Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
|
|
28
|
+
Rejects negative numbers before the target executes. The type parameters are `T`. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
|
|
96
29
|
|
|
97
30
|
<a id="symbol-Positive.around"></a>
|
|
31
|
+
### `Positive.around` · [source](interceptors.aug#L28)
|
|
98
32
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
[source](interceptors.aug#L27)
|
|
102
|
-
|
|
103
|
-
**Inputs**
|
|
104
|
-
|
|
105
|
-
- `y` (`int`) — required labeled input.
|
|
106
|
-
|
|
107
|
-
Returns: `T`.
|
|
108
|
-
|
|
109
|
-
Can fail with `ValidationError`. Callers must catch or propagate these errors.
|
|
110
|
-
|
|
111
|
-
**What it does**
|
|
112
|
-
|
|
113
|
-
- If `y` is less than `0`:
|
|
114
|
-
- Fail with call [`ValidationError`](interceptors.aug.md#symbol-ValidationError) with `message` = `"value must be nonnegative"`. Transfer control to a matching catch or propagate the failure.
|
|
115
|
-
- Return call `next`.
|
|
116
|
-
|
|
117
|
-
**Author documentation**
|
|
118
|
-
|
|
119
|
-
**Parameters**
|
|
120
|
-
- `y`: The target argument selected by a mapping such as y=x.
|
|
121
|
-
|
|
122
|
-
**Throws**
|
|
123
|
-
- `ValidationError`: When the selected value is negative.
|
|
33
|
+
It takes `y` as an integer (the target argument selected by a mapping such as y=x). Failures can raise [`ValidationError`](interceptors.aug.md#symbol-ValidationError) (when the selected value is negative). If `y` is negative, it raises a [`ValidationError`](interceptors.aug.md#symbol-ValidationError) with `message` `"value must be nonnegative"`. It returns `next`.
|
|
124
34
|
|
|
125
35
|
<a id="symbol-AddOne"></a>
|
|
36
|
+
## `AddOne` · interceptor · [source](interceptors.aug#L36)
|
|
126
37
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
[source](interceptors.aug#L35)
|
|
130
|
-
|
|
131
|
-
Function or constructor middleware.
|
|
132
|
-
|
|
133
|
-
Type parameters: `T`.
|
|
134
|
-
|
|
135
|
-
**Author documentation**
|
|
136
|
-
|
|
137
|
-
Adds one to the selected input before forwarding the call.
|
|
138
|
-
|
|
139
|
-
Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
|
|
38
|
+
Adds one to the selected input before forwarding the call. The type parameters are `T`. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
|
|
140
39
|
|
|
141
40
|
<a id="symbol-AddOne.around"></a>
|
|
41
|
+
### `AddOne.around` · [source](interceptors.aug#L38)
|
|
142
42
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
[source](interceptors.aug#L37)
|
|
146
|
-
|
|
147
|
-
**Inputs**
|
|
148
|
-
|
|
149
|
-
- `y` (`int`) — required labeled input.
|
|
150
|
-
|
|
151
|
-
Returns: `T`.
|
|
152
|
-
|
|
153
|
-
**What it does**
|
|
154
|
-
|
|
155
|
-
- Return call `next` with `y` = (`y` plus `1`).
|
|
156
|
-
|
|
157
|
-
**Author documentation**
|
|
158
|
-
|
|
159
|
-
**Parameters**
|
|
160
|
-
- `y`: The input to increment.
|
|
161
|
-
|
|
162
|
-
## Dependencies used by this file
|
|
163
|
-
|
|
164
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
165
|
-
|
|
166
|
-
### [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)
|
|
167
|
-
|
|
168
|
-
Capability interface from `august.io`.
|
|
169
|
-
|
|
170
|
-
- [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
171
|
-
|
|
172
|
-
### [`Logger`](logging.aug.md#symbol-Logger)
|
|
173
|
-
|
|
174
|
-
Interface from `logging`.
|
|
175
|
-
|
|
176
|
-
- [`Logger.log`](logging.aug.md#symbol-Logger.log) (`message`: `string`) → `void`; inject `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
|
|
43
|
+
It takes `y` as an integer (the input to increment). It returns `next` with `y` from `y` plus `1`.
|
|
177
44
|
|
|
178
|
-
##
|
|
45
|
+
## Dependencies
|
|
179
46
|
|
|
180
|
-
|
|
47
|
+
It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logging.aug.md#symbol-Logger) ([`log`](logging.aug.md#symbol-Logger.log)) from `logging`.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// aug-spec: "logging.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
1
2
|
import Console from august.io
|
|
2
3
|
/** Writes a message to the application log. */
|
|
3
4
|
interface Logger {
|
|
@@ -6,7 +7,7 @@ interface Logger {
|
|
|
6
7
|
}
|
|
7
8
|
/** Console logger shared by interceptor instances and the application. */
|
|
8
9
|
ConsoleLogger() implements Logger {
|
|
9
|
-
log(resolve Console console, string message)
|
|
10
|
+
log(resolve Console console, string message) {
|
|
10
11
|
console.write(value=message)
|
|
11
12
|
}
|
|
12
13
|
}
|