@greenpandastudios/aug-cli 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) 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/assets/benchmarks/execution.svg +774 -637
  12. package/docs/assets/benchmarks/http.svg +278 -249
  13. package/docs/assets/benchmarks/improvements.svg +66 -66
  14. package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
  15. package/docs/assets/benchmarks/kernels.svg +1 -0
  16. package/docs/assets/benchmarks/memory.svg +153 -153
  17. package/docs/benchmark-results.json +227089 -90363
  18. package/docs/compatibility.md +8 -8
  19. package/docs/contributing-benchmarks.md +68 -0
  20. package/docs/dev-containers.md +88 -0
  21. package/docs/dgx-consumers.json +122 -0
  22. package/docs/dgx-gyms.json +784 -0
  23. package/docs/dgx-kernels.json +1170 -0
  24. package/docs/dgx-performance.json +227849 -0
  25. package/docs/dgx-spark.md +64 -0
  26. package/docs/diagnostics.md +15 -5
  27. package/docs/docker.md +173 -12
  28. package/docs/editor.md +35 -0
  29. package/docs/example-projects.json +238 -24
  30. package/docs/examples/approved-design/counters.md +34 -126
  31. package/docs/examples/approved-design/dependencies/august/0.21.0/io/contracts.md +178 -0
  32. package/docs/examples/approved-design/domain/app.md +13 -77
  33. package/docs/examples/approved-design/domain/export.md +5 -19
  34. package/docs/examples/approved-design/domain/models.md +4 -23
  35. package/docs/examples/approved-design/domain/numbers.md +24 -114
  36. package/docs/examples/approved-design/index.md +16 -7
  37. package/docs/examples/approved-design/main.md +19 -96
  38. package/docs/examples/benchmark/index.md +6 -5
  39. package/docs/examples/benchmark/main.md +7 -35
  40. package/docs/examples/calls-benchmark/index.md +36 -0
  41. package/docs/examples/calls-benchmark/main.md +78 -0
  42. package/docs/examples/calls-benchmark/operations.md +60 -0
  43. package/docs/examples/cli-args/index.md +6 -5
  44. package/docs/examples/cli-args/main.md +6 -31
  45. package/docs/examples/collections/index.md +6 -5
  46. package/docs/examples/collections/main.md +7 -35
  47. package/docs/examples/collections-benchmark/index.md +6 -5
  48. package/docs/examples/collections-benchmark/main.md +7 -35
  49. package/docs/examples/cpu-benchmark/index.md +6 -5
  50. package/docs/examples/cpu-benchmark/main.md +5 -24
  51. package/docs/examples/developer-workflow/calculator.md +39 -186
  52. package/docs/examples/developer-workflow/dependencies/august/0.21.0/io/contracts.md +178 -0
  53. package/docs/examples/developer-workflow/index.md +16 -7
  54. package/docs/examples/developer-workflow/logging/console.md +10 -56
  55. package/docs/examples/developer-workflow/logging/export.md +4 -14
  56. package/docs/examples/developer-workflow/logging/logger.md +7 -43
  57. package/docs/examples/developer-workflow/main.md +17 -69
  58. package/docs/examples/drop/index.md +6 -5
  59. package/docs/examples/drop/main.md +7 -27
  60. package/docs/examples/drop/resource.md +7 -30
  61. package/docs/examples/errors/errors.md +7 -27
  62. package/docs/examples/errors/index.md +6 -5
  63. package/docs/examples/errors/main.md +7 -28
  64. package/docs/examples/errors-benchmark/index.md +36 -0
  65. package/docs/examples/errors-benchmark/main.md +92 -0
  66. package/docs/examples/errors-benchmark/operations.md +65 -0
  67. package/docs/examples/ffi/index.md +6 -5
  68. package/docs/examples/ffi/main.md +6 -20
  69. package/docs/examples/ffi/native.md +8 -34
  70. package/docs/examples/float-benchmark/index.md +35 -0
  71. package/docs/examples/float-benchmark/main.md +75 -0
  72. package/docs/examples/generic-di/dependencies/august/0.21.0/io/contracts.md +178 -0
  73. package/docs/examples/generic-di/index.md +6 -5
  74. package/docs/examples/generic-di/main.md +9 -39
  75. package/docs/examples/generic-di/types.md +23 -92
  76. package/docs/examples/generics/index.md +6 -5
  77. package/docs/examples/generics/main.md +10 -47
  78. package/docs/examples/generics/types.md +25 -100
  79. package/docs/examples/hello/app/export.md +4 -12
  80. package/docs/examples/hello/app/greeter.md +13 -91
  81. package/docs/examples/hello/dependencies/august/0.21.0/io/contracts.md +178 -0
  82. package/docs/examples/hello/index.md +17 -6
  83. package/docs/examples/hello/logging/console.md +10 -54
  84. package/docs/examples/hello/logging/export.md +4 -14
  85. package/docs/examples/hello/logging/logger.md +7 -45
  86. package/docs/examples/hello/main.md +9 -39
  87. package/docs/examples/http-benchmark/index.md +6 -5
  88. package/docs/examples/http-benchmark/main.md +6 -20
  89. package/docs/examples/http-benchmark/routes.md +9 -31
  90. package/docs/examples/index.md +63 -29
  91. package/docs/examples/interceptors/app.md +20 -139
  92. package/docs/examples/interceptors/dependencies/august/0.21.0/io/contracts.md +178 -0
  93. package/docs/examples/interceptors/index.md +6 -5
  94. package/docs/examples/interceptors/interceptors.md +24 -148
  95. package/docs/examples/interceptors/logging.md +13 -76
  96. package/docs/examples/interceptors/main.md +10 -65
  97. package/docs/examples/json-benchmark/data.md +4 -20
  98. package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  99. package/docs/examples/json-benchmark/index.md +7 -5
  100. package/docs/examples/json-benchmark/main-yaml.md +20 -0
  101. package/docs/examples/json-benchmark/main.md +10 -49
  102. package/docs/examples/list-benchmark/index.md +35 -0
  103. package/docs/examples/list-benchmark/main.md +78 -0
  104. package/docs/examples/map-churn-benchmark/index.md +35 -0
  105. package/docs/examples/map-churn-benchmark/main.md +106 -0
  106. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
  107. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
  108. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
  109. package/docs/examples/native-blake3/hashing.md +93 -0
  110. package/docs/examples/native-blake3/index.md +38 -0
  111. package/docs/examples/native-blake3/main.md +73 -0
  112. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
  113. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
  114. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
  115. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
  116. package/docs/examples/native-pytorch/index.md +38 -0
  117. package/docs/examples/native-pytorch/main.md +73 -0
  118. package/docs/examples/native-pytorch/tensors.md +123 -0
  119. package/docs/examples/native-sqlite/database.md +116 -0
  120. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
  121. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
  122. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
  123. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
  124. package/docs/examples/native-sqlite/index.md +38 -0
  125. package/docs/examples/native-sqlite/main.md +73 -0
  126. package/docs/examples/native-zlib/compression.md +99 -0
  127. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
  128. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
  129. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
  130. package/docs/examples/native-zlib/index.md +38 -0
  131. package/docs/examples/native-zlib/main.md +78 -0
  132. package/docs/examples/new-syntax/console.md +10 -52
  133. package/docs/examples/new-syntax/dependencies/august/0.21.0/io/contracts.md +178 -0
  134. package/docs/examples/new-syntax/greeter.md +13 -71
  135. package/docs/examples/new-syntax/index.md +6 -5
  136. package/docs/examples/new-syntax/logger.md +7 -43
  137. package/docs/examples/new-syntax/main.md +10 -53
  138. package/docs/examples/new-syntax/math.md +6 -24
  139. package/docs/examples/oidc-login/client/contracts.md +10 -61
  140. package/docs/examples/oidc-login/client/endpoints.md +32 -154
  141. package/docs/examples/oidc-login/client/export.md +5 -23
  142. package/docs/examples/oidc-login/client/login.md +234 -344
  143. package/docs/examples/oidc-login/client/logout.md +38 -143
  144. package/docs/examples/oidc-login/client/protocol.md +183 -304
  145. package/docs/examples/oidc-login/client/session.md +41 -149
  146. package/docs/examples/oidc-login/client/views.md +13 -58
  147. package/docs/examples/oidc-login/common/export.md +6 -26
  148. package/docs/examples/oidc-login/common/headers.md +42 -72
  149. package/docs/examples/oidc-login/common/keys.md +40 -164
  150. package/docs/examples/oidc-login/common/settings.md +24 -40
  151. package/docs/examples/oidc-login/common/views.md +7 -28
  152. package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
  153. package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  154. package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
  155. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
  156. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
  157. package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
  158. package/docs/examples/oidc-login/index.md +8 -7
  159. package/docs/examples/oidc-login/main-yaml.md +7 -0
  160. package/docs/examples/oidc-login/main.md +26 -153
  161. package/docs/examples/oidc-login/provider/authorization.md +232 -275
  162. package/docs/examples/oidc-login/provider/contracts.md +24 -146
  163. package/docs/examples/oidc-login/provider/credentials.md +24 -57
  164. package/docs/examples/oidc-login/provider/discovery.md +48 -122
  165. package/docs/examples/oidc-login/provider/export.md +11 -37
  166. package/docs/examples/oidc-login/provider/token.md +159 -237
  167. package/docs/examples/oidc-login/provider/userinfo.md +47 -102
  168. package/docs/examples/oidc-login/provider/views.md +13 -53
  169. package/docs/examples/ownership/counter.md +17 -63
  170. package/docs/examples/ownership/index.md +6 -5
  171. package/docs/examples/ownership/main.md +7 -30
  172. package/docs/examples/ownership-transfer/dependencies/august/0.21.0/io/contracts.md +178 -0
  173. package/docs/examples/ownership-transfer/index.md +6 -5
  174. package/docs/examples/ownership-transfer/main.md +10 -52
  175. package/docs/examples/ownership-transfer/resource.md +15 -67
  176. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
  177. package/docs/examples/packages-app/index.md +7 -6
  178. package/docs/examples/packages-app/main.md +7 -25
  179. package/docs/examples/packages-math/aug-package-json.md +1 -1
  180. package/docs/examples/packages-math/index.md +7 -6
  181. package/docs/examples/packages-math/src/arithmetic.md +12 -50
  182. package/docs/examples/packages-math/src/export.md +4 -12
  183. package/docs/examples/records-benchmark/data.md +55 -0
  184. package/docs/examples/records-benchmark/index.md +36 -0
  185. package/docs/examples/records-benchmark/main.md +85 -0
  186. package/docs/examples/startup-benchmark/index.md +6 -5
  187. package/docs/examples/startup-benchmark/main.md +5 -17
  188. package/docs/examples/strings-benchmark/index.md +35 -0
  189. package/docs/examples/strings-benchmark/main.md +76 -0
  190. package/docs/examples/tasks-benchmark/index.md +36 -0
  191. package/docs/examples/tasks-benchmark/main.md +89 -0
  192. package/docs/examples/tasks-benchmark/operations.md +58 -0
  193. package/docs/examples/visibility/counter.md +19 -67
  194. package/docs/examples/visibility/index.md +6 -5
  195. package/docs/examples/visibility/main.md +7 -31
  196. package/docs/examples/weather-api/forecasts.md +168 -0
  197. package/docs/examples/weather-api/index.md +42 -0
  198. package/docs/examples/weather-api/main-yaml.md +21 -0
  199. package/docs/examples/weather-api/main.md +65 -0
  200. package/docs/examples.json +10 -0
  201. package/docs/getting-started.md +105 -2
  202. package/docs/grammar.md +7 -5
  203. package/docs/guides/change-a-module.md +64 -0
  204. package/docs/guides/index.md +27 -0
  205. package/docs/gym-results.json +784 -0
  206. package/docs/implementation-map.md +6 -0
  207. package/docs/index.md +51 -29
  208. package/docs/kernel-results.json +1170 -0
  209. package/docs/language-conformance.md +7 -1
  210. package/docs/language-constructs.md +30 -22
  211. package/docs/language-design-audit.md +1 -1
  212. package/docs/learn/data-and-errors.md +77 -0
  213. package/docs/learn/index.md +30 -0
  214. package/docs/learn/modules-and-dependencies.md +73 -0
  215. package/docs/learn/state-and-tests.md +71 -0
  216. package/docs/learn/values-and-functions.md +62 -0
  217. package/docs/lesson-failures.json +8 -0
  218. package/docs/maintaining-docs.md +16 -4
  219. package/docs/native-implementation.md +276 -0
  220. package/docs/native-interop-llvm-plan.md +342 -0
  221. package/docs/native-package-examples.md +684 -0
  222. package/docs/native-packages.md +179 -0
  223. package/docs/packages.md +72 -126
  224. package/docs/performance.md +61 -68
  225. package/docs/production-readiness.md +16 -5
  226. package/docs/public/downloads/approved-design.zip +0 -0
  227. package/docs/public/downloads/benchmark.zip +0 -0
  228. package/docs/public/downloads/calls-benchmark.zip +0 -0
  229. package/docs/public/downloads/cli-args.zip +0 -0
  230. package/docs/public/downloads/collections-benchmark.zip +0 -0
  231. package/docs/public/downloads/collections.zip +0 -0
  232. package/docs/public/downloads/cpu-benchmark.zip +0 -0
  233. package/docs/public/downloads/developer-workflow.zip +0 -0
  234. package/docs/public/downloads/drop.zip +0 -0
  235. package/docs/public/downloads/errors-benchmark.zip +0 -0
  236. package/docs/public/downloads/errors.zip +0 -0
  237. package/docs/public/downloads/ffi.zip +0 -0
  238. package/docs/public/downloads/float-benchmark.zip +0 -0
  239. package/docs/public/downloads/generic-di.zip +0 -0
  240. package/docs/public/downloads/generics.zip +0 -0
  241. package/docs/public/downloads/hello.zip +0 -0
  242. package/docs/public/downloads/http-benchmark.zip +0 -0
  243. package/docs/public/downloads/interceptors.zip +0 -0
  244. package/docs/public/downloads/json-benchmark.zip +0 -0
  245. package/docs/public/downloads/list-benchmark.zip +0 -0
  246. package/docs/public/downloads/map-churn-benchmark.zip +0 -0
  247. package/docs/public/downloads/native-blake3.zip +0 -0
  248. package/docs/public/downloads/native-pytorch.zip +0 -0
  249. package/docs/public/downloads/native-sqlite.zip +0 -0
  250. package/docs/public/downloads/native-zlib.zip +0 -0
  251. package/docs/public/downloads/new-syntax.zip +0 -0
  252. package/docs/public/downloads/oidc-login.zip +0 -0
  253. package/docs/public/downloads/ownership-transfer.zip +0 -0
  254. package/docs/public/downloads/ownership.zip +0 -0
  255. package/docs/public/downloads/packages-app.zip +0 -0
  256. package/docs/public/downloads/packages-math.zip +0 -0
  257. package/docs/public/downloads/records-benchmark.zip +0 -0
  258. package/docs/public/downloads/startup-benchmark.zip +0 -0
  259. package/docs/public/downloads/strings-benchmark.zip +0 -0
  260. package/docs/public/downloads/tasks-benchmark.zip +0 -0
  261. package/docs/public/downloads/visibility.zip +0 -0
  262. package/docs/public/downloads/weather-api.zip +0 -0
  263. package/docs/qualification-results.md +66 -0
  264. package/docs/reference.md +47 -17
  265. package/docs/releasing.md +105 -16
  266. package/docs/research/code-to-natural-language.md +108 -0
  267. package/docs/research/ecosystem-workflow.md +41 -0
  268. package/docs/research/libtorch-native-qualification.md +115 -0
  269. package/docs/research/native-interop-llvm.md +197 -0
  270. package/docs/research/qualification-methods.md +15 -0
  271. package/docs/research/wiki-editorial-design.md +71 -0
  272. package/docs/roadmap.md +2 -1
  273. package/docs/safety-gyms.md +41 -0
  274. package/docs/specifications.md +27 -11
  275. package/docs/testing.md +19 -5
  276. package/docs/tooling.md +36 -22
  277. package/docs/weather-api.md +65 -0
  278. package/docs/web-library-gaps.md +1 -1
  279. package/docs/web.md +54 -18
  280. package/docs/writing-docs.md +49 -0
  281. package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  282. package/examples/approved-design/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  283. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  284. package/examples/approved-design/counters.aug +5 -4
  285. package/examples/approved-design/counters.aug.md +25 -132
  286. package/examples/approved-design/domain/app.aug +2 -1
  287. package/examples/approved-design/domain/app.aug.md +10 -80
  288. package/examples/approved-design/domain/export.aug +1 -0
  289. package/examples/approved-design/domain/export.aug.md +4 -20
  290. package/examples/approved-design/domain/models.aug +1 -0
  291. package/examples/approved-design/domain/models.aug.md +3 -25
  292. package/examples/approved-design/domain/numbers.aug +3 -2
  293. package/examples/approved-design/domain/numbers.aug.md +19 -116
  294. package/examples/approved-design/main.aug +1 -0
  295. package/examples/approved-design/main.aug.md +12 -95
  296. package/examples/benchmark/.aug-spec/manifest.json +1 -1
  297. package/examples/benchmark/main.aug +1 -0
  298. package/examples/benchmark/main.aug.md +6 -36
  299. package/examples/cli-args/.aug-spec/manifest.json +1 -1
  300. package/examples/cli-args/main.aug +1 -0
  301. package/examples/cli-args/main.aug.md +5 -32
  302. package/examples/collections/.aug-spec/manifest.json +1 -1
  303. package/examples/collections/main.aug +1 -0
  304. package/examples/collections/main.aug.md +6 -36
  305. package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  306. package/examples/developer-workflow/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  307. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  308. package/examples/developer-workflow/calculator.aug +3 -2
  309. package/examples/developer-workflow/calculator.aug.md +28 -189
  310. package/examples/developer-workflow/logging/console.aug +2 -1
  311. package/examples/developer-workflow/logging/console.aug.md +7 -57
  312. package/examples/developer-workflow/logging/export.aug +1 -0
  313. package/examples/developer-workflow/logging/export.aug.md +3 -15
  314. package/examples/developer-workflow/logging/logger.aug +1 -0
  315. package/examples/developer-workflow/logging/logger.aug.md +6 -46
  316. package/examples/developer-workflow/main.aug +1 -0
  317. package/examples/developer-workflow/main.aug.md +10 -68
  318. package/examples/drop/.aug-spec/manifest.json +1 -1
  319. package/examples/drop/main.aug +1 -0
  320. package/examples/drop/main.aug.md +6 -28
  321. package/examples/drop/resource.aug +1 -0
  322. package/examples/drop/resource.aug.md +6 -34
  323. package/examples/errors/.aug-spec/manifest.json +1 -1
  324. package/examples/errors/errors.aug +2 -1
  325. package/examples/errors/errors.aug.md +4 -27
  326. package/examples/errors/main.aug +1 -0
  327. package/examples/errors/main.aug.md +6 -29
  328. package/examples/ffi/.aug-spec/manifest.json +1 -1
  329. package/examples/ffi/main.aug +1 -0
  330. package/examples/ffi/main.aug.md +5 -21
  331. package/examples/ffi/native.aug +2 -1
  332. package/examples/ffi/native.aug.md +5 -35
  333. package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  334. package/examples/generic-di/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  335. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  336. package/examples/generic-di/main.aug +1 -0
  337. package/examples/generic-di/main.aug.md +8 -40
  338. package/examples/generic-di/types.aug +3 -2
  339. package/examples/generic-di/types.aug.md +18 -97
  340. package/examples/generics/.aug-spec/manifest.json +1 -1
  341. package/examples/generics/main.aug +1 -0
  342. package/examples/generics/main.aug.md +9 -48
  343. package/examples/generics/types.aug +4 -3
  344. package/examples/generics/types.aug.md +18 -104
  345. package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  346. package/examples/hello/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  347. package/examples/hello/.aug-spec/manifest.json +3 -3
  348. package/examples/hello/app/export.aug +1 -0
  349. package/examples/hello/app/export.aug.md +3 -13
  350. package/examples/hello/app/greeter.aug +2 -1
  351. package/examples/hello/app/greeter.aug.md +10 -94
  352. package/examples/hello/logging/console.aug +2 -1
  353. package/examples/hello/logging/console.aug.md +7 -55
  354. package/examples/hello/logging/export.aug +1 -0
  355. package/examples/hello/logging/export.aug.md +3 -15
  356. package/examples/hello/logging/logger.aug +1 -0
  357. package/examples/hello/logging/logger.aug.md +6 -48
  358. package/examples/hello/main.aug +1 -0
  359. package/examples/hello/main.aug.md +8 -40
  360. package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
  361. package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  362. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  363. package/examples/interceptors/app.aug +3 -2
  364. package/examples/interceptors/app.aug.md +15 -141
  365. package/examples/interceptors/interceptors.aug +3 -2
  366. package/examples/interceptors/interceptors.aug.md +19 -152
  367. package/examples/interceptors/logging.aug +2 -1
  368. package/examples/interceptors/logging.aug.md +10 -79
  369. package/examples/interceptors/main.aug +1 -0
  370. package/examples/interceptors/main.aug.md +9 -66
  371. package/examples/native-blake3/.aug-spec/manifest.json +16 -0
  372. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
  373. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
  374. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
  375. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
  376. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
  377. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
  378. package/examples/native-blake3/AGENTS.md +5 -0
  379. package/examples/native-blake3/aug.lock.json +253 -0
  380. package/examples/native-blake3/hashing.aug +11 -0
  381. package/examples/native-blake3/hashing.aug.md +25 -0
  382. package/examples/native-blake3/main.aug +8 -0
  383. package/examples/native-blake3/main.aug.md +13 -0
  384. package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
  385. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
  386. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
  387. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
  388. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
  389. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
  390. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
  391. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
  392. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
  393. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
  394. package/examples/native-pytorch/AGENTS.md +5 -0
  395. package/examples/native-pytorch/aug.lock.json +309 -0
  396. package/examples/native-pytorch/main.aug +8 -0
  397. package/examples/native-pytorch/main.aug.md +13 -0
  398. package/examples/native-pytorch/tensors.aug +23 -0
  399. package/examples/native-pytorch/tensors.aug.md +35 -0
  400. package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
  401. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
  402. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
  403. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
  404. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
  405. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
  406. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
  407. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
  408. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
  409. package/examples/native-sqlite/AGENTS.md +5 -0
  410. package/examples/native-sqlite/aug.lock.json +236 -0
  411. package/examples/native-sqlite/database.aug +15 -0
  412. package/examples/native-sqlite/database.aug.md +27 -0
  413. package/examples/native-sqlite/main.aug +8 -0
  414. package/examples/native-sqlite/main.aug.md +13 -0
  415. package/examples/native-zlib/.aug-spec/manifest.json +16 -0
  416. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
  417. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
  418. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
  419. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
  420. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
  421. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
  422. package/examples/native-zlib/AGENTS.md +5 -0
  423. package/examples/native-zlib/aug.lock.json +236 -0
  424. package/examples/native-zlib/compression.aug +15 -0
  425. package/examples/native-zlib/compression.aug.md +27 -0
  426. package/examples/native-zlib/main.aug +10 -0
  427. package/examples/native-zlib/main.aug.md +13 -0
  428. package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
  429. package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  430. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  431. package/examples/new-syntax/console.aug +2 -1
  432. package/examples/new-syntax/console.aug.md +7 -53
  433. package/examples/new-syntax/greeter.aug +2 -1
  434. package/examples/new-syntax/greeter.aug.md +10 -74
  435. package/examples/new-syntax/logger.aug +1 -0
  436. package/examples/new-syntax/logger.aug.md +6 -46
  437. package/examples/new-syntax/main.aug +1 -0
  438. package/examples/new-syntax/main.aug.md +9 -54
  439. package/examples/new-syntax/math.aug +2 -1
  440. package/examples/new-syntax/math.aug.md +3 -24
  441. package/examples/oidc-login/.aug-spec/manifest.json +13 -13
  442. package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
  443. package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
  444. package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
  445. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
  446. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
  447. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
  448. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
  449. package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
  450. package/examples/oidc-login/aug.lock.json +100 -0
  451. package/examples/oidc-login/client/contracts.aug +1 -0
  452. package/examples/oidc-login/client/contracts.aug.md +9 -66
  453. package/examples/oidc-login/client/endpoints.aug +6 -5
  454. package/examples/oidc-login/client/endpoints.aug.md +13 -145
  455. package/examples/oidc-login/client/export.aug +1 -0
  456. package/examples/oidc-login/client/export.aug.md +4 -24
  457. package/examples/oidc-login/client/login.aug +7 -6
  458. package/examples/oidc-login/client/login.aug.md +25 -303
  459. package/examples/oidc-login/client/logout.aug +5 -4
  460. package/examples/oidc-login/client/logout.aug.md +13 -135
  461. package/examples/oidc-login/client/protocol.aug +7 -6
  462. package/examples/oidc-login/client/protocol.aug.md +36 -283
  463. package/examples/oidc-login/client/session.aug +5 -4
  464. package/examples/oidc-login/client/session.aug.md +12 -139
  465. package/examples/oidc-login/client/views.aug +3 -2
  466. package/examples/oidc-login/client/views.aug.md +8 -57
  467. package/examples/oidc-login/common/export.aug +1 -0
  468. package/examples/oidc-login/common/export.aug.md +5 -27
  469. package/examples/oidc-login/common/headers.aug +4 -3
  470. package/examples/oidc-login/common/headers.aug.md +9 -67
  471. package/examples/oidc-login/common/keys.aug +6 -5
  472. package/examples/oidc-login/common/keys.aug.md +29 -165
  473. package/examples/oidc-login/common/settings.aug +2 -1
  474. package/examples/oidc-login/common/settings.aug.md +5 -39
  475. package/examples/oidc-login/common/views.aug +2 -1
  476. package/examples/oidc-login/common/views.aug.md +4 -28
  477. package/examples/oidc-login/main.aug +6 -16
  478. package/examples/oidc-login/main.aug.md +17 -146
  479. package/examples/oidc-login/main.yaml +7 -0
  480. package/examples/oidc-login/provider/authorization.aug +7 -6
  481. package/examples/oidc-login/provider/authorization.aug.md +23 -238
  482. package/examples/oidc-login/provider/contracts.aug +1 -0
  483. package/examples/oidc-login/provider/contracts.aug.md +23 -158
  484. package/examples/oidc-login/provider/credentials.aug +3 -2
  485. package/examples/oidc-login/provider/credentials.aug.md +9 -53
  486. package/examples/oidc-login/provider/discovery.aug +4 -3
  487. package/examples/oidc-login/provider/discovery.aug.md +11 -118
  488. package/examples/oidc-login/provider/export.aug +1 -0
  489. package/examples/oidc-login/provider/export.aug.md +6 -34
  490. package/examples/oidc-login/provider/token.aug +6 -5
  491. package/examples/oidc-login/provider/token.aug.md +16 -204
  492. package/examples/oidc-login/provider/userinfo.aug +4 -3
  493. package/examples/oidc-login/provider/userinfo.aug.md +10 -92
  494. package/examples/oidc-login/provider/views.aug +3 -2
  495. package/examples/oidc-login/provider/views.aug.md +8 -52
  496. package/examples/ownership/.aug-spec/manifest.json +1 -1
  497. package/examples/ownership/counter.aug +3 -2
  498. package/examples/ownership/counter.aug.md +12 -66
  499. package/examples/ownership/main.aug +1 -0
  500. package/examples/ownership/main.aug.md +6 -31
  501. package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
  502. package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  503. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  504. package/examples/ownership-transfer/main.aug +1 -0
  505. package/examples/ownership-transfer/main.aug.md +9 -53
  506. package/examples/ownership-transfer/resource.aug +2 -1
  507. package/examples/ownership-transfer/resource.aug.md +12 -71
  508. package/examples/packages/app/.aug-spec/manifest.json +1 -1
  509. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
  510. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
  511. package/examples/packages/app/main.aug +1 -0
  512. package/examples/packages/app/main.aug.md +6 -26
  513. package/examples/packages/math/.aug-spec/manifest.json +1 -1
  514. package/examples/packages/math/aug-package.json +1 -1
  515. package/examples/packages/math/src/arithmetic.aug +2 -1
  516. package/examples/packages/math/src/arithmetic.aug.md +9 -51
  517. package/examples/packages/math/src/export.aug +1 -0
  518. package/examples/packages/math/src/export.aug.md +3 -13
  519. package/examples/visibility/.aug-spec/manifest.json +1 -1
  520. package/examples/visibility/counter.aug +4 -3
  521. package/examples/visibility/counter.aug.md +12 -68
  522. package/examples/visibility/main.aug +1 -0
  523. package/examples/visibility/main.aug.md +6 -32
  524. package/examples/weather-api/.aug-spec/manifest.json +8 -0
  525. package/examples/weather-api/AGENTS.md +17 -0
  526. package/examples/weather-api/README.md +19 -0
  527. package/examples/weather-api/forecasts.aug +47 -0
  528. package/examples/weather-api/forecasts.aug.md +32 -0
  529. package/examples/weather-api/main.aug +4 -0
  530. package/examples/weather-api/main.aug.md +15 -0
  531. package/examples/weather-api/main.yaml +5 -0
  532. package/examples/weather-api/weather.http +5 -0
  533. package/native/compiler-packs.json +43 -0
  534. package/package.json +4 -4
  535. package/runtime/aug_http.c +48 -21
  536. package/runtime/aug_http_ir.c +30 -0
  537. package/runtime/aug_http_ir.h +18 -0
  538. package/runtime/aug_ir.c +209 -0
  539. package/runtime/aug_ir.h +89 -0
  540. package/runtime/aug_json.c +6 -1
  541. package/runtime/aug_runtime.c +82 -16
  542. package/runtime/aug_runtime.h +16 -2
  543. package/runtime/aug_tasks.c +38 -7
  544. package/runtime/aug_values.c +12 -6
  545. package/scripts/bootstrap-native.mjs +184 -106
  546. package/scripts/native-setup.mjs +98 -0
  547. package/scripts/native-toolchain.mjs +28 -0
  548. package/src/ast.js +1 -1
  549. package/src/builtins.js +1 -1
  550. package/src/checker.js +369 -100
  551. package/src/cli.js +198 -26
  552. package/src/codegen.js +32 -7
  553. package/src/compiler-packs.js +66 -0
  554. package/src/config.js +3 -3
  555. package/src/contracts.js +10 -0
  556. package/src/editor.js +86 -22
  557. package/src/fixes.js +90 -2
  558. package/src/formatter.js +23 -10
  559. package/src/git-http.js +137 -0
  560. package/src/git-packages.js +118 -0
  561. package/src/help.js +33 -24
  562. package/src/http-contracts.js +14 -0
  563. package/src/http-policies.js +5 -5
  564. package/src/ir-types.js +5 -0
  565. package/src/ir-verify.js +277 -0
  566. package/src/ir.js +962 -0
  567. package/src/libraries.js +1 -1
  568. package/src/llvm-debug.js +101 -0
  569. package/src/llvm-native.js +152 -0
  570. package/src/llvm-platform.js +20 -0
  571. package/src/llvm.js +781 -0
  572. package/src/lsp.js +14 -5
  573. package/src/native-artifacts.js +207 -0
  574. package/src/native-bindings.js +189 -0
  575. package/src/native-contracts.js +295 -0
  576. package/src/native-declarations.js +68 -0
  577. package/src/native-facts.js +63 -0
  578. package/src/native.js +19 -13
  579. package/src/navigation.js +4 -2
  580. package/src/openapi.js +5 -4
  581. package/src/package-locking.js +88 -0
  582. package/src/package-manager.js +267 -68
  583. package/src/parser.js +32 -6
  584. package/src/policies.js +3 -3
  585. package/src/project-init.js +78 -4
  586. package/src/project.js +11 -9
  587. package/src/runtime-abi.js +23 -0
  588. package/src/runtime-adapters.js +18 -0
  589. package/src/schemas.js +24 -17
  590. package/src/semantic.js +54 -5
  591. package/src/snippets.js +60 -0
  592. package/src/spec-hints.js +56 -0
  593. package/src/spec-tree.js +241 -0
  594. package/src/spec.js +669 -305
  595. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
  596. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
  597. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
  598. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
  599. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
  600. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
  601. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
  602. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
  603. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
  604. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
  605. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
  606. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
  607. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
  608. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
  609. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  610. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  611. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  612. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  613. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  614. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  615. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  616. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  617. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
  618. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
  619. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
  620. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
  621. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
  622. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
  623. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  624. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  625. /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
  626. /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  627. /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  628. /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
