@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.
Files changed (459) hide show
  1. package/README.md +9 -6
  2. package/THIRD_PARTY_NOTICES.md +4 -0
  3. package/bin/aug.mjs +12 -2
  4. package/docs/about.md +27 -0
  5. package/docs/api/crypto.md +103 -69
  6. package/docs/api/io.md +35 -33
  7. package/docs/api/json.md +3 -3
  8. package/docs/api/memory.md +23 -19
  9. package/docs/api/time.md +10 -9
  10. package/docs/api/web.md +33 -38
  11. package/docs/compatibility.md +3 -3
  12. package/docs/contributing-benchmarks.md +38 -0
  13. package/docs/dev-containers.md +95 -0
  14. package/docs/diagnostics.md +15 -5
  15. package/docs/docker.md +174 -12
  16. package/docs/editor.md +35 -0
  17. package/docs/example-projects.json +206 -24
  18. package/docs/examples/approved-design/counters.md +34 -126
  19. package/docs/examples/approved-design/dependencies/august/0.20.1/io/contracts.md +178 -0
  20. package/docs/examples/approved-design/domain/app.md +13 -77
  21. package/docs/examples/approved-design/domain/export.md +5 -19
  22. package/docs/examples/approved-design/domain/models.md +4 -23
  23. package/docs/examples/approved-design/domain/numbers.md +24 -114
  24. package/docs/examples/approved-design/index.md +16 -7
  25. package/docs/examples/approved-design/main.md +19 -96
  26. package/docs/examples/benchmark/index.md +6 -5
  27. package/docs/examples/benchmark/main.md +7 -35
  28. package/docs/examples/cli-args/index.md +6 -5
  29. package/docs/examples/cli-args/main.md +6 -31
  30. package/docs/examples/collections/index.md +6 -5
  31. package/docs/examples/collections/main.md +7 -35
  32. package/docs/examples/collections-benchmark/index.md +6 -5
  33. package/docs/examples/collections-benchmark/main.md +7 -35
  34. package/docs/examples/cpu-benchmark/index.md +6 -5
  35. package/docs/examples/cpu-benchmark/main.md +5 -24
  36. package/docs/examples/developer-workflow/calculator.md +39 -186
  37. package/docs/examples/developer-workflow/dependencies/august/0.20.1/io/contracts.md +178 -0
  38. package/docs/examples/developer-workflow/index.md +16 -7
  39. package/docs/examples/developer-workflow/logging/console.md +10 -56
  40. package/docs/examples/developer-workflow/logging/export.md +4 -14
  41. package/docs/examples/developer-workflow/logging/logger.md +7 -43
  42. package/docs/examples/developer-workflow/main.md +17 -69
  43. package/docs/examples/drop/index.md +6 -5
  44. package/docs/examples/drop/main.md +7 -27
  45. package/docs/examples/drop/resource.md +7 -30
  46. package/docs/examples/errors/errors.md +7 -27
  47. package/docs/examples/errors/index.md +6 -5
  48. package/docs/examples/errors/main.md +7 -28
  49. package/docs/examples/ffi/index.md +6 -5
  50. package/docs/examples/ffi/main.md +6 -20
  51. package/docs/examples/ffi/native.md +8 -34
  52. package/docs/examples/generic-di/dependencies/august/0.20.1/io/contracts.md +178 -0
  53. package/docs/examples/generic-di/index.md +6 -5
  54. package/docs/examples/generic-di/main.md +9 -39
  55. package/docs/examples/generic-di/types.md +23 -92
  56. package/docs/examples/generics/index.md +6 -5
  57. package/docs/examples/generics/main.md +10 -47
  58. package/docs/examples/generics/types.md +25 -100
  59. package/docs/examples/hello/app/export.md +4 -12
  60. package/docs/examples/hello/app/greeter.md +13 -91
  61. package/docs/examples/hello/dependencies/august/0.20.1/io/contracts.md +178 -0
  62. package/docs/examples/hello/index.md +17 -6
  63. package/docs/examples/hello/logging/console.md +10 -54
  64. package/docs/examples/hello/logging/export.md +4 -14
  65. package/docs/examples/hello/logging/logger.md +7 -45
  66. package/docs/examples/hello/main.md +9 -39
  67. package/docs/examples/http-benchmark/index.md +6 -5
  68. package/docs/examples/http-benchmark/main.md +6 -20
  69. package/docs/examples/http-benchmark/routes.md +9 -31
  70. package/docs/examples/index.md +46 -29
  71. package/docs/examples/interceptors/app.md +20 -139
  72. package/docs/examples/interceptors/dependencies/august/0.20.1/io/contracts.md +178 -0
  73. package/docs/examples/interceptors/index.md +6 -5
  74. package/docs/examples/interceptors/interceptors.md +24 -148
  75. package/docs/examples/interceptors/logging.md +13 -76
  76. package/docs/examples/interceptors/main.md +10 -65
  77. package/docs/examples/json-benchmark/data.md +4 -20
  78. package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  79. package/docs/examples/json-benchmark/index.md +7 -5
  80. package/docs/examples/json-benchmark/main-yaml.md +20 -0
  81. package/docs/examples/json-benchmark/main.md +10 -49
  82. package/docs/examples/new-syntax/console.md +10 -52
  83. package/docs/examples/new-syntax/dependencies/august/0.20.1/io/contracts.md +178 -0
  84. package/docs/examples/new-syntax/greeter.md +13 -71
  85. package/docs/examples/new-syntax/index.md +6 -5
  86. package/docs/examples/new-syntax/logger.md +7 -43
  87. package/docs/examples/new-syntax/main.md +10 -53
  88. package/docs/examples/new-syntax/math.md +6 -24
  89. package/docs/examples/oidc-login/client/contracts.md +10 -61
  90. package/docs/examples/oidc-login/client/endpoints.md +32 -154
  91. package/docs/examples/oidc-login/client/export.md +5 -23
  92. package/docs/examples/oidc-login/client/login.md +234 -344
  93. package/docs/examples/oidc-login/client/logout.md +38 -143
  94. package/docs/examples/oidc-login/client/protocol.md +183 -304
  95. package/docs/examples/oidc-login/client/session.md +41 -149
  96. package/docs/examples/oidc-login/client/views.md +13 -58
  97. package/docs/examples/oidc-login/common/export.md +6 -26
  98. package/docs/examples/oidc-login/common/headers.md +42 -72
  99. package/docs/examples/oidc-login/common/keys.md +40 -164
  100. package/docs/examples/oidc-login/common/settings.md +24 -40
  101. package/docs/examples/oidc-login/common/views.md +7 -28
  102. package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
  103. package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  104. package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
  105. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
  106. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
  107. package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
  108. package/docs/examples/oidc-login/index.md +8 -7
  109. package/docs/examples/oidc-login/main-yaml.md +7 -0
  110. package/docs/examples/oidc-login/main.md +26 -153
  111. package/docs/examples/oidc-login/provider/authorization.md +232 -275
  112. package/docs/examples/oidc-login/provider/contracts.md +24 -146
  113. package/docs/examples/oidc-login/provider/credentials.md +24 -57
  114. package/docs/examples/oidc-login/provider/discovery.md +48 -122
  115. package/docs/examples/oidc-login/provider/export.md +11 -37
  116. package/docs/examples/oidc-login/provider/token.md +159 -237
  117. package/docs/examples/oidc-login/provider/userinfo.md +47 -102
  118. package/docs/examples/oidc-login/provider/views.md +13 -53
  119. package/docs/examples/ownership/counter.md +17 -63
  120. package/docs/examples/ownership/index.md +6 -5
  121. package/docs/examples/ownership/main.md +7 -30
  122. package/docs/examples/ownership-transfer/dependencies/august/0.20.1/io/contracts.md +178 -0
  123. package/docs/examples/ownership-transfer/index.md +6 -5
  124. package/docs/examples/ownership-transfer/main.md +10 -52
  125. package/docs/examples/ownership-transfer/resource.md +15 -67
  126. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
  127. package/docs/examples/packages-app/index.md +7 -6
  128. package/docs/examples/packages-app/main.md +7 -25
  129. package/docs/examples/packages-math/aug-package-json.md +1 -1
  130. package/docs/examples/packages-math/index.md +7 -6
  131. package/docs/examples/packages-math/src/arithmetic.md +12 -50
  132. package/docs/examples/packages-math/src/export.md +4 -12
  133. package/docs/examples/startup-benchmark/index.md +6 -5
  134. package/docs/examples/startup-benchmark/main.md +5 -17
  135. package/docs/examples/visibility/counter.md +19 -67
  136. package/docs/examples/visibility/index.md +6 -5
  137. package/docs/examples/visibility/main.md +7 -31
  138. package/docs/examples/weather-api/forecasts.md +168 -0
  139. package/docs/examples/weather-api/index.md +42 -0
  140. package/docs/examples/weather-api/main-yaml.md +21 -0
  141. package/docs/examples/weather-api/main.md +65 -0
  142. package/docs/examples.json +10 -0
  143. package/docs/getting-started.md +105 -2
  144. package/docs/grammar.md +6 -4
  145. package/docs/guides/change-a-module.md +64 -0
  146. package/docs/guides/index.md +27 -0
  147. package/docs/index.md +51 -29
  148. package/docs/language-conformance.md +1 -1
  149. package/docs/language-constructs.md +22 -22
  150. package/docs/language-design-audit.md +1 -1
  151. package/docs/learn/data-and-errors.md +77 -0
  152. package/docs/learn/index.md +30 -0
  153. package/docs/learn/modules-and-dependencies.md +73 -0
  154. package/docs/learn/state-and-tests.md +71 -0
  155. package/docs/learn/values-and-functions.md +62 -0
  156. package/docs/lesson-failures.json +8 -0
  157. package/docs/maintaining-docs.md +16 -4
  158. package/docs/packages.md +72 -126
  159. package/docs/performance.md +13 -41
  160. package/docs/production-readiness.md +5 -4
  161. package/docs/public/downloads/approved-design.zip +0 -0
  162. package/docs/public/downloads/benchmark.zip +0 -0
  163. package/docs/public/downloads/cli-args.zip +0 -0
  164. package/docs/public/downloads/collections-benchmark.zip +0 -0
  165. package/docs/public/downloads/collections.zip +0 -0
  166. package/docs/public/downloads/cpu-benchmark.zip +0 -0
  167. package/docs/public/downloads/developer-workflow.zip +0 -0
  168. package/docs/public/downloads/drop.zip +0 -0
  169. package/docs/public/downloads/errors.zip +0 -0
  170. package/docs/public/downloads/ffi.zip +0 -0
  171. package/docs/public/downloads/generic-di.zip +0 -0
  172. package/docs/public/downloads/generics.zip +0 -0
  173. package/docs/public/downloads/hello.zip +0 -0
  174. package/docs/public/downloads/http-benchmark.zip +0 -0
  175. package/docs/public/downloads/interceptors.zip +0 -0
  176. package/docs/public/downloads/json-benchmark.zip +0 -0
  177. package/docs/public/downloads/new-syntax.zip +0 -0
  178. package/docs/public/downloads/oidc-login.zip +0 -0
  179. package/docs/public/downloads/ownership-transfer.zip +0 -0
  180. package/docs/public/downloads/ownership.zip +0 -0
  181. package/docs/public/downloads/packages-app.zip +0 -0
  182. package/docs/public/downloads/packages-math.zip +0 -0
  183. package/docs/public/downloads/startup-benchmark.zip +0 -0
  184. package/docs/public/downloads/visibility.zip +0 -0
  185. package/docs/public/downloads/weather-api.zip +0 -0
  186. package/docs/reference.md +23 -17
  187. package/docs/releasing.md +29 -15
  188. package/docs/research/code-to-natural-language.md +108 -0
  189. package/docs/research/ecosystem-workflow.md +41 -0
  190. package/docs/research/wiki-editorial-design.md +71 -0
  191. package/docs/roadmap.md +1 -1
  192. package/docs/specifications.md +27 -11
  193. package/docs/testing.md +19 -5
  194. package/docs/tooling.md +25 -12
  195. package/docs/weather-api.md +65 -0
  196. package/docs/web.md +50 -18
  197. package/docs/writing-docs.md +49 -0
  198. package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  199. package/examples/approved-design/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  200. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  201. package/examples/approved-design/counters.aug +5 -4
  202. package/examples/approved-design/counters.aug.md +25 -132
  203. package/examples/approved-design/domain/app.aug +2 -1
  204. package/examples/approved-design/domain/app.aug.md +10 -80
  205. package/examples/approved-design/domain/export.aug +1 -0
  206. package/examples/approved-design/domain/export.aug.md +4 -20
  207. package/examples/approved-design/domain/models.aug +1 -0
  208. package/examples/approved-design/domain/models.aug.md +3 -25
  209. package/examples/approved-design/domain/numbers.aug +3 -2
  210. package/examples/approved-design/domain/numbers.aug.md +19 -116
  211. package/examples/approved-design/main.aug +1 -0
  212. package/examples/approved-design/main.aug.md +12 -95
  213. package/examples/benchmark/.aug-spec/manifest.json +1 -1
  214. package/examples/benchmark/main.aug +1 -0
  215. package/examples/benchmark/main.aug.md +6 -36
  216. package/examples/cli-args/.aug-spec/manifest.json +1 -1
  217. package/examples/cli-args/main.aug +1 -0
  218. package/examples/cli-args/main.aug.md +5 -32
  219. package/examples/collections/.aug-spec/manifest.json +1 -1
  220. package/examples/collections/main.aug +1 -0
  221. package/examples/collections/main.aug.md +6 -36
  222. package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  223. package/examples/developer-workflow/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  224. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  225. package/examples/developer-workflow/calculator.aug +3 -2
  226. package/examples/developer-workflow/calculator.aug.md +28 -189
  227. package/examples/developer-workflow/logging/console.aug +2 -1
  228. package/examples/developer-workflow/logging/console.aug.md +7 -57
  229. package/examples/developer-workflow/logging/export.aug +1 -0
  230. package/examples/developer-workflow/logging/export.aug.md +3 -15
  231. package/examples/developer-workflow/logging/logger.aug +1 -0
  232. package/examples/developer-workflow/logging/logger.aug.md +6 -46
  233. package/examples/developer-workflow/main.aug +1 -0
  234. package/examples/developer-workflow/main.aug.md +10 -68
  235. package/examples/drop/.aug-spec/manifest.json +1 -1
  236. package/examples/drop/main.aug +1 -0
  237. package/examples/drop/main.aug.md +6 -28
  238. package/examples/drop/resource.aug +1 -0
  239. package/examples/drop/resource.aug.md +6 -34
  240. package/examples/errors/.aug-spec/manifest.json +1 -1
  241. package/examples/errors/errors.aug +2 -1
  242. package/examples/errors/errors.aug.md +4 -27
  243. package/examples/errors/main.aug +1 -0
  244. package/examples/errors/main.aug.md +6 -29
  245. package/examples/ffi/.aug-spec/manifest.json +1 -1
  246. package/examples/ffi/main.aug +1 -0
  247. package/examples/ffi/main.aug.md +5 -21
  248. package/examples/ffi/native.aug +2 -1
  249. package/examples/ffi/native.aug.md +5 -35
  250. package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  251. package/examples/generic-di/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  252. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  253. package/examples/generic-di/main.aug +1 -0
  254. package/examples/generic-di/main.aug.md +8 -40
  255. package/examples/generic-di/types.aug +3 -2
  256. package/examples/generic-di/types.aug.md +18 -97
  257. package/examples/generics/.aug-spec/manifest.json +1 -1
  258. package/examples/generics/main.aug +1 -0
  259. package/examples/generics/main.aug.md +9 -48
  260. package/examples/generics/types.aug +4 -3
  261. package/examples/generics/types.aug.md +18 -104
  262. package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  263. package/examples/hello/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  264. package/examples/hello/.aug-spec/manifest.json +3 -3
  265. package/examples/hello/app/export.aug +1 -0
  266. package/examples/hello/app/export.aug.md +3 -13
  267. package/examples/hello/app/greeter.aug +2 -1
  268. package/examples/hello/app/greeter.aug.md +10 -94
  269. package/examples/hello/logging/console.aug +2 -1
  270. package/examples/hello/logging/console.aug.md +7 -55
  271. package/examples/hello/logging/export.aug +1 -0
  272. package/examples/hello/logging/export.aug.md +3 -15
  273. package/examples/hello/logging/logger.aug +1 -0
  274. package/examples/hello/logging/logger.aug.md +6 -48
  275. package/examples/hello/main.aug +1 -0
  276. package/examples/hello/main.aug.md +8 -40
  277. package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  278. package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  279. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  280. package/examples/interceptors/app.aug +3 -2
  281. package/examples/interceptors/app.aug.md +15 -141
  282. package/examples/interceptors/interceptors.aug +3 -2
  283. package/examples/interceptors/interceptors.aug.md +19 -152
  284. package/examples/interceptors/logging.aug +2 -1
  285. package/examples/interceptors/logging.aug.md +10 -79
  286. package/examples/interceptors/main.aug +1 -0
  287. package/examples/interceptors/main.aug.md +9 -66
  288. package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  289. package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  290. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  291. package/examples/new-syntax/console.aug +2 -1
  292. package/examples/new-syntax/console.aug.md +7 -53
  293. package/examples/new-syntax/greeter.aug +2 -1
  294. package/examples/new-syntax/greeter.aug.md +10 -74
  295. package/examples/new-syntax/logger.aug +1 -0
  296. package/examples/new-syntax/logger.aug.md +6 -46
  297. package/examples/new-syntax/main.aug +1 -0
  298. package/examples/new-syntax/main.aug.md +9 -54
  299. package/examples/new-syntax/math.aug +2 -1
  300. package/examples/new-syntax/math.aug.md +3 -24
  301. package/examples/oidc-login/.aug-spec/manifest.json +13 -13
  302. package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
  303. package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
  304. package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
  305. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
  306. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
  307. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
  308. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
  309. package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
  310. package/examples/oidc-login/aug.lock.json +100 -0
  311. package/examples/oidc-login/client/contracts.aug +1 -0
  312. package/examples/oidc-login/client/contracts.aug.md +9 -66
  313. package/examples/oidc-login/client/endpoints.aug +6 -5
  314. package/examples/oidc-login/client/endpoints.aug.md +13 -145
  315. package/examples/oidc-login/client/export.aug +1 -0
  316. package/examples/oidc-login/client/export.aug.md +4 -24
  317. package/examples/oidc-login/client/login.aug +7 -6
  318. package/examples/oidc-login/client/login.aug.md +25 -303
  319. package/examples/oidc-login/client/logout.aug +5 -4
  320. package/examples/oidc-login/client/logout.aug.md +13 -135
  321. package/examples/oidc-login/client/protocol.aug +7 -6
  322. package/examples/oidc-login/client/protocol.aug.md +36 -283
  323. package/examples/oidc-login/client/session.aug +5 -4
  324. package/examples/oidc-login/client/session.aug.md +12 -139
  325. package/examples/oidc-login/client/views.aug +3 -2
  326. package/examples/oidc-login/client/views.aug.md +8 -57
  327. package/examples/oidc-login/common/export.aug +1 -0
  328. package/examples/oidc-login/common/export.aug.md +5 -27
  329. package/examples/oidc-login/common/headers.aug +4 -3
  330. package/examples/oidc-login/common/headers.aug.md +9 -67
  331. package/examples/oidc-login/common/keys.aug +6 -5
  332. package/examples/oidc-login/common/keys.aug.md +29 -165
  333. package/examples/oidc-login/common/settings.aug +2 -1
  334. package/examples/oidc-login/common/settings.aug.md +5 -39
  335. package/examples/oidc-login/common/views.aug +2 -1
  336. package/examples/oidc-login/common/views.aug.md +4 -28
  337. package/examples/oidc-login/main.aug +6 -16
  338. package/examples/oidc-login/main.aug.md +17 -146
  339. package/examples/oidc-login/main.yaml +7 -0
  340. package/examples/oidc-login/provider/authorization.aug +7 -6
  341. package/examples/oidc-login/provider/authorization.aug.md +23 -238
  342. package/examples/oidc-login/provider/contracts.aug +1 -0
  343. package/examples/oidc-login/provider/contracts.aug.md +23 -158
  344. package/examples/oidc-login/provider/credentials.aug +3 -2
  345. package/examples/oidc-login/provider/credentials.aug.md +9 -53
  346. package/examples/oidc-login/provider/discovery.aug +4 -3
  347. package/examples/oidc-login/provider/discovery.aug.md +11 -118
  348. package/examples/oidc-login/provider/export.aug +1 -0
  349. package/examples/oidc-login/provider/export.aug.md +6 -34
  350. package/examples/oidc-login/provider/token.aug +6 -5
  351. package/examples/oidc-login/provider/token.aug.md +16 -204
  352. package/examples/oidc-login/provider/userinfo.aug +4 -3
  353. package/examples/oidc-login/provider/userinfo.aug.md +10 -92
  354. package/examples/oidc-login/provider/views.aug +3 -2
  355. package/examples/oidc-login/provider/views.aug.md +8 -52
  356. package/examples/ownership/.aug-spec/manifest.json +1 -1
  357. package/examples/ownership/counter.aug +3 -2
  358. package/examples/ownership/counter.aug.md +12 -66
  359. package/examples/ownership/main.aug +1 -0
  360. package/examples/ownership/main.aug.md +6 -31
  361. package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  362. package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  363. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  364. package/examples/ownership-transfer/main.aug +1 -0
  365. package/examples/ownership-transfer/main.aug.md +9 -53
  366. package/examples/ownership-transfer/resource.aug +2 -1
  367. package/examples/ownership-transfer/resource.aug.md +12 -71
  368. package/examples/packages/app/.aug-spec/manifest.json +1 -1
  369. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
  370. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
  371. package/examples/packages/app/main.aug +1 -0
  372. package/examples/packages/app/main.aug.md +6 -26
  373. package/examples/packages/math/.aug-spec/manifest.json +1 -1
  374. package/examples/packages/math/aug-package.json +1 -1
  375. package/examples/packages/math/src/arithmetic.aug +2 -1
  376. package/examples/packages/math/src/arithmetic.aug.md +9 -51
  377. package/examples/packages/math/src/export.aug +1 -0
  378. package/examples/packages/math/src/export.aug.md +3 -13
  379. package/examples/visibility/.aug-spec/manifest.json +1 -1
  380. package/examples/visibility/counter.aug +4 -3
  381. package/examples/visibility/counter.aug.md +12 -68
  382. package/examples/visibility/main.aug +1 -0
  383. package/examples/visibility/main.aug.md +6 -32
  384. package/examples/weather-api/.aug-spec/manifest.json +8 -0
  385. package/examples/weather-api/AGENTS.md +17 -0
  386. package/examples/weather-api/README.md +19 -0
  387. package/examples/weather-api/forecasts.aug +47 -0
  388. package/examples/weather-api/forecasts.aug.md +32 -0
  389. package/examples/weather-api/main.aug +4 -0
  390. package/examples/weather-api/main.aug.md +15 -0
  391. package/examples/weather-api/main.yaml +5 -0
  392. package/examples/weather-api/weather.http +5 -0
  393. package/package.json +3 -4
  394. package/scripts/bootstrap-native.mjs +181 -106
  395. package/scripts/native-setup.mjs +98 -0
  396. package/scripts/native-toolchain.mjs +28 -0
  397. package/src/builtins.js +1 -1
  398. package/src/checker.js +259 -72
  399. package/src/cli.js +114 -20
  400. package/src/codegen.js +1 -1
  401. package/src/config.js +1 -1
  402. package/src/contracts.js +10 -0
  403. package/src/editor.js +71 -16
  404. package/src/fixes.js +90 -2
  405. package/src/formatter.js +19 -8
  406. package/src/git-packages.js +110 -0
  407. package/src/help.js +24 -23
  408. package/src/http-contracts.js +14 -0
  409. package/src/http-policies.js +5 -5
  410. package/src/libraries.js +1 -1
  411. package/src/lsp.js +14 -5
  412. package/src/native.js +19 -13
  413. package/src/navigation.js +4 -2
  414. package/src/openapi.js +5 -4
  415. package/src/package-locking.js +45 -0
  416. package/src/package-manager.js +251 -67
  417. package/src/parser.js +13 -5
  418. package/src/policies.js +3 -3
  419. package/src/project-init.js +78 -4
  420. package/src/project.js +9 -7
  421. package/src/semantic.js +46 -2
  422. package/src/snippets.js +59 -0
  423. package/src/spec-hints.js +56 -0
  424. package/src/spec-tree.js +241 -0
  425. package/src/spec.js +626 -303
  426. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
  427. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
  428. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
  429. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
  430. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
  431. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
  432. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
  433. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
  434. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
  435. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
  436. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
  437. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
  438. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
  439. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
  440. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  441. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  442. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  443. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  444. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  445. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  446. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  447. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  448. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
  449. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
  450. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
  451. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
  452. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
  453. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
  454. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  455. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  456. /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
  457. /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  458. /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  459. /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
