@greenpandastudios/aug-cli 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/THIRD_PARTY_NOTICES.md +18 -0
  4. package/bin/aug.mjs +3 -0
  5. package/docs/api/crypto.md +351 -0
  6. package/docs/api/io.md +207 -0
  7. package/docs/api/json.md +21 -0
  8. package/docs/api/memory.md +109 -0
  9. package/docs/api/time.md +54 -0
  10. package/docs/api/web.md +184 -0
  11. package/docs/assets/benchmarks/execution.svg +2978 -0
  12. package/docs/assets/benchmarks/http.svg +1674 -0
  13. package/docs/assets/benchmarks/improvements.svg +2315 -0
  14. package/docs/assets/benchmarks/memory.svg +1891 -0
  15. package/docs/benchmark-baseline.json +1087 -0
  16. package/docs/benchmark-results.json +91123 -0
  17. package/docs/benchmarks.json +38 -0
  18. package/docs/compatibility.md +42 -0
  19. package/docs/concurrency-implementation.md +18 -0
  20. package/docs/diagnostics.md +97 -0
  21. package/docs/docker.md +35 -0
  22. package/docs/example-projects.json +26 -0
  23. package/docs/examples/approved-design/counters.md +253 -0
  24. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +395 -0
  25. package/docs/examples/approved-design/domain/app.md +165 -0
  26. package/docs/examples/approved-design/domain/export.md +83 -0
  27. package/docs/examples/approved-design/domain/models.md +80 -0
  28. package/docs/examples/approved-design/domain/numbers.md +248 -0
  29. package/docs/examples/approved-design/index.md +39 -0
  30. package/docs/examples/approved-design/main-yaml.md +24 -0
  31. package/docs/examples/approved-design/main.md +215 -0
  32. package/docs/examples/benchmark/index.md +33 -0
  33. package/docs/examples/benchmark/main-yaml.md +17 -0
  34. package/docs/examples/benchmark/main.md +117 -0
  35. package/docs/examples/cli-args/index.md +32 -0
  36. package/docs/examples/cli-args/main.md +107 -0
  37. package/docs/examples/collections/index.md +32 -0
  38. package/docs/examples/collections/main.md +118 -0
  39. package/docs/examples/collections-benchmark/index.md +34 -0
  40. package/docs/examples/collections-benchmark/main.md +115 -0
  41. package/docs/examples/cpu-benchmark/index.md +34 -0
  42. package/docs/examples/cpu-benchmark/main.md +90 -0
  43. package/docs/examples/developer-workflow/calculator.md +357 -0
  44. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +395 -0
  45. package/docs/examples/developer-workflow/index.md +37 -0
  46. package/docs/examples/developer-workflow/logging/console.md +124 -0
  47. package/docs/examples/developer-workflow/logging/export.md +70 -0
  48. package/docs/examples/developer-workflow/logging/logger.md +111 -0
  49. package/docs/examples/developer-workflow/main.md +172 -0
  50. package/docs/examples/drop/index.md +33 -0
  51. package/docs/examples/drop/main.md +85 -0
  52. package/docs/examples/drop/resource.md +95 -0
  53. package/docs/examples/errors/errors.md +85 -0
  54. package/docs/examples/errors/index.md +33 -0
  55. package/docs/examples/errors/main.md +92 -0
  56. package/docs/examples/ffi/index.md +33 -0
  57. package/docs/examples/ffi/main.md +75 -0
  58. package/docs/examples/ffi/native.md +93 -0
  59. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +395 -0
  60. package/docs/examples/generic-di/index.md +33 -0
  61. package/docs/examples/generic-di/main.md +111 -0
  62. package/docs/examples/generic-di/types.md +180 -0
  63. package/docs/examples/generics/index.md +33 -0
  64. package/docs/examples/generics/main.md +120 -0
  65. package/docs/examples/generics/types.md +189 -0
  66. package/docs/examples/hello/app/export.md +67 -0
  67. package/docs/examples/hello/app/greeter.md +190 -0
  68. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +395 -0
  69. package/docs/examples/hello/index.md +37 -0
  70. package/docs/examples/hello/logging/console.md +121 -0
  71. package/docs/examples/hello/logging/export.md +71 -0
  72. package/docs/examples/hello/logging/logger.md +120 -0
  73. package/docs/examples/hello/main.md +115 -0
  74. package/docs/examples/http-benchmark/index.md +35 -0
  75. package/docs/examples/http-benchmark/main.md +79 -0
  76. package/docs/examples/http-benchmark/routes.md +88 -0
  77. package/docs/examples/index.md +60 -0
  78. package/docs/examples/interceptors/app.md +250 -0
  79. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +395 -0
  80. package/docs/examples/interceptors/index.md +35 -0
  81. package/docs/examples/interceptors/interceptors.md +284 -0
  82. package/docs/examples/interceptors/logging.md +155 -0
  83. package/docs/examples/interceptors/main.md +162 -0
  84. package/docs/examples/json-benchmark/data.md +71 -0
  85. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +103 -0
  86. package/docs/examples/json-benchmark/index.md +35 -0
  87. package/docs/examples/json-benchmark/main.md +131 -0
  88. package/docs/examples/new-syntax/console.md +118 -0
  89. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +395 -0
  90. package/docs/examples/new-syntax/greeter.md +145 -0
  91. package/docs/examples/new-syntax/index.md +36 -0
  92. package/docs/examples/new-syntax/logger.md +111 -0
  93. package/docs/examples/new-syntax/main.md +135 -0
  94. package/docs/examples/new-syntax/math.md +79 -0
  95. package/docs/examples/oidc-login/client/contracts.md +151 -0
  96. package/docs/examples/oidc-login/client/endpoints.md +263 -0
  97. package/docs/examples/oidc-login/client/export.md +107 -0
  98. package/docs/examples/oidc-login/client/login.md +515 -0
  99. package/docs/examples/oidc-login/client/logout.md +249 -0
  100. package/docs/examples/oidc-login/client/protocol.md +595 -0
  101. package/docs/examples/oidc-login/client/session.md +297 -0
  102. package/docs/examples/oidc-login/client/views.md +144 -0
  103. package/docs/examples/oidc-login/common/export.md +115 -0
  104. package/docs/examples/oidc-login/common/headers.md +162 -0
  105. package/docs/examples/oidc-login/common/keys.md +336 -0
  106. package/docs/examples/oidc-login/common/settings.md +116 -0
  107. package/docs/examples/oidc-login/common/views.md +103 -0
  108. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +925 -0
  109. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +434 -0
  110. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +103 -0
  111. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +374 -0
  112. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +150 -0
  113. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +532 -0
  114. package/docs/examples/oidc-login/index.md +57 -0
  115. package/docs/examples/oidc-login/main-yaml.md +28 -0
  116. package/docs/examples/oidc-login/main.md +283 -0
  117. package/docs/examples/oidc-login/provider/authorization.md +457 -0
  118. package/docs/examples/oidc-login/provider/contracts.md +267 -0
  119. package/docs/examples/oidc-login/provider/credentials.md +148 -0
  120. package/docs/examples/oidc-login/provider/discovery.md +215 -0
  121. package/docs/examples/oidc-login/provider/export.md +131 -0
  122. package/docs/examples/oidc-login/provider/token.md +364 -0
  123. package/docs/examples/oidc-login/provider/userinfo.md +228 -0
  124. package/docs/examples/oidc-login/provider/views.md +137 -0
  125. package/docs/examples/ownership/counter.md +140 -0
  126. package/docs/examples/ownership/index.md +33 -0
  127. package/docs/examples/ownership/main.md +90 -0
  128. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +395 -0
  129. package/docs/examples/ownership-transfer/index.md +33 -0
  130. package/docs/examples/ownership-transfer/main.md +125 -0
  131. package/docs/examples/ownership-transfer/resource.md +150 -0
  132. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +117 -0
  133. package/docs/examples/packages-app/index.md +34 -0
  134. package/docs/examples/packages-app/main-yaml.md +18 -0
  135. package/docs/examples/packages-app/main.md +80 -0
  136. package/docs/examples/packages-math/aug-package-json.md +24 -0
  137. package/docs/examples/packages-math/index.md +36 -0
  138. package/docs/examples/packages-math/package-json.md +25 -0
  139. package/docs/examples/packages-math/src/arithmetic.md +121 -0
  140. package/docs/examples/packages-math/src/export.md +63 -0
  141. package/docs/examples/startup-benchmark/index.md +34 -0
  142. package/docs/examples/startup-benchmark/main.md +68 -0
  143. package/docs/examples/visibility/counter.md +142 -0
  144. package/docs/examples/visibility/index.md +33 -0
  145. package/docs/examples/visibility/main.md +96 -0
  146. package/docs/examples.json +47 -0
  147. package/docs/getting-started.md +5 -0
  148. package/docs/grammar.md +136 -0
  149. package/docs/implementation-map.md +106 -0
  150. package/docs/index.md +46 -0
  151. package/docs/language-conformance.md +30 -0
  152. package/docs/language-constructs.md +1461 -0
  153. package/docs/language-design-audit.md +147 -0
  154. package/docs/maintaining-docs.md +43 -0
  155. package/docs/packages.md +184 -0
  156. package/docs/performance.md +535 -0
  157. package/docs/production-readiness.md +39 -0
  158. package/docs/reference.md +361 -0
  159. package/docs/release-review.md +23 -0
  160. package/docs/releasing.md +79 -0
  161. package/docs/roadmap.md +13 -0
  162. package/docs/specifications.md +86 -0
  163. package/docs/testing.md +120 -0
  164. package/docs/tooling.md +197 -0
  165. package/docs/web-implementation-plan.md +39 -0
  166. package/docs/web-library-gaps.md +27 -0
  167. package/docs/web.md +197 -0
  168. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  169. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  170. package/examples/approved-design/.aug-spec/manifest.json +14 -0
  171. package/examples/approved-design/counters.aug +22 -0
  172. package/examples/approved-design/counters.aug.md +177 -0
  173. package/examples/approved-design/domain/app.aug +12 -0
  174. package/examples/approved-design/domain/app.aug.md +97 -0
  175. package/examples/approved-design/domain/export.aug +5 -0
  176. package/examples/approved-design/domain/export.aug.md +25 -0
  177. package/examples/approved-design/domain/models.aug +2 -0
  178. package/examples/approved-design/domain/models.aug.md +30 -0
  179. package/examples/approved-design/domain/numbers.aug +29 -0
  180. package/examples/approved-design/domain/numbers.aug.md +141 -0
  181. package/examples/approved-design/main.aug +26 -0
  182. package/examples/approved-design/main.aug.md +108 -0
  183. package/examples/approved-design/main.yaml +8 -0
  184. package/examples/benchmark/.aug-spec/manifest.json +7 -0
  185. package/examples/benchmark/main.aug +17 -0
  186. package/examples/benchmark/main.aug.md +43 -0
  187. package/examples/benchmark/main.yaml +1 -0
  188. package/examples/cli-args/.aug-spec/manifest.json +7 -0
  189. package/examples/cli-args/main.aug +15 -0
  190. package/examples/cli-args/main.aug.md +38 -0
  191. package/examples/collections/.aug-spec/manifest.json +7 -0
  192. package/examples/collections/main.aug +18 -0
  193. package/examples/collections/main.aug.md +43 -0
  194. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  195. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  196. package/examples/developer-workflow/.aug-spec/manifest.json +13 -0
  197. package/examples/developer-workflow/calculator.aug +55 -0
  198. package/examples/developer-workflow/calculator.aug.md +228 -0
  199. package/examples/developer-workflow/logging/console.aug +8 -0
  200. package/examples/developer-workflow/logging/console.aug.md +67 -0
  201. package/examples/developer-workflow/logging/export.aug +2 -0
  202. package/examples/developer-workflow/logging/export.aug.md +19 -0
  203. package/examples/developer-workflow/logging/logger.aug +6 -0
  204. package/examples/developer-workflow/logging/logger.aug.md +57 -0
  205. package/examples/developer-workflow/main.aug +25 -0
  206. package/examples/developer-workflow/main.aug.md +79 -0
  207. package/examples/drop/.aug-spec/manifest.json +8 -0
  208. package/examples/drop/main.aug +3 -0
  209. package/examples/drop/main.aug.md +35 -0
  210. package/examples/drop/resource.aug +8 -0
  211. package/examples/drop/resource.aug.md +44 -0
  212. package/examples/errors/.aug-spec/manifest.json +8 -0
  213. package/examples/errors/errors.aug +6 -0
  214. package/examples/errors/errors.aug.md +33 -0
  215. package/examples/errors/main.aug +7 -0
  216. package/examples/errors/main.aug.md +36 -0
  217. package/examples/ffi/.aug-spec/manifest.json +8 -0
  218. package/examples/ffi/main.aug +2 -0
  219. package/examples/ffi/main.aug.md +27 -0
  220. package/examples/ffi/native.aug +6 -0
  221. package/examples/ffi/native.aug.md +43 -0
  222. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  223. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  224. package/examples/generic-di/.aug-spec/manifest.json +10 -0
  225. package/examples/generic-di/main.aug +9 -0
  226. package/examples/generic-di/main.aug.md +49 -0
  227. package/examples/generic-di/types.aug +17 -0
  228. package/examples/generic-di/types.aug.md +124 -0
  229. package/examples/generics/.aug-spec/manifest.json +8 -0
  230. package/examples/generics/main.aug +9 -0
  231. package/examples/generics/main.aug.md +58 -0
  232. package/examples/generics/types.aug +19 -0
  233. package/examples/generics/types.aug.md +132 -0
  234. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  235. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  236. package/examples/hello/.aug-spec/manifest.json +14 -0
  237. package/examples/hello/app/export.aug +1 -0
  238. package/examples/hello/app/export.aug.md +17 -0
  239. package/examples/hello/app/greeter.aug +22 -0
  240. package/examples/hello/app/greeter.aug.md +109 -0
  241. package/examples/hello/logging/console.aug +7 -0
  242. package/examples/hello/logging/console.aug.md +65 -0
  243. package/examples/hello/logging/export.aug +2 -0
  244. package/examples/hello/logging/export.aug.md +19 -0
  245. package/examples/hello/logging/logger.aug +9 -0
  246. package/examples/hello/logging/logger.aug.md +59 -0
  247. package/examples/hello/main.aug +9 -0
  248. package/examples/hello/main.aug.md +49 -0
  249. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  250. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  251. package/examples/interceptors/.aug-spec/manifest.json +12 -0
  252. package/examples/interceptors/app.aug +28 -0
  253. package/examples/interceptors/app.aug.md +162 -0
  254. package/examples/interceptors/interceptors.aug +40 -0
  255. package/examples/interceptors/interceptors.aug.md +180 -0
  256. package/examples/interceptors/logging.aug +12 -0
  257. package/examples/interceptors/logging.aug.md +96 -0
  258. package/examples/interceptors/main.aug +22 -0
  259. package/examples/interceptors/main.aug.md +76 -0
  260. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  261. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  262. package/examples/new-syntax/.aug-spec/manifest.json +13 -0
  263. package/examples/new-syntax/console.aug +7 -0
  264. package/examples/new-syntax/console.aug.md +63 -0
  265. package/examples/new-syntax/greeter.aug +10 -0
  266. package/examples/new-syntax/greeter.aug.md +89 -0
  267. package/examples/new-syntax/logger.aug +6 -0
  268. package/examples/new-syntax/logger.aug.md +57 -0
  269. package/examples/new-syntax/main.aug +12 -0
  270. package/examples/new-syntax/main.aug.md +64 -0
  271. package/examples/new-syntax/math.aug +3 -0
  272. package/examples/new-syntax/math.aug.md +29 -0
  273. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug +73 -0
  274. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +791 -0
  275. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug +68 -0
  276. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +266 -0
  277. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug +6 -0
  278. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +55 -0
  279. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug +45 -0
  280. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +250 -0
  281. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug +11 -0
  282. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +96 -0
  283. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug +58 -0
  284. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +420 -0
  285. package/examples/oidc-login/.aug-spec/manifest.json +40 -0
  286. package/examples/oidc-login/README.md +29 -0
  287. package/examples/oidc-login/client/contracts.aug +7 -0
  288. package/examples/oidc-login/client/contracts.aug.md +80 -0
  289. package/examples/oidc-login/client/endpoints.aug +21 -0
  290. package/examples/oidc-login/client/endpoints.aug.md +161 -0
  291. package/examples/oidc-login/client/export.aug +7 -0
  292. package/examples/oidc-login/client/export.aug.md +29 -0
  293. package/examples/oidc-login/client/login.aug +58 -0
  294. package/examples/oidc-login/client/login.aug.md +331 -0
  295. package/examples/oidc-login/client/logout.aug +18 -0
  296. package/examples/oidc-login/client/logout.aug.md +150 -0
  297. package/examples/oidc-login/client/protocol.aug +106 -0
  298. package/examples/oidc-login/client/protocol.aug.md +326 -0
  299. package/examples/oidc-login/client/session.aug +34 -0
  300. package/examples/oidc-login/client/session.aug.md +155 -0
  301. package/examples/oidc-login/client/views.aug +21 -0
  302. package/examples/oidc-login/client/views.aug.md +68 -0
  303. package/examples/oidc-login/common/export.aug +9 -0
  304. package/examples/oidc-login/common/export.aug.md +33 -0
  305. package/examples/oidc-login/common/headers.aug +11 -0
  306. package/examples/oidc-login/common/headers.aug.md +79 -0
  307. package/examples/oidc-login/common/keys.aug +37 -0
  308. package/examples/oidc-login/common/keys.aug.md +207 -0
  309. package/examples/oidc-login/common/settings.aug +4 -0
  310. package/examples/oidc-login/common/settings.aug.md +47 -0
  311. package/examples/oidc-login/common/views.aug +16 -0
  312. package/examples/oidc-login/common/views.aug.md +34 -0
  313. package/examples/oidc-login/main.aug +39 -0
  314. package/examples/oidc-login/main.aug.md +166 -0
  315. package/examples/oidc-login/main.yaml +12 -0
  316. package/examples/oidc-login/provider/authorization.aug +59 -0
  317. package/examples/oidc-login/provider/authorization.aug.md +264 -0
  318. package/examples/oidc-login/provider/contracts.aug +15 -0
  319. package/examples/oidc-login/provider/contracts.aug.md +193 -0
  320. package/examples/oidc-login/provider/credentials.aug +10 -0
  321. package/examples/oidc-login/provider/credentials.aug.md +64 -0
  322. package/examples/oidc-login/provider/discovery.aug +13 -0
  323. package/examples/oidc-login/provider/discovery.aug.md +133 -0
  324. package/examples/oidc-login/provider/export.aug +13 -0
  325. package/examples/oidc-login/provider/export.aug.md +41 -0
  326. package/examples/oidc-login/provider/token.aug +37 -0
  327. package/examples/oidc-login/provider/token.aug.md +223 -0
  328. package/examples/oidc-login/provider/userinfo.aug +26 -0
  329. package/examples/oidc-login/provider/userinfo.aug.md +104 -0
  330. package/examples/oidc-login/provider/views.aug +18 -0
  331. package/examples/oidc-login/provider/views.aug.md +63 -0
  332. package/examples/ownership/.aug-spec/manifest.json +8 -0
  333. package/examples/ownership/counter.aug +14 -0
  334. package/examples/ownership/counter.aug.md +85 -0
  335. package/examples/ownership/main.aug +4 -0
  336. package/examples/ownership/main.aug.md +38 -0
  337. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  338. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  339. package/examples/ownership-transfer/.aug-spec/manifest.json +10 -0
  340. package/examples/ownership-transfer/main.aug +9 -0
  341. package/examples/ownership-transfer/main.aug.md +63 -0
  342. package/examples/ownership-transfer/resource.aug +16 -0
  343. package/examples/ownership-transfer/resource.aug.md +89 -0
  344. package/examples/packages/README.md +15 -0
  345. package/examples/packages/app/.aug-spec/manifest.json +9 -0
  346. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +9 -0
  347. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +63 -0
  348. package/examples/packages/app/main.aug +2 -0
  349. package/examples/packages/app/main.aug.md +33 -0
  350. package/examples/packages/app/main.yaml +2 -0
  351. package/examples/packages/math/.aug-spec/manifest.json +8 -0
  352. package/examples/packages/math/README.md +3 -0
  353. package/examples/packages/math/aug-package.json +8 -0
  354. package/examples/packages/math/package.json +9 -0
  355. package/examples/packages/math/src/arithmetic.aug +8 -0
  356. package/examples/packages/math/src/arithmetic.aug.md +63 -0
  357. package/examples/packages/math/src/export.aug +1 -0
  358. package/examples/packages/math/src/export.aug.md +17 -0
  359. package/examples/visibility/.aug-spec/manifest.json +8 -0
  360. package/examples/visibility/counter.aug +14 -0
  361. package/examples/visibility/counter.aug.md +87 -0
  362. package/examples/visibility/main.aug +7 -0
  363. package/examples/visibility/main.aug.md +39 -0
  364. package/package.json +50 -0
  365. package/runtime/aug_crypto.c +121 -0
  366. package/runtime/aug_html.c +93 -0
  367. package/runtime/aug_http.c +829 -0
  368. package/runtime/aug_json.c +165 -0
  369. package/runtime/aug_runtime.c +792 -0
  370. package/runtime/aug_runtime.h +245 -0
  371. package/runtime/aug_tasks.c +172 -0
  372. package/runtime/aug_time.c +5 -0
  373. package/runtime/aug_values.c +80 -0
  374. package/scripts/bootstrap-native.mjs +121 -0
  375. package/scripts/native-dependencies.lock.json +65 -0
  376. package/scripts/native-home.mjs +11 -0
  377. package/src/actions.js +109 -0
  378. package/src/ast.js +19 -0
  379. package/src/builtins.js +93 -0
  380. package/src/checker.js +2896 -0
  381. package/src/cli.js +344 -0
  382. package/src/codegen.js +1159 -0
  383. package/src/config.js +149 -0
  384. package/src/continuation.js +110 -0
  385. package/src/di.js +24 -0
  386. package/src/documentation.js +27 -0
  387. package/src/editor.js +782 -0
  388. package/src/effects.js +29 -0
  389. package/src/fixes.js +222 -0
  390. package/src/formatter.js +296 -0
  391. package/src/freshness.js +154 -0
  392. package/src/help.js +212 -0
  393. package/src/html.js +27 -0
  394. package/src/http-policies.js +90 -0
  395. package/src/inference.js +16 -0
  396. package/src/interceptors.js +70 -0
  397. package/src/javadoc.js +67 -0
  398. package/src/lexer.js +199 -0
  399. package/src/libraries.js +31 -0
  400. package/src/lsp.js +180 -0
  401. package/src/native.js +144 -0
  402. package/src/navigation.js +162 -0
  403. package/src/openapi.js +220 -0
  404. package/src/ownership.js +232 -0
  405. package/src/package-manager.js +299 -0
  406. package/src/parser.js +1155 -0
  407. package/src/policies.js +130 -0
  408. package/src/project-init.js +19 -0
  409. package/src/project.js +292 -0
  410. package/src/schemas.js +62 -0
  411. package/src/semantic.js +255 -0
  412. package/src/spec.js +738 -0
  413. package/src/testing.js +186 -0
  414. package/src/types.js +10 -0
