@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
|
@@ -33,23 +33,24 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "counters.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
/** Reading state has no mutation effect. */
|
|
37
38
|
interface State:
|
|
38
39
|
read() returns int
|
|
39
40
|
_Initial() implements State:
|
|
40
|
-
read()
|
|
41
|
+
read():
|
|
41
42
|
return 0
|
|
42
43
|
_Updated(int count) implements State:
|
|
43
|
-
read()
|
|
44
|
+
read():
|
|
44
45
|
return count
|
|
45
46
|
/** A mutable counter with an explicit transition contract. */
|
|
46
47
|
interface Counter:
|
|
47
48
|
increment() changes self
|
|
48
49
|
value() returns int
|
|
49
50
|
_Counter(resolve mutable State initial to _state) implements Counter:
|
|
50
|
-
increment()
|
|
51
|
+
increment():
|
|
51
52
|
_state to _Updated(count=_state.read() + 1)
|
|
52
|
-
value()
|
|
53
|
+
value():
|
|
53
54
|
return _state.read()
|
|
54
55
|
/** The complete counter composition; its mutable state belongs to each scope. */
|
|
55
56
|
composition Counters:
|
|
@@ -58,17 +59,18 @@ composition Counters:
|
|
|
58
59
|
```
|
|
59
60
|
|
|
60
61
|
```aug [Braces]
|
|
62
|
+
// aug-spec: "counters.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
61
63
|
/** Reading state has no mutation effect. */
|
|
62
64
|
interface State {
|
|
63
65
|
read() returns int
|
|
64
66
|
}
|
|
65
67
|
_Initial() implements State {
|
|
66
|
-
read()
|
|
68
|
+
read() {
|
|
67
69
|
return 0
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
_Updated(int count) implements State {
|
|
71
|
-
read()
|
|
73
|
+
read() {
|
|
72
74
|
return count
|
|
73
75
|
}
|
|
74
76
|
}
|
|
@@ -78,10 +80,10 @@ interface Counter {
|
|
|
78
80
|
value() returns int
|
|
79
81
|
}
|
|
80
82
|
_Counter(resolve mutable State initial to _state) implements Counter {
|
|
81
|
-
increment()
|
|
83
|
+
increment() {
|
|
82
84
|
_state to _Updated(count=_state.read() + 1)
|
|
83
85
|
}
|
|
84
|
-
value()
|
|
86
|
+
value() {
|
|
85
87
|
return _state.read()
|
|
86
88
|
}
|
|
87
89
|
}
|
|
@@ -100,153 +102,59 @@ composition Counters {
|
|
|
100
102
|
|
|
101
103
|
## Compiled specification {#specification}
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### In this file
|
|
106
|
-
|
|
107
|
-
- [`State`](counters.md#symbol-State) is an interface.
|
|
108
|
-
- [`_Initial`](counters.md#symbol-_Initial) is a class implementing `State`.
|
|
109
|
-
- [`_Updated`](counters.md#symbol-_Updated) is a class implementing `State`.
|
|
110
|
-
- [`Counter`](counters.md#symbol-Counter) is an interface.
|
|
111
|
-
- [`_Counter`](counters.md#symbol-_Counter) is a class implementing `Counter`.
|
|
112
|
-
- [`Counters`](counters.md#symbol-Counters) declares 2 providers.
|
|
113
|
-
|
|
114
|
-
### `State` {#symbol-State}
|
|
115
|
-
|
|
116
|
-
[source](counters.md#code)
|
|
117
|
-
|
|
118
|
-
Interface.
|
|
119
|
-
|
|
120
|
-
**Author documentation**
|
|
105
|
+
### `State` · interface · [source](counters.md#code) {#symbol-State}
|
|
121
106
|
|
|
122
107
|
Reading state has no mutation effect.
|
|
123
108
|
|
|
124
|
-
#### `State.read` {#symbol-State.read}
|
|
125
|
-
|
|
126
|
-
[source](counters.md#code)
|
|
127
|
-
|
|
128
|
-
Returns: `int`.
|
|
129
|
-
|
|
130
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
131
|
-
|
|
132
|
-
### `Counter` {#symbol-Counter}
|
|
133
|
-
|
|
134
|
-
[source](counters.md#code)
|
|
109
|
+
#### `State.read` · [source](counters.md#code) {#symbol-State.read}
|
|
135
110
|
|
|
136
|
-
|
|
111
|
+
It returns `int`.
|
|
137
112
|
|
|
138
|
-
|
|
113
|
+
### `Counter` · interface · [source](counters.md#code) {#symbol-Counter}
|
|
139
114
|
|
|
140
115
|
A mutable counter with an explicit transition contract.
|
|
141
116
|
|
|
142
|
-
#### `Counter.increment` {#symbol-Counter.increment}
|
|
117
|
+
#### `Counter.increment` · [source](counters.md#code) {#symbol-Counter.increment}
|
|
143
118
|
|
|
144
|
-
|
|
119
|
+
It may change `self`.
|
|
145
120
|
|
|
146
|
-
|
|
121
|
+
#### `Counter.value` · [source](counters.md#code) {#symbol-Counter.value}
|
|
147
122
|
|
|
148
|
-
|
|
123
|
+
It returns `int`.
|
|
149
124
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
#### `Counter.value` {#symbol-Counter.value}
|
|
153
|
-
|
|
154
|
-
[source](counters.md#code)
|
|
155
|
-
|
|
156
|
-
Returns: `int`.
|
|
157
|
-
|
|
158
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
159
|
-
|
|
160
|
-
### `Counters` {#symbol-Counters}
|
|
161
|
-
|
|
162
|
-
[source](counters.md#code)
|
|
163
|
-
|
|
164
|
-
**Author documentation**
|
|
125
|
+
### `Counters` · [source](counters.md#code) {#symbol-Counters}
|
|
165
126
|
|
|
166
127
|
The complete counter composition; its mutable state belongs to each scope.
|
|
167
128
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
- Provide [`_Initial`](counters.md#symbol-_Initial) when `State` is requested. Reuse one instance.
|
|
171
|
-
- Provide [`_Counter`](counters.md#symbol-_Counter) when `Counter` is requested. Reuse one instance per explicit scope. Permit explicit shared mutation. Required dependencies: `State`.
|
|
172
|
-
|
|
173
|
-
### `_Initial` {#symbol-_Initial}
|
|
174
|
-
|
|
175
|
-
[source](counters.md#code)
|
|
176
|
-
|
|
177
|
-
Behavioral class, private to this file.
|
|
178
|
-
|
|
179
|
-
Satisfies [`State`](counters.md#symbol-State).
|
|
180
|
-
|
|
181
|
-
#### `_Initial.read` {#symbol-_Initial.read}
|
|
182
|
-
|
|
183
|
-
[source](counters.md#code)
|
|
184
|
-
|
|
185
|
-
Returns: `int`.
|
|
186
|
-
|
|
187
|
-
**What it does**
|
|
188
|
-
|
|
189
|
-
- Return `0`.
|
|
190
|
-
|
|
191
|
-
### `_Updated` {#symbol-_Updated}
|
|
192
|
-
|
|
193
|
-
[source](counters.md#code)
|
|
194
|
-
|
|
195
|
-
Behavioral class, private to this file.
|
|
196
|
-
|
|
197
|
-
Satisfies [`State`](counters.md#symbol-State).
|
|
198
|
-
|
|
199
|
-
**Inputs**
|
|
200
|
-
|
|
201
|
-
- `count` (`int`) — required labeled input — stored as `count` and read-only after initialization.
|
|
202
|
-
|
|
203
|
-
#### `_Updated.read` {#symbol-_Updated.read}
|
|
204
|
-
|
|
205
|
-
[source](counters.md#code)
|
|
206
|
-
|
|
207
|
-
Returns: `int`.
|
|
208
|
-
|
|
209
|
-
**What it does**
|
|
210
|
-
|
|
211
|
-
- Return `count`.
|
|
212
|
-
|
|
213
|
-
### `_Counter` {#symbol-_Counter}
|
|
214
|
-
|
|
215
|
-
[source](counters.md#code)
|
|
216
|
-
|
|
217
|
-
Behavioral class, private to this file.
|
|
218
|
-
|
|
219
|
-
Satisfies [`Counter`](counters.md#symbol-Counter).
|
|
220
|
-
|
|
221
|
-
**Inputs**
|
|
129
|
+
These providers are registered before startup. `State` is provided by [`_Initial`](counters.md#symbol-_Initial). The same instance is shared. `Counter` is provided by [`_Counter`](counters.md#symbol-_Counter). Each scope shares one instance. Shared mutation is allowed. It requires bindings for `State`.
|
|
222
130
|
|
|
223
|
-
|
|
131
|
+
### `_Initial` · class · [source](counters.md#code) {#symbol-_Initial}
|
|
224
132
|
|
|
225
|
-
|
|
133
|
+
It implements [`State`](counters.md#symbol-State). It is private to this file.
|
|
226
134
|
|
|
227
|
-
[source](counters.md#code)
|
|
135
|
+
#### `_Initial.read` · [source](counters.md#code) {#symbol-_Initial.read}
|
|
228
136
|
|
|
229
|
-
|
|
137
|
+
It returns `0`.
|
|
230
138
|
|
|
231
|
-
|
|
139
|
+
### `_Updated` · class · [source](counters.md#code) {#symbol-_Updated}
|
|
232
140
|
|
|
233
|
-
|
|
141
|
+
It implements [`State`](counters.md#symbol-State). It is private to this file. It takes `count` as an integer, kept read-only.
|
|
234
142
|
|
|
235
|
-
|
|
143
|
+
#### `_Updated.read` · [source](counters.md#code) {#symbol-_Updated.read}
|
|
236
144
|
|
|
237
|
-
|
|
145
|
+
It returns `count`.
|
|
238
146
|
|
|
239
|
-
[source](counters.md#code)
|
|
147
|
+
### `_Counter` · class · [source](counters.md#code) {#symbol-_Counter}
|
|
240
148
|
|
|
241
|
-
|
|
149
|
+
It implements [`Counter`](counters.md#symbol-Counter). It is private to this file. The `_state` dependency is injected as [`State`](counters.md#symbol-State) and stored mutably and privately.
|
|
242
150
|
|
|
243
|
-
|
|
151
|
+
#### `_Counter.increment` · [source](counters.md#code) {#symbol-_Counter.increment}
|
|
244
152
|
|
|
245
|
-
-
|
|
153
|
+
It may change `self`. It sets `_state` to a [`_Updated`](counters.md#symbol-_Updated) with `count` from [`_state.read`](counters.md#symbol-State.read) plus `1`.
|
|
246
154
|
|
|
247
|
-
|
|
155
|
+
#### `_Counter.value` · [source](counters.md#code) {#symbol-_Counter.value}
|
|
248
156
|
|
|
249
|
-
|
|
157
|
+
It returns [`_state.read`](counters.md#symbol-State.read).
|
|
250
158
|
|
|
251
159
|
::::
|
|
252
160
|
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "august/0.20.1/io/contracts.aug · Modules and composition"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/approved-design/.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
|
+
[Modules and composition](../../../../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
|
+
:::::
|
|
@@ -33,6 +33,7 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
import Console from august.io
|
|
37
38
|
import Fruit from models
|
|
38
39
|
/** The application's explicit startup operation. */
|
|
@@ -41,13 +42,14 @@ interface Application:
|
|
|
41
42
|
start() uses Console.write
|
|
42
43
|
/** Construction stores dependencies; start performs the visible external work. */
|
|
43
44
|
ApplicationImpl(resolve Console console) implements Application:
|
|
44
|
-
start()
|
|
45
|
+
start():
|
|
45
46
|
fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
|
|
46
47
|
for item in fruit:
|
|
47
48
|
console.write(value=item.name)
|
|
48
49
|
```
|
|
49
50
|
|
|
50
51
|
```aug [Braces]
|
|
52
|
+
// aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
51
53
|
import Console from august.io
|
|
52
54
|
import Fruit from models
|
|
53
55
|
/** The application's explicit startup operation. */
|
|
@@ -57,7 +59,7 @@ interface Application {
|
|
|
57
59
|
}
|
|
58
60
|
/** Construction stores dependencies; start performs the visible external work. */
|
|
59
61
|
ApplicationImpl(resolve Console console) implements Application {
|
|
60
|
-
start()
|
|
62
|
+
start() {
|
|
61
63
|
fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
|
|
62
64
|
for item in fruit {
|
|
63
65
|
console.write(value=item.name)
|
|
@@ -74,91 +76,25 @@ ApplicationImpl(resolve Console console) implements Application {
|
|
|
74
76
|
|
|
75
77
|
## Compiled specification {#specification}
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### In this file
|
|
80
|
-
|
|
81
|
-
- [`Application`](app.md#symbol-Application) is an interface.
|
|
82
|
-
- [`ApplicationImpl`](app.md#symbol-ApplicationImpl) is a class implementing `Application`.
|
|
83
|
-
|
|
84
|
-
### `Application` {#symbol-Application}
|
|
85
|
-
|
|
86
|
-
[source](app.md#code)
|
|
87
|
-
|
|
88
|
-
Interface.
|
|
89
|
-
|
|
90
|
-
**Author documentation**
|
|
79
|
+
### `Application` · interface · [source](app.md#code) {#symbol-Application}
|
|
91
80
|
|
|
92
81
|
The application's explicit startup operation.
|
|
93
82
|
|
|
94
|
-
#### `Application.start` {#symbol-Application.start}
|
|
95
|
-
|
|
96
|
-
[source](app.md#code)
|
|
97
|
-
|
|
98
|
-
Returns: no value.
|
|
99
|
-
|
|
100
|
-
Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
101
|
-
|
|
102
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
103
|
-
|
|
104
|
-
**Author documentation**
|
|
105
|
-
|
|
106
|
-
Writes the fruit names through the selected console.
|
|
107
|
-
|
|
108
|
-
### `ApplicationImpl` {#symbol-ApplicationImpl}
|
|
109
|
-
|
|
110
|
-
[source](app.md#code)
|
|
111
|
-
|
|
112
|
-
Behavioral class.
|
|
113
|
-
|
|
114
|
-
Satisfies [`Application`](app.md#symbol-Application).
|
|
115
|
-
|
|
116
|
-
**Author documentation**
|
|
117
|
-
|
|
118
|
-
Construction stores dependencies; start performs the visible external work.
|
|
119
|
-
|
|
120
|
-
**Inputs**
|
|
121
|
-
|
|
122
|
-
- `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it — stored as `console` and read-only after initialization.
|
|
123
|
-
|
|
124
|
-
#### `ApplicationImpl.start` {#symbol-ApplicationImpl.start}
|
|
125
|
-
|
|
126
|
-
[source](app.md#code)
|
|
127
|
-
|
|
128
|
-
Returns: no value.
|
|
129
|
-
|
|
130
|
-
Capabilities: [`console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
131
|
-
|
|
132
|
-
**What it does**
|
|
133
|
-
|
|
134
|
-
- Set `fruit` to a list containing call [`Fruit`](models.md#symbol-Fruit) with `code` = `1`; `name` = `"apple"`, call [`Fruit`](models.md#symbol-Fruit) with `name` = `"pear"`; `code` = `2`.
|
|
135
|
-
- For each `item` in a snapshot of `fruit`, in iteration order:
|
|
136
|
-
- Call [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `name` of `item`.
|
|
137
|
-
|
|
138
|
-
**Author documentation**
|
|
139
|
-
|
|
140
|
-
Writes the fruit names through the selected console.
|
|
141
|
-
|
|
142
|
-
### Dependencies used by this file
|
|
143
|
-
|
|
144
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
145
|
-
|
|
146
|
-
#### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
83
|
+
#### `Application.start` · [source](app.md#code) {#symbol-Application.start}
|
|
147
84
|
|
|
148
|
-
|
|
85
|
+
Writes the fruit names through the selected console. It can call [`Console.write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
149
86
|
|
|
150
|
-
|
|
87
|
+
### `ApplicationImpl` · class · [source](app.md#code) {#symbol-ApplicationImpl}
|
|
151
88
|
|
|
152
|
-
|
|
89
|
+
Construction stores dependencies; start performs the visible external work. It implements [`Application`](app.md#symbol-Application). The `console` dependency is injected as [`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console) and stored read-only.
|
|
153
90
|
|
|
154
|
-
|
|
91
|
+
#### `ApplicationImpl.start` · [source](app.md#code) {#symbol-ApplicationImpl.start}
|
|
155
92
|
|
|
156
|
-
-
|
|
157
|
-
- Read `name` (`string`).
|
|
93
|
+
Writes the fruit names through the selected console. It sets `fruit` to a list containing a [`Fruit`](models.md#symbol-Fruit) with `code` `1` and `name` `"apple"`, a [`Fruit`](models.md#symbol-Fruit) with `name` `"pear"` and `code` `2`. For each `item` in a snapshot of `fruit`, it passes `item.name` to [`console.write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
|
|
158
94
|
|
|
159
|
-
###
|
|
95
|
+
### Dependencies
|
|
160
96
|
|
|
161
|
-
|
|
97
|
+
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 [`Fruit`](models.md#symbol-Fruit) (`name`) from `models`.
|
|
162
98
|
|
|
163
99
|
::::
|
|
164
100
|
|
|
@@ -33,6 +33,7 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
export Application from app
|
|
37
38
|
export ApplicationImpl from app
|
|
38
39
|
export Fruit from models
|
|
@@ -41,6 +42,7 @@ export RangeError from numbers
|
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
```aug [Braces]
|
|
45
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
44
46
|
export Application from app
|
|
45
47
|
export ApplicationImpl from app
|
|
46
48
|
export Fruit from models
|
|
@@ -56,27 +58,11 @@ export RangeError from numbers
|
|
|
56
58
|
|
|
57
59
|
## Compiled specification {#specification}
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
### Exports
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
Export the declaration `Application` from [`app.aug`](app.md#symbol-Application). Export the declaration `ApplicationImpl` from [`app.aug`](app.md#symbol-ApplicationImpl). Export the declaration `Fruit` from [`models.aug`](models.md#symbol-Fruit). Export the declaration `double` from [`numbers.aug`](numbers.md#symbol-double).
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
- Export `ApplicationImpl` from this folder.
|
|
65
|
-
- Export `Fruit` from this folder.
|
|
66
|
-
- Export `double` from this folder.
|
|
67
|
-
- Export `RangeError` from this folder.
|
|
68
|
-
|
|
69
|
-
### Folder exports
|
|
70
|
-
|
|
71
|
-
- Export the declaration `Application` from [`app.aug`](app.md#symbol-Application).
|
|
72
|
-
- Export the declaration `ApplicationImpl` from [`app.aug`](app.md#symbol-ApplicationImpl).
|
|
73
|
-
- Export the declaration `Fruit` from [`models.aug`](models.md#symbol-Fruit).
|
|
74
|
-
- Export the declaration `double` from [`numbers.aug`](numbers.md#symbol-double).
|
|
75
|
-
- Export the declaration `RangeError` from [`numbers.aug`](numbers.md#symbol-RangeError).
|
|
76
|
-
|
|
77
|
-
### Shared language rules
|
|
78
|
-
|
|
79
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
65
|
+
Export the declaration `RangeError` from [`numbers.aug`](numbers.md#symbol-RangeError).
|
|
80
66
|
|
|
81
67
|
::::
|
|
82
68
|
|
|
@@ -33,11 +33,13 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "models.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
/** Immutable fruit data, with public construction labels and structural equality. */
|
|
37
38
|
record Fruit(int code, string name)
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
```aug [Braces]
|
|
42
|
+
// aug-spec: "models.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
41
43
|
/** Immutable fruit data, with public construction labels and structural equality. */
|
|
42
44
|
record Fruit(int code, string name)
|
|
43
45
|
```
|
|
@@ -50,30 +52,9 @@ record Fruit(int code, string name)
|
|
|
50
52
|
|
|
51
53
|
## Compiled specification {#specification}
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
### `Fruit` · immutable record · [source](models.md#code) {#symbol-Fruit}
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- [`Fruit`](models.md#symbol-Fruit) is an immutable record.
|
|
58
|
-
|
|
59
|
-
### `Fruit` {#symbol-Fruit}
|
|
60
|
-
|
|
61
|
-
[source](models.md#code)
|
|
62
|
-
|
|
63
|
-
Immutable record.
|
|
64
|
-
|
|
65
|
-
**Author documentation**
|
|
66
|
-
|
|
67
|
-
Immutable fruit data, with public construction labels and structural equality.
|
|
68
|
-
|
|
69
|
-
**Inputs**
|
|
70
|
-
|
|
71
|
-
- `code` (`int`) — required labeled input — stored as `code` and read-only after initialization.
|
|
72
|
-
- `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
|
|
73
|
-
|
|
74
|
-
### Shared language rules
|
|
75
|
-
|
|
76
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
57
|
+
Immutable fruit data, with public construction labels and structural equality. It takes `code` as an integer, kept read-only and `name` as a string, kept read-only.
|
|
77
58
|
|
|
78
59
|
::::
|
|
79
60
|
|