@@ -0,0 +1,178 @@
1
+ ---
2
+ title: "august/0.20.1/io/contracts.aug · Hello world with dependencies"
3
+ generated: true
4
+ source: "examples/hello/.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
+ [Hello world with dependencies](../../../../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
+ :::::
@@ -10,9 +10,19 @@ outline: [2, 3]
10
10
 
11
11
  # Hello world with dependencies
12
12
 
13
- A greeter, a logger, narrow folder exports, and explicit application bindings.
13
+ The application prints a greeting through an injected logger. Its entry point selects the providers, and each folder exposes a small public surface.
14
14
 
15
- Read a file below to see its highlighted source and the Markdown produced by `aug spec`. Choose **Indentation** or **Braces** above the code. Both views describe the same checked program; your choice is kept when you open another file.
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
+
17
+ ## Follow the program
18
+
19
+ Read [`main.aug`](main.md). Startup binds the console, logger, and application, then resolves the greeter and calls it.
20
+
21
+ Read [`app/greeter.aug`](app/greeter.md). The greeter receives its logger in the header and delegates the greeting to it. The interface states the console effect.
22
+
23
+ Read [`logging/export.aug`](logging/export.md). This is the logging folder's public surface. Callers can import the exported contract and provider.
24
+
25
+ Read [`logging/logger.aug`](logging/logger.md). The contract describes the log operation and its output capability; the console provider implements it.
16
26
 
17
27
  ## Project files
18
28
 
@@ -26,12 +36,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
26
36
 
27
37
  ## Try this project
28
38
 
29
- From a repository checkout with August installed:
39
+ [Download this project](/downloads/hello.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:
30
40
 
31
41
  ```sh
32
- aug check examples/hello
33
- aug spec examples/hello
34
- aug run examples/hello
42
+ cd hello
43
+ aug check .
44
+ aug spec .
45
+ aug run .
35
46
  ```
36
47
 
37
48
  [Browse all examples](../index.md)
@@ -33,18 +33,20 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  import Console from august.io
37
38
  import Logger from logger
38
39
  ConsoleLogger() implements Logger:
39
- log(resolve Console console, string message) uses Console.write:
40
+ log(resolve Console console, string message):
40
41
  console.write(value=message)
41
42
  ```
42
43
 
43
44
  ```aug [Braces]
45
+ // aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
44
46
  import Console from august.io
45
47
  import Logger from logger
46
48
  ConsoleLogger() implements Logger {
47
- log(resolve Console console, string message) uses Console.write {
49
+ log(resolve Console console, string message) {
48
50
  console.write(value=message)
49
51
  }
50
52
  }
@@ -58,63 +60,17 @@ ConsoleLogger() implements Logger {
58
60
 
59
61
  ## Compiled specification {#specification}
60
62
 
61
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
63
+ ### `ConsoleLogger` · class · [source](console.md#code) {#symbol-ConsoleLogger}
62
64
 
63
- ### In this file
65
+ It implements [`Logger`](logger.md#symbol-Logger).
64
66
 
65
- - [`ConsoleLogger`](console.md#symbol-ConsoleLogger) is a class implementing `Logger`.
67
+ #### `ConsoleLogger.log` · [source](console.md#code) {#symbol-ConsoleLogger.log}
66
68
 
67
- ### `ConsoleLogger` {#symbol-ConsoleLogger}
69
+ Writes one message. It takes `message` as a string (Text to write). 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).
68
70
 
69
- [source](console.md#code)
71
+ ### Dependencies
70
72
 
71
- Behavioral class.
72
-
73
- Satisfies [`Logger`](logger.md#symbol-Logger).
74
-
75
- #### `ConsoleLogger.log` {#symbol-ConsoleLogger.log}
76
-
77
- [source](console.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
- **What it does**
89
-
90
- - Call [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `message`.
91
-
92
- **Author documentation**
93
-
94
- Writes one message.
95
-
96
- **Parameters**
97
- - `message`: Text to write.
98
-
99
- ### Dependencies used by this file
100
-
101
- Only referenced types and operations appear here. Each name links to its complete specification.
102
-
103
- #### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
104
-
105
- Capability interface from `august.io`.
106
-
107
- - [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
108
-
109
- #### [`Logger`](logger.md#symbol-Logger)
110
-
111
- Interface from `logger`.
112
-
113
- Used as a type or provider.
114
-
115
- ### Shared language rules
116
-
117
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
73
+ 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`.
118
74
 
119
75
  ::::
120
76
 
@@ -33,11 +33,13 @@ 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 Logger from logger
37
38
  export ConsoleLogger from console
38
39
  ```
39
40
 
40
41
  ```aug [Braces]
42
+ // aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
41
43
  export Logger from logger
42
44
  export ConsoleLogger from console
43
45
  ```
@@ -50,21 +52,9 @@ export ConsoleLogger from console
50
52
 
51
53
  ## Compiled specification {#specification}
52
54
 
53
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
55
+ ### Exports
54
56
 
55
- ### In this file
56
-
57
- - Export `Logger` from this folder.
58
- - Export `ConsoleLogger` from this folder.
59
-
60
- ### Folder exports
61
-
62
- - Export the declaration `Logger` from [`logger.aug`](logger.md#symbol-Logger).
63
- - Export the declaration `ConsoleLogger` from [`console.aug`](console.md#symbol-ConsoleLogger).
64
-
65
- ### Shared language rules
66
-
67
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
57
+ Export the declaration `Logger` from [`logger.aug`](logger.md#symbol-Logger). Export the declaration `ConsoleLogger` from [`console.aug`](console.md#symbol-ConsoleLogger).
68
58
 
69
59
  ::::
70
60
 
@@ -33,6 +33,7 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  import Console from august.io
37
38
  /** Writes messages to an application log. */
38
39
  interface Logger:
@@ -44,6 +45,7 @@ interface Logger:
44
45
  ```
45
46
 
46
47
  ```aug [Braces]
48
+ // aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
47
49
  import Console from august.io
48
50
  /** Writes messages to an application log. */
49
51
  interface Logger {
@@ -63,57 +65,17 @@ interface Logger {
63
65
 
64
66
  ## Compiled specification {#specification}
65
67
 
66
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
67
-
68
- ### In this file
69
-
70
- - [`Logger`](logger.md#symbol-Logger) is an interface.
71
-
72
- ### `Logger` {#symbol-Logger}
73
-
74
- [source](logger.md#code)
75
-
76
- Interface.
77
-
78
- **Author documentation**
68
+ ### `Logger` · interface · [source](logger.md#code) {#symbol-Logger}
79
69
 
80
70
  Writes messages to an application log.
81
71
 
82
- #### `Logger.log` {#symbol-Logger.log}
83
-
84
- [source](logger.md#code)
85
-
86
- **Inputs**
87
-
88
- - `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
89
- - `message` (`string`) — required labeled input.
90
-
91
- Returns: no value.
92
-
93
- Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
94
-
95
- Interface contract. A selected implementation supplies the behavior.
96
-
97
- **Author documentation**
98
-
99
- Writes one message.
100
-
101
- **Parameters**
102
- - `message`: Text to write.
103
-
104
- ### Dependencies used by this file
105
-
106
- Only referenced types and operations appear here. Each name links to its complete specification.
107
-
108
- #### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
109
-
110
- Capability interface from `august.io`.
72
+ #### `Logger.log` · [source](logger.md#code) {#symbol-Logger.log}
111
73
 
112
- - [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
74
+ Writes one message. It takes `message` as a string (Text to write). 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).
113
75
 
114
- ### Shared language rules
76
+ ### Dependencies
115
77
 
116
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
78
+ 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`.
117
79
 
118
80
  ::::
119
81
 
@@ -33,6 +33,7 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  import Console and SystemConsole from august.io
37
38
  implement Console with SystemConsole
38
39
  import Logger from logging
@@ -45,6 +46,7 @@ greeter.greet(name="AugScript")
45
46
  ```
46
47
 
47
48
  ```aug [Braces]
49
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
48
50
  import Console and SystemConsole from august.io
49
51
  implement Console with SystemConsole
50
52
  import Logger from logging
@@ -64,51 +66,19 @@ greeter.greet(name="AugScript")
64
66
 
65
67
  ## Compiled specification {#specification}
66
68
 
67
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
69
+ ### Providers
68
70
 
69
- ### In this file
71
+ `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`](logging/console.md#symbol-ConsoleLogger). The same instance is shared.
70
72
 
71
- - Register 3 dependency providers before startup.
72
- - Run 2 other startup steps in source order.
73
+ `app` is provided by [`Greeter`](app/greeter.md#symbol-Greeter). The same instance is shared. It requires bindings for `Logger`.
73
74
 
74
- ### Dependency providers
75
+ ### Startup
75
76
 
76
- Register these providers before startup. Their declaration order does not set initialization order; shared instances initialize in dependency order.
77
+ It sets `greeter` to the instance provided for `app`. It passes `"AugScript"` to [`greeter.greet`](app/greeter.md#symbol-Greeter.greet), using injected `Console`.
77
78
 
78
- - Provide [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole) when `Console` is requested. Reuse one instance.
79
- - Provide [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
80
- - Provide [`Greeter`](app/greeter.md#symbol-Greeter) when `app` is requested. Reuse one instance. Required dependencies: `Logger`.
79
+ ### Dependencies
81
80
 
82
- ### Startup, in source order
83
-
84
- - Set `greeter` to the instance provided for `app`.
85
- - Call [`Greeter.greet`](app/greeter.md#symbol-Greeter.greet) on `greeter` with `name` = `"AugScript"`; inject `console` from `Console`.
86
-
87
- ### Dependencies used by this file
88
-
89
- Only referenced types and operations appear here. Each name links to its complete specification.
90
-
91
- #### [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole)
92
-
93
- Class from `august.io`.
94
-
95
- Used as a type or provider.
96
-
97
- #### [`Greeter`](app/greeter.md#symbol-Greeter)
98
-
99
- Class from `app`.
100
-
101
- - [`Greeter.greet`](app/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).
102
-
103
- #### [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger)
104
-
105
- Class from `logging`.
106
-
107
- Used as a type or provider.
108
-
109
- ### Shared language rules
110
-
111
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
81
+ It uses [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app/greeter.md#symbol-Greeter) ([`greet`](app/greeter.md#symbol-Greeter.greet)) from `app`. It uses [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger) from `logging`.
112
82
 
113
83
  ::::
114
84
 
@@ -12,7 +12,7 @@ outline: [2, 3]
12
12
 
13
13
  Serve the typed JSON endpoint used in the throughput measurements.
14
14
 
15
- Read a file below to see its highlighted source and the Markdown produced by `aug spec`. Choose **Indentation** or **Braces** above the code. Both views describe the same checked program; your choice is kept when you open another file.
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
 
@@ -22,12 +22,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
22
22
 
23
23
  ## Try this project
24
24
 
25
- From a repository checkout with August installed:
25
+ [Download this project](/downloads/http-benchmark.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:
26
26
 
27
27
  ```sh
28
- aug check benchmarks/http
29
- aug spec benchmarks/http
30
- aug run benchmarks/http
28
+ cd http-benchmark
29
+ aug check .
30
+ aug spec .
31
+ aug run .
31
32
  ```
32
33
 
33
34
  See [the performance page](../../performance.md) for measurements, input sizes, and reproduction steps.
@@ -29,11 +29,13 @@ pageClass: aug-example-page
29
29
  ::: code-group
30
30
 
31
31
  ```aug [Indentation]
32
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
32
33
  import reply from routes
33
34
  serve reply on port 0
34
35
  ```
35
36
 
36
37
  ```aug [Braces]
38
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
37
39
  import reply from routes
38
40
  serve reply on port 0
39
41
  ```
@@ -46,33 +48,17 @@ serve reply on port 0
46
48
 
47
49
  ## Compiled specification {#specification}
48
50
 
49
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
50
-
51
- ### In this file
52
-
53
- - Serve 1 HTTP route.
54
-
55
51
  ### HTTP configuration
56
52
 
57
53
  Listen on `127.0.0.1`. Limit request bodies to 1048576 bytes and buffered responses to 4194304 bytes.
58
54
 
59
- ### Startup, in source order
60
-
61
- - Serve [`reply`](routes.md#symbol-reply) on port `0`.
62
-
63
- ### Dependencies used by this file
64
-
65
- Only referenced types and operations appear here. Each name links to its complete specification.
66
-
67
- #### [`reply`](routes.md#symbol-reply)
68
-
69
- Function from `routes`.
55
+ ### Startup
70
56
 
71
- - [`reply`](routes.md#symbol-reply) (no caller inputs) → [`Reply`](routes.md#symbol-Reply).
57
+ It serves [`reply`](routes.md#symbol-reply) on port `0`.
72
58
 
73
- ### Shared language rules
59
+ ### Dependencies
74
60
 
75
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
61
+ It uses [`reply`](routes.md#symbol-reply) from `routes`.
76
62
 
77
63
  ::::
78
64
 
@@ -29,14 +29,16 @@ pageClass: aug-example-page
29
29
  ::: code-group
30
30
 
31
31
  ```aug [Indentation]
32
+ // aug-spec: "routes.aug.md" explains this file. Read it before changes; refresh with aug spec.
32
33
  record Reply(int id, string message)
33
- endpoint GET "/bench" as reply() returns Reply:
34
+ endpoint GET "/bench" as reply():
34
35
  return Reply(id=7, message="hello")
35
36
  ```
36
37
 
37
38
  ```aug [Braces]
39
+ // aug-spec: "routes.aug.md" explains this file. Read it before changes; refresh with aug spec.
38
40
  record Reply(int id, string message)
39
- endpoint GET "/bench" as reply() returns Reply {
41
+ endpoint GET "/bench" as reply() {
40
42
  return Reply(id=7, message="hello")
41
43
  }
42
44
  ```
@@ -49,39 +51,15 @@ endpoint GET "/bench" as reply() returns Reply {
49
51
 
50
52
  ## Compiled specification {#specification}
51
53
 
52
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
54
+ Plain handler results default to HTTP 200 unless another status is declared. HttpResponse values choose their own status. Unhandled request failures return HTTP 500 and cancel the request tasks.
53
55
 
54
- ### In this file
56
+ ### `Reply` · immutable record · [source](routes.md#code) {#symbol-Reply}
55
57
 
56
- - [`Reply`](routes.md#symbol-Reply) is an immutable record.
57
- - [`reply`](routes.md#symbol-reply) handles `GET` `/bench` returning `Reply`.
58
+ It takes `id` as an integer, kept read-only and `message` as a string, kept read-only.
58
59
 
59
- ### `Reply` {#symbol-Reply}
60
+ ### `reply` · [source](routes.md#code) {#symbol-reply}
60
61
 
61
- [source](routes.md#code)
62
-
63
- Immutable record.
64
-
65
- **Inputs**
66
-
67
- - `id` (`int`) — required labeled input — stored as `id` and read-only after initialization.
68
- - `message` (`string`) — required labeled input — stored as `message` and read-only after initialization.
69
-
70
- ### `reply` {#symbol-reply}
71
-
72
- [source](routes.md#code)
73
-
74
- Returns: [`Reply`](routes.md#symbol-Reply).
75
-
76
- HTTP route: `GET` `/bench`. Use status 200 when the handler returns a body; a returned HttpResponse can set its own status. An unhandled request failure returns status 500 and cancels its request tasks.
77
-
78
- **What it does**
79
-
80
- - Return call [`Reply`](routes.md#symbol-Reply) with `id` = `7`; `message` = `"hello"`.
81
-
82
- ### Shared language rules
83
-
84
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
62
+ `reply` handles `GET /bench`. It returns a [`Reply`](routes.md#symbol-Reply) with `id` `7` and `message` `"hello"`.
85
63
 
86
64
  ::::
87
65