@@ -0,0 +1,250 @@
1
+ ---
2
+ title: "app.aug · Function and constructor middleware"
3
+ generated: true
4
+ source: "examples/interceptors/app.aug"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ pageClass: aug-example-page
10
+ ---
11
+
12
+ # `app.aug`
13
+
14
+ [Function and constructor middleware](index.md) · Source and specification
15
+
16
+ ::: details Files in this project
17
+
18
+ - [`main.aug`](main.md)
19
+ - [`app.aug`](app.md)
20
+ - [`interceptors.aug`](interceptors.md)
21
+ - [`logging.aug`](logging.md)
22
+
23
+ :::
24
+
25
+ ::::: example-compare
26
+
27
+ :::: example-code
28
+
29
+ ## Code {#code}
30
+
31
+ ::: code-group
32
+
33
+ ```aug [Indentation]
34
+ import Console from august.io
35
+ import Logger from logging
36
+ import Audit from interceptors
37
+ import Positive from interceptors
38
+ import AddOne from interceptors
39
+ /**
40
+ * Prints a number and returns its label.
41
+ * @param x The numeric input, validated and incremented by the chain.
42
+ * @param label Text forwarded through each layer unchanged.
43
+ */
44
+ [Audit]
45
+ [Positive(y=x)]
46
+ [AddOne(y=x)]
47
+ describe(resolve Logger logger, resolve Console console, int x, string label) returns string uses Console.write:
48
+ console.write(value=x)
49
+ return label
50
+ interface IGreeter:
51
+ greet(resolve Logger logger, resolve Console console) returns string uses Console.write
52
+ /** Construction stores its inputs; startup is visible in the greet call. */
53
+ Greeter(resolve Logger logger to _logger, string name) implements IGreeter:
54
+ /** Method annotations wrap each method invocation separately. */
55
+ [Audit]
56
+ greet(resolve Logger logger, resolve Console console) returns string uses Console.write:
57
+ return "Hello, " + name + "!"
58
+ ```
59
+
60
+ ```aug [Braces]
61
+ import Console from august.io
62
+ import Logger from logging
63
+ import Audit from interceptors
64
+ import Positive from interceptors
65
+ import AddOne from interceptors
66
+ /**
67
+ * Prints a number and returns its label.
68
+ * @param x The numeric input, validated and incremented by the chain.
69
+ * @param label Text forwarded through each layer unchanged.
70
+ */
71
+ [Audit]
72
+ [Positive(y=x)]
73
+ [AddOne(y=x)]
74
+ describe(resolve Logger logger, resolve Console console, int x, string label) returns string uses Console.write {
75
+ console.write(value=x)
76
+ return label
77
+ }
78
+ interface IGreeter {
79
+ greet(resolve Logger logger, resolve Console console) returns string uses Console.write
80
+ }
81
+ /** Construction stores its inputs; startup is visible in the greet call. */
82
+ Greeter(resolve Logger logger to _logger, string name) implements IGreeter {
83
+ /** Method annotations wrap each method invocation separately. */
84
+ [Audit]
85
+ greet(resolve Logger logger, resolve Console console) returns string uses Console.write {
86
+ return "Hello, " + name + "!"
87
+ }
88
+ }
89
+ ```
90
+
91
+ :::
92
+
93
+ ::::
94
+
95
+ :::: example-spec
96
+
97
+ ## Compiled specification {#specification}
98
+
99
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
100
+
101
+ ### In this file
102
+
103
+ - [`describe`](app.md#symbol-describe) is a function returning `string`.
104
+ - [`IGreeter`](app.md#symbol-IGreeter) is an interface.
105
+ - [`Greeter`](app.md#symbol-Greeter) is a class implementing `IGreeter`.
106
+
107
+ ### `describe` {#symbol-describe}
108
+
109
+ [source](app.md#code)
110
+
111
+ **Inputs**
112
+
113
+ - `logger` ([`Logger`](logging.md#symbol-Logger)) — injected; callers omit it.
114
+ - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
115
+ - `x` (`int`) — required labeled input.
116
+ - `label` (`string`) — required labeled input.
117
+
118
+ Returns: `string`.
119
+
120
+ Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
121
+
122
+ Can fail with `ValidationError`. Callers must catch or propagate these errors.
123
+
124
+ **Interceptors, in execution order**
125
+
126
+ 1. Call [`Audit.around`](interceptors.md#symbol-Audit.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
127
+ 2. Call [`Positive.around`](interceptors.md#symbol-Positive.around). It can call the next layer or finish with its own result or failure. Map `x` to `y`. Unselected inputs pass through.
128
+ 3. Call [`AddOne.around`](interceptors.md#symbol-AddOne.around). It can call the next layer or finish with its own result or failure. Map `x` to `y`. Unselected inputs pass through.
129
+
130
+ The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
131
+
132
+ **What it does**
133
+
134
+ - Call [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `x`.
135
+ - Return `label`.
136
+
137
+ **Author documentation**
138
+
139
+ Prints a number and returns its label.
140
+
141
+ **Parameters**
142
+ - `x`: The numeric input, validated and incremented by the chain.
143
+ - `label`: Text forwarded through each layer unchanged.
144
+
145
+ ### `IGreeter` {#symbol-IGreeter}
146
+
147
+ [source](app.md#code)
148
+
149
+ Interface.
150
+
151
+ #### `IGreeter.greet` {#symbol-IGreeter.greet}
152
+
153
+ [source](app.md#code)
154
+
155
+ **Inputs**
156
+
157
+ - `logger` ([`Logger`](logging.md#symbol-Logger)) — injected; callers omit it.
158
+ - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
159
+
160
+ Returns: `string`.
161
+
162
+ Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
163
+
164
+ Interface contract. A selected implementation supplies the behavior.
165
+
166
+ ### `Greeter` {#symbol-Greeter}
167
+
168
+ [source](app.md#code)
169
+
170
+ Behavioral class.
171
+
172
+ Satisfies [`IGreeter`](app.md#symbol-IGreeter).
173
+
174
+ **Author documentation**
175
+
176
+ Construction stores its inputs; startup is visible in the greet call.
177
+
178
+ **Inputs**
179
+
180
+ - `logger` ([`Logger`](logging.md#symbol-Logger)) — injected; callers omit it — stored as `_logger` (private) and read-only after initialization.
181
+ - `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
182
+
183
+ #### `Greeter.greet` {#symbol-Greeter.greet}
184
+
185
+ [source](app.md#code)
186
+
187
+ **Inputs**
188
+
189
+ - `logger` ([`Logger`](logging.md#symbol-Logger)) — injected; callers omit it.
190
+ - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
191
+
192
+ Returns: `string`.
193
+
194
+ Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
195
+
196
+ **Interceptors, in execution order**
197
+
198
+ 1. Call [`Audit.around`](interceptors.md#symbol-Audit.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
199
+
200
+ The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
201
+
202
+ **What it does**
203
+
204
+ - Return text formed by joining `"Hello, "`, `name`, `"!"` in order.
205
+
206
+ **Author documentation**
207
+
208
+ Method annotations wrap each method invocation separately.
209
+
210
+ ### Dependencies used by this file
211
+
212
+ Only referenced types and operations appear here. Each name links to its complete specification.
213
+
214
+ #### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
215
+
216
+ Capability interface from `august.io`.
217
+
218
+ - [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
219
+
220
+ #### [`AddOne`](interceptors.md#symbol-AddOne)
221
+
222
+ Interceptor from `interceptors`.
223
+
224
+ - [`AddOne.around`](interceptors.md#symbol-AddOne.around) (`y`: `int`) → `T`.
225
+
226
+ #### [`Audit`](interceptors.md#symbol-Audit)
227
+
228
+ Interceptor from `interceptors`.
229
+
230
+ - [`Audit.around`](interceptors.md#symbol-Audit.around) (no caller inputs) → `T`; 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).
231
+
232
+ #### [`Positive`](interceptors.md#symbol-Positive)
233
+
234
+ Interceptor from `interceptors`.
235
+
236
+ - [`Positive.around`](interceptors.md#symbol-Positive.around) (`y`: `int`) → `T`; can fail with `ValidationError`.
237
+
238
+ #### [`Logger`](logging.md#symbol-Logger)
239
+
240
+ Interface from `logging`.
241
+
242
+ Used as a type or provider.
243
+
244
+ ### Shared language rules
245
+
246
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
247
+
248
+ ::::
249
+
250
+ :::::
@@ -0,0 +1,395 @@
1
+ ---
2
+ title: "august/0.19.0/io/contracts.aug · Function and constructor middleware"
3
+ generated: true
4
+ source: "examples/interceptors/.aug-spec/august/0.19.0/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.19.0/io/contracts.aug`
14
+
15
+ [Function and constructor middleware](../../../../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
+ /** Permission to write to a console, provided by an explicitly selected adapter. */
29
+ capability Console:
30
+ /** Write one line of text. @param value Text to display. */
31
+ write<T>(T value) uses Console.write
32
+ /** The native standard-output adapter. Construction performs no output. */
33
+ SystemConsole() implements Console:
34
+ write<T>(T value):
35
+ print(value=value)
36
+ /** Read UTF-8 text through an explicitly selected filesystem adapter. */
37
+ capability FileReader:
38
+ /** Read text. @param path File path. @throws FileError The file could not be read. */
39
+ read(string path) returns string uses FileReader.read unless FileError
40
+ /** Write UTF-8 text through an explicitly selected filesystem adapter. */
41
+ capability FileWriter:
42
+ /** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
43
+ write(string path, string content) uses FileWriter.write unless FileError
44
+ /** Native files. Operations are explicit; construction opens no files. */
45
+ LocalFiles() implements FileReader, FileWriter:
46
+ read(string path) returns string unless FileError:
47
+ return read_file(path=path)
48
+ write(string path, string content) unless FileError:
49
+ write_file(path=path, content=content)
50
+ /** Read command-line input through an explicit dependency. */
51
+ capability Arguments:
52
+ read() returns List<string> uses Arguments.read
53
+ /** Native command-line arguments. */
54
+ ProcessArguments() implements Arguments:
55
+ read() returns List<string>:
56
+ return arguments()
57
+ ```
58
+
59
+ ```aug [Braces]
60
+ /** Permission to write to a console, provided by an explicitly selected adapter. */
61
+ capability Console {
62
+ /** Write one line of text. @param value Text to display. */
63
+ write<T>(T value) uses Console.write
64
+ }
65
+ /** The native standard-output adapter. Construction performs no output. */
66
+ SystemConsole() implements Console {
67
+ write<T>(T value) {
68
+ print(value=value)
69
+ }
70
+ }
71
+ /** Read UTF-8 text through an explicitly selected filesystem adapter. */
72
+ capability FileReader {
73
+ /** Read text. @param path File path. @throws FileError The file could not be read. */
74
+ read(string path) returns string uses FileReader.read unless FileError
75
+ }
76
+ /** Write UTF-8 text through an explicitly selected filesystem adapter. */
77
+ capability FileWriter {
78
+ /** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
79
+ write(string path, string content) uses FileWriter.write unless FileError
80
+ }
81
+ /** Native files. Operations are explicit; construction opens no files. */
82
+ LocalFiles() implements FileReader, FileWriter {
83
+ read(string path) returns string unless FileError {
84
+ return read_file(path=path)
85
+ }
86
+ write(string path, string content) unless FileError {
87
+ write_file(path=path, content=content)
88
+ }
89
+ }
90
+ /** Read command-line input through an explicit dependency. */
91
+ capability Arguments {
92
+ read() returns List<string> uses Arguments.read
93
+ }
94
+ /** Native command-line arguments. */
95
+ ProcessArguments() implements Arguments {
96
+ read() returns List<string> {
97
+ return arguments()
98
+ }
99
+ }
100
+ ```
101
+
102
+ :::
103
+
104
+ ::::
105
+
106
+ :::: example-spec
107
+
108
+ ## Compiled specification {#specification}
109
+
110
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
111
+
112
+ ### In this file
113
+
114
+ - [`Console`](contracts.md#symbol-Console) is a capability interface.
115
+ - [`SystemConsole`](contracts.md#symbol-SystemConsole) is a class implementing `Console`.
116
+ - [`FileReader`](contracts.md#symbol-FileReader) is a capability interface.
117
+ - [`FileWriter`](contracts.md#symbol-FileWriter) is a capability interface.
118
+ - [`LocalFiles`](contracts.md#symbol-LocalFiles) is a class implementing `FileReader`, `FileWriter`.
119
+ - [`Arguments`](contracts.md#symbol-Arguments) is a capability interface.
120
+ - [`ProcessArguments`](contracts.md#symbol-ProcessArguments) is a class implementing `Arguments`.
121
+
122
+ ### `Console` {#symbol-Console}
123
+
124
+ [source](contracts.md#code)
125
+
126
+ Capability interface.
127
+
128
+ **Author documentation**
129
+
130
+ Permission to write to a console, provided by an explicitly selected adapter.
131
+
132
+ #### `Console.write` {#symbol-Console.write}
133
+
134
+ [source](contracts.md#code)
135
+
136
+ Type parameters: `T`.
137
+
138
+ **Inputs**
139
+
140
+ - `value` (`T`) — required labeled input.
141
+
142
+ Returns: no value.
143
+
144
+ Capabilities: [`Console.write`](contracts.md#symbol-Console.write).
145
+
146
+ Interface contract. A selected implementation supplies the behavior.
147
+
148
+ **Author documentation**
149
+
150
+ Write one line of text.
151
+
152
+ **Parameters**
153
+ - `value`: Text to display.
154
+
155
+ ### `SystemConsole` {#symbol-SystemConsole}
156
+
157
+ [source](contracts.md#code)
158
+
159
+ Behavioral class.
160
+
161
+ Satisfies [`Console`](contracts.md#symbol-Console).
162
+
163
+ **Author documentation**
164
+
165
+ The native standard-output adapter. Construction performs no output.
166
+
167
+ #### `SystemConsole.write` {#symbol-SystemConsole.write}
168
+
169
+ [source](contracts.md#code)
170
+
171
+ Type parameters: `T`.
172
+
173
+ **Inputs**
174
+
175
+ - `value` (`T`) — required labeled input.
176
+
177
+ Returns: no value.
178
+
179
+ Capabilities: [`Console.write`](contracts.md#symbol-Console.write).
180
+
181
+ **What it does**
182
+
183
+ - Call `print` with `value` = `value`.
184
+
185
+ **Author documentation**
186
+
187
+ Write one line of text.
188
+
189
+ **Parameters**
190
+ - `value`: Text to display.
191
+
192
+ ### `FileReader` {#symbol-FileReader}
193
+
194
+ [source](contracts.md#code)
195
+
196
+ Capability interface.
197
+
198
+ **Author documentation**
199
+
200
+ Read UTF-8 text through an explicitly selected filesystem adapter.
201
+
202
+ #### `FileReader.read` {#symbol-FileReader.read}
203
+
204
+ [source](contracts.md#code)
205
+
206
+ **Inputs**
207
+
208
+ - `path` (`string`) — required labeled input.
209
+
210
+ Returns: `string`.
211
+
212
+ Capabilities: [`FileReader.read`](contracts.md#symbol-FileReader.read).
213
+
214
+ Can fail with `FileError`. Callers must catch or propagate these errors.
215
+
216
+ Interface contract. A selected implementation supplies the behavior.
217
+
218
+ **Author documentation**
219
+
220
+ Read text.
221
+
222
+ **Parameters**
223
+ - `path`: File path.
224
+
225
+ **Throws**
226
+ - `FileError`: The file could not be read.
227
+
228
+ ### `FileWriter` {#symbol-FileWriter}
229
+
230
+ [source](contracts.md#code)
231
+
232
+ Capability interface.
233
+
234
+ **Author documentation**
235
+
236
+ Write UTF-8 text through an explicitly selected filesystem adapter.
237
+
238
+ #### `FileWriter.write` {#symbol-FileWriter.write}
239
+
240
+ [source](contracts.md#code)
241
+
242
+ **Inputs**
243
+
244
+ - `path` (`string`) — required labeled input.
245
+ - `content` (`string`) — required labeled input.
246
+
247
+ Returns: no value.
248
+
249
+ Capabilities: [`FileWriter.write`](contracts.md#symbol-FileWriter.write).
250
+
251
+ Can fail with `FileError`. Callers must catch or propagate these errors.
252
+
253
+ Interface contract. A selected implementation supplies the behavior.
254
+
255
+ **Author documentation**
256
+
257
+ Write text.
258
+
259
+ **Parameters**
260
+ - `path`: File path.
261
+ - `content`: Text.
262
+
263
+ **Throws**
264
+ - `FileError`: Writing failed.
265
+
266
+ ### `LocalFiles` {#symbol-LocalFiles}
267
+
268
+ [source](contracts.md#code)
269
+
270
+ Behavioral class.
271
+
272
+ Satisfies [`FileReader`](contracts.md#symbol-FileReader), [`FileWriter`](contracts.md#symbol-FileWriter).
273
+
274
+ **Author documentation**
275
+
276
+ Native files. Operations are explicit; construction opens no files.
277
+
278
+ #### `LocalFiles.read` {#symbol-LocalFiles.read}
279
+
280
+ [source](contracts.md#code)
281
+
282
+ **Inputs**
283
+
284
+ - `path` (`string`) — required labeled input.
285
+
286
+ Returns: `string`.
287
+
288
+ Capabilities: [`FileReader.read`](contracts.md#symbol-FileReader.read).
289
+
290
+ Can fail with `FileError`. Callers must catch or propagate these errors.
291
+
292
+ **What it does**
293
+
294
+ - Return call `read_file` with `path` = `path`.
295
+
296
+ **Author documentation**
297
+
298
+ Read text.
299
+
300
+ **Parameters**
301
+ - `path`: File path.
302
+
303
+ **Throws**
304
+ - `FileError`: The file could not be read.
305
+
306
+ #### `LocalFiles.write` {#symbol-LocalFiles.write}
307
+
308
+ [source](contracts.md#code)
309
+
310
+ **Inputs**
311
+
312
+ - `path` (`string`) — required labeled input.
313
+ - `content` (`string`) — required labeled input.
314
+
315
+ Returns: no value.
316
+
317
+ Capabilities: [`FileWriter.write`](contracts.md#symbol-FileWriter.write).
318
+
319
+ Can fail with `FileError`. Callers must catch or propagate these errors.
320
+
321
+ **What it does**
322
+
323
+ - Call `write_file` with `path` = `path`; `content` = `content`.
324
+
325
+ **Author documentation**
326
+
327
+ Write text.
328
+
329
+ **Parameters**
330
+ - `path`: File path.
331
+ - `content`: Text.
332
+
333
+ **Throws**
334
+ - `FileError`: Writing failed.
335
+
336
+ ### `Arguments` {#symbol-Arguments}
337
+
338
+ [source](contracts.md#code)
339
+
340
+ Capability interface.
341
+
342
+ **Author documentation**
343
+
344
+ Read command-line input through an explicit dependency.
345
+
346
+ #### `Arguments.read` {#symbol-Arguments.read}
347
+
348
+ [source](contracts.md#code)
349
+
350
+ Returns: `List<string>`.
351
+
352
+ Capabilities: [`Arguments.read`](contracts.md#symbol-Arguments.read).
353
+
354
+ Interface contract. A selected implementation supplies the behavior.
355
+
356
+ ### `ProcessArguments` {#symbol-ProcessArguments}
357
+
358
+ [source](contracts.md#code)
359
+
360
+ Behavioral class.
361
+
362
+ Satisfies [`Arguments`](contracts.md#symbol-Arguments).
363
+
364
+ **Author documentation**
365
+
366
+ Native command-line arguments.
367
+
368
+ #### `ProcessArguments.read` {#symbol-ProcessArguments.read}
369
+
370
+ [source](contracts.md#code)
371
+
372
+ Returns: `List<string>`.
373
+
374
+ Capabilities: [`Arguments.read`](contracts.md#symbol-Arguments.read).
375
+
376
+ **What it does**
377
+
378
+ - Return call `arguments`.
379
+
380
+ ### Built-in operations used by this file
381
+
382
+ - `arguments` (no inputs) → `List<string>`: Composition arguments. Other callables receive the Arguments capability.
383
+ - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
384
+ - `read_file` (`path`: `string`) → `string`: Root-only UTF-8 text input. Other callables receive FileReader. Invalid Unicode and NUL raise FileError. Can fail with `FileError`.
385
+ - `write_file` (`path`: `string`, `content`: `string`) → `void`: Root-only UTF-8 text output. Other callables receive FileWriter. Can fail with `FileError`.
386
+
387
+ [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
388
+
389
+ ### Shared language rules
390
+
391
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
392
+
393
+ ::::
394
+
395
+ :::::
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: "Function and constructor middleware"
3
+ generated: true
4
+ source: "examples/interceptors"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ ---
10
+
11
+ # Function and constructor middleware
12
+
13
+ Layer interceptors, map inputs, and keep logging dependencies explicit.
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.
16
+
17
+ ## Project files
18
+
19
+ - [`main.aug`](main.md)
20
+ - [`app.aug`](app.md)
21
+ - [`interceptors.aug`](interceptors.md)
22
+ - [`logging.aug`](logging.md)
23
+
24
+
25
+ ## Try this project
26
+
27
+ From a repository checkout with August installed:
28
+
29
+ ```sh
30
+ aug check examples/interceptors
31
+ aug spec examples/interceptors
32
+ aug run examples/interceptors
33
+ ```
34
+
35
+ [Browse all examples](../index.md)