@greenpandastudios/aug-cli 0.19.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/compatibility.md +3 -3
- package/docs/contributing-benchmarks.md +38 -0
- package/docs/dev-containers.md +95 -0
- package/docs/diagnostics.md +15 -5
- package/docs/docker.md +174 -12
- package/docs/editor.md +35 -0
- package/docs/example-projects.json +206 -24
- package/docs/examples/approved-design/counters.md +34 -126
- package/docs/examples/approved-design/dependencies/august/0.20.1/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/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.20.1/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/ffi/index.md +6 -5
- package/docs/examples/ffi/main.md +6 -20
- package/docs/examples/ffi/native.md +8 -34
- package/docs/examples/generic-di/dependencies/august/0.20.1/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.20.1/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 +46 -29
- package/docs/examples/interceptors/app.md +20 -139
- package/docs/examples/interceptors/dependencies/august/0.20.1/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/new-syntax/console.md +10 -52
- package/docs/examples/new-syntax/dependencies/august/0.20.1/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.20.1/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/startup-benchmark/index.md +6 -5
- package/docs/examples/startup-benchmark/main.md +5 -17
- 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 +6 -4
- package/docs/guides/change-a-module.md +64 -0
- package/docs/guides/index.md +27 -0
- package/docs/index.md +51 -29
- package/docs/language-conformance.md +1 -1
- package/docs/language-constructs.md +22 -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/packages.md +72 -126
- package/docs/performance.md +13 -41
- package/docs/production-readiness.md +5 -4
- package/docs/public/downloads/approved-design.zip +0 -0
- package/docs/public/downloads/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.zip +0 -0
- package/docs/public/downloads/ffi.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/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/startup-benchmark.zip +0 -0
- package/docs/public/downloads/visibility.zip +0 -0
- package/docs/public/downloads/weather-api.zip +0 -0
- package/docs/reference.md +23 -17
- package/docs/releasing.md +29 -15
- package/docs/research/code-to-natural-language.md +108 -0
- package/docs/research/ecosystem-workflow.md +41 -0
- package/docs/research/wiki-editorial-design.md +71 -0
- package/docs/roadmap.md +1 -1
- package/docs/specifications.md +27 -11
- package/docs/testing.md +19 -5
- package/docs/tooling.md +25 -12
- package/docs/weather-api.md +65 -0
- package/docs/web.md +50 -18
- package/docs/writing-docs.md +49 -0
- package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
- package/examples/approved-design/.aug-spec/august/0.20.1/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.20.1}/io/contracts.aug +4 -3
- package/examples/developer-workflow/.aug-spec/august/0.20.1/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.20.1}/io/contracts.aug +4 -3
- package/examples/generic-di/.aug-spec/august/0.20.1/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.20.1}/io/contracts.aug +4 -3
- package/examples/hello/.aug-spec/august/0.20.1/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.20.1/io/contracts.aug +37 -0
- package/examples/interceptors/.aug-spec/august/0.20.1/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/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
- package/examples/new-syntax/.aug-spec/august/0.20.1/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.20.1/io/contracts.aug +37 -0
- package/examples/ownership-transfer/.aug-spec/august/0.20.1/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/package.json +3 -4
- package/scripts/bootstrap-native.mjs +181 -106
- package/scripts/native-setup.mjs +98 -0
- package/scripts/native-toolchain.mjs +28 -0
- package/src/builtins.js +1 -1
- package/src/checker.js +259 -72
- package/src/cli.js +114 -20
- package/src/codegen.js +1 -1
- package/src/config.js +1 -1
- package/src/contracts.js +10 -0
- package/src/editor.js +71 -16
- package/src/fixes.js +90 -2
- package/src/formatter.js +19 -8
- package/src/git-packages.js +110 -0
- package/src/help.js +24 -23
- package/src/http-contracts.js +14 -0
- package/src/http-policies.js +5 -5
- package/src/libraries.js +1 -1
- package/src/lsp.js +14 -5
- package/src/native.js +19 -13
- package/src/navigation.js +4 -2
- package/src/openapi.js +5 -4
- package/src/package-locking.js +45 -0
- package/src/package-manager.js +251 -67
- package/src/parser.js +13 -5
- package/src/policies.js +3 -3
- package/src/project-init.js +78 -4
- package/src/project.js +9 -7
- package/src/semantic.js +46 -2
- package/src/snippets.js +59 -0
- package/src/spec-hints.js +56 -0
- package/src/spec-tree.js +241 -0
- package/src/spec.js +626 -303
- 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
|
@@ -29,7 +29,8 @@ pageClass: aug-example-page
|
|
|
29
29
|
::: code-group
|
|
30
30
|
|
|
31
31
|
```aug [Indentation]
|
|
32
|
-
|
|
32
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
33
|
+
import parse from json
|
|
33
34
|
import Payload from data
|
|
34
35
|
int checksum = 0
|
|
35
36
|
int index = 0
|
|
@@ -46,7 +47,8 @@ catch JsonError error:
|
|
|
46
47
|
```
|
|
47
48
|
|
|
48
49
|
```aug [Braces]
|
|
49
|
-
|
|
50
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
51
|
+
import parse from json
|
|
50
52
|
import Payload from data
|
|
51
53
|
int checksum = 0
|
|
52
54
|
int index = 0
|
|
@@ -73,58 +75,17 @@ catch JsonError error {
|
|
|
73
75
|
|
|
74
76
|
## Compiled specification {#specification}
|
|
75
77
|
|
|
76
|
-
|
|
78
|
+
### Startup
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
It sets `checksum` and `index` separately, each to `0`. While `index` is less than `5000`, it sets `document` to [`parse`](dependencies/packages/%40git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md#symbol-parse) with `input` `"{\"id\":7,\"message\":\"hello\",\"values\":[1,2,3]}"`. It sets `payload` to `document.decode` for [`Payload`](data.md#symbol-Payload). It sets `encoded` to `stringify` on a `Json` with `value` from `payload`.
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
- Run 2 other startup steps in source order.
|
|
82
|
+
It sets `checksum` to (`checksum` plus `payload.id`) plus the byte length of `encoded`. It increases `index` by `1`. After the loop, it prints `checksum`. If this work raises `JsonError`, it calls `exit` with `status` `1`.
|
|
82
83
|
|
|
83
|
-
###
|
|
84
|
+
### Dependencies
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
- Set `index` of type `int` to `0`.
|
|
87
|
-
- Try these operations:
|
|
88
|
-
- While `index` is less than `5000`, repeat:
|
|
89
|
-
- Set `document` to call [`parse`](dependencies/august/0.19.0/json/contracts.md#symbol-parse) with `input` = `"{\"id\":7,\"message\":\"hello\",\"values\":[1,2,3]}"`.
|
|
90
|
-
- Set `payload` to call `decode` on `document` with type arguments [`Payload`](data.md#symbol-Payload).
|
|
91
|
-
- Set `encoded` to call `stringify` on call `Json` with `value` = `payload`.
|
|
92
|
-
- Set `checksum` to (`checksum` plus `id` of `payload`) plus call `length` on `encoded`.
|
|
93
|
-
- Set `index` to `index` plus `1`.
|
|
94
|
-
- Check the condition again before the next iteration.
|
|
95
|
-
- Call `print` with `value` = `checksum`.
|
|
96
|
-
- If they fail with `JsonError`, name the failure `error` and recover:
|
|
97
|
-
- Call `exit` with `status` = `1`.
|
|
86
|
+
It uses [`parse`](dependencies/packages/%40git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md#symbol-parse) from `json`. It uses [`Payload`](data.md#symbol-Payload) (`id`) from `data`.
|
|
98
87
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
102
|
-
|
|
103
|
-
#### [`parse`](dependencies/august/0.19.0/json/contracts.md#symbol-parse)
|
|
104
|
-
|
|
105
|
-
Function from `august.json`.
|
|
106
|
-
|
|
107
|
-
- [`parse`](dependencies/august/0.19.0/json/contracts.md#symbol-parse) (`input`: `string`) → `Json`; can fail with `JsonError`.
|
|
108
|
-
|
|
109
|
-
#### [`Payload`](data.md#symbol-Payload)
|
|
110
|
-
|
|
111
|
-
Record from `data`.
|
|
112
|
-
|
|
113
|
-
- Read `id` (`int`).
|
|
114
|
-
|
|
115
|
-
### Built-in operations used by this file
|
|
116
|
-
|
|
117
|
-
- `Json.decode` (no inputs) → `Payload`: Decode a checked record or data type: json.decode<Profile>(). Unknown fields, type mismatches, and validation errors are rejected. Can fail with `JsonError`.
|
|
118
|
-
- `Json.stringify` (no inputs) → `string`: Serialize this JSON value with checked UTF-8 escaping and exact int64 values. Can fail with `JsonError`.
|
|
119
|
-
- `exit` (`status`: `int`) → `void`: Exit from main with a status from 0 to 255 after cancellation and cleanup.
|
|
120
|
-
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
121
|
-
- `string.length` (no inputs) → `int`: Read the number of UTF-8 bytes. Unicode text is preserved losslessly.
|
|
122
|
-
|
|
123
|
-
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
124
|
-
|
|
125
|
-
### Shared language rules
|
|
126
|
-
|
|
127
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
88
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
128
89
|
|
|
129
90
|
::::
|
|
130
91
|
|
|
@@ -32,18 +32,20 @@ pageClass: aug-example-page
|
|
|
32
32
|
::: code-group
|
|
33
33
|
|
|
34
34
|
```aug [Indentation]
|
|
35
|
+
// aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
35
36
|
import Console from august.io
|
|
36
37
|
import Logger from logger
|
|
37
38
|
ConsoleLogger() implements Logger:
|
|
38
|
-
log(resolve Console console, string message)
|
|
39
|
+
log(resolve Console console, string message):
|
|
39
40
|
console.write(value=message)
|
|
40
41
|
```
|
|
41
42
|
|
|
42
43
|
```aug [Braces]
|
|
44
|
+
// aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
43
45
|
import Console from august.io
|
|
44
46
|
import Logger from logger
|
|
45
47
|
ConsoleLogger() implements Logger {
|
|
46
|
-
log(resolve Console console, string message)
|
|
48
|
+
log(resolve Console console, string message) {
|
|
47
49
|
console.write(value=message)
|
|
48
50
|
}
|
|
49
51
|
}
|
|
@@ -57,61 +59,17 @@ ConsoleLogger() implements Logger {
|
|
|
57
59
|
|
|
58
60
|
## Compiled specification {#specification}
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
### `ConsoleLogger` · class · [source](console.md#code) {#symbol-ConsoleLogger}
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
It implements [`Logger`](logger.md#symbol-Logger).
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
#### `ConsoleLogger.log` · [source](console.md#code) {#symbol-ConsoleLogger.log}
|
|
65
67
|
|
|
66
|
-
|
|
68
|
+
It takes `message` as a string (Text to display). It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
### Dependencies
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Satisfies [`Logger`](logger.md#symbol-Logger).
|
|
73
|
-
|
|
74
|
-
#### `ConsoleLogger.log` {#symbol-ConsoleLogger.log}
|
|
75
|
-
|
|
76
|
-
[source](console.md#code)
|
|
77
|
-
|
|
78
|
-
**Inputs**
|
|
79
|
-
|
|
80
|
-
- `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
81
|
-
- `message` (`string`) — required labeled input.
|
|
82
|
-
|
|
83
|
-
Returns: no value.
|
|
84
|
-
|
|
85
|
-
Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
86
|
-
|
|
87
|
-
**What it does**
|
|
88
|
-
|
|
89
|
-
- Call [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `message`.
|
|
90
|
-
|
|
91
|
-
**Author documentation**
|
|
92
|
-
|
|
93
|
-
**Parameters**
|
|
94
|
-
- `message`: Text to display.
|
|
95
|
-
|
|
96
|
-
### Dependencies used by this file
|
|
97
|
-
|
|
98
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
99
|
-
|
|
100
|
-
#### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
101
|
-
|
|
102
|
-
Capability interface from `august.io`.
|
|
103
|
-
|
|
104
|
-
- [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
105
|
-
|
|
106
|
-
#### [`Logger`](logger.md#symbol-Logger)
|
|
107
|
-
|
|
108
|
-
Interface from `logger`.
|
|
109
|
-
|
|
110
|
-
Used as a type or provider.
|
|
111
|
-
|
|
112
|
-
### Shared language rules
|
|
113
|
-
|
|
114
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
72
|
+
It uses [`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console) ([`write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.md#symbol-Logger) from `logger`.
|
|
115
73
|
|
|
116
74
|
::::
|
|
117
75
|
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "august/0.20.1/io/contracts.aug · Labeled calls and injection"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
search: false
|
|
10
|
+
pageClass: aug-example-page
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# `august/0.20.1/io/contracts.aug`
|
|
14
|
+
|
|
15
|
+
[Labeled calls and injection](../../../../index.md) · Dependency source and specification
|
|
16
|
+
|
|
17
|
+
This is the exact dependency version used by this example.
|
|
18
|
+
|
|
19
|
+
::::: example-compare
|
|
20
|
+
|
|
21
|
+
:::: example-code
|
|
22
|
+
|
|
23
|
+
## Code {#code}
|
|
24
|
+
|
|
25
|
+
::: code-group
|
|
26
|
+
|
|
27
|
+
```aug [Indentation]
|
|
28
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
29
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
30
|
+
capability Console:
|
|
31
|
+
/** Write one line of text. @param value Text to display. */
|
|
32
|
+
write<T>(T value) uses Console.write
|
|
33
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
34
|
+
SystemConsole() implements Console:
|
|
35
|
+
write<T>(T value):
|
|
36
|
+
print(value=value)
|
|
37
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
38
|
+
capability FileReader:
|
|
39
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
40
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
41
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
42
|
+
capability FileWriter:
|
|
43
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
44
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
45
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
46
|
+
LocalFiles() implements FileReader, FileWriter:
|
|
47
|
+
read(string path):
|
|
48
|
+
return read_file(path=path)
|
|
49
|
+
write(string path, string content):
|
|
50
|
+
write_file(path=path, content=content)
|
|
51
|
+
/** Read command-line input through an explicit dependency. */
|
|
52
|
+
capability Arguments:
|
|
53
|
+
read() returns List<string> uses Arguments.read
|
|
54
|
+
/** Native command-line arguments. */
|
|
55
|
+
ProcessArguments() implements Arguments:
|
|
56
|
+
read():
|
|
57
|
+
return arguments()
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```aug [Braces]
|
|
61
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
62
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
63
|
+
capability Console {
|
|
64
|
+
/** Write one line of text. @param value Text to display. */
|
|
65
|
+
write<T>(T value) uses Console.write
|
|
66
|
+
}
|
|
67
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
68
|
+
SystemConsole() implements Console {
|
|
69
|
+
write<T>(T value) {
|
|
70
|
+
print(value=value)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
74
|
+
capability FileReader {
|
|
75
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
76
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
77
|
+
}
|
|
78
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
79
|
+
capability FileWriter {
|
|
80
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
81
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
82
|
+
}
|
|
83
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
84
|
+
LocalFiles() implements FileReader, FileWriter {
|
|
85
|
+
read(string path) {
|
|
86
|
+
return read_file(path=path)
|
|
87
|
+
}
|
|
88
|
+
write(string path, string content) {
|
|
89
|
+
write_file(path=path, content=content)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Read command-line input through an explicit dependency. */
|
|
93
|
+
capability Arguments {
|
|
94
|
+
read() returns List<string> uses Arguments.read
|
|
95
|
+
}
|
|
96
|
+
/** Native command-line arguments. */
|
|
97
|
+
ProcessArguments() implements Arguments {
|
|
98
|
+
read() {
|
|
99
|
+
return arguments()
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
:::
|
|
105
|
+
|
|
106
|
+
::::
|
|
107
|
+
|
|
108
|
+
:::: example-spec
|
|
109
|
+
|
|
110
|
+
## Compiled specification {#specification}
|
|
111
|
+
|
|
112
|
+
### `Console` · capability interface · [source](contracts.md#code) {#symbol-Console}
|
|
113
|
+
|
|
114
|
+
Permission to write to a console, provided by an explicitly selected adapter.
|
|
115
|
+
|
|
116
|
+
#### `Console.write` · [source](contracts.md#code) {#symbol-Console.write}
|
|
117
|
+
|
|
118
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It can call [`Console.write`](contracts.md#symbol-Console.write).
|
|
119
|
+
|
|
120
|
+
### `SystemConsole` · class · [source](contracts.md#code) {#symbol-SystemConsole}
|
|
121
|
+
|
|
122
|
+
The native standard-output adapter. Construction performs no output. It implements [`Console`](contracts.md#symbol-Console).
|
|
123
|
+
|
|
124
|
+
#### `SystemConsole.write` · [source](contracts.md#code) {#symbol-SystemConsole.write}
|
|
125
|
+
|
|
126
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It prints `value`.
|
|
127
|
+
|
|
128
|
+
### `FileReader` · capability interface · [source](contracts.md#code) {#symbol-FileReader}
|
|
129
|
+
|
|
130
|
+
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
131
|
+
|
|
132
|
+
#### `FileReader.read` · [source](contracts.md#code) {#symbol-FileReader.read}
|
|
133
|
+
|
|
134
|
+
Read text. It takes `path` as a string (File path).
|
|
135
|
+
|
|
136
|
+
It returns `string`. It can call [`FileReader.read`](contracts.md#symbol-FileReader.read). Failures can raise `FileError` (The file could not be read).
|
|
137
|
+
|
|
138
|
+
### `FileWriter` · capability interface · [source](contracts.md#code) {#symbol-FileWriter}
|
|
139
|
+
|
|
140
|
+
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
141
|
+
|
|
142
|
+
#### `FileWriter.write` · [source](contracts.md#code) {#symbol-FileWriter.write}
|
|
143
|
+
|
|
144
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). It can call [`FileWriter.write`](contracts.md#symbol-FileWriter.write). Failures can raise `FileError` (Writing failed).
|
|
145
|
+
|
|
146
|
+
### `LocalFiles` · class · [source](contracts.md#code) {#symbol-LocalFiles}
|
|
147
|
+
|
|
148
|
+
Native files. Operations are explicit; construction opens no files. It implements [`FileReader`](contracts.md#symbol-FileReader) and [`FileWriter`](contracts.md#symbol-FileWriter).
|
|
149
|
+
|
|
150
|
+
#### `LocalFiles.read` · [source](contracts.md#code) {#symbol-LocalFiles.read}
|
|
151
|
+
|
|
152
|
+
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`.
|
|
153
|
+
|
|
154
|
+
#### `LocalFiles.write` · [source](contracts.md#code) {#symbol-LocalFiles.write}
|
|
155
|
+
|
|
156
|
+
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`.
|
|
157
|
+
|
|
158
|
+
### `Arguments` · capability interface · [source](contracts.md#code) {#symbol-Arguments}
|
|
159
|
+
|
|
160
|
+
Read command-line input through an explicit dependency.
|
|
161
|
+
|
|
162
|
+
#### `Arguments.read` · [source](contracts.md#code) {#symbol-Arguments.read}
|
|
163
|
+
|
|
164
|
+
It returns `List<string>`. It can call [`Arguments.read`](contracts.md#symbol-Arguments.read).
|
|
165
|
+
|
|
166
|
+
### `ProcessArguments` · class · [source](contracts.md#code) {#symbol-ProcessArguments}
|
|
167
|
+
|
|
168
|
+
Native command-line arguments. It implements [`Arguments`](contracts.md#symbol-Arguments).
|
|
169
|
+
|
|
170
|
+
#### `ProcessArguments.read` · [source](contracts.md#code) {#symbol-ProcessArguments.read}
|
|
171
|
+
|
|
172
|
+
It returns `arguments`.
|
|
173
|
+
|
|
174
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
175
|
+
|
|
176
|
+
::::
|
|
177
|
+
|
|
178
|
+
:::::
|
|
@@ -32,20 +32,22 @@ pageClass: aug-example-page
|
|
|
32
32
|
::: code-group
|
|
33
33
|
|
|
34
34
|
```aug [Indentation]
|
|
35
|
+
// aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
35
36
|
import Console from august.io
|
|
36
37
|
import Logger from logger
|
|
37
38
|
Greeter(resolve Logger logger, int x) implements IGreeter:
|
|
38
|
-
greet(resolve Console console, string name)
|
|
39
|
+
greet(resolve Console console, string name):
|
|
39
40
|
logger.log(message="Hello, " + name + "!")
|
|
40
41
|
interface IGreeter:
|
|
41
42
|
greet(resolve Console console, string name) uses Console.write
|
|
42
43
|
```
|
|
43
44
|
|
|
44
45
|
```aug [Braces]
|
|
46
|
+
// aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
45
47
|
import Console from august.io
|
|
46
48
|
import Logger from logger
|
|
47
49
|
Greeter(resolve Logger logger, int x) implements IGreeter {
|
|
48
|
-
greet(resolve Console console, string name)
|
|
50
|
+
greet(resolve Console console, string name) {
|
|
49
51
|
logger.log(message="Hello, " + name + "!")
|
|
50
52
|
}
|
|
51
53
|
}
|
|
@@ -62,83 +64,23 @@ interface IGreeter {
|
|
|
62
64
|
|
|
63
65
|
## Compiled specification {#specification}
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
### `Greeter` · class · [source](greeter.md#code) {#symbol-Greeter}
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
It implements [`IGreeter`](greeter.md#symbol-IGreeter). It takes `x` as an integer, kept read-only. It gets `logger` ([`Logger`](logger.md#symbol-Logger)), kept read-only from dependency injection.
|
|
68
70
|
|
|
69
|
-
|
|
70
|
-
- [`IGreeter`](greeter.md#symbol-IGreeter) is an interface.
|
|
71
|
+
#### `Greeter.greet` · [source](greeter.md#code) {#symbol-Greeter.greet}
|
|
71
72
|
|
|
72
|
-
|
|
73
|
+
It takes `name` as a string. It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It passes the text `Hello, {name}!` to [`logger.log`](logger.md#symbol-Logger.log), using injected `console`.
|
|
73
74
|
|
|
74
|
-
[source](greeter.md#code)
|
|
75
|
+
### `IGreeter` · interface · [source](greeter.md#code) {#symbol-IGreeter}
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
#### `IGreeter.greet` · [source](greeter.md#code) {#symbol-IGreeter.greet}
|
|
77
78
|
|
|
78
|
-
|
|
79
|
+
It takes `name` as a string. It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It can call [`Console.write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
### Dependencies
|
|
81
82
|
|
|
82
|
-
|
|
83
|
-
- `x` (`int`) — required labeled input — stored as `x` and read-only after initialization.
|
|
84
|
-
|
|
85
|
-
#### `Greeter.greet` {#symbol-Greeter.greet}
|
|
86
|
-
|
|
87
|
-
[source](greeter.md#code)
|
|
88
|
-
|
|
89
|
-
**Inputs**
|
|
90
|
-
|
|
91
|
-
- `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
92
|
-
- `name` (`string`) — required labeled input.
|
|
93
|
-
|
|
94
|
-
Returns: no value.
|
|
95
|
-
|
|
96
|
-
Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
97
|
-
|
|
98
|
-
**What it does**
|
|
99
|
-
|
|
100
|
-
- Call [`Logger.log`](logger.md#symbol-Logger.log) on `logger` with `message` = (text formed by joining `"Hello, "`, `name`, `"!"` in order); inject `console` from `console`.
|
|
101
|
-
|
|
102
|
-
### `IGreeter` {#symbol-IGreeter}
|
|
103
|
-
|
|
104
|
-
[source](greeter.md#code)
|
|
105
|
-
|
|
106
|
-
Interface.
|
|
107
|
-
|
|
108
|
-
#### `IGreeter.greet` {#symbol-IGreeter.greet}
|
|
109
|
-
|
|
110
|
-
[source](greeter.md#code)
|
|
111
|
-
|
|
112
|
-
**Inputs**
|
|
113
|
-
|
|
114
|
-
- `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
115
|
-
- `name` (`string`) — required labeled input.
|
|
116
|
-
|
|
117
|
-
Returns: no value.
|
|
118
|
-
|
|
119
|
-
Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
120
|
-
|
|
121
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
122
|
-
|
|
123
|
-
### Dependencies used by this file
|
|
124
|
-
|
|
125
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
126
|
-
|
|
127
|
-
#### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
128
|
-
|
|
129
|
-
Capability interface from `august.io`.
|
|
130
|
-
|
|
131
|
-
- [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
132
|
-
|
|
133
|
-
#### [`Logger`](logger.md#symbol-Logger)
|
|
134
|
-
|
|
135
|
-
Interface from `logger`.
|
|
136
|
-
|
|
137
|
-
- [`Logger.log`](logger.md#symbol-Logger.log) (`message`: `string`) → `void`; inject `console`: [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console); uses [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
138
|
-
|
|
139
|
-
### Shared language rules
|
|
140
|
-
|
|
141
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
83
|
+
It uses [`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console) ([`write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.md#symbol-Logger) ([`log`](logger.md#symbol-Logger.log)) from `logger`.
|
|
142
84
|
|
|
143
85
|
::::
|
|
144
86
|
|
|
@@ -12,7 +12,7 @@ outline: [2, 3]
|
|
|
12
12
|
|
|
13
13
|
Constructor injection, named inputs, ordinary functions, and same-file tests.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Open a file to read its source beside the explanation produced by `aug spec`. **Indentation** and **Braces** display the same checked program; your choice carries across file pages.
|
|
16
16
|
|
|
17
17
|
## Project files
|
|
18
18
|
|
|
@@ -25,12 +25,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
|
|
|
25
25
|
|
|
26
26
|
## Try this project
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
[Download this project](/downloads/new-syntax.zip), then extract the archive in an empty working folder. It contains the checked source, configuration, and generated specs. [Install August](../../getting-started.md) once, then run these commands. Native libraries are prepared automatically when needed:
|
|
29
29
|
|
|
30
30
|
```sh
|
|
31
|
-
|
|
32
|
-
aug
|
|
33
|
-
aug
|
|
31
|
+
cd new-syntax
|
|
32
|
+
aug check .
|
|
33
|
+
aug spec .
|
|
34
|
+
aug run .
|
|
34
35
|
```
|
|
35
36
|
|
|
36
37
|
[Browse all examples](../index.md)
|
|
@@ -32,6 +32,7 @@ pageClass: aug-example-page
|
|
|
32
32
|
::: code-group
|
|
33
33
|
|
|
34
34
|
```aug [Indentation]
|
|
35
|
+
// aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
35
36
|
import Console from august.io
|
|
36
37
|
/** Displays application messages. */
|
|
37
38
|
interface Logger:
|
|
@@ -40,6 +41,7 @@ interface Logger:
|
|
|
40
41
|
```
|
|
41
42
|
|
|
42
43
|
```aug [Braces]
|
|
44
|
+
// aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
43
45
|
import Console from august.io
|
|
44
46
|
/** Displays application messages. */
|
|
45
47
|
interface Logger {
|
|
@@ -56,55 +58,17 @@ interface Logger {
|
|
|
56
58
|
|
|
57
59
|
## Compiled specification {#specification}
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
### In this file
|
|
62
|
-
|
|
63
|
-
- [`Logger`](logger.md#symbol-Logger) is an interface.
|
|
64
|
-
|
|
65
|
-
### `Logger` {#symbol-Logger}
|
|
66
|
-
|
|
67
|
-
[source](logger.md#code)
|
|
68
|
-
|
|
69
|
-
Interface.
|
|
70
|
-
|
|
71
|
-
**Author documentation**
|
|
61
|
+
### `Logger` · interface · [source](logger.md#code) {#symbol-Logger}
|
|
72
62
|
|
|
73
63
|
Displays application messages.
|
|
74
64
|
|
|
75
|
-
#### `Logger.log` {#symbol-Logger.log}
|
|
76
|
-
|
|
77
|
-
[source](logger.md#code)
|
|
78
|
-
|
|
79
|
-
**Inputs**
|
|
80
|
-
|
|
81
|
-
- `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
82
|
-
- `message` (`string`) — required labeled input.
|
|
83
|
-
|
|
84
|
-
Returns: no value.
|
|
85
|
-
|
|
86
|
-
Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
87
|
-
|
|
88
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
89
|
-
|
|
90
|
-
**Author documentation**
|
|
91
|
-
|
|
92
|
-
**Parameters**
|
|
93
|
-
- `message`: Text to display.
|
|
94
|
-
|
|
95
|
-
### Dependencies used by this file
|
|
96
|
-
|
|
97
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
98
|
-
|
|
99
|
-
#### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
100
|
-
|
|
101
|
-
Capability interface from `august.io`.
|
|
65
|
+
#### `Logger.log` · [source](logger.md#code) {#symbol-Logger.log}
|
|
102
66
|
|
|
103
|
-
- [`Console.write`](dependencies/august/0.
|
|
67
|
+
It takes `message` as a string (Text to display). It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It can call [`Console.write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
104
68
|
|
|
105
|
-
###
|
|
69
|
+
### Dependencies
|
|
106
70
|
|
|
107
|
-
|
|
71
|
+
It uses [`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console) ([`write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write)) from `august.io`.
|
|
108
72
|
|
|
109
73
|
::::
|
|
110
74
|
|
|
@@ -32,6 +32,7 @@ pageClass: aug-example-page
|
|
|
32
32
|
::: code-group
|
|
33
33
|
|
|
34
34
|
```aug [Indentation]
|
|
35
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
35
36
|
import Console and SystemConsole from august.io
|
|
36
37
|
implement Console with SystemConsole
|
|
37
38
|
import Logger from logger
|
|
@@ -47,6 +48,7 @@ print(value=count)
|
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
```aug [Braces]
|
|
51
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
50
52
|
import Console and SystemConsole from august.io
|
|
51
53
|
implement Console with SystemConsole
|
|
52
54
|
import Logger from logger
|
|
@@ -69,66 +71,21 @@ print(value=count)
|
|
|
69
71
|
|
|
70
72
|
## Compiled specification {#specification}
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
### Providers
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
`Console` is provided by [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](console.md#symbol-ConsoleLogger). The same instance is shared.
|
|
75
77
|
|
|
76
|
-
|
|
77
|
-
- Run 5 other startup steps in source order.
|
|
78
|
+
### Startup
|
|
78
79
|
|
|
79
|
-
|
|
80
|
+
It sets `greeter` to a [`Greeter`](greeter.md#symbol-Greeter) with `x` `4` using injected `Logger` for `logger`. It passes `"AugScript"` to [`greeter.greet`](greeter.md#symbol-Greeter.greet), using injected `Console`. It sets `count` to `7`. It sets `count` to [`increment`](math.md#symbol-increment) with `value` from `count`.
|
|
80
81
|
|
|
81
|
-
|
|
82
|
+
It prints `count`.
|
|
82
83
|
|
|
83
|
-
|
|
84
|
-
- Provide [`ConsoleLogger`](console.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
|
|
84
|
+
### Dependencies
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
It uses [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole) from `august.io`. It uses [`ConsoleLogger`](console.md#symbol-ConsoleLogger) from `console`. It uses [`Greeter`](greeter.md#symbol-Greeter) ([`greet`](greeter.md#symbol-Greeter.greet)) from `greeter`. It uses [`increment`](math.md#symbol-increment) from `math`.
|
|
87
87
|
|
|
88
|
-
-
|
|
89
|
-
- Call [`Greeter.greet`](greeter.md#symbol-Greeter.greet) on `greeter` with `name` = `"AugScript"`; inject `console` from `Console`.
|
|
90
|
-
- Set `count` of type `int` to `7`.
|
|
91
|
-
- Set `count` to call [`increment`](math.md#symbol-increment) with `value` = `count`.
|
|
92
|
-
- Call `print` with `value` = `count`.
|
|
93
|
-
|
|
94
|
-
### Dependencies used by this file
|
|
95
|
-
|
|
96
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
97
|
-
|
|
98
|
-
#### [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole)
|
|
99
|
-
|
|
100
|
-
Class from `august.io`.
|
|
101
|
-
|
|
102
|
-
Used as a type or provider.
|
|
103
|
-
|
|
104
|
-
#### [`ConsoleLogger`](console.md#symbol-ConsoleLogger)
|
|
105
|
-
|
|
106
|
-
Class from `console`.
|
|
107
|
-
|
|
108
|
-
Used as a type or provider.
|
|
109
|
-
|
|
110
|
-
#### [`Greeter`](greeter.md#symbol-Greeter)
|
|
111
|
-
|
|
112
|
-
Class from `greeter`.
|
|
113
|
-
|
|
114
|
-
- Construct with `x`: `int` → [`Greeter`](greeter.md#symbol-Greeter).
|
|
115
|
-
- [`Greeter.greet`](greeter.md#symbol-Greeter.greet) (`name`: `string`) → `void`; inject `console`: [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console); uses [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
116
|
-
|
|
117
|
-
#### [`increment`](math.md#symbol-increment)
|
|
118
|
-
|
|
119
|
-
Function from `math`.
|
|
120
|
-
|
|
121
|
-
- [`increment`](math.md#symbol-increment) (`value`: `int`) → `int`.
|
|
122
|
-
|
|
123
|
-
### Built-in operations used by this file
|
|
124
|
-
|
|
125
|
-
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
126
|
-
|
|
127
|
-
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
128
|
-
|
|
129
|
-
### Shared language rules
|
|
130
|
-
|
|
131
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
88
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
132
89
|
|
|
133
90
|
::::
|
|
134
91
|
|