@@ -1,266 +0,0 @@
1
- <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
-
3
- # `jose.aug` specification
4
-
5
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
-
7
- ## In this file
8
-
9
- - [`JwtError`](jose.aug.md#symbol-JwtError) is a class implementing `Error`.
10
- - [`JwtHeader`](jose.aug.md#symbol-JwtHeader) is an immutable record.
11
- - [`RsaJwk`](jose.aug.md#symbol-RsaJwk) is an immutable record.
12
- - [`RsaJwks`](jose.aug.md#symbol-RsaJwks) is an immutable record.
13
- - [`rsaJwk`](jose.aug.md#symbol-rsaJwk) is a function returning `RsaJwk`.
14
- - [`importJwk`](jose.aug.md#symbol-importJwk) is a function returning `RsaPublicKey`.
15
- - [`signJwt`](jose.aug.md#symbol-signJwt) is a function returning `string`.
16
- - [`verifyJwt`](jose.aug.md#symbol-verifyJwt) is a function returning `Json`.
17
-
18
- <a id="symbol-JwtError"></a>
19
-
20
- ## `JwtError`
21
-
22
- [source](jose.aug#L6)
23
-
24
- Behavioral class.
25
-
26
- Satisfies `Error`.
27
-
28
- **Author documentation**
29
-
30
- A failed JOSE validation reveals no unverified claims.
31
-
32
- <a id="symbol-JwtHeader"></a>
33
-
34
- ## `JwtHeader`
35
-
36
- [source](jose.aug#L9)
37
-
38
- Immutable record.
39
-
40
- **Author documentation**
41
-
42
- This profile accepts only RS256, a configured key id, and an explicit token type.
43
-
44
- **Inputs**
45
-
46
- - `alg` (`string`) — required labeled input — stored as `alg` and read-only after initialization.
47
- - `kid` (`string`) — required labeled input — stored as `kid` and read-only after initialization.
48
- - `typ` (`string`) — required labeled input — stored as `typ` and read-only after initialization.
49
-
50
- <a id="symbol-RsaJwk"></a>
51
-
52
- ## `RsaJwk`
53
-
54
- [source](jose.aug#L11)
55
-
56
- Immutable record.
57
-
58
- **Author documentation**
59
-
60
- Public signing-key metadata in RFC 7517 / RFC 7518 form.
61
-
62
- **Inputs**
63
-
64
- - `kty` (`string`) — required labeled input — stored as `kty` and read-only after initialization.
65
- - `kid` (`string`) — required labeled input — stored as `kid` and read-only after initialization.
66
- - `alg` (`string`) — required labeled input — stored as `alg` and read-only after initialization.
67
- - `use` (`string`) — required labeled input — stored as `use` and read-only after initialization.
68
- - `n` (`string`) — required labeled input — stored as `n` and read-only after initialization.
69
- - `e` (`string`) — required labeled input — stored as `e` and read-only after initialization.
70
-
71
- <a id="symbol-RsaJwks"></a>
72
-
73
- ## `RsaJwks`
74
-
75
- [source](jose.aug#L12)
76
-
77
- Immutable record.
78
-
79
- **Inputs**
80
-
81
- - `keys` (`List<RsaJwk>`) — required labeled input — stored as `keys` and read-only after initialization.
82
-
83
- <a id="symbol-rsaJwk"></a>
84
-
85
- ## `rsaJwk`
86
-
87
- [source](jose.aug#L15)
88
-
89
- **Inputs**
90
-
91
- - `publicKey` (`RsaPublicKey`) — required labeled input.
92
- - `kid` (`string`) — required labeled input.
93
- - `crypto` ([`Crypto`](contracts.aug.md#symbol-Crypto)) — injected; callers omit it.
94
-
95
- Returns: [`RsaJwk`](jose.aug.md#symbol-RsaJwk).
96
-
97
- Capabilities: [`crypto.exportRsa`](contracts.aug.md#symbol-Crypto.exportRsa).
98
-
99
- Can fail with `CryptoError`. Callers must catch or propagate these errors.
100
-
101
- **What it does**
102
-
103
- - Split call [`Crypto.exportRsa`](contracts.aug.md#symbol-Crypto.exportRsa) on `crypto` with `publicKey` = `publicKey` into `modulus`, `exponent`, in that order.
104
- - Return call [`RsaJwk`](jose.aug.md#symbol-RsaJwk) with `kty` = `"RSA"`; `kid` = `kid`; `alg` = `"RS256"`; `use` = `"sig"`; `n` = call `base64url` on `modulus`; `e` = call `base64url` on `exponent`.
105
-
106
- **Author documentation**
107
-
108
- Export public parameters. Private key material never enters the JSON document.
109
-
110
- <a id="symbol-importJwk"></a>
111
-
112
- ## `importJwk`
113
-
114
- [source](jose.aug#L20)
115
-
116
- **Inputs**
117
-
118
- - `jwk` ([`RsaJwk`](jose.aug.md#symbol-RsaJwk)) — required labeled input.
119
- - `crypto` ([`Crypto`](contracts.aug.md#symbol-Crypto)) — injected; callers omit it.
120
-
121
- Returns: `RsaPublicKey`.
122
-
123
- Capabilities: [`crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url), [`crypto.importRsa`](contracts.aug.md#symbol-Crypto.importRsa).
124
-
125
- Can fail with `JwtError`. Callers must catch or propagate these errors.
126
-
127
- **What it does**
128
-
129
- - If ((`kty` of `jwk` does not equal `"RSA"`) or (`alg` of `jwk` does not equal `"RS256"`)) or (`use` of `jwk` does not equal `"sig"`):
130
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
131
- - Try these operations:
132
- - Set `modulus` to call [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url) on `crypto` with `input` = `n` of `jwk`.
133
- - Set `exponent` to call [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url) on `crypto` with `input` = `e` of `jwk`.
134
- - Return call [`Crypto.importRsa`](contracts.aug.md#symbol-Crypto.importRsa) on `crypto` with `modulus` = `modulus`; `exponent` = `exponent`.
135
- - If they fail with `CryptoError`, name the failure `error` and recover:
136
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
137
-
138
- **Author documentation**
139
-
140
- Import only an RSA signing key for RS256. The transport caller selects the trusted JWKS URL.
141
-
142
- <a id="symbol-signJwt"></a>
143
-
144
- ## `signJwt`
145
-
146
- [source](jose.aug#L31)
147
-
148
- **Inputs**
149
-
150
- - `key` (`RsaPrivateKey`) — required labeled input.
151
- - `claims` (`Json`) — required labeled input.
152
- - `kid` (`string`) — required labeled input.
153
- - `tokenType` (`string`) — required labeled input.
154
- - `crypto` ([`Crypto`](contracts.aug.md#symbol-Crypto)) — injected; callers omit it.
155
-
156
- Returns: `string`.
157
-
158
- Capabilities: [`crypto.signRsa`](contracts.aug.md#symbol-Crypto.signRsa).
159
-
160
- Can fail with `JwtError`. Callers must catch or propagate these errors.
161
-
162
- **What it does**
163
-
164
- - Try these operations:
165
- - Set `header` to call `stringify` on call `Json` with `value` = call [`JwtHeader`](jose.aug.md#symbol-JwtHeader) with `alg` = `"RS256"`; `kid` = `kid`; `typ` = `tokenType`.
166
- - Set `payload` to call `stringify` on `claims`.
167
- - Set `signing` to text formed by joining call `base64url` on call `bytes` on `header`, `"."`, call `base64url` on call `bytes` on `payload` in order.
168
- - Set `signature` to call [`Crypto.signRsa`](contracts.aug.md#symbol-Crypto.signRsa) on `crypto` with `key` = `key`; `input` = call `bytes` on `signing`.
169
- - Return text formed by joining `signing`, `"."`, call `base64url` on `signature` in order.
170
- - If they fail with `CryptoError`, name the failure `error` and recover:
171
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
172
- - If they fail with `JsonError`, name the failure `error` and recover:
173
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
174
-
175
- **Author documentation**
176
-
177
- Sign immutable JSON with an explicit key id and token type. Claims are validated by the protocol that consumes the token.
178
-
179
- <a id="symbol-verifyJwt"></a>
180
-
181
- ## `verifyJwt`
182
-
183
- [source](jose.aug#L44)
184
-
185
- **Inputs**
186
-
187
- - `token` (`string`) — required labeled input.
188
- - `publicKey` (`RsaPublicKey`) — required labeled input.
189
- - `kid` (`string`) — required labeled input.
190
- - `tokenType` (`string`) — required labeled input.
191
- - `crypto` ([`Crypto`](contracts.aug.md#symbol-Crypto)) — injected; callers omit it.
192
-
193
- Returns: `Json`.
194
-
195
- Capabilities: [`crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url), [`crypto.verifyRsa`](contracts.aug.md#symbol-Crypto.verifyRsa).
196
-
197
- Can fail with `JwtError`. Callers must catch or propagate these errors.
198
-
199
- **What it does**
200
-
201
- - If call `length` on `token` is greater than `16384`:
202
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
203
- - Set `parts` to call `split` on `token` with `separator` = `"."`.
204
- - If call `length` on `parts` does not equal `3`:
205
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
206
- - Try these operations:
207
- - Set `first` to call `get` on `parts` with `index` = `0`.
208
- - Set `second` to call `get` on `parts` with `index` = `1`.
209
- - Set `third` to call `get` on `parts` with `index` = `2`.
210
- - Set `header` to call `decode` on call [`parse`](../json/contracts.aug.md#symbol-parse) with `input` = call `text` on call [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url) on `crypto` with `input` = `first` with type arguments [`JwtHeader`](jose.aug.md#symbol-JwtHeader).
211
- - If ((`alg` of `header` does not equal `"RS256"`) or (`kid` of `header` does not equal `kid`)) or (`typ` of `header` does not equal `tokenType`):
212
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
213
- - Set `signature` to call [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url) on `crypto` with `input` = `third`.
214
- - If not (call [`Crypto.verifyRsa`](contracts.aug.md#symbol-Crypto.verifyRsa) on `crypto` with `publicKey` = `publicKey`; `input` = call `bytes` on text formed by joining `first`, `"."`, `second` in order; `signature` = `signature`):
215
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
216
- - Return call [`parse`](../json/contracts.aug.md#symbol-parse) with `input` = call `text` on call [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url) on `crypto` with `input` = `second`.
217
- - If they fail with `CryptoError`, name the failure `error` and recover:
218
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
219
- - If they fail with `ConversionError`, name the failure `error` and recover:
220
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
221
- - If they fail with `JsonError`, name the failure `error` and recover:
222
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
223
- - If they fail with `IndexError`, name the failure `error` and recover:
224
- - Fail with call [`JwtError`](jose.aug.md#symbol-JwtError). Transfer control to a matching catch or propagate the failure.
225
-
226
- **Author documentation**
227
-
228
- Verify the signature and configured algorithm, key id, and type before exposing the JSON payload. Never follows token-supplied URLs.
229
-
230
- ## Dependencies used by this file
231
-
232
- Only referenced types and operations appear here. Each name links to its complete specification.
233
-
234
- ### [`Crypto`](contracts.aug.md#symbol-Crypto)
235
-
236
- Capability interface from `contracts`.
237
-
238
- - [`Crypto.decodeBase64url`](contracts.aug.md#symbol-Crypto.decodeBase64url) (`input`: `string`) → `Bytes`; can fail with `CryptoError`.
239
- - [`Crypto.exportRsa`](contracts.aug.md#symbol-Crypto.exportRsa) (`publicKey`: `RsaPublicKey`) → `Tuple<Bytes,Bytes>`; can fail with `CryptoError`.
240
- - [`Crypto.importRsa`](contracts.aug.md#symbol-Crypto.importRsa) (`modulus`: `Bytes`, `exponent`: `Bytes`) → `RsaPublicKey`; can fail with `CryptoError`.
241
- - [`Crypto.signRsa`](contracts.aug.md#symbol-Crypto.signRsa) (`key`: `RsaPrivateKey`, `input`: `Bytes`) → `Bytes`; can fail with `CryptoError`.
242
- - [`Crypto.verifyRsa`](contracts.aug.md#symbol-Crypto.verifyRsa) (`publicKey`: `RsaPublicKey`, `input`: `Bytes`, `signature`: `Bytes`) → `bool`; can fail with `CryptoError`.
243
-
244
- ### [`parse`](../json/contracts.aug.md#symbol-parse)
245
-
246
- Function from `august.json`.
247
-
248
- - [`parse`](../json/contracts.aug.md#symbol-parse) (`input`: `string`) → `Json`; can fail with `JsonError`.
249
-
250
- ## Built-in operations used by this file
251
-
252
- - `Bytes.base64url` (no inputs) → `string`: Encode immutable bytes as unpadded RFC 4648 URL-safe base64.
253
- - `Bytes.text` (no inputs) → `string`: Decode UTF-8 strictly. Invalid input raises ConversionError; embedded NUL is preserved. Can fail with `ConversionError`.
254
- - `Json.decode` (no inputs) → `JwtHeader`: Decode a checked record or data type: json.decode<Profile>(). Unknown fields, type mismatches, and validation errors are rejected. Can fail with `JsonError`.
255
- - `Json.stringify` (no inputs) → `string`: Serialize this JSON value with checked UTF-8 escaping and exact int64 values. Can fail with `JsonError`.
256
- - `List<string>.get` (`index`: `int`) → `string`: Read a zero-based position. An invalid index raises checked IndexError. Reference results grant reading. Can fail with `IndexError`.
257
- - `List<string>.length` (no inputs) → `int`: Read the number of elements.
258
- - `string.bytes` (no inputs) → `Bytes`: Encode this string as immutable UTF-8 bytes.
259
- - `string.length` (no inputs) → `int`: Read the number of UTF-8 bytes. Unicode text is preserved losslessly.
260
- - `string.split` (`separator`: `string`) → `List<string>`: Split at an exact separator, preserving empty parts.
261
-
262
- [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
263
-
264
- ## Shared language rules
265
-
266
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -1,55 +0,0 @@
1
- <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
-
3
- # `contracts.aug` specification
4
-
5
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
-
7
- ## In this file
8
-
9
- - [`_aug_json_parse`](contracts.aug.md#symbol-_aug_json_parse) is a function returning `Json`.
10
- - [`parse`](contracts.aug.md#symbol-parse) is a function returning `Json`.
11
-
12
- <a id="symbol-parse"></a>
13
-
14
- ## `parse`
15
-
16
- [source](contracts.aug#L4)
17
-
18
- **Inputs**
19
-
20
- - `input` (`string`) — required labeled input.
21
-
22
- Returns: `Json`.
23
-
24
- Can fail with `JsonError`. Callers must catch or propagate these errors.
25
-
26
- **What it does**
27
-
28
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
29
- - Return call [`_aug_json_parse`](contracts.aug.md#symbol-_aug_json_parse) with `input` = `input`.
30
-
31
- **Author documentation**
32
-
33
- Parse strict UTF-8 JSON. Duplicate keys, invalid Unicode, oversized integers, and nesting beyond 64 levels raise JsonError.
34
-
35
- <a id="symbol-_aug_json_parse"></a>
36
-
37
- ## `_aug_json_parse`
38
-
39
- [source](contracts.aug#L2)
40
-
41
- Private to its defining scope.
42
-
43
- **Inputs**
44
-
45
- - `input` (`string`) — required labeled input.
46
-
47
- Returns: `Json`.
48
-
49
- Can fail with `JsonError`. Callers must catch or propagate these errors.
50
-
51
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
52
-
53
- ## Shared language rules
54
-
55
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -1,250 +0,0 @@
1
- <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
-
3
- # `store.aug` specification
4
-
5
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
-
7
- ## In this file
8
-
9
- - [`StoreFull`](store.aug.md#symbol-StoreFull) is a class implementing `Error`.
10
- - [`_Entry`](store.aug.md#symbol-_Entry) is an immutable record.
11
- - [`ExpiringStore`](store.aug.md#symbol-ExpiringStore) is a capability interface.
12
- - [`MemoryStore`](store.aug.md#symbol-MemoryStore) is a class implementing `ExpiringStore<T>`.
13
-
14
- <a id="symbol-StoreFull"></a>
15
-
16
- ## `StoreFull`
17
-
18
- [source](store.aug#L3)
19
-
20
- Behavioral class.
21
-
22
- Satisfies `Error`.
23
-
24
- **Author documentation**
25
-
26
- The bounded store could not accept another live entry.
27
-
28
- <a id="symbol-ExpiringStore"></a>
29
-
30
- ## `ExpiringStore`
31
-
32
- [source](store.aug#L8)
33
-
34
- Capability interface.
35
-
36
- Type parameters: `T` must satisfy `Data`.
37
-
38
- **Author documentation**
39
-
40
- A bounded, expiring capability for immutable values. Each generic DI binding has its own table.
41
-
42
- <a id="symbol-ExpiringStore.put"></a>
43
-
44
- ### `ExpiringStore.put`
45
-
46
- [source](store.aug#L10)
47
-
48
- **Inputs**
49
-
50
- - `key` (`string`) — required labeled input.
51
- - `value` (`T`) — required labeled input.
52
- - `expires` (`int`) — required labeled input.
53
- - `now` (`int`) — required labeled input.
54
-
55
- Returns: no value.
56
-
57
- Capabilities: [`ExpiringStore.put`](store.aug.md#symbol-ExpiringStore.put).
58
-
59
- Can fail with `StoreFull`. Callers must catch or propagate these errors.
60
-
61
- Interface contract. A selected implementation supplies the behavior.
62
-
63
- **Author documentation**
64
-
65
- Remove expired entries, then store at most 512 live entries. Time is supplied by the caller.
66
-
67
- <a id="symbol-ExpiringStore.take"></a>
68
-
69
- ### `ExpiringStore.take`
70
-
71
- [source](store.aug#L12)
72
-
73
- **Inputs**
74
-
75
- - `key` (`string`) — required labeled input.
76
- - `now` (`int`) — required labeled input.
77
-
78
- Returns: `optional T`.
79
-
80
- Capabilities: [`ExpiringStore.take`](store.aug.md#symbol-ExpiringStore.take).
81
-
82
- Interface contract. A selected implementation supplies the behavior.
83
-
84
- **Author documentation**
85
-
86
- Atomically remove a value. Expired or absent entries return null.
87
-
88
- <a id="symbol-ExpiringStore.get"></a>
89
-
90
- ### `ExpiringStore.get`
91
-
92
- [source](store.aug#L14)
93
-
94
- **Inputs**
95
-
96
- - `key` (`string`) — required labeled input.
97
- - `now` (`int`) — required labeled input.
98
-
99
- Returns: `optional T`.
100
-
101
- Capabilities: [`ExpiringStore.get`](store.aug.md#symbol-ExpiringStore.get).
102
-
103
- Interface contract. A selected implementation supplies the behavior.
104
-
105
- **Author documentation**
106
-
107
- Read a live value without consuming it.
108
-
109
- <a id="symbol-MemoryStore"></a>
110
-
111
- ## `MemoryStore`
112
-
113
- [source](store.aug#L17)
114
-
115
- Behavioral class.
116
-
117
- Type parameters: `T` must satisfy `Data`.
118
-
119
- Satisfies [`ExpiringStore`](store.aug.md#symbol-ExpiringStore).
120
-
121
- **Author documentation**
122
-
123
- A synchronized table with short critical sections and no I/O while locked.
124
-
125
- **Field initialization**
126
-
127
- - Initialize `_entries` of type `Shared<Map<string,_Entry<T>>>` to call `Shared` with `value` = an empty map from `string` to [`_Entry<T>`](store.aug.md#symbol-_Entry). Read-only storage, private to this class.
128
-
129
- <a id="symbol-MemoryStore.put"></a>
130
-
131
- ### `MemoryStore.put`
132
-
133
- [source](store.aug#L19)
134
-
135
- **Inputs**
136
-
137
- - `key` (`string`) — required labeled input.
138
- - `value` (`T`) — required labeled input.
139
- - `expires` (`int`) — required labeled input.
140
- - `now` (`int`) — required labeled input.
141
-
142
- Returns: no value.
143
-
144
- Capabilities: [`ExpiringStore<T>.put`](store.aug.md#symbol-ExpiringStore.put).
145
-
146
- Can fail with `StoreFull`. Callers must catch or propagate these errors.
147
-
148
- **What it does**
149
-
150
- - Set `entry` to call [`_Entry`](store.aug.md#symbol-_Entry) with type arguments `T` with `value` = `value`; `expires` = `expires`.
151
- - Lock `_entries`, expose its mutable value as `entries`, and release the lock on every exit:
152
- - For each `name` and `saved` in a snapshot of `entries`, in iteration order:
153
- - If `expires` of `saved` is at most `now`:
154
- - Call `take` on `entries` with `key` = `name`.
155
- - If (call `length` on `entries` is at least `512`) and not (call `contains` on `entries` with `key` = `key`):
156
- - Fail with call [`StoreFull`](store.aug.md#symbol-StoreFull). Transfer control to a matching catch or propagate the failure.
157
- - Call `set` on `entries` with `key` = `key`; `value` = `entry`.
158
-
159
- **Author documentation**
160
-
161
- Remove expired entries, then store at most 512 live entries. Time is supplied by the caller.
162
-
163
- <a id="symbol-MemoryStore.take"></a>
164
-
165
- ### `MemoryStore.take`
166
-
167
- [source](store.aug#L28)
168
-
169
- **Inputs**
170
-
171
- - `key` (`string`) — required labeled input.
172
- - `now` (`int`) — required labeled input.
173
-
174
- Returns: `optional T`.
175
-
176
- Capabilities: [`ExpiringStore<T>.take`](store.aug.md#symbol-ExpiringStore.take).
177
-
178
- **What it does**
179
-
180
- - Lock `_entries`, expose its mutable value as `entries`, and release the lock on every exit:
181
- - Select the matching case for call `take` on `entries` with `key` = `key`:
182
- - A null value, including omitted optional input:
183
- - Return null.
184
- - A present, non-null value, named `saved`:
185
- - If `expires` of `saved` is at most `now`:
186
- - Return null.
187
- - Return `value` of `saved`.
188
-
189
- **Author documentation**
190
-
191
- Atomically remove a value. Expired or absent entries return null.
192
-
193
- <a id="symbol-MemoryStore.get"></a>
194
-
195
- ### `MemoryStore.get`
196
-
197
- [source](store.aug#L37)
198
-
199
- **Inputs**
200
-
201
- - `key` (`string`) — required labeled input.
202
- - `now` (`int`) — required labeled input.
203
-
204
- Returns: `optional T`.
205
-
206
- Capabilities: [`ExpiringStore<T>.get`](store.aug.md#symbol-ExpiringStore.get).
207
-
208
- **What it does**
209
-
210
- - Lock `_entries`, expose its mutable value as `entries`, and release the lock on every exit:
211
- - Select the matching case for call `get` on `entries` with `key` = `key`:
212
- - A null value, including omitted optional input:
213
- - Return null.
214
- - A present, non-null value, named `saved`:
215
- - If `expires` of `saved` is at most `now`:
216
- - Return null.
217
- - Return `value` of `saved`.
218
-
219
- **Author documentation**
220
-
221
- Read a live value without consuming it.
222
-
223
- <a id="symbol-_Entry"></a>
224
-
225
- ## `_Entry`
226
-
227
- [source](store.aug#L5)
228
-
229
- Immutable record, private to this file.
230
-
231
- Type parameters: `T` must satisfy `Data`.
232
-
233
- **Inputs**
234
-
235
- - `value` (`T`) — required labeled input — stored as `value` and read-only after initialization.
236
- - `expires` (`int`) — required labeled input — stored as `expires` and read-only after initialization.
237
-
238
- ## Built-in operations used by this file
239
-
240
- - `Map<string, _Entry<T>>.contains` (`key`: `string`) → `bool`: Check for a key, including entries whose value is null.
241
- - `Map<string, _Entry<T>>.get` (`key`: `string`) → `optional _Entry<T>`: Read a value by key; an absent key returns null. contains distinguishes an absent key from a stored null.
242
- - `Map<string, _Entry<T>>.length` (no inputs) → `int`: Read the number of elements.
243
- - `Map<string, _Entry<T>>.set` (`key`: `string`, `value`: `_Entry<T>`) → `void`: Insert or replace an entry with exclusive mutable access. Changes the receiver.
244
- - `Map<string, _Entry<T>>.take` (`key`: `string`) → `optional _Entry<T>`: Remove and return an entry under exclusive access. An absent key returns null. Changes the receiver.
245
-
246
- [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
247
-
248
- ## Shared language rules
249
-
250
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -1,96 +0,0 @@
1
- <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
-
3
- # `contracts.aug` specification
4
-
5
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
-
7
- ## In this file
8
-
9
- - [`Clock`](contracts.aug.md#symbol-Clock) is a capability interface.
10
- - [`_aug_time_now`](contracts.aug.md#symbol-_aug_time_now) is a function returning `int`.
11
- - [`SystemClock`](contracts.aug.md#symbol-SystemClock) is a class implementing `Clock`.
12
-
13
- <a id="symbol-Clock"></a>
14
-
15
- ## `Clock`
16
-
17
- [source](contracts.aug#L3)
18
-
19
- Capability interface.
20
-
21
- **Author documentation**
22
-
23
- An explicit clock dependency makes time-based behavior replaceable in tests.
24
-
25
- <a id="symbol-Clock.now"></a>
26
-
27
- ### `Clock.now`
28
-
29
- [source](contracts.aug#L5)
30
-
31
- Returns: `int`.
32
-
33
- Capabilities: [`Clock.now`](contracts.aug.md#symbol-Clock.now).
34
-
35
- Can fail with `TimeError`. Callers must catch or propagate these errors.
36
-
37
- Interface contract. A selected implementation supplies the behavior.
38
-
39
- **Author documentation**
40
-
41
- Read whole Unix seconds in UTC.
42
-
43
- <a id="symbol-SystemClock"></a>
44
-
45
- ## `SystemClock`
46
-
47
- [source](contracts.aug#L8)
48
-
49
- Behavioral class.
50
-
51
- Satisfies [`Clock`](contracts.aug.md#symbol-Clock).
52
-
53
- **Author documentation**
54
-
55
- Operating-system wall clock.
56
-
57
- <a id="symbol-SystemClock.now"></a>
58
-
59
- ### `SystemClock.now`
60
-
61
- [source](contracts.aug#L9)
62
-
63
- Returns: `int`.
64
-
65
- Capabilities: [`Clock.now`](contracts.aug.md#symbol-Clock.now).
66
-
67
- Can fail with `TimeError`. Callers must catch or propagate these errors.
68
-
69
- **What it does**
70
-
71
- - Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
72
- - Return call [`_aug_time_now`](contracts.aug.md#symbol-_aug_time_now).
73
-
74
- **Author documentation**
75
-
76
- Read whole Unix seconds in UTC.
77
-
78
- <a id="symbol-_aug_time_now"></a>
79
-
80
- ## `_aug_time_now`
81
-
82
- [source](contracts.aug#L6)
83
-
84
- Private to its defining scope.
85
-
86
- Returns: `int`.
87
-
88
- Capabilities: [`Clock.now`](contracts.aug.md#symbol-Clock.now).
89
-
90
- Can fail with `TimeError`. Callers must catch or propagate these errors.
91
-
92
- Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
93
-
94
- ## Shared language rules
95
-
96
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.