@almadar/std 17.0.0 → 17.0.2

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 (323) hide show
  1. package/behaviors/lolo/cli/atoms/std-orb-behaviors.lolo +1 -1
  2. package/behaviors/lolo/cli/atoms/std-orb-compile.lolo +1 -1
  3. package/behaviors/lolo/cli/atoms/std-orb-i18n.lolo +1 -1
  4. package/behaviors/lolo/cli/atoms/std-orb-language.lolo +2 -2
  5. package/behaviors/lolo/cli/atoms/std-orb-lint-all.lolo +1 -1
  6. package/behaviors/lolo/cli/atoms/std-orb-lint-asset-inline-url.lolo +1 -1
  7. package/behaviors/lolo/cli/atoms/std-orb-lint-async-result-deaf-target.lolo +1 -1
  8. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-fields.lolo +1 -1
  9. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-roots.lolo +1 -1
  10. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-setters.lolo +1 -1
  11. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-traits.lolo +1 -1
  12. package/behaviors/lolo/cli/atoms/std-orb-lint-browser-effects.lolo +1 -1
  13. package/behaviors/lolo/cli/atoms/std-orb-lint-call-service.lolo +1 -1
  14. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-client-bound.lolo +1 -1
  15. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-emits.lolo +1 -1
  16. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-graph.lolo +1 -1
  17. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-item-actions.lolo +1 -1
  18. package/behaviors/lolo/cli/atoms/std-orb-lint-circular-dependencies.lolo +1 -1
  19. package/behaviors/lolo/cli/atoms/std-orb-lint-client-tick-locality.lolo +1 -1
  20. package/behaviors/lolo/cli/atoms/std-orb-lint-collection-policy.lolo +1 -1
  21. package/behaviors/lolo/cli/atoms/std-orb-lint-composed-wiring.lolo +1 -1
  22. package/behaviors/lolo/cli/atoms/std-orb-lint-computed-key-dot-path.lolo +1 -1
  23. package/behaviors/lolo/cli/atoms/std-orb-lint-config-dangling-ref.lolo +1 -1
  24. package/behaviors/lolo/cli/atoms/std-orb-lint-config-knob.lolo +1 -1
  25. package/behaviors/lolo/cli/atoms/std-orb-lint-config-role-lists.lolo +1 -1
  26. package/behaviors/lolo/cli/atoms/std-orb-lint-control-unhandled.lolo +1 -1
  27. package/behaviors/lolo/cli/atoms/std-orb-lint-control-value-discarded.lolo +1 -1
  28. package/behaviors/lolo/cli/atoms/std-orb-lint-cross-duplicate-entity.lolo +1 -1
  29. package/behaviors/lolo/cli/atoms/std-orb-lint-cross-emitter.lolo +1 -1
  30. package/behaviors/lolo/cli/atoms/std-orb-lint-cross-registry.lolo +1 -1
  31. package/behaviors/lolo/cli/atoms/std-orb-lint-derived-field-write.lolo +1 -1
  32. package/behaviors/lolo/cli/atoms/std-orb-lint-dispatch-contract.lolo +1 -1
  33. package/behaviors/lolo/cli/atoms/std-orb-lint-duplicate-transition.lolo +1 -1
  34. package/behaviors/lolo/cli/atoms/std-orb-lint-duplicate-use-alias.lolo +1 -1
  35. package/behaviors/lolo/cli/atoms/std-orb-lint-effect-forms.lolo +1 -1
  36. package/behaviors/lolo/cli/atoms/std-orb-lint-egress-scheme-unused.lolo +1 -1
  37. package/behaviors/lolo/cli/atoms/std-orb-lint-embed-config-forward.lolo +1 -1
  38. package/behaviors/lolo/cli/atoms/std-orb-lint-emit-config-ref.lolo +1 -1
  39. package/behaviors/lolo/cli/atoms/std-orb-lint-emit-declaration.lolo +1 -1
  40. package/behaviors/lolo/cli/atoms/std-orb-lint-emit.lolo +1 -1
  41. package/behaviors/lolo/cli/atoms/std-orb-lint-empty-event-name.lolo +1 -1
  42. package/behaviors/lolo/cli/atoms/std-orb-lint-engine.lolo +1 -1
  43. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-access.lolo +1 -1
  44. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-browser-storage.lolo +1 -1
  45. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-duplicate-field.lolo +1 -1
  46. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-empty-enum.lolo +1 -1
  47. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-field-type.lolo +1 -1
  48. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-locale-instances.lolo +1 -1
  49. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-mock-member.lolo +1 -1
  50. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-mutation.lolo +1 -1
  51. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-name-shadows-trait-union.lolo +1 -1
  52. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-persistence.lolo +1 -1
  53. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-semantic-default.lolo +1 -1
  54. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-shape.lolo +1 -1
  55. package/behaviors/lolo/cli/atoms/std-orb-lint-event-id-uniqueness.lolo +1 -1
  56. package/behaviors/lolo/cli/atoms/std-orb-lint-event-wiring.lolo +1 -1
  57. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-config-knob.lolo +1 -1
  58. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-event-unfired.lolo +1 -1
  59. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-field-undeclared.lolo +1 -1
  60. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-final.lolo +1 -1
  61. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-persistent-unwritten.lolo +1 -1
  62. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-provider-mismatch.lolo +1 -1
  63. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-unsatisfied.lolo +1 -1
  64. package/behaviors/lolo/cli/atoms/std-orb-lint-expected-field-not-provided.lolo +1 -1
  65. package/behaviors/lolo/cli/atoms/std-orb-lint-external-emit-payload.lolo +1 -1
  66. package/behaviors/lolo/cli/atoms/std-orb-lint-fetch-by-id-payload.lolo +1 -1
  67. package/behaviors/lolo/cli/atoms/std-orb-lint-fetch-deliver.lolo +1 -1
  68. package/behaviors/lolo/cli/atoms/std-orb-lint-field-path.lolo +1 -1
  69. package/behaviors/lolo/cli/atoms/std-orb-lint-filter-field-never-written.lolo +1 -1
  70. package/behaviors/lolo/cli/atoms/std-orb-lint-finding-codes.lolo +1 -1
  71. package/behaviors/lolo/cli/atoms/std-orb-lint-generic-types.lolo +1 -1
  72. package/behaviors/lolo/cli/atoms/std-orb-lint-groupby-enum-column-gap.lolo +1 -1
  73. package/behaviors/lolo/cli/atoms/std-orb-lint-guest-view-not-client.lolo +1 -1
  74. package/behaviors/lolo/cli/atoms/std-orb-lint-host-effects.lolo +1 -1
  75. package/behaviors/lolo/cli/atoms/std-orb-lint-http-egress-entry.lolo +1 -1
  76. package/behaviors/lolo/cli/atoms/std-orb-lint-icon-exists.lolo +1 -1
  77. package/behaviors/lolo/cli/atoms/std-orb-lint-icon-format.lolo +1 -1
  78. package/behaviors/lolo/cli/atoms/std-orb-lint-id-refs.lolo +1 -1
  79. package/behaviors/lolo/cli/atoms/std-orb-lint-identity-unique.lolo +1 -1
  80. package/behaviors/lolo/cli/atoms/std-orb-lint-inbound-answer-foreign.lolo +1 -1
  81. package/behaviors/lolo/cli/atoms/std-orb-lint-inbound.lolo +1 -1
  82. package/behaviors/lolo/cli/atoms/std-orb-lint-init-coverage.lolo +1 -1
  83. package/behaviors/lolo/cli/atoms/std-orb-lint-input.lolo +1 -1
  84. package/behaviors/lolo/cli/atoms/std-orb-lint-item-action-event.lolo +1 -1
  85. package/behaviors/lolo/cli/atoms/std-orb-lint-keyed-call-keys.lolo +1 -1
  86. package/behaviors/lolo/cli/atoms/std-orb-lint-keyed-call.lolo +1 -1
  87. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-per.lolo +1 -1
  88. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-redundant-embed-route.lolo +1 -1
  89. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-route-starves-required-field.lolo +1 -1
  90. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-source-never-produces.lolo +1 -1
  91. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-source-unresolved.lolo +1 -1
  92. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-trigger.lolo +1 -1
  93. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-wildcard-unkeyed.lolo +1 -1
  94. package/behaviors/lolo/cli/atoms/std-orb-lint-literal-default.lolo +1 -1
  95. package/behaviors/lolo/cli/atoms/std-orb-lint-llm-wire-unrouted.lolo +1 -1
  96. package/behaviors/lolo/cli/atoms/std-orb-lint-loop-invariant-parse.lolo +1 -1
  97. package/behaviors/lolo/cli/atoms/std-orb-lint-mem-handles.lolo +1 -1
  98. package/behaviors/lolo/cli/atoms/std-orb-lint-merged-fields.lolo +1 -1
  99. package/behaviors/lolo/cli/atoms/std-orb-lint-missing-orbital-name.lolo +1 -1
  100. package/behaviors/lolo/cli/atoms/std-orb-lint-nav-target.lolo +1 -1
  101. package/behaviors/lolo/cli/atoms/std-orb-lint-navigate.lolo +1 -1
  102. package/behaviors/lolo/cli/atoms/std-orb-lint-not-found.lolo +1 -1
  103. package/behaviors/lolo/cli/atoms/std-orb-lint-oauth.lolo +1 -1
  104. package/behaviors/lolo/cli/atoms/std-orb-lint-orbital-config-dead-knob.lolo +1 -1
  105. package/behaviors/lolo/cli/atoms/std-orb-lint-orbital-duplicate-name.lolo +1 -1
  106. package/behaviors/lolo/cli/atoms/std-orb-lint-page-content-owner.lolo +1 -1
  107. package/behaviors/lolo/cli/atoms/std-orb-lint-page-empty-traits.lolo +1 -1
  108. package/behaviors/lolo/cli/atoms/std-orb-lint-page-modifiers.lolo +1 -1
  109. package/behaviors/lolo/cli/atoms/std-orb-lint-page-path-uniqueness.lolo +1 -1
  110. package/behaviors/lolo/cli/atoms/std-orb-lint-page-path.lolo +1 -1
  111. package/behaviors/lolo/cli/atoms/std-orb-lint-page-unreachable.lolo +1 -1
  112. package/behaviors/lolo/cli/atoms/std-orb-lint-parallel-pure.lolo +1 -1
  113. package/behaviors/lolo/cli/atoms/std-orb-lint-pattern-props.lolo +1 -1
  114. package/behaviors/lolo/cli/atoms/std-orb-lint-payload-field-name.lolo +1 -1
  115. package/behaviors/lolo/cli/atoms/std-orb-lint-placement.lolo +1 -1
  116. package/behaviors/lolo/cli/atoms/std-orb-lint-program-eval.lolo +1 -1
  117. package/behaviors/lolo/cli/atoms/std-orb-lint-query-index.lolo +1 -1
  118. package/behaviors/lolo/cli/atoms/std-orb-lint-relation-targets.lolo +1 -1
  119. package/behaviors/lolo/cli/atoms/std-orb-lint-render-ui-pattern.lolo +1 -1
  120. package/behaviors/lolo/cli/atoms/std-orb-lint-reserved-component-name.lolo +1 -1
  121. package/behaviors/lolo/cli/atoms/std-orb-lint-retired-effect-forms.lolo +1 -1
  122. package/behaviors/lolo/cli/atoms/std-orb-lint-rui-binding.lolo +1 -1
  123. package/behaviors/lolo/cli/atoms/std-orb-lint-rui-effects.lolo +1 -1
  124. package/behaviors/lolo/cli/atoms/std-orb-lint-schema-header.lolo +1 -1
  125. package/behaviors/lolo/cli/atoms/std-orb-lint-service-def.lolo +1 -1
  126. package/behaviors/lolo/cli/atoms/std-orb-lint-set-column.lolo +1 -1
  127. package/behaviors/lolo/cli/atoms/std-orb-lint-sexpr-binding.lolo +1 -1
  128. package/behaviors/lolo/cli/atoms/std-orb-lint-sigil-context.lolo +1 -1
  129. package/behaviors/lolo/cli/atoms/std-orb-lint-sign-in-route.lolo +1 -1
  130. package/behaviors/lolo/cli/atoms/std-orb-lint-slot-tick.lolo +1 -1
  131. package/behaviors/lolo/cli/atoms/std-orb-lint-slot.lolo +1 -1
  132. package/behaviors/lolo/cli/atoms/std-orb-lint-state-shape.lolo +1 -1
  133. package/behaviors/lolo/cli/atoms/std-orb-lint-state-unreachable.lolo +1 -1
  134. package/behaviors/lolo/cli/atoms/std-orb-lint-store-binding.lolo +1 -1
  135. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-pin-contradicts-app.lolo +1 -1
  136. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-ref.lolo +1 -1
  137. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-undeclared.lolo +1 -1
  138. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-values.lolo +1 -1
  139. package/behaviors/lolo/cli/atoms/std-orb-lint-tick-requires-runtime.lolo +1 -1
  140. package/behaviors/lolo/cli/atoms/std-orb-lint-time-unit.lolo +1 -1
  141. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-embeds.lolo +1 -1
  142. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-id-uniqueness.lolo +1 -1
  143. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-mounts.lolo +1 -1
  144. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-ref-config.lolo +1 -1
  145. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-refs.lolo +1 -1
  146. package/behaviors/lolo/cli/atoms/std-orb-lint-transition-refs.lolo +1 -1
  147. package/behaviors/lolo/cli/atoms/std-orb-lint-type-param-sweep.lolo +1 -1
  148. package/behaviors/lolo/cli/atoms/std-orb-lint-unsigned-guard.lolo +1 -1
  149. package/behaviors/lolo/cli/atoms/std-orb-lint-untyped-array.lolo +1 -1
  150. package/behaviors/lolo/cli/atoms/std-orb-lint-user-field-exists.lolo +1 -1
  151. package/behaviors/lolo/cli/atoms/std-orb-lint-user-identity.lolo +1 -1
  152. package/behaviors/lolo/cli/atoms/std-orb-lint-viewer-stranded.lolo +1 -1
  153. package/behaviors/lolo/cli/atoms/std-orb-mcp-install.lolo +1 -1
  154. package/behaviors/lolo/cli/atoms/std-orb-mcp.lolo +2 -2
  155. package/behaviors/lolo/cli/atoms/std-orb-packages.lolo +2 -2
  156. package/behaviors/lolo/cli/atoms/std-orb-supervise.lolo +1 -1
  157. package/behaviors/lolo/cli/atoms/std-orb-update-notice.lolo +1 -1
  158. package/behaviors/lolo/cli/atoms/std-orb-validate.lolo +1 -1
  159. package/behaviors/lolo/dev/atoms/std-launchpad-updates.lolo +1 -1
  160. package/behaviors/lolo/dev/atoms/std-orb-stats.lolo +1 -1
  161. package/behaviors/lolo/dev/organisms/std-launchpad.lolo +1 -1
  162. package/behaviors/registry/cli/atoms/std-orb-behaviors.orb +1 -1
  163. package/behaviors/registry/cli/atoms/std-orb-compile.orb +1 -1
  164. package/behaviors/registry/cli/atoms/std-orb-i18n.orb +1 -1
  165. package/behaviors/registry/cli/atoms/std-orb-language.orb +1 -1
  166. package/behaviors/registry/cli/atoms/std-orb-lint-all.orb +1 -1
  167. package/behaviors/registry/cli/atoms/std-orb-lint-asset-inline-url.orb +1 -1
  168. package/behaviors/registry/cli/atoms/std-orb-lint-async-result-deaf-target.orb +1 -1
  169. package/behaviors/registry/cli/atoms/std-orb-lint-binding-fields.orb +1 -1
  170. package/behaviors/registry/cli/atoms/std-orb-lint-binding-roots.orb +1 -1
  171. package/behaviors/registry/cli/atoms/std-orb-lint-binding-setters.orb +1 -1
  172. package/behaviors/registry/cli/atoms/std-orb-lint-binding-traits.orb +1 -1
  173. package/behaviors/registry/cli/atoms/std-orb-lint-browser-effects.orb +1 -1
  174. package/behaviors/registry/cli/atoms/std-orb-lint-call-service.orb +1 -1
  175. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-client-bound.orb +1 -1
  176. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-emits.orb +1 -1
  177. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-graph.orb +1 -1
  178. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-item-actions.orb +1 -1
  179. package/behaviors/registry/cli/atoms/std-orb-lint-circular-dependencies.orb +1 -1
  180. package/behaviors/registry/cli/atoms/std-orb-lint-client-tick-locality.orb +1 -1
  181. package/behaviors/registry/cli/atoms/std-orb-lint-collection-policy.orb +1 -1
  182. package/behaviors/registry/cli/atoms/std-orb-lint-composed-wiring.orb +1 -1
  183. package/behaviors/registry/cli/atoms/std-orb-lint-computed-key-dot-path.orb +1 -1
  184. package/behaviors/registry/cli/atoms/std-orb-lint-config-dangling-ref.orb +1 -1
  185. package/behaviors/registry/cli/atoms/std-orb-lint-config-knob.orb +1 -1
  186. package/behaviors/registry/cli/atoms/std-orb-lint-config-role-lists.orb +1 -1
  187. package/behaviors/registry/cli/atoms/std-orb-lint-control-unhandled.orb +1 -1
  188. package/behaviors/registry/cli/atoms/std-orb-lint-control-value-discarded.orb +1 -1
  189. package/behaviors/registry/cli/atoms/std-orb-lint-cross-duplicate-entity.orb +1 -1
  190. package/behaviors/registry/cli/atoms/std-orb-lint-cross-emitter.orb +1 -1
  191. package/behaviors/registry/cli/atoms/std-orb-lint-cross-registry.orb +1 -1
  192. package/behaviors/registry/cli/atoms/std-orb-lint-derived-field-write.orb +1 -1
  193. package/behaviors/registry/cli/atoms/std-orb-lint-dispatch-contract.orb +1 -1
  194. package/behaviors/registry/cli/atoms/std-orb-lint-duplicate-transition.orb +1 -1
  195. package/behaviors/registry/cli/atoms/std-orb-lint-duplicate-use-alias.orb +1 -1
  196. package/behaviors/registry/cli/atoms/std-orb-lint-effect-forms.orb +1 -1
  197. package/behaviors/registry/cli/atoms/std-orb-lint-egress-scheme-unused.orb +1 -1
  198. package/behaviors/registry/cli/atoms/std-orb-lint-embed-config-forward.orb +1 -1
  199. package/behaviors/registry/cli/atoms/std-orb-lint-emit-config-ref.orb +1 -1
  200. package/behaviors/registry/cli/atoms/std-orb-lint-emit-declaration.orb +1 -1
  201. package/behaviors/registry/cli/atoms/std-orb-lint-emit.orb +1 -1
  202. package/behaviors/registry/cli/atoms/std-orb-lint-empty-event-name.orb +1 -1
  203. package/behaviors/registry/cli/atoms/std-orb-lint-engine.orb +1 -1
  204. package/behaviors/registry/cli/atoms/std-orb-lint-entity-access.orb +1 -1
  205. package/behaviors/registry/cli/atoms/std-orb-lint-entity-browser-storage.orb +1 -1
  206. package/behaviors/registry/cli/atoms/std-orb-lint-entity-duplicate-field.orb +1 -1
  207. package/behaviors/registry/cli/atoms/std-orb-lint-entity-empty-enum.orb +1 -1
  208. package/behaviors/registry/cli/atoms/std-orb-lint-entity-field-type.orb +1 -1
  209. package/behaviors/registry/cli/atoms/std-orb-lint-entity-locale-instances.orb +1 -1
  210. package/behaviors/registry/cli/atoms/std-orb-lint-entity-mock-member.orb +1 -1
  211. package/behaviors/registry/cli/atoms/std-orb-lint-entity-mutation.orb +1 -1
  212. package/behaviors/registry/cli/atoms/std-orb-lint-entity-name-shadows-trait-union.orb +1 -1
  213. package/behaviors/registry/cli/atoms/std-orb-lint-entity-persistence.orb +1 -1
  214. package/behaviors/registry/cli/atoms/std-orb-lint-entity-semantic-default.orb +1 -1
  215. package/behaviors/registry/cli/atoms/std-orb-lint-entity-shape.orb +1 -1
  216. package/behaviors/registry/cli/atoms/std-orb-lint-event-id-uniqueness.orb +1 -1
  217. package/behaviors/registry/cli/atoms/std-orb-lint-event-wiring.orb +1 -1
  218. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-config-knob.orb +1 -1
  219. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-event-unfired.orb +1 -1
  220. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-field-undeclared.orb +1 -1
  221. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-final.orb +1 -1
  222. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-persistent-unwritten.orb +1 -1
  223. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-provider-mismatch.orb +1 -1
  224. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-unsatisfied.orb +1 -1
  225. package/behaviors/registry/cli/atoms/std-orb-lint-expected-field-not-provided.orb +1 -1
  226. package/behaviors/registry/cli/atoms/std-orb-lint-external-emit-payload.orb +1 -1
  227. package/behaviors/registry/cli/atoms/std-orb-lint-fetch-by-id-payload.orb +1 -1
  228. package/behaviors/registry/cli/atoms/std-orb-lint-fetch-deliver.orb +1 -1
  229. package/behaviors/registry/cli/atoms/std-orb-lint-field-path.orb +1 -1
  230. package/behaviors/registry/cli/atoms/std-orb-lint-filter-field-never-written.orb +1 -1
  231. package/behaviors/registry/cli/atoms/std-orb-lint-finding-codes.orb +1 -1
  232. package/behaviors/registry/cli/atoms/std-orb-lint-generic-types.orb +1 -1
  233. package/behaviors/registry/cli/atoms/std-orb-lint-groupby-enum-column-gap.orb +1 -1
  234. package/behaviors/registry/cli/atoms/std-orb-lint-guest-view-not-client.orb +1 -1
  235. package/behaviors/registry/cli/atoms/std-orb-lint-host-effects.orb +1 -1
  236. package/behaviors/registry/cli/atoms/std-orb-lint-http-egress-entry.orb +1 -1
  237. package/behaviors/registry/cli/atoms/std-orb-lint-icon-exists.orb +1 -1
  238. package/behaviors/registry/cli/atoms/std-orb-lint-icon-format.orb +1 -1
  239. package/behaviors/registry/cli/atoms/std-orb-lint-id-refs.orb +1 -1
  240. package/behaviors/registry/cli/atoms/std-orb-lint-identity-unique.orb +1 -1
  241. package/behaviors/registry/cli/atoms/std-orb-lint-inbound-answer-foreign.orb +1 -1
  242. package/behaviors/registry/cli/atoms/std-orb-lint-inbound.orb +1 -1
  243. package/behaviors/registry/cli/atoms/std-orb-lint-init-coverage.orb +1 -1
  244. package/behaviors/registry/cli/atoms/std-orb-lint-input.orb +1 -1
  245. package/behaviors/registry/cli/atoms/std-orb-lint-item-action-event.orb +1 -1
  246. package/behaviors/registry/cli/atoms/std-orb-lint-keyed-call-keys.orb +1 -1
  247. package/behaviors/registry/cli/atoms/std-orb-lint-keyed-call.orb +1 -1
  248. package/behaviors/registry/cli/atoms/std-orb-lint-listen-per.orb +1 -1
  249. package/behaviors/registry/cli/atoms/std-orb-lint-listen-redundant-embed-route.orb +1 -1
  250. package/behaviors/registry/cli/atoms/std-orb-lint-listen-route-starves-required-field.orb +1 -1
  251. package/behaviors/registry/cli/atoms/std-orb-lint-listen-source-never-produces.orb +1 -1
  252. package/behaviors/registry/cli/atoms/std-orb-lint-listen-source-unresolved.orb +1 -1
  253. package/behaviors/registry/cli/atoms/std-orb-lint-listen-trigger.orb +1 -1
  254. package/behaviors/registry/cli/atoms/std-orb-lint-listen-wildcard-unkeyed.orb +1 -1
  255. package/behaviors/registry/cli/atoms/std-orb-lint-literal-default.orb +1 -1
  256. package/behaviors/registry/cli/atoms/std-orb-lint-llm-wire-unrouted.orb +1 -1
  257. package/behaviors/registry/cli/atoms/std-orb-lint-loop-invariant-parse.orb +1 -1
  258. package/behaviors/registry/cli/atoms/std-orb-lint-mem-handles.orb +1 -1
  259. package/behaviors/registry/cli/atoms/std-orb-lint-merged-fields.orb +1 -1
  260. package/behaviors/registry/cli/atoms/std-orb-lint-missing-orbital-name.orb +1 -1
  261. package/behaviors/registry/cli/atoms/std-orb-lint-nav-target.orb +1 -1
  262. package/behaviors/registry/cli/atoms/std-orb-lint-navigate.orb +1 -1
  263. package/behaviors/registry/cli/atoms/std-orb-lint-not-found.orb +1 -1
  264. package/behaviors/registry/cli/atoms/std-orb-lint-oauth.orb +1 -1
  265. package/behaviors/registry/cli/atoms/std-orb-lint-orbital-config-dead-knob.orb +1 -1
  266. package/behaviors/registry/cli/atoms/std-orb-lint-orbital-duplicate-name.orb +1 -1
  267. package/behaviors/registry/cli/atoms/std-orb-lint-page-content-owner.orb +1 -1
  268. package/behaviors/registry/cli/atoms/std-orb-lint-page-empty-traits.orb +1 -1
  269. package/behaviors/registry/cli/atoms/std-orb-lint-page-modifiers.orb +1 -1
  270. package/behaviors/registry/cli/atoms/std-orb-lint-page-path-uniqueness.orb +1 -1
  271. package/behaviors/registry/cli/atoms/std-orb-lint-page-path.orb +1 -1
  272. package/behaviors/registry/cli/atoms/std-orb-lint-page-unreachable.orb +1 -1
  273. package/behaviors/registry/cli/atoms/std-orb-lint-parallel-pure.orb +1 -1
  274. package/behaviors/registry/cli/atoms/std-orb-lint-pattern-props.orb +1 -1
  275. package/behaviors/registry/cli/atoms/std-orb-lint-payload-field-name.orb +1 -1
  276. package/behaviors/registry/cli/atoms/std-orb-lint-placement.orb +1 -1
  277. package/behaviors/registry/cli/atoms/std-orb-lint-program-eval.orb +1 -1
  278. package/behaviors/registry/cli/atoms/std-orb-lint-query-index.orb +1 -1
  279. package/behaviors/registry/cli/atoms/std-orb-lint-relation-targets.orb +1 -1
  280. package/behaviors/registry/cli/atoms/std-orb-lint-render-ui-pattern.orb +1 -1
  281. package/behaviors/registry/cli/atoms/std-orb-lint-reserved-component-name.orb +1 -1
  282. package/behaviors/registry/cli/atoms/std-orb-lint-retired-effect-forms.orb +1 -1
  283. package/behaviors/registry/cli/atoms/std-orb-lint-rui-binding.orb +1 -1
  284. package/behaviors/registry/cli/atoms/std-orb-lint-rui-effects.orb +1 -1
  285. package/behaviors/registry/cli/atoms/std-orb-lint-schema-header.orb +1 -1
  286. package/behaviors/registry/cli/atoms/std-orb-lint-service-def.orb +1 -1
  287. package/behaviors/registry/cli/atoms/std-orb-lint-set-column.orb +1 -1
  288. package/behaviors/registry/cli/atoms/std-orb-lint-sexpr-binding.orb +1 -1
  289. package/behaviors/registry/cli/atoms/std-orb-lint-sigil-context.orb +1 -1
  290. package/behaviors/registry/cli/atoms/std-orb-lint-sign-in-route.orb +1 -1
  291. package/behaviors/registry/cli/atoms/std-orb-lint-slot-tick.orb +1 -1
  292. package/behaviors/registry/cli/atoms/std-orb-lint-slot.orb +1 -1
  293. package/behaviors/registry/cli/atoms/std-orb-lint-state-shape.orb +1 -1
  294. package/behaviors/registry/cli/atoms/std-orb-lint-state-unreachable.orb +1 -1
  295. package/behaviors/registry/cli/atoms/std-orb-lint-store-binding.orb +1 -1
  296. package/behaviors/registry/cli/atoms/std-orb-lint-theme-pin-contradicts-app.orb +1 -1
  297. package/behaviors/registry/cli/atoms/std-orb-lint-theme-ref.orb +1 -1
  298. package/behaviors/registry/cli/atoms/std-orb-lint-theme-undeclared.orb +1 -1
  299. package/behaviors/registry/cli/atoms/std-orb-lint-theme-values.orb +1 -1
  300. package/behaviors/registry/cli/atoms/std-orb-lint-tick-requires-runtime.orb +1 -1
  301. package/behaviors/registry/cli/atoms/std-orb-lint-time-unit.orb +1 -1
  302. package/behaviors/registry/cli/atoms/std-orb-lint-trait-embeds.orb +1 -1
  303. package/behaviors/registry/cli/atoms/std-orb-lint-trait-id-uniqueness.orb +1 -1
  304. package/behaviors/registry/cli/atoms/std-orb-lint-trait-mounts.orb +1 -1
  305. package/behaviors/registry/cli/atoms/std-orb-lint-trait-ref-config.orb +1 -1
  306. package/behaviors/registry/cli/atoms/std-orb-lint-trait-refs.orb +1 -1
  307. package/behaviors/registry/cli/atoms/std-orb-lint-transition-refs.orb +1 -1
  308. package/behaviors/registry/cli/atoms/std-orb-lint-type-param-sweep.orb +1 -1
  309. package/behaviors/registry/cli/atoms/std-orb-lint-unsigned-guard.orb +1 -1
  310. package/behaviors/registry/cli/atoms/std-orb-lint-untyped-array.orb +1 -1
  311. package/behaviors/registry/cli/atoms/std-orb-lint-user-field-exists.orb +1 -1
  312. package/behaviors/registry/cli/atoms/std-orb-lint-user-identity.orb +1 -1
  313. package/behaviors/registry/cli/atoms/std-orb-lint-viewer-stranded.orb +1 -1
  314. package/behaviors/registry/cli/atoms/std-orb-mcp-install.orb +1 -1
  315. package/behaviors/registry/cli/atoms/std-orb-mcp.orb +1 -1
  316. package/behaviors/registry/cli/atoms/std-orb-packages.orb +1 -1
  317. package/behaviors/registry/cli/atoms/std-orb-supervise.orb +1 -1
  318. package/behaviors/registry/cli/atoms/std-orb-update-notice.orb +1 -1
  319. package/behaviors/registry/cli/atoms/std-orb-validate.orb +1 -1
  320. package/behaviors/registry/dev/atoms/std-launchpad-updates.orb +1 -1
  321. package/behaviors/registry/dev/atoms/std-orb-stats.orb +1 -1
  322. package/behaviors/registry/dev/organisms/std-launchpad.orb +5 -0
  323. package/package.json +1 -1
@@ -1 +1 @@
1
- {"typeContractVersion":1,"types":{"EmitItem":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"EmitObj":[{"nullable":false,"name":"","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}],"EmitResult":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}],"EmitVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[EmitVal]","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"object","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}]}],"HcByLiteral":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"required","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcCall":[{"nullable":false,"name":"head","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"call","type":"[HcVal]","required":true,"items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"tname","type":"string","required":true},{"nullable":false,"name":"tick","type":"string","required":true},{"nullable":false,"name":"bg","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"config","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"inGuard","type":"boolean","required":true}],"HcClosed":[{"nullable":true,"name":"request","type":"boolean"},{"nullable":true,"name":"intRange","type":"HcIntRange","projectedFrom":{"type":"HcIntRange"}},{"nullable":true,"name":"requestKeysByLiteral","type":"HcByLiteral","projectedFrom":{"type":"HcByLiteral"}}],"HcExtras":[{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitKeys","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcFact":[{"nullable":false,"name":"minArity","type":"number","required":true},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}},{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitOrder","type":"[string]","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasOptions","type":"boolean","required":true},{"nullable":false,"name":"optionKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"emitKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasRequest","type":"boolean","required":true},{"nullable":false,"name":"requestFields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"requestRequired","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"words","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"keys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcGrantNeed":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcIntRange":[{"nullable":false,"name":"arg","type":"number","required":true},{"nullable":false,"name":"min","type":"number","required":true},{"nullable":false,"name":"max","type":"number","required":true}],"HcLooseList":[{"nullable":false,"name":"","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcParam":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"HcShape":[{"nullable":true,"name":"category","type":"string"},{"nullable":true,"name":"minArity","type":"number"},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"hasSideEffects","type":"boolean","required":true},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}}],"HcStrings":[{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcType":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"HcTypeNode","type":"object","properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"HcTypeNode"}}]}],"HcTypeNode":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"object","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}]}],"HcValMap":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"LintBrowserEffectsCodes":[{"nullable":false,"name":"lintOperatorShapesUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpOriginNotStatic","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpEgressUndeclared","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconUrlNotAbsolute","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconTextRequired","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"pageFactsFieldInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectArity","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceSchemaInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabRequestInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LnProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":true,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LnVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[LnVal]","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}},{"nullable":false,"name":"object","type":"Map<string,LnVal>","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}}]}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"Seg":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}},{"nullable":false,"name":"pre","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"post","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},"name":"std-orb-lint-browser-effects","version":"1.0.0","description":"std-orb-lint-browser-effects — the `orb lint browser-effects <file>` command, the port of the browser/beacon, browser/page-facts, on-device (browser/prompt, browser/embed) and browser/tab-* checks of effect/http.rs (check_beacon_call, check_page_facts_call, check_on_device_call, check_tab_call and the background-tick loop of validate_http_effects), found at any depth of a guard or effect of an inline trait. Everything the operator table states comes from it through std-orb-lint-host-calls (std-orb-lint-input's LINT_OPERATOR_SHAPES and LINT_HOST_FACTS): the keys a beacon request and its options may carry, the facts a page-facts list may name, the operators of the on-device and tab families (`family`), a tab operator's request keys in the order the table declares them, the emit keys of each operator in the order the operator documents them and the default port of each http scheme. Reports ORB_BEACON_URL_NOT_ABSOLUTE (a literal beacon URL that does not begin with http:// or https://), ORB_BEACON_TEXT_REQUIRED (no request, or a request without `text`), ORB_BEACON_OPTION_UNKNOWN (a request or options key the table does not declare; `key` given in both), ORB_PAGE_FACTS_FIELD_INVALID (not a list, an empty list, a word that is not a page fact, a fact listed twice), ORB_ON_DEVICE_SCHEMA_INVALID (a literal browser/prompt response schema that is not a JSON object), the ORB_HOST_EFFECT_ARITY and ORB_HOST_EFFECT_OPTION_UNKNOWN of browser/prompt, browser/embed and every browser/tab-* operator, ORB_TAB_REQUEST_INVALID (a tab request that is not an object or text from data, or carries a key the operator does not declare), ORB_ON_DEVICE_EFFECT_ON_SERVER and ORB_TAB_EFFECT_ON_SERVER (an on-device or tab call in an effect of a `[background]` tick, which runs on the server), ORB_HTTP_ORIGIN_NOT_STATIC and ORB_HTTP_EGRESS_UNDECLARED for the beacon URL (the origin of the URL against the program's `egress`, with the default port of the scheme), and, through std-orb-emit-config, ORB_EFF_EMIT_KEY_INVALID, ORB_EFF_EMIT_INVALID_NAME and ORB_EFF_EMIT_UNDECLARED_EVENT for the `emit` block of each of these operators. Not reported here: the part of ORB_TAB_REQUEST_INVALID that parses a literal tab request as the kernel's tab-call parser reads it (a request whose keys are all declared and whose values the parser refuses); the key and cancelled findings, which belong to std-orb-lint-keyed-call-keys. Findings carry the Rust path (the guard or effect), message and suggestion (status 500, exit 1). Clean answers `lint browser-effects: clean` (status 200, exit 0). Anything but one file argument is the usage (status 400, exit 2); an unreadable or unlowerable file is status 500.","orbitals":[{"name":"OrbLintBrowserEffectsOrbital","id":"orb_RGCEKZAMY4AF2FP6RZNM26TFKJ","uses":[{"from":"almadar-std/lint-browser-effects","as":"Spec"},{"from":"std/behaviors/std-orb-lint-input","as":"Input"},{"from":"std/behaviors/std-orb-lint-host-calls","as":"Calls"},{"from":"std/behaviors/std-orb-emit-config","as":"EmitConfigUse"}],"entity":{"name":"OrbLintBrowserEffectsRun","id":"ent_JRCWPYH830M1G25BA7W10MTJT5","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","default":""},{"nullable":false,"name":"findings","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"egressRaw","type":"array","default":[],"items":{"nullable":false,"type":"string"}},{"nullable":false,"name":"segs","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"items":{"nullable":false,"name":"items","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"id":{"nullable":false,"name":"id","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"emit":{"nullable":false,"name":"emit","type":"object","required":true,"items":{"nullable":true,"type":"union","values":["string","number","boolean","array","map"],"properties":{"string":{"nullable":false,"name":"string","type":"string"},"number":{"nullable":false,"name":"number","type":"number"},"boolean":{"nullable":false,"name":"boolean","type":"boolean"},"array":{"nullable":false,"name":"array","type":"array","items":{"nullable":true,"type":"union","values":["EmitVal"],"projectedFrom":{"type":"EmitVal"}}},"map":{"nullable":false,"name":"map","type":"object","items":{"nullable":true,"type":"union","values":["EmitVal"],"projectedFrom":{"type":"EmitVal"}}}},"projectedFrom":{"type":"EmitVal"}},"projectedFrom":{"type":"EmitObj"}},"allowedKeys":{"nullable":false,"name":"allowedKeys","type":"array","required":true,"items":{"nullable":false,"type":"string"}},"checkDeclared":{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},"declared":{"nullable":false,"name":"declared","type":"array","required":true,"items":{"nullable":false,"type":"string"}}},"projectedFrom":{"type":"EmitItem"}}},"pre":{"nullable":false,"name":"pre","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}},"post":{"nullable":false,"name":"post","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}}},"projectedFrom":{"type":"Seg"}}},{"nullable":false,"name":"emitRes","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"id":{"nullable":false,"name":"id","type":"string","required":true},"findings":{"nullable":false,"name":"findings","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}}},"projectedFrom":{"type":"EmitResult"}}}]},"traits":[{"name":"OrbLintBrowserEffects","id":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF","effectRow":[{"kind":"emit","resource":"EMIT_CONFIG_CHECK"},{"kind":"emit","resource":"HOST_CALLS_COLLECT"},{"kind":"emit","resource":"LINT_ASSEMBLE"},{"kind":"emit","resource":"LINT_FINISH"},{"kind":"emit","resource":"LINT_FOUND"},{"kind":"emit","resource":"LINT_PLANNED"},{"kind":"set","resource":"@entity.egressRaw"},{"kind":"set","resource":"@entity.emitRes"},{"kind":"set","resource":"@entity.findings"},{"kind":"set","resource":"@entity.scope"},{"kind":"set","resource":"@entity.segs"}],"linkedEntity":"OrbLintBrowserEffectsRun","linkedEntityId":"ent_JRCWPYH830M1G25BA7W10MTJT5","entityRefIds":{"OrbLintBrowserEffectsRun":"ent_JRCWPYH830M1G25BA7W10MTJT5"},"emits":[{"event":"LINT_FOUND","eventId":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_FINISH","eventId":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","description":"Internal: answer with the verdict.","tier":"internal"},{"event":"HOST_CALLS_COLLECT","eventId":"evt_M4WT4MAYTTFDDDDT10K0E3E3X1","description":"Ask the shared collector for the calls this rule checks.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"orbitals","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":false,"name":"heads","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"operators","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"fields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}]},{"event":"LINT_PLANNED","eventId":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","description":"Internal: the calls are planned, ask the emit-config checker.","tier":"internal"},{"event":"LINT_ASSEMBLE","eventId":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","description":"Internal: merge the emit-config findings into the call findings.","tier":"internal"},{"event":"EMIT_CONFIG_CHECK","eventId":"evt_4M63S93VAPXNBANHKXCM873XSF","description":"Ask std-orb-emit-config to check each call's emit object.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}}]}],"listens":[{"event":"LINT_INPUT","eventId":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","triggers":"LINT_INPUT","triggersId":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_R30KXP9MXBTENMQNC8NFZZXT9N"}},{"event":"HOST_CALLS_COLLECTED","triggers":"HOST_CALLS_HEARD","triggersId":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","source":{"kind":"trait","trait":"HostCalls","traitId":"trt_KSHNW26PBTB5X5STA3NXVD22KG"}},{"event":"EMIT_CONFIG_CHECKED","triggers":"EMIT_HEARD","triggersId":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","source":{"kind":"trait","trait":"OrbEmitConfig","traitId":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true}],"events":[{"key":"INIT","id":"evt_5GPWV95VZDXZPHGATZTPP3AW83","name":"Initialize"},{"key":"LINT_INPUT","id":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","name":"Lint Input","description":"The lint input: the file read, its language decided and the program lowered.","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true},{"nullable":false,"name":"raw","type":"string","required":true},{"nullable":false,"name":"latin","type":"boolean","required":true},{"nullable":false,"name":"program","type":"object","required":true,"properties":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":true,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"LnProgram"}},{"nullable":false,"name":"scope","type":"string","required":true}],"listened":true},{"key":"HOST_CALLS_HEARD","id":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","name":"Host Calls Heard","description":"The shared collector's answer: the calls of the asked heads and the table entries.","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"unread","type":"boolean","required":true},{"nullable":false,"name":"calls","type":"[object]","required":true,"properties":[{"nullable":false,"name":"head","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"call","type":"[HcVal]","required":true,"items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"tname","type":"string","required":true},{"nullable":false,"name":"tick","type":"string","required":true},{"nullable":false,"name":"bg","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"config","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"inGuard","type":"boolean","required":true}],"items":{"nullable":false,"name":"","type":"HcCall","projectedFrom":{"type":"HcCall"}}},{"nullable":false,"name":"facts","type":"Map<string,HcFact>","required":true,"items":{"nullable":false,"name":"","type":"HcFact","projectedFrom":{"type":"HcFact"}}}],"listened":true},{"key":"LINT_FINISH","id":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","name":"Lint Finish","description":"Internal: answer with the verdict.","tier":"internal"},{"key":"LINT_PLANNED","id":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","name":"Lint Planned","description":"Internal: the calls are planned, ask the emit-config checker.","tier":"internal"},{"key":"EMIT_HEARD","id":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","name":"Emit Heard","description":"std-orb-emit-config's answer: the findings of each call's emit object.","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"results","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}],"items":{"nullable":false,"name":"","type":"EmitResult","projectedFrom":{"type":"EmitResult"}}}],"listened":true},{"key":"LINT_ASSEMBLE","id":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","name":"Lint Assemble","description":"Internal: merge the emit-config findings into the call findings.","tier":"internal"},{"key":"LINT_FOUND","id":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","name":"Lint Found","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"HOST_CALLS_COLLECT","id":"evt_M4WT4MAYTTFDDDDT10K0E3E3X1","name":"Host Calls Collect","description":"Ask the shared collector for the calls this rule checks.","tier":"internal","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"orbitals","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":false,"name":"heads","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"operators","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"fields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}]},{"key":"EMIT_CONFIG_CHECK","id":"evt_4M63S93VAPXNBANHKXCM873XSF","name":"Emit Config Check","description":"Ask std-orb-emit-config to check each call's emit object.","tier":"internal","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_5GPWV95VZDXZPHGATZTPP3AW83"},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","effects":[["set","@entity.scope","@payload.scope"],["set","@entity.egressRaw",["default",["object/get","@payload.program","egress",null],[]]],["emit","HOST_CALLS_COLLECT",{"requestId":["str/concat","browser-effects:","@payload.scope"],"orbitals":["object/get","@payload.program","orbitals",[]],"heads":["list","browser/beacon","browser/page-facts"],"operators":["list","browser/beacon","browser/page-facts"],"fields":["family"]}]]},{"from":"ready","to":"ready","event":"HOST_CALLS_HEARD","eventId":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","guard":["and",["str/startsWith","@payload.requestId","browser-effects:"],["or","@payload.unread",["not",["object/has","@payload.facts","browser/beacon"]],["not",["object/has","@payload.facts","browser/page-facts"]]]],"effects":[["set","@entity.findings",[{"code":"@config.codes.lintOperatorShapesUnread.code","path":"operators","message":"the installed @almadar/std operator table could not be read, so the browser effects' vocabulary is unknown","suggestion":"Reinstall @almadar/std so its operator table declares the params of every operator","severity":"error"}]],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"HOST_CALLS_HEARD","eventId":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","guard":["and",["str/startsWith","@payload.requestId","browser-effects:"],["not","@payload.unread"],["object/has","@payload.facts","browser/beacon"],["object/has","@payload.facts","browser/page-facts"]],"effects":[["let",[["fbeacon0",["object/get","@payload.facts","browser/beacon"]]],["if",["=","@fbeacon0",null],["do",["set","@entity.findings",[{"code":"@config.codes.lintOperatorShapesUnread.code","path":"operators","message":"the installed @almadar/std operator table could not be read, so the browser effects' vocabulary is unknown","suggestion":"Reinstall @almadar/std so its operator table declares the params of every operator","severity":"error"}]],["emit","LINT_FINISH",{}]],["let",[["ffacts0",["object/get","@payload.facts","browser/page-facts"]]],["if",["=","@ffacts0",null],["do",["set","@entity.findings",[{"code":"@config.codes.lintOperatorShapesUnread.code","path":"operators","message":"the installed @almadar/std operator table could not be read, so the browser effects' vocabulary is unknown","suggestion":"Reinstall @almadar/std so its operator table declares the params of every operator","severity":"error"}]],["emit","LINT_FINISH",{}]],["do",["set","@entity.segs",["let",[["facts","@payload.facts"],["none",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"OrbFinding\"}},\"named\":{\"OrbFinding\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"code\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"path\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"message\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"suggestion\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"severity\",\"fieldType\":{\"kind\":\"enum\",\"name\":\"\\\"warning\\\" | \\\"error\\\"\"},\"required\":false,\"constraints\":[]}]}}}"],["noitems",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitItem\"}},\"named\":{\"EmitItem\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"id\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"path\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"emit\",\"fieldType\":{\"kind\":\"typeref\",\"name\":\"EmitObj\"},\"required\":true,\"constraints\":[]},{\"name\":\"allowedKeys\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}},\"required\":true,\"constraints\":[]},{\"name\":\"checkDeclared\",\"fieldType\":{\"kind\":\"boolean\"},\"required\":true,\"constraints\":[]},{\"name\":\"declared\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}},\"required\":true,\"constraints\":[]}]},\"EmitObj\":{\"kind\":\"map\",\"key\":{\"kind\":\"string\"},\"value\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitVal\"}}},\"EmitVal\":{\"kind\":\"union\",\"variants\":[{\"name\":\"string\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"number\",\"fieldType\":{\"kind\":\"number\"},\"required\":true,\"constraints\":[]},{\"name\":\"boolean\",\"fieldType\":{\"kind\":\"boolean\"},\"required\":true,\"constraints\":[]},{\"name\":\"array\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitVal\"}}},\"required\":true,\"constraints\":[]},{\"name\":\"map\",\"fieldType\":{\"kind\":\"map\",\"key\":{\"kind\":\"string\"},\"value\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitVal\"}}},\"required\":true,\"constraints\":[]}]}}}"],["nos",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"],["nov",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"]],["let",[["fbeacon","@fbeacon0"],["ffacts","@ffacts0"]],["let",[["requestKeys",["object/get",["object/get","@fbeacon","keys"],"request","@nos"]],["optionKeys",["object/get",["object/get","@fbeacon","keys"],"options","@nos"]],["factWords",["object/get",["object/get","@ffacts","words"],"fields[]","@nos"]],["dports",["default",["object/get","@fbeacon","defaultPorts",null],{}]],["egressRaw","@entity.egressRaw"]],["let",[["egOrigins",["array/filter",["array/map","@egressRaw",["fn","eg",["let",[["parts",["str/split","@eg","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",["=","@rem",""]]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["fn","x",["!=","@x",null]]]]],["array/map",["array/range",0,["array/len","@payload.calls"]],["fn","ci",["let",[["c",["default",["array/nth","@payload.calls","@ci"],{}]]],["let",[["a",["object/get","@c","call"]],["p",["object/get","@c","path"]],["h",["object/get","@c","head"]]],["let",[["n",["array/len","@a"]],["fh",["default",["object/get","@facts","@h"],{}]],["cfg",["default",["as",["object/get","@c","config"],"HcValMap"],{}]]],["let",[["fam",["object/get","@fh","family",""]],["eo",["object/get","@fh","emitOrder","@nos"]]],{"items":["array/flatten",["array/map",["array/range",1,"@n"],["fn","ai",["let",[["av",["array/nth","@a","@ai"]]],["if",["and",["validate/object","@av"],["validate/object",["object/get",["default",["as","@av","HcValMap"],{}],"emit",null]]],[{"id":["str/concat","e","@ci",".","@ai"],"path":"@p","emit":["default",["as",["object/get",["default",["as","@av","HcValMap"],{}],"emit"],"EmitObj"],{}],"allowedKeys":"@eo","checkDeclared":true,"declared":["object/get","@c","declared"]}],"@noitems"]]]]],"pre":["if",["=","@h","browser/beacon"],["array/concat",["let",[["u",["if",[">","@n",1],["array/nth","@a",1],null]]],["if",["and",["validate/string","@u"],["not",["or",["str/startsWith","@u",["quote","\"\\u0040\""]],["str/startsWith","@u","?"],["str/startsWith","@u","$"]]]],["if",["or",["str/startsWith",["str/lower","@u"],"http://"],["str/startsWith",["str/lower","@u"],"https://"]],["let",[["uv","@u"],["ofd",false]],["if",["not",["validate/string","@uv"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["kn",["if",["and",["str/startsWith","@uv",["str/concat",["quote","\"\\u0040\""],"config."]],[">",["str/len","@uv"],8],["not",["str/includes",["str/slice","@uv",8],"."]]],["str/slice","@uv",8],null]]],["if",["=","@kn",null],["if",["or",["str/startsWith","@uv",["quote","\"\\u0040\""]],["str/startsWith","@uv","?"],["str/startsWith","@uv","$"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["lu","@uv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]]],["let",[["fld",["object/get","@cfg","@kn",null]]],["if",["and",["validate/object","@fld"],["=",["object/get",["default",["as","@fld","HcValMap"],{}],"type",null],"url"]],["let",[["dv",["object/get",["default",["as","@fld","HcValMap"],{}],"default",null]]],["if",["and",["validate/string","@dv"],["not",["or",["str/startsWith","@dv",["quote","\"\\u0040\""]],["str/startsWith","@dv","?"],["str/startsWith","@dv","$"]]]],["let",[["lu","@dv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]],"@none"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]]]]]]]],[{"code":"@config.codes.beaconUrlNotAbsolute.code","path":"@p","message":["str/concat","browser/beacon URL '","@u","' is not an absolute http(s) URL"],"suggestion":"Write the full URL, e.g. https://collector.example.com/e; a relative endpoint is refused","severity":"error"}]],["if",[">","@n",1],["let",[["uv","@u"],["ofd",false]],["if",["not",["validate/string","@uv"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["kn",["if",["and",["str/startsWith","@uv",["str/concat",["quote","\"\\u0040\""],"config."]],[">",["str/len","@uv"],8],["not",["str/includes",["str/slice","@uv",8],"."]]],["str/slice","@uv",8],null]]],["if",["=","@kn",null],["if",["or",["str/startsWith","@uv",["quote","\"\\u0040\""]],["str/startsWith","@uv","?"],["str/startsWith","@uv","$"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["lu","@uv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]]],["let",[["fld",["object/get","@cfg","@kn",null]]],["if",["and",["validate/object","@fld"],["=",["object/get",["default",["as","@fld","HcValMap"],{}],"type",null],"url"]],["let",[["dv",["object/get",["default",["as","@fld","HcValMap"],{}],"default",null]]],["if",["and",["validate/string","@dv"],["not",["or",["str/startsWith","@dv",["quote","\"\\u0040\""]],["str/startsWith","@dv","?"],["str/startsWith","@dv","$"]]]],["let",[["lu","@dv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]],"@none"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]]]]]]]],"@none"]]],["let",[["rv",["if",[">","@n",2],["array/nth","@a",2],null]]],["if",["validate/object","@rv"],["let",[["rm",["default",["as","@rv","HcValMap"],{}]]],["array/concat",["array/map",["array/filter",["array/sort",["object/keys","@rm"]],["fn","key",["not",["array/includes","@requestKeys","@key"]]]],["fn","key",{"code":"@config.codes.beaconOptionUnknown.code","path":"@p","message":["str/concat","`","@key","` is not a key of browser/beacon request"],"suggestion":"A beacon posts `text` as text/plain: no headers, body kinds, auth, retry, paginate, stream, presign or multipart","severity":"error"}]],["if",["=",["object/get","@rm","text",null],null],[{"code":"@config.codes.beaconTextRequired.code","path":"@p","message":["str/concat","browser/beacon needs a request carrying `text`"],"suggestion":"Write `{ text: <the body> }` after the URL","severity":"error"}],"@none"]]],["if",["<=","@n",2],[{"code":"@config.codes.beaconTextRequired.code","path":"@p","message":["str/concat","browser/beacon needs a request carrying `text`"],"suggestion":"Write `{ text: <the body> }` after the URL","severity":"error"}],"@none"]]],["let",[["ov",["if",[">","@n",3],["array/nth","@a",3],null]]],["if",["validate/object","@ov"],["let",[["om",["default",["as","@ov","HcValMap"],{}]]],["array/map",["array/filter",["array/sort",["object/keys","@om"]],["fn","key",["not",["array/includes","@optionKeys","@key"]]]],["fn","key",{"code":"@config.codes.beaconOptionUnknown.code","path":"@p","message":["str/concat","`","@key","` is not a key of browser/beacon options"],"suggestion":"A beacon posts `text` as text/plain: no headers, body kinds, auth, retry, paginate, stream, presign or multipart","severity":"error"}]]],"@none"]]],["if",["=","@h","browser/page-facts"],["let",[["wsv",["if",[">","@n",1],["array/nth","@a",1],null]]],["if",["validate/array","@wsv"],["let",[["ws",["default",["as","@wsv","HcLooseList"],"@nov"]]],["array/concat",["if",["=",["array/len","@ws"],0],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","browser/page-facts needs at least one fact"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}],"@none"],["array/flatten",["array/map",["array/range",0,["array/len","@ws"]],["fn","i",["let",[["w",["array/nth","@ws","@i"]]],["if",["not",["and",["validate/string","@w"],["array/includes","@factWords","@w"]]],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","",["if",["and",["validate/number","@w"],["=","@w",["math/floor","@w"]]],["str/concat",["json/stringify","@w"],".0"],["json/stringify","@w"]]," is not a page fact"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}],["if",["array/includes",["array/slice","@ws",0,"@i"],"@w"],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","page fact '","@w","' is listed twice"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}],"@none"]]]]]]]],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","browser/page-facts takes a list of page facts"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}]]],["if",["=","@fam","on-device"],["let",[["pos",["if",["=","@h","browser/prompt"],2,1]]],["let",[["sugg",["if",["=","@h","browser/prompt"],"Write (browser/prompt <text> <response schema text> { key: <string>, emit: { success: <EVENT>, failure: <EVENT>, cancelled: <EVENT> } })","Write (browser/embed [<text>, …] { key: <string>, emit: { success: <EVENT>, failure: <EVENT>, cancelled: <EVENT> } })"]]],["if",["not",["and",[">=","@n",["+","@pos",1]],["<=","@n",["+","@pos",2]]]],[{"code":"@config.codes.hostEffectArity.code","path":"@p","message":["str/concat","`","@h","` takes ","@pos"," argument(s) and an optional options object, got ",["-","@n",1]],"suggestion":"@sugg","severity":"error"}],["array/concat",["if",["=","@h","browser/prompt"],["let",[["sc",["if",[">","@n",2],["array/nth","@a",2],null]]],["if",["and",["validate/string","@sc"],["not",["or",["str/startsWith","@sc",["quote","\"\\u0040\""]],["str/startsWith","@sc","?"],["str/startsWith","@sc","$"]]],["=",["json/parse","@sc","HcValMap"],null]],[{"code":"@config.codes.onDeviceSchemaInvalid.code","path":"@p","message":["str/concat","browser/prompt response schema must be JSON Schema text: a JSON object"],"suggestion":"Build it with (json/stringify { type: \"object\", … })","severity":"error"}],"@none"]],"@none"],["let",[["ov",["if",[">","@n",["+","@pos",1]],["array/nth","@a",["+","@pos",1]],null]]],["if",["=","@ov",null],"@none",["if",["validate/object","@ov"],["let",[["bad",["array/find",["object/keys",["default",["as","@ov","HcValMap"],{}]],["fn","k",["not",["array/includes",["key","emit"],"@k"]]]]]],["if",["=","@bad",null],"@none",[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options accept only key and emit, got `","@bad","`"],"suggestion":"","severity":"error"}]]],[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options must be an object"],"suggestion":"@sugg","severity":"error"}]]]]]]]],["if",["=","@fam","tab"],["let",[["rkeys",["array/flatten",["array/map",["array/take",["object/get","@fh","params"],1],["fn","p0",["object/keys",["object/get",["default",["as",["object/get","@p0","type"],"HcTypeNode"],{"kind":"","fields":{}}],"fields",{}]]]]]]],["let",[["sugg",["str/concat","Write (","@h"," { ",["str/join","@rkeys",", "]," } { key: <string>, emit: { success: <EVENT>, failure: <EVENT>, cancelled: <EVENT> } })"]]],["if",["not",["and",[">=","@n",2],["<=","@n",3]]],[{"code":"@config.codes.hostEffectArity.code","path":"@p","message":["str/concat","`","@h","` takes a request object and an optional options object, got ",["-","@n",1]," argument(s)"],"suggestion":"@sugg","severity":"error"}],["array/concat",["let",[["rv",["if",[">","@n",1],["array/nth","@a",1],null]]],["if",["validate/object","@rv"],["let",[["rm",["default",["as","@rv","HcValMap"],{}]]],["let",[["unk",["array/find",["object/keys","@rm"],["fn","k",["not",["array/includes","@rkeys","@k"]]]]]],["if",["=","@unk",null],"@none",[{"code":"@config.codes.tabRequestInvalid.code","path":"@p","message":["str/concat","`","@h","` request has no key `","@unk","`"],"suggestion":"","severity":"error"}]]]],["if",["and",["validate/string","@rv"],["or",["str/startsWith","@rv",["quote","\"\\u0040\""]],["str/startsWith","@rv","?"],["str/startsWith","@rv","$"]]],"@none",[{"code":"@config.codes.tabRequestInvalid.code","path":"@p","message":["str/concat","`","@h","` request must be an object"],"suggestion":"@sugg","severity":"error"}]]]],["let",[["ov",["if",[">","@n",2],["array/nth","@a",2],null]]],["if",["=","@ov",null],"@none",["if",["validate/object","@ov"],["let",[["bad",["array/find",["object/keys",["default",["as","@ov","HcValMap"],{}]],["fn","k",["not",["array/includes",["key","emit"],"@k"]]]]]],["if",["=","@bad",null],"@none",[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options accept only key and emit, got `","@bad","`"],"suggestion":"","severity":"error"}]]],[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options must be an object"],"suggestion":"@sugg","severity":"error"}]]]]]]]],"@none"]]]],"post":["array/concat",["if",["=","@h","browser/beacon"],["let",[["rv2",["if",[">","@n",2],["array/nth","@a",2],null]],["ov2",["if",[">","@n",3],["array/nth","@a",3],null]]],["if",["and",["validate/object","@rv2"],["validate/object","@ov2"],["object/has",["default",["as","@rv2","HcValMap"],{}],"key"],["object/has",["default",["as","@ov2","HcValMap"],{}],"key"]],[{"code":"@config.codes.beaconOptionUnknown.code","path":"@p","message":["str/concat","browser/beacon `key` is given in both the request and the options"],"suggestion":"Name the call once","severity":"error"}],"@none"]],"@none"],["if",["and",["object/get","@c","bg"],["not",["object/get","@c","inGuard"]],["!=",["object/get","@c","tick"],""]],["if",["=","@fam","on-device"],[{"code":"@config.codes.onDeviceEffectOnServer.code","path":"@p","message":["str/concat","`","@h","` asks the on-device model, which only a browser host holds, but the `[background]` tick '",["object/get","@c","tick"],"' runs on the server"],"suggestion":"Drop [background] so the browser runs the tick, or emit an event a browser-side trait handles","severity":"error"}],["if",["=","@fam","tab"],[{"code":"@config.codes.tabEffectOnServer.code","path":"@p","message":["str/concat","`","@h","` drives the browser's tabs, which only a browser host holds, but the `[background]` tick '",["object/get","@c","tick"],"' runs on the server"],"suggestion":"Drop [background] so the browser runs the tick, or emit an event a browser-side trait handles","severity":"error"}],"@none"]],"@none"]]}]]]]]]]]]]],["emit","LINT_PLANNED",{}]]]]]]]},{"from":"ready","to":"ready","event":"LINT_FINISH","eventId":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","effects":[["emit","LINT_FOUND",{"rule":"browser-effects","scope":"@entity.scope","findings":"@entity.findings"}]]},{"from":"ready","to":"ready","event":"LINT_PLANNED","eventId":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","effects":[["emit","EMIT_CONFIG_CHECK",{"requestId":["str/concat","emit","@entity.scope"],"items":["array/flatten",["array/map","@entity.segs",["fn","s",["object/get","@s","items"]]]]}]]},{"from":"ready","to":"ready","event":"EMIT_HEARD","eventId":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","effects":[["set","@entity.emitRes","@payload.results"],["emit","LINT_ASSEMBLE",{}]]},{"from":"ready","to":"ready","event":"LINT_ASSEMBLE","eventId":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","effects":[["set","@entity.findings",["let",[["none",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"OrbFinding\"}},\"named\":{\"OrbFinding\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"code\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"path\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"message\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"suggestion\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"severity\",\"fieldType\":{\"kind\":\"enum\",\"name\":\"\\\"warning\\\" | \\\"error\\\"\"},\"required\":false,\"constraints\":[]}]}}}"]],["array/flatten",["array/map","@entity.segs",["fn","s",["array/concat",["object/get","@s","pre"],["array/flatten",["array/map",["object/get","@s","items"],["fn","it",["object/get",["default",["array/find","@entity.emitRes",["fn","r",["=",["object/get","@r","id"],["object/get","@it","id"]]]],{"id":"","findings":"@none"}],"findings"]]]],["object/get","@s","post"]]]]]]],["emit","LINT_FINISH",{}]]}]},"config":{"codes":{"nullable":false,"type":"LintBrowserEffectsCodes","default":{"lintOperatorShapesUnread":{"code":"ORB_LINT_OPERATOR_SHAPES_UNREAD","category":"lint","description":"The installed operator table could not be read or does not match the operator shape type, so a lint cannot run"},"httpOriginNotStatic":{"code":"ORB_HTTP_ORIGIN_NOT_STATIC","category":"http","description":"An http origin is not a string literal or a url-typed config knob, so egress cannot be checked"},"httpEgressUndeclared":{"code":"ORB_HTTP_EGRESS_UNDECLARED","category":"http","description":"An outbound request targets an origin that is not declared in the program egress list"},"beaconUrlNotAbsolute":{"code":"ORB_BEACON_URL_NOT_ABSOLUTE","category":"browser","description":"A browser beacon effect targets a URL that is not an absolute http(s) URL"},"beaconOptionUnknown":{"code":"ORB_BEACON_OPTION_UNKNOWN","category":"beacon","description":"A browser beacon request carries an option key that is not a known beacon request key"},"beaconTextRequired":{"code":"ORB_BEACON_TEXT_REQUIRED","category":"browser","description":"browser/beacon needs a request carrying a text field"},"pageFactsFieldInvalid":{"code":"ORB_PAGE_FACTS_FIELD_INVALID","category":"page","description":"A browser/page-facts effect declares no facts"},"hostEffectArity":{"code":"ORB_HOST_EFFECT_ARITY","category":"effect","description":"A host effect is called with the wrong number of arguments"},"onDeviceSchemaInvalid":{"code":"ORB_ON_DEVICE_SCHEMA_INVALID","category":"browser","description":"A browser prompt response schema is not valid JSON Schema text describing a JSON object"},"hostEffectOptionUnknown":{"code":"ORB_HOST_EFFECT_OPTION_UNKNOWN","category":"host_effect","description":"A host effect is given an option outside the set of options it accepts"},"tabRequestInvalid":{"code":"ORB_TAB_REQUEST_INVALID","category":"browser","description":"A browser/tab request is not an object of the operation's closed keys or has refused literal values"},"onDeviceEffectOnServer":{"code":"ORB_ON_DEVICE_EFFECT_ON_SERVER","category":"browser","description":"An on-device model effect runs in a background tick on the server, which has no on-device model"},"tabEffectOnServer":{"code":"ORB_TAB_EFFECT_ON_SERVER","category":"tab","description":"A browser tab effect is used in a transition that runs on the server, which holds no tabs"}},"label":"Emitted codes","description":"The finding codes this rule emits, with their category and meaning; the registry is generated from this declaration.","properties":{"lintOperatorShapesUnread":{"nullable":false,"name":"lintOperatorShapesUnread","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"httpOriginNotStatic":{"nullable":false,"name":"httpOriginNotStatic","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"httpEgressUndeclared":{"nullable":false,"name":"httpEgressUndeclared","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"beaconUrlNotAbsolute":{"nullable":false,"name":"beaconUrlNotAbsolute","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"beaconOptionUnknown":{"nullable":false,"name":"beaconOptionUnknown","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"beaconTextRequired":{"nullable":false,"name":"beaconTextRequired","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"pageFactsFieldInvalid":{"nullable":false,"name":"pageFactsFieldInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"hostEffectArity":{"nullable":false,"name":"hostEffectArity","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"onDeviceSchemaInvalid":{"nullable":false,"name":"onDeviceSchemaInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"hostEffectOptionUnknown":{"nullable":false,"name":"hostEffectOptionUnknown","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"tabRequestInvalid":{"nullable":false,"name":"tabRequestInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"onDeviceEffectOnServer":{"nullable":false,"name":"onDeviceEffectOnServer","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"tabEffectOnServer":{"nullable":false,"name":"tabEffectOnServer","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}}},"projectedFrom":{"type":"LintBrowserEffectsCodes"}}},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF","fingerprint":"3f7197bd96cfe87905efbdedfe040f205b07effdf0df2a43f70897c44ee0e02f"}},{"name":"OrbLintBrowserEffectsCli","id":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D","effectRow":[{"kind":"emit","resource":"LINT_ANSWERED"},{"kind":"emit","resource":"LINT_REQUEST"}],"linkedEntity":"OrbLintBrowserEffectsRun","linkedEntityId":"ent_JRCWPYH830M1G25BA7W10MTJT5","entityRefIds":{"OrbLintBrowserEffectsRun":"ent_JRCWPYH830M1G25BA7W10MTJT5"},"emits":[{"event":"LINT_ANSWERED","eventId":"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","scope":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"event":"LINT_REQUEST","eventId":"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR","description":"Ask the lint input to read and lower this file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]},{"event":"LINT_FOUND","eventId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","description":"The rule trait's findings for the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_INPUT_UNREAD","eventId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","description":"The lint input could not read or lower the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"listens":[{"event":"LINT_FOUND","eventId":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","triggers":"LINT_FOUND","triggersId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","source":{"kind":"trait","trait":"OrbLintBrowserEffects","traitId":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"}},{"event":"LINT_INPUT_UNREAD","eventId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","triggers":"LINT_INPUT_UNREAD","triggersId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_R30KXP9MXBTENMQNC8NFZZXT9N"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true},{"name":"waiting"}],"events":[{"key":"INIT","id":"evt_ZQ6K690SX4CYJANVVX47PYCB3J","name":"Initialize"},{"key":"LINT_CALLED","id":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","name":"Lint Called","description":"Run `orb lint browser-effects` with its arguments and working directory.","synonyms":"orb lint browser-effects","payloadSchema":[{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"rawBody","type":"string","required":true}],"listened":true,"inbound":{"name":"cli-lint-browser-effects","answers":"LINT_ANSWERED"}},{"key":"LINT_FOUND","id":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","name":"Lint Found","description":"The rule trait's findings for the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"LINT_INPUT_UNREAD","id":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","name":"Lint Input Unread","description":"The lint input could not read or lower the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}],"listened":true},{"key":"LINT_ANSWERED","id":"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F","name":"Lint Answered","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"key":"LINT_REQUEST","id":"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR","name":"Lint Request","description":"Ask the lint input to read and lower this file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_ZQ6K690SX4CYJANVVX47PYCB3J"},{"from":"ready","to":"ready","event":"LINT_CALLED","eventId":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","guard":["let",[["a",["json/parse","@payload.rawBody","OrbCommandArgs"]]],["or",["=","@a",null],["!=",["array/len",["object/get","@a","argv"]],1]]],"effects":[["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint browser-effects <file>"}]]},{"from":"ready","to":"waiting","event":"LINT_CALLED","eventId":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","guard":["let",[["a",["json/parse","@payload.rawBody","OrbCommandArgs"]]],["and",["!=","@a",null],["=",["array/len",["object/get","@a","argv"]],1]]],"effects":[["let",[["a",["json/parse","@payload.rawBody","OrbCommandArgs"]]],["if",["=","@a",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint browser-effects <file>"}],["let",[["f",["array/first",["object/get","@a","argv"]]]],["if",["=","@f",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint browser-effects <file>"}],["emit","LINT_REQUEST",{"file":"@f"}]]]]]]},{"from":"waiting","to":"waiting","event":"INIT","eventId":"evt_ZQ6K690SX4CYJANVVX47PYCB3J"},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","guard":["and",["=","@payload.rule","browser-effects"],["=",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":200,"body":"lint browser-effects: clean"}]]},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","guard":["and",["=","@payload.rule","browser-effects"],[">",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":500,"body":["str/join",["array/map","@payload.findings",["fn","x",["str/concat","[",["object/get","@x","code"],"] ",["object/get","@x","path"],": ",["object/get","@x","message"],["if",["=",["object/get","@x","suggestion"],""],"",["str/concat","\n suggestion: ",["object/get","@x","suggestion"]]]]]],"\n"]}]]},{"from":"waiting","to":"ready","event":"LINT_INPUT_UNREAD","eventId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","effects":[["emit","LINT_ANSWERED",{"status":500,"body":"lint browser-effects: the file could not be read or lowered"}]]}]},"dispatch":"client","sourceDeclaration":{"traitId":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D","fingerprint":"743099649cf0b834b7bf0244034e6f01fe9fc657cef6f2e630a065bbb8952f13"}},{"ref":"Input.traits.Versions","id":"trt_3ARNV93T63X31YR00TYK66R8WJ","name":"Versions"},{"ref":"Input.traits.Packs","id":"trt_85QCX41PCVV6DPDTY1K7ZXT85S","name":"Packs"},{"ref":"Input.traits.OrbLintInput","id":"trt_R30KXP9MXBTENMQNC8NFZZXT9N","name":"OrbLintInput","listens":[{"event":"LINT_REQUEST","triggers":"LINT_REQUEST","source":{"kind":"trait","trait":"OrbLintBrowserEffectsCli"}},{"event":"SCAN_ANSWERED","triggers":"LANG_SCAN_ANSWERED","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACK_VOCAB","triggers":"LANGUAGE_PACK_VOCAB_HEARD","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACKS_DONE","triggers":"LANGUAGE_PACKS_DONE_HEARD","source":{"kind":"trait","trait":"Packs"}}]},{"ref":"Calls.traits.HostCalls","id":"trt_KSHNW26PBTB5X5STA3NXVD22KG","name":"HostCalls","listens":[{"event":"HOST_CALLS_COLLECT","triggers":"HOST_CALLS_COLLECT","source":{"kind":"trait","trait":"OrbLintBrowserEffects"}},{"event":"LINT_OPERATOR_SHAPES","triggers":"LINT_OPERATOR_SHAPES_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}},{"event":"LINT_OPERATOR_SHAPES_UNREAD","triggers":"LINT_OPERATOR_SHAPES_UNREAD_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}},{"event":"LINT_HOST_FACTS","triggers":"LINT_HOST_FACTS_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}},{"event":"LINT_HOST_FACTS_UNREAD","triggers":"LINT_HOST_FACTS_UNREAD_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}}]},{"ref":"EmitConfigUse.traits.OrbEmitConfig","id":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N","name":"OrbEmitConfig","listens":[{"event":"EMIT_CONFIG_CHECK","triggers":"EMIT_CONFIG_CHECK","source":{"kind":"trait","trait":"OrbLintBrowserEffects"}}]}],"pages":[{"name":"OrbLintBrowserEffectsOrbitalStart","id":"pag_FET4SYQ3GAHR5EHSBQSR2R8E7G","path":"","protocol":"boot","traits":[{"ref":"OrbLintBrowserEffects","refId":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},{"ref":"OrbLintBrowserEffectsCli","refId":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},{"ref":"OrbLintInput","refId":"trt_R30KXP9MXBTENMQNC8NFZZXT9N"},{"ref":"Packs","refId":"trt_85QCX41PCVV6DPDTY1K7ZXT85S"},{"ref":"Versions","refId":"trt_3ARNV93T63X31YR00TYK66R8WJ"},{"ref":"HostCalls","refId":"trt_KSHNW26PBTB5X5STA3NXVD22KG"},{"ref":"OrbEmitConfig","refId":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N"}]}],"types":{"EmitItem":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"EmitObj":[{"nullable":false,"name":"","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}],"EmitResult":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}],"EmitVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[EmitVal]","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"object","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}]}],"HcByLiteral":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"required","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcCall":[{"nullable":false,"name":"head","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"call","type":"[HcVal]","required":true,"items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"tname","type":"string","required":true},{"nullable":false,"name":"tick","type":"string","required":true},{"nullable":false,"name":"bg","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"config","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"inGuard","type":"boolean","required":true}],"HcClosed":[{"nullable":true,"name":"request","type":"boolean"},{"nullable":true,"name":"intRange","type":"HcIntRange","projectedFrom":{"type":"HcIntRange"}},{"nullable":true,"name":"requestKeysByLiteral","type":"HcByLiteral","projectedFrom":{"type":"HcByLiteral"}}],"HcExtras":[{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitKeys","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcFact":[{"nullable":false,"name":"minArity","type":"number","required":true},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}},{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitOrder","type":"[string]","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasOptions","type":"boolean","required":true},{"nullable":false,"name":"optionKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"emitKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasRequest","type":"boolean","required":true},{"nullable":false,"name":"requestFields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"requestRequired","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"words","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"keys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcGrantNeed":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcIntRange":[{"nullable":false,"name":"arg","type":"number","required":true},{"nullable":false,"name":"min","type":"number","required":true},{"nullable":false,"name":"max","type":"number","required":true}],"HcLooseList":[{"nullable":false,"name":"","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcParam":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"HcShape":[{"nullable":true,"name":"category","type":"string"},{"nullable":true,"name":"minArity","type":"number"},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"hasSideEffects","type":"boolean","required":true},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}}],"HcStrings":[{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcType":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"HcTypeNode","type":"object","properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"HcTypeNode"}}]}],"HcTypeNode":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"object","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}]}],"HcValMap":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"LintBrowserEffectsCodes":[{"nullable":false,"name":"lintOperatorShapesUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpOriginNotStatic","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpEgressUndeclared","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconUrlNotAbsolute","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconTextRequired","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"pageFactsFieldInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectArity","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceSchemaInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabRequestInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LnProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":true,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LnVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[LnVal]","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}},{"nullable":false,"name":"object","type":"Map<string,LnVal>","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}}]}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"Seg":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}},{"nullable":false,"name":"pre","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"post","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]}}],"inbound":["cli-lint-browser-effects"],"osGrants":{"fs":[{"glob":"/**","modes":["read"]},{"glob":"~/.orb/node_modules/**","modes":["read"]}],"exec":["orb"],"net":[],"env":["PATH"],"stdio":[],"sys":[],"desktop":[],"anchored":{"fs":[{"anchor":"cwd","glob":"**","modes":["read"]}]}},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_JRCWPYH830M1G25BA7W10MTJT5":{"id":"ent_JRCWPYH830M1G25BA7W10MTJT5","kind":"entity","bakedName":"OrbLintBrowserEffectsRun","curName":"OrbLintBrowserEffectsRun","renames":[],"owner":"workspace"},"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19":{"id":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","kind":"event","bakedName":"LINT_ASSEMBLE","curName":"LINT_ASSEMBLE","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_4M63S93VAPXNBANHKXCM873XSF":{"id":"evt_4M63S93VAPXNBANHKXCM873XSF","kind":"event","bakedName":"EMIT_CONFIG_CHECK","curName":"EMIT_CONFIG_CHECK","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31":{"id":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","kind":"event","bakedName":"LINT_CALLED","curName":"LINT_CALLED","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_5GPWV95VZDXZPHGATZTPP3AW83":{"id":"evt_5GPWV95VZDXZPHGATZTPP3AW83","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_61TEF79AB4N5J24FCG4ZAW2YSR":{"id":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","kind":"event","bakedName":"LINT_PLANNED","curName":"LINT_PLANNED","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F":{"id":"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F","kind":"event","bakedName":"LINT_ANSWERED","curName":"LINT_ANSWERED","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT":{"id":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","kind":"event","bakedName":"LINT_INPUT","curName":"LINT_INPUT","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ":{"id":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP":{"id":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","kind":"event","bakedName":"EMIT_HEARD","curName":"EMIT_HEARD","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR":{"id":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","kind":"event","bakedName":"LINT_FINISH","curName":"LINT_FINISH","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8":{"id":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","kind":"event","bakedName":"LINT_INPUT_UNREAD","curName":"LINT_INPUT_UNREAD","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_M4WT4MAYTTFDDDDT10K0E3E3X1":{"id":"evt_M4WT4MAYTTFDDDDT10K0E3E3X1","kind":"event","bakedName":"HOST_CALLS_COLLECT","curName":"HOST_CALLS_COLLECT","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_S8P2Q5ZNW0TY088CRDH07Q14M6":{"id":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","kind":"event","bakedName":"HOST_CALLS_HEARD","curName":"HOST_CALLS_HEARD","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_V89EMVBX6NYKANRXRGRVZTCWVW":{"id":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR":{"id":"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR","kind":"event","bakedName":"LINT_REQUEST","curName":"LINT_REQUEST","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_ZQ6K690SX4CYJANVVX47PYCB3J":{"id":"evt_ZQ6K690SX4CYJANVVX47PYCB3J","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"orb_RGCEKZAMY4AF2FP6RZNM26TFKJ":{"id":"orb_RGCEKZAMY4AF2FP6RZNM26TFKJ","kind":"orbital","bakedName":"OrbLintBrowserEffectsOrbital","curName":"OrbLintBrowserEffectsOrbital","renames":[],"owner":"workspace"},"pag_FET4SYQ3GAHR5EHSBQSR2R8E7G":{"id":"pag_FET4SYQ3GAHR5EHSBQSR2R8E7G","kind":"page","bakedName":"OrbLintBrowserEffectsOrbitalStart","curName":"OrbLintBrowserEffectsOrbitalStart","renames":[],"owner":"workspace"},"trt_3ARNV93T63X31YR00TYK66R8WJ":{"id":"trt_3ARNV93T63X31YR00TYK66R8WJ","kind":"trait","bakedName":"Versions","curName":"Versions","renames":[],"owner":"workspace"},"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N":{"id":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N","kind":"trait","bakedName":"OrbEmitConfig","curName":"OrbEmitConfig","renames":[],"owner":"workspace"},"trt_85QCX41PCVV6DPDTY1K7ZXT85S":{"id":"trt_85QCX41PCVV6DPDTY1K7ZXT85S","kind":"trait","bakedName":"Packs","curName":"Packs","renames":[],"owner":"workspace"},"trt_KD1ARN6TWCDE65VGSXQMMQEK0D":{"id":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D","kind":"trait","bakedName":"OrbLintBrowserEffectsCli","curName":"OrbLintBrowserEffectsCli","renames":[],"owner":"workspace"},"trt_KSHNW26PBTB5X5STA3NXVD22KG":{"id":"trt_KSHNW26PBTB5X5STA3NXVD22KG","kind":"trait","bakedName":"HostCalls","curName":"HostCalls","renames":[],"owner":"workspace"},"trt_R30KXP9MXBTENMQNC8NFZZXT9N":{"id":"trt_R30KXP9MXBTENMQNC8NFZZXT9N","kind":"trait","bakedName":"OrbLintInput","curName":"OrbLintInput","renames":[],"owner":"workspace"},"trt_YBRN5V1YV9ZDMRRZRC1389XWPF":{"id":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF","kind":"trait","bakedName":"OrbLintBrowserEffects","curName":"OrbLintBrowserEffects","renames":[],"owner":"workspace"}}}}
1
+ {"typeContractVersion":1,"types":{"EmitItem":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"EmitObj":[{"nullable":false,"name":"","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}],"EmitResult":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}],"EmitVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[EmitVal]","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"object","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}]}],"HcByLiteral":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"required","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcCall":[{"nullable":false,"name":"head","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"call","type":"[HcVal]","required":true,"items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"tname","type":"string","required":true},{"nullable":false,"name":"tick","type":"string","required":true},{"nullable":false,"name":"bg","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"config","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"inGuard","type":"boolean","required":true}],"HcClosed":[{"nullable":true,"name":"request","type":"boolean"},{"nullable":true,"name":"intRange","type":"HcIntRange","projectedFrom":{"type":"HcIntRange"}},{"nullable":true,"name":"requestKeysByLiteral","type":"HcByLiteral","projectedFrom":{"type":"HcByLiteral"}}],"HcExtras":[{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitKeys","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcFact":[{"nullable":false,"name":"minArity","type":"number","required":true},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}},{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitOrder","type":"[string]","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasOptions","type":"boolean","required":true},{"nullable":false,"name":"optionKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"emitKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasRequest","type":"boolean","required":true},{"nullable":false,"name":"requestFields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"requestRequired","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"words","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"keys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcGrantNeed":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcIntRange":[{"nullable":false,"name":"arg","type":"number","required":true},{"nullable":false,"name":"min","type":"number","required":true},{"nullable":false,"name":"max","type":"number","required":true}],"HcLooseList":[{"nullable":false,"name":"","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcParam":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"HcShape":[{"nullable":true,"name":"category","type":"string"},{"nullable":true,"name":"minArity","type":"number"},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"hasSideEffects","type":"boolean","required":true},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}}],"HcStrings":[{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcType":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"HcTypeNode","type":"object","properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"HcTypeNode"}}]}],"HcTypeNode":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"object","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}]}],"HcValMap":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"LintBrowserEffectsCodes":[{"nullable":false,"name":"lintOperatorShapesUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpOriginNotStatic","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpEgressUndeclared","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconUrlNotAbsolute","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconTextRequired","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"pageFactsFieldInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectArity","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceSchemaInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabRequestInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LnProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":true,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LnVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[LnVal]","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}},{"nullable":false,"name":"object","type":"Map<string,LnVal>","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}}]}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"Seg":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}},{"nullable":false,"name":"pre","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"post","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},"name":"std-orb-lint-browser-effects","version":"1.0.0","description":"std-orb-lint-browser-effects — the `orb lint browser-effects <file>` command, the port of the browser/beacon, browser/page-facts, on-device (browser/prompt, browser/embed) and browser/tab-* checks of effect/http.rs (check_beacon_call, check_page_facts_call, check_on_device_call, check_tab_call and the background-tick loop of validate_http_effects), found at any depth of a guard or effect of an inline trait. Everything the operator table states comes from it through std-orb-lint-host-calls (std-orb-lint-input's LINT_OPERATOR_SHAPES and LINT_HOST_FACTS): the keys a beacon request and its options may carry, the facts a page-facts list may name, the operators of the on-device and tab families (`family`), a tab operator's request keys in the order the table declares them, the emit keys of each operator in the order the operator documents them and the default port of each http scheme. Reports ORB_BEACON_URL_NOT_ABSOLUTE (a literal beacon URL that does not begin with http:// or https://), ORB_BEACON_TEXT_REQUIRED (no request, or a request without `text`), ORB_BEACON_OPTION_UNKNOWN (a request or options key the table does not declare; `key` given in both), ORB_PAGE_FACTS_FIELD_INVALID (not a list, an empty list, a word that is not a page fact, a fact listed twice), ORB_ON_DEVICE_SCHEMA_INVALID (a literal browser/prompt response schema that is not a JSON object), the ORB_HOST_EFFECT_ARITY and ORB_HOST_EFFECT_OPTION_UNKNOWN of browser/prompt, browser/embed and every browser/tab-* operator, ORB_TAB_REQUEST_INVALID (a tab request that is not an object or text from data, or carries a key the operator does not declare), ORB_ON_DEVICE_EFFECT_ON_SERVER and ORB_TAB_EFFECT_ON_SERVER (an on-device or tab call in an effect of a `[background]` tick, which runs on the server), ORB_HTTP_ORIGIN_NOT_STATIC and ORB_HTTP_EGRESS_UNDECLARED for the beacon URL (the origin of the URL against the program's `egress`, with the default port of the scheme), and, through std-orb-emit-config, ORB_EFF_EMIT_KEY_INVALID, ORB_EFF_EMIT_INVALID_NAME and ORB_EFF_EMIT_UNDECLARED_EVENT for the `emit` block of each of these operators. Not reported here: the part of ORB_TAB_REQUEST_INVALID that parses a literal tab request as the kernel's tab-call parser reads it (a request whose keys are all declared and whose values the parser refuses); the key and cancelled findings, which belong to std-orb-lint-keyed-call-keys. Findings carry the Rust path (the guard or effect), message and suggestion (status 500, exit 1). Clean answers `lint browser-effects: clean` (status 200, exit 0). Anything but one file argument is the usage (status 400, exit 2); an unreadable or unlowerable file is status 500.","orbitals":[{"name":"OrbLintBrowserEffectsOrbital","id":"orb_RGCEKZAMY4AF2FP6RZNM26TFKJ","uses":[{"from":"almadar-std/lint-browser-effects","as":"Spec"},{"from":"std/behaviors/std-orb-lint-input","as":"Input"},{"from":"std/behaviors/std-orb-lint-host-calls","as":"Calls"},{"from":"std/behaviors/std-orb-emit-config","as":"EmitConfigUse"}],"entity":{"name":"OrbLintBrowserEffectsRun","id":"ent_JRCWPYH830M1G25BA7W10MTJT5","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","default":""},{"nullable":false,"name":"findings","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"egressRaw","type":"array","default":[],"items":{"nullable":false,"type":"string"}},{"nullable":false,"name":"segs","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"items":{"nullable":false,"name":"items","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"id":{"nullable":false,"name":"id","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"emit":{"nullable":false,"name":"emit","type":"object","required":true,"items":{"nullable":true,"type":"union","values":["string","number","boolean","array","map"],"properties":{"string":{"nullable":false,"name":"string","type":"string"},"number":{"nullable":false,"name":"number","type":"number"},"boolean":{"nullable":false,"name":"boolean","type":"boolean"},"array":{"nullable":false,"name":"array","type":"array","items":{"nullable":true,"type":"union","values":["EmitVal"],"projectedFrom":{"type":"EmitVal"}}},"map":{"nullable":false,"name":"map","type":"object","items":{"nullable":true,"type":"union","values":["EmitVal"],"projectedFrom":{"type":"EmitVal"}}}},"projectedFrom":{"type":"EmitVal"}},"projectedFrom":{"type":"EmitObj"}},"allowedKeys":{"nullable":false,"name":"allowedKeys","type":"array","required":true,"items":{"nullable":false,"type":"string"}},"checkDeclared":{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},"declared":{"nullable":false,"name":"declared","type":"array","required":true,"items":{"nullable":false,"type":"string"}}},"projectedFrom":{"type":"EmitItem"}}},"pre":{"nullable":false,"name":"pre","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}},"post":{"nullable":false,"name":"post","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}}},"projectedFrom":{"type":"Seg"}}},{"nullable":false,"name":"emitRes","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"id":{"nullable":false,"name":"id","type":"string","required":true},"findings":{"nullable":false,"name":"findings","type":"array","required":true,"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}}},"projectedFrom":{"type":"EmitResult"}}}]},"traits":[{"name":"OrbLintBrowserEffects","id":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF","effectRow":[{"kind":"emit","resource":"EMIT_CONFIG_CHECK"},{"kind":"emit","resource":"HOST_CALLS_COLLECT"},{"kind":"emit","resource":"LINT_ASSEMBLE"},{"kind":"emit","resource":"LINT_FINISH"},{"kind":"emit","resource":"LINT_FOUND"},{"kind":"emit","resource":"LINT_PLANNED"},{"kind":"set","resource":"@entity.egressRaw"},{"kind":"set","resource":"@entity.emitRes"},{"kind":"set","resource":"@entity.findings"},{"kind":"set","resource":"@entity.scope"},{"kind":"set","resource":"@entity.segs"}],"linkedEntity":"OrbLintBrowserEffectsRun","linkedEntityId":"ent_JRCWPYH830M1G25BA7W10MTJT5","entityRefIds":{"OrbLintBrowserEffectsRun":"ent_JRCWPYH830M1G25BA7W10MTJT5"},"emits":[{"event":"LINT_FOUND","eventId":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_FINISH","eventId":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","description":"Internal: answer with the verdict.","tier":"internal"},{"event":"HOST_CALLS_COLLECT","eventId":"evt_M4WT4MAYTTFDDDDT10K0E3E3X1","description":"Ask the shared collector for the calls this rule checks.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"orbitals","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":false,"name":"heads","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"operators","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"fields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}]},{"event":"LINT_PLANNED","eventId":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","description":"Internal: the calls are planned, ask the emit-config checker.","tier":"internal"},{"event":"LINT_ASSEMBLE","eventId":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","description":"Internal: merge the emit-config findings into the call findings.","tier":"internal"},{"event":"EMIT_CONFIG_CHECK","eventId":"evt_4M63S93VAPXNBANHKXCM873XSF","description":"Ask std-orb-emit-config to check each call's emit object.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}}]}],"listens":[{"event":"LINT_INPUT","eventId":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","triggers":"LINT_INPUT","triggersId":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_R30KXP9MXBTENMQNC8NFZZXT9N"}},{"event":"HOST_CALLS_COLLECTED","triggers":"HOST_CALLS_HEARD","triggersId":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","source":{"kind":"trait","trait":"HostCalls","traitId":"trt_KSHNW26PBTB5X5STA3NXVD22KG"}},{"event":"EMIT_CONFIG_CHECKED","triggers":"EMIT_HEARD","triggersId":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","source":{"kind":"trait","trait":"OrbEmitConfig","traitId":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true}],"events":[{"key":"INIT","id":"evt_5GPWV95VZDXZPHGATZTPP3AW83","name":"Initialize"},{"key":"LINT_INPUT","id":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","name":"Lint Input","description":"The lint input: the file read, its language decided and the program lowered.","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true},{"nullable":false,"name":"raw","type":"string","required":true},{"nullable":false,"name":"latin","type":"boolean","required":true},{"nullable":false,"name":"program","type":"object","required":true,"properties":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":true,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"LnProgram"}},{"nullable":false,"name":"scope","type":"string","required":true}],"listened":true},{"key":"HOST_CALLS_HEARD","id":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","name":"Host Calls Heard","description":"The shared collector's answer: the calls of the asked heads and the table entries.","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"unread","type":"boolean","required":true},{"nullable":false,"name":"calls","type":"[object]","required":true,"properties":[{"nullable":false,"name":"head","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"call","type":"[HcVal]","required":true,"items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"tname","type":"string","required":true},{"nullable":false,"name":"tick","type":"string","required":true},{"nullable":false,"name":"bg","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"config","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"inGuard","type":"boolean","required":true}],"items":{"nullable":false,"name":"","type":"HcCall","projectedFrom":{"type":"HcCall"}}},{"nullable":false,"name":"facts","type":"Map<string,HcFact>","required":true,"items":{"nullable":false,"name":"","type":"HcFact","projectedFrom":{"type":"HcFact"}}}],"listened":true},{"key":"LINT_FINISH","id":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","name":"Lint Finish","description":"Internal: answer with the verdict.","tier":"internal"},{"key":"LINT_PLANNED","id":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","name":"Lint Planned","description":"Internal: the calls are planned, ask the emit-config checker.","tier":"internal"},{"key":"EMIT_HEARD","id":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","name":"Emit Heard","description":"std-orb-emit-config's answer: the findings of each call's emit object.","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"results","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}],"items":{"nullable":false,"name":"","type":"EmitResult","projectedFrom":{"type":"EmitResult"}}}],"listened":true},{"key":"LINT_ASSEMBLE","id":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","name":"Lint Assemble","description":"Internal: merge the emit-config findings into the call findings.","tier":"internal"},{"key":"LINT_FOUND","id":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","name":"Lint Found","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"HOST_CALLS_COLLECT","id":"evt_M4WT4MAYTTFDDDDT10K0E3E3X1","name":"Host Calls Collect","description":"Ask the shared collector for the calls this rule checks.","tier":"internal","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"orbitals","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":false,"name":"heads","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"operators","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"fields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}]},{"key":"EMIT_CONFIG_CHECK","id":"evt_4M63S93VAPXNBANHKXCM873XSF","name":"Emit Config Check","description":"Ask std-orb-emit-config to check each call's emit object.","tier":"internal","payloadSchema":[{"nullable":false,"name":"requestId","type":"string","required":true},{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_5GPWV95VZDXZPHGATZTPP3AW83"},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","effects":[["set","@entity.scope","@payload.scope"],["set","@entity.egressRaw",["default",["object/get","@payload.program","egress",null],[]]],["emit","HOST_CALLS_COLLECT",{"requestId":["str/concat","browser-effects:","@payload.scope"],"orbitals":["object/get","@payload.program","orbitals",[]],"heads":["list","browser/beacon","browser/page-facts"],"operators":["list","browser/beacon","browser/page-facts"],"fields":["family"]}]]},{"from":"ready","to":"ready","event":"HOST_CALLS_HEARD","eventId":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","guard":["and",["str/startsWith","@payload.requestId","browser-effects:"],["or","@payload.unread",["not",["object/has","@payload.facts","browser/beacon"]],["not",["object/has","@payload.facts","browser/page-facts"]]]],"effects":[["set","@entity.findings",[{"code":"@config.codes.lintOperatorShapesUnread.code","path":"operators","message":"the installed @almadar/std operator table could not be read, so the browser effects' vocabulary is unknown","suggestion":"Reinstall @almadar/std so its operator table declares the params of every operator","severity":"error"}]],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"HOST_CALLS_HEARD","eventId":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","guard":["and",["str/startsWith","@payload.requestId","browser-effects:"],["not","@payload.unread"],["object/has","@payload.facts","browser/beacon"],["object/has","@payload.facts","browser/page-facts"]],"effects":[["let",[["fbeacon0",["object/get","@payload.facts","browser/beacon"]]],["if",["=","@fbeacon0",null],["do",["set","@entity.findings",[{"code":"@config.codes.lintOperatorShapesUnread.code","path":"operators","message":"the installed @almadar/std operator table could not be read, so the browser effects' vocabulary is unknown","suggestion":"Reinstall @almadar/std so its operator table declares the params of every operator","severity":"error"}]],["emit","LINT_FINISH",{}]],["let",[["ffacts0",["object/get","@payload.facts","browser/page-facts"]]],["if",["=","@ffacts0",null],["do",["set","@entity.findings",[{"code":"@config.codes.lintOperatorShapesUnread.code","path":"operators","message":"the installed @almadar/std operator table could not be read, so the browser effects' vocabulary is unknown","suggestion":"Reinstall @almadar/std so its operator table declares the params of every operator","severity":"error"}]],["emit","LINT_FINISH",{}]],["do",["set","@entity.segs",["let",[["facts","@payload.facts"],["none",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"OrbFinding\"}},\"named\":{\"OrbFinding\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"code\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"path\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"message\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"suggestion\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"severity\",\"fieldType\":{\"kind\":\"enum\",\"name\":\"\\\"warning\\\" | \\\"error\\\"\"},\"required\":false,\"constraints\":[]}]}}}"],["noitems",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitItem\"}},\"named\":{\"EmitItem\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"id\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"path\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"emit\",\"fieldType\":{\"kind\":\"typeref\",\"name\":\"EmitObj\"},\"required\":true,\"constraints\":[]},{\"name\":\"allowedKeys\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}},\"required\":true,\"constraints\":[]},{\"name\":\"checkDeclared\",\"fieldType\":{\"kind\":\"boolean\"},\"required\":true,\"constraints\":[]},{\"name\":\"declared\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}},\"required\":true,\"constraints\":[]}]},\"EmitObj\":{\"kind\":\"map\",\"key\":{\"kind\":\"string\"},\"value\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitVal\"}}},\"EmitVal\":{\"kind\":\"union\",\"variants\":[{\"name\":\"string\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"number\",\"fieldType\":{\"kind\":\"number\"},\"required\":true,\"constraints\":[]},{\"name\":\"boolean\",\"fieldType\":{\"kind\":\"boolean\"},\"required\":true,\"constraints\":[]},{\"name\":\"array\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitVal\"}}},\"required\":true,\"constraints\":[]},{\"name\":\"map\",\"fieldType\":{\"kind\":\"map\",\"key\":{\"kind\":\"string\"},\"value\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"EmitVal\"}}},\"required\":true,\"constraints\":[]}]}}}"],["nos",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"],["nov",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"]],["let",[["fbeacon","@fbeacon0"],["ffacts","@ffacts0"]],["let",[["requestKeys",["object/get",["object/get","@fbeacon","keys"],"request","@nos"]],["optionKeys",["object/get",["object/get","@fbeacon","keys"],"options","@nos"]],["factWords",["object/get",["object/get","@ffacts","words"],"fields[]","@nos"]],["dports",["default",["object/get","@fbeacon","defaultPorts",null],{}]],["egressRaw","@entity.egressRaw"]],["let",[["egOrigins",["array/filter",["array/map","@egressRaw",["fn","eg",["let",[["parts",["str/split","@eg","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",["=","@rem",""]]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["fn","x",["!=","@x",null]]]]],["array/map",["array/range",0,["array/len","@payload.calls"]],["fn","ci",["let",[["c",["default",["array/nth","@payload.calls","@ci"],{}]]],["let",[["a",["object/get","@c","call"]],["p",["object/get","@c","path"]],["h",["object/get","@c","head"]]],["let",[["n",["array/len","@a"]],["fh",["default",["object/get","@facts","@h"],{}]],["cfg",["default",["as",["object/get","@c","config"],"HcValMap"],{}]]],["let",[["fam",["object/get","@fh","family",""]],["eo",["object/get","@fh","emitOrder","@nos"]]],{"items":["array/flatten",["array/map",["array/range",1,"@n"],["fn","ai",["let",[["av",["array/nth","@a","@ai"]]],["if",["and",["validate/object","@av"],["validate/object",["object/get",["default",["as","@av","HcValMap"],{}],"emit",null]]],[{"id":["str/concat","e","@ci",".","@ai"],"path":"@p","emit":["default",["as",["object/get",["default",["as","@av","HcValMap"],{}],"emit"],"EmitObj"],{}],"allowedKeys":"@eo","checkDeclared":true,"declared":["object/get","@c","declared"]}],"@noitems"]]]]],"pre":["if",["=","@h","browser/beacon"],["array/concat",["let",[["u",["if",[">","@n",1],["array/nth","@a",1],null]]],["if",["and",["validate/string","@u"],["not",["or",["str/startsWith","@u",["quote","\"\\u0040\""]],["str/startsWith","@u","?"],["str/startsWith","@u","$"]]]],["if",["or",["str/startsWith",["str/lower","@u"],"http://"],["str/startsWith",["str/lower","@u"],"https://"]],["let",[["uv","@u"],["ofd",false]],["if",["not",["validate/string","@uv"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["kn",["if",["and",["str/startsWith","@uv",["str/concat",["quote","\"\\u0040\""],"config."]],[">",["str/len","@uv"],8],["not",["str/includes",["str/slice","@uv",8],"."]]],["str/slice","@uv",8],null]]],["if",["=","@kn",null],["if",["or",["str/startsWith","@uv",["quote","\"\\u0040\""]],["str/startsWith","@uv","?"],["str/startsWith","@uv","$"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["lu","@uv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]]],["let",[["fld",["object/get","@cfg","@kn",null]]],["if",["and",["validate/object","@fld"],["=",["object/get",["default",["as","@fld","HcValMap"],{}],"type",null],"url"]],["let",[["dv",["object/get",["default",["as","@fld","HcValMap"],{}],"default",null]]],["if",["and",["validate/string","@dv"],["not",["or",["str/startsWith","@dv",["quote","\"\\u0040\""]],["str/startsWith","@dv","?"],["str/startsWith","@dv","$"]]]],["let",[["lu","@dv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]],"@none"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]]]]]]]],[{"code":"@config.codes.beaconUrlNotAbsolute.code","path":"@p","message":["str/concat","browser/beacon URL '","@u","' is not an absolute http(s) URL"],"suggestion":"Write the full URL, e.g. https://collector.example.com/e; a relative endpoint is refused","severity":"error"}]],["if",[">","@n",1],["let",[["uv","@u"],["ofd",false]],["if",["not",["validate/string","@uv"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["kn",["if",["and",["str/startsWith","@uv",["str/concat",["quote","\"\\u0040\""],"config."]],[">",["str/len","@uv"],8],["not",["str/includes",["str/slice","@uv",8],"."]]],["str/slice","@uv",8],null]]],["if",["=","@kn",null],["if",["or",["str/startsWith","@uv",["quote","\"\\u0040\""]],["str/startsWith","@uv","?"],["str/startsWith","@uv","$"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]],["let",[["lu","@uv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]]],["let",[["fld",["object/get","@cfg","@kn",null]]],["if",["and",["validate/object","@fld"],["=",["object/get",["default",["as","@fld","HcValMap"],{}],"type",null],"url"]],["let",[["dv",["object/get",["default",["as","@fld","HcValMap"],{}],"default",null]]],["if",["and",["validate/string","@dv"],["not",["or",["str/startsWith","@dv",["quote","\"\\u0040\""]],["str/startsWith","@dv","?"],["str/startsWith","@dv","$"]]]],["let",[["lu","@dv"]],["let",[["co",["let",[["parts",["str/split","@lu","://"]]],["if",["<",["array/len","@parts"],2],null,["let",[["scheme",["str/lower",["array/first","@parts"]]],["rest",["str/join",["array/slice","@parts",1,["array/len","@parts"]],"://"]]],["let",[["dp",["object/get","@dports","@scheme",null]]],["if",["=","@dp",null],null,["let",[["end",["math/min",["if",["str/includes","@rest","/"],["array/reduce",["array/take",["str/split","@rest","/"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","?"],["array/reduce",["array/take",["str/split","@rest","?"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","#"],["array/reduce",["array/take",["str/split","@rest","#"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]],["if",["str/includes","@rest","\\"],["array/reduce",["array/take",["str/split","@rest","\\"],1],0,["fn",["m","sg"],["str/len","@sg"]]],["str/len","@rest"]]]]],["let",[["auth",["str/slice","@rest",0,"@end"]],["rem",["str/slice","@rest","@end"]]],["if",["or",["=","@auth",""],["str/includes","@auth",["quote","\"\\u0040\""]],["str/includes","@auth"," "]],null,["let",[["hp",["if",["str/startsWith","@auth","["],["let",[["after",["str/slice","@auth",1]]],["if",["not",["str/includes","@after","]"]],null,["let",[["close",["array/reduce",["array/take",["str/split","@after","]"],1],0,["fn",["m","sg"],["str/len","@sg"]]]]],["let",[["hostb",["str/slice","@auth",0,["+","@close",2]]],["tail",["str/slice","@after",["+","@close",1]]]],["if",["=","@hostb","[]"],null,["if",["=","@tail",""],["str/concat",["str/lower","@hostb"],":","@dp"],["if",["str/startsWith","@tail",":"],["let",[["pp",["let",[["ps",["str/slice","@tail",1]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["if",["=","@pp",null],null,["str/concat",["str/lower","@hostb"],":","@pp"]]],null]]]]]]],["if",["str/includes","@auth",":"],["let",[["sp",["str/split","@auth",":"]]],["let",[["pp",["let",[["ps",["str/join",["array/slice","@sp",1,["array/len","@sp"]],":"]]],["let",[["pn",["str/to-int","@ps"]]],["if",["and",["!=","@pn",null],["not",["str/startsWith","@ps","-"]],[">=","@pn",0],["<=","@pn",65535]],"@pn",null]]]]],["let",[["sh",["array/first","@sp"]]],["if",["or",["=","@pp",null],["=","@sh",null],["=","@sh",""]],null,["str/concat",["str/lower","@sh"],":","@pp"]]]]],["str/concat",["str/lower","@auth"],":","@dp"]]]]],["if",["or",["=","@hp",null],["not",true]],null,["str/concat","@scheme","://","@hp"]]]]]]]]]]]]],["if",["and",["!=","@co",null],["array/includes","@egOrigins","@co"]],"@none",[{"code":"@config.codes.httpEgressUndeclared.code","path":"@p","message":["str/concat","beacon URL origin '","@lu","' is not declared in the program's `egress`"],"suggestion":"Add the exact scheme://host[:port] origin to the app's `egress: [...]`","severity":"error"}]]]],"@none"]],["if","@ofd","@none",[{"code":"@config.codes.httpOriginNotStatic.code","path":"@p","message":["str/concat","`http` beacon URL origin must be a string literal or a `url`-typed @config knob (egress cannot be checked otherwise)"],"suggestion":"Declare `origin: url = \"https://host\"` in config and pass @config.origin","severity":"error"}]]]]]]]],"@none"]]],["let",[["rv",["if",[">","@n",2],["array/nth","@a",2],null]]],["if",["validate/object","@rv"],["let",[["rm",["default",["as","@rv","HcValMap"],{}]]],["array/concat",["array/map",["array/filter",["array/sort",["object/keys","@rm"]],["fn","key",["not",["array/includes","@requestKeys","@key"]]]],["fn","key",{"code":"@config.codes.beaconOptionUnknown.code","path":"@p","message":["str/concat","`","@key","` is not a key of browser/beacon request"],"suggestion":"A beacon posts `text` as text/plain: no headers, body kinds, auth, retry, paginate, stream, presign or multipart","severity":"error"}]],["if",["=",["object/get","@rm","text",null],null],[{"code":"@config.codes.beaconTextRequired.code","path":"@p","message":["str/concat","browser/beacon needs a request carrying `text`"],"suggestion":"Write `{ text: <the body> }` after the URL","severity":"error"}],"@none"]]],["if",["<=","@n",2],[{"code":"@config.codes.beaconTextRequired.code","path":"@p","message":["str/concat","browser/beacon needs a request carrying `text`"],"suggestion":"Write `{ text: <the body> }` after the URL","severity":"error"}],"@none"]]],["let",[["ov",["if",[">","@n",3],["array/nth","@a",3],null]]],["if",["validate/object","@ov"],["let",[["om",["default",["as","@ov","HcValMap"],{}]]],["array/map",["array/filter",["array/sort",["object/keys","@om"]],["fn","key",["not",["array/includes","@optionKeys","@key"]]]],["fn","key",{"code":"@config.codes.beaconOptionUnknown.code","path":"@p","message":["str/concat","`","@key","` is not a key of browser/beacon options"],"suggestion":"A beacon posts `text` as text/plain: no headers, body kinds, auth, retry, paginate, stream, presign or multipart","severity":"error"}]]],"@none"]]],["if",["=","@h","browser/page-facts"],["let",[["wsv",["if",[">","@n",1],["array/nth","@a",1],null]]],["if",["validate/array","@wsv"],["let",[["ws",["default",["as","@wsv","HcLooseList"],"@nov"]]],["array/concat",["if",["=",["array/len","@ws"],0],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","browser/page-facts needs at least one fact"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}],"@none"],["array/flatten",["array/map",["array/range",0,["array/len","@ws"]],["fn","i",["let",[["w",["array/nth","@ws","@i"]]],["if",["not",["and",["validate/string","@w"],["array/includes","@factWords","@w"]]],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","",["if",["and",["validate/number","@w"],["=","@w",["math/floor","@w"]]],["str/concat",["json/stringify","@w"],".0"],["json/stringify","@w"]]," is not a page fact"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}],["if",["array/includes",["array/slice","@ws",0,"@i"],"@w"],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","page fact '","@w","' is listed twice"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}],"@none"]]]]]]]],[{"code":"@config.codes.pageFactsFieldInvalid.code","path":"@p","message":["str/concat","browser/page-facts takes a list of page facts"],"suggestion":"List the facts to read, e.g. [referrer, screenWidth]","severity":"error"}]]],["if",["=","@fam","on-device"],["let",[["pos",["if",["=","@h","browser/prompt"],2,1]]],["let",[["sugg",["if",["=","@h","browser/prompt"],"Write (browser/prompt <text> <response schema text> { key: <string>, emit: { success: <EVENT>, failure: <EVENT>, cancelled: <EVENT> } })","Write (browser/embed [<text>, …] { key: <string>, emit: { success: <EVENT>, failure: <EVENT>, cancelled: <EVENT> } })"]]],["if",["not",["and",[">=","@n",["+","@pos",1]],["<=","@n",["+","@pos",2]]]],[{"code":"@config.codes.hostEffectArity.code","path":"@p","message":["str/concat","`","@h","` takes ","@pos"," argument(s) and an optional options object, got ",["-","@n",1]],"suggestion":"@sugg","severity":"error"}],["array/concat",["if",["=","@h","browser/prompt"],["let",[["sc",["if",[">","@n",2],["array/nth","@a",2],null]]],["if",["and",["validate/string","@sc"],["not",["or",["str/startsWith","@sc",["quote","\"\\u0040\""]],["str/startsWith","@sc","?"],["str/startsWith","@sc","$"]]],["=",["json/parse","@sc","HcValMap"],null]],[{"code":"@config.codes.onDeviceSchemaInvalid.code","path":"@p","message":["str/concat","browser/prompt response schema must be JSON Schema text: a JSON object"],"suggestion":"Build it with (json/stringify { type: \"object\", … })","severity":"error"}],"@none"]],"@none"],["let",[["ov",["if",[">","@n",["+","@pos",1]],["array/nth","@a",["+","@pos",1]],null]]],["if",["=","@ov",null],"@none",["if",["validate/object","@ov"],["let",[["bad",["array/find",["object/keys",["default",["as","@ov","HcValMap"],{}]],["fn","k",["not",["array/includes",["key","emit"],"@k"]]]]]],["if",["=","@bad",null],"@none",[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options accept only key and emit, got `","@bad","`"],"suggestion":"","severity":"error"}]]],[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options must be an object"],"suggestion":"@sugg","severity":"error"}]]]]]]]],["if",["=","@fam","tab"],["let",[["rkeys",["array/flatten",["array/map",["array/take",["object/get","@fh","params"],1],["fn","p0",["object/keys",["object/get",["default",["as",["object/get","@p0","type"],"HcTypeNode"],{"kind":"","fields":{}}],"fields",{}]]]]]]],["let",[["sugg",["str/concat","Write (","@h"," { ",["str/join","@rkeys",", "]," } { key: <string>, emit: { success: <EVENT>, failure: <EVENT>, cancelled: <EVENT> } })"]]],["if",["not",["and",[">=","@n",2],["<=","@n",3]]],[{"code":"@config.codes.hostEffectArity.code","path":"@p","message":["str/concat","`","@h","` takes a request object and an optional options object, got ",["-","@n",1]," argument(s)"],"suggestion":"@sugg","severity":"error"}],["array/concat",["let",[["rv",["if",[">","@n",1],["array/nth","@a",1],null]]],["if",["validate/object","@rv"],["let",[["rm",["default",["as","@rv","HcValMap"],{}]]],["let",[["unk",["array/find",["object/keys","@rm"],["fn","k",["not",["array/includes","@rkeys","@k"]]]]]],["if",["=","@unk",null],"@none",[{"code":"@config.codes.tabRequestInvalid.code","path":"@p","message":["str/concat","`","@h","` request has no key `","@unk","`"],"suggestion":"","severity":"error"}]]]],["if",["and",["validate/string","@rv"],["or",["str/startsWith","@rv",["quote","\"\\u0040\""]],["str/startsWith","@rv","?"],["str/startsWith","@rv","$"]]],"@none",[{"code":"@config.codes.tabRequestInvalid.code","path":"@p","message":["str/concat","`","@h","` request must be an object"],"suggestion":"@sugg","severity":"error"}]]]],["let",[["ov",["if",[">","@n",2],["array/nth","@a",2],null]]],["if",["=","@ov",null],"@none",["if",["validate/object","@ov"],["let",[["bad",["array/find",["object/keys",["default",["as","@ov","HcValMap"],{}]],["fn","k",["not",["array/includes",["key","emit"],"@k"]]]]]],["if",["=","@bad",null],"@none",[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options accept only key and emit, got `","@bad","`"],"suggestion":"","severity":"error"}]]],[{"code":"@config.codes.hostEffectOptionUnknown.code","path":"@p","message":["str/concat","`","@h","` options must be an object"],"suggestion":"@sugg","severity":"error"}]]]]]]]],"@none"]]]],"post":["array/concat",["if",["=","@h","browser/beacon"],["let",[["rv2",["if",[">","@n",2],["array/nth","@a",2],null]],["ov2",["if",[">","@n",3],["array/nth","@a",3],null]]],["if",["and",["validate/object","@rv2"],["validate/object","@ov2"],["object/has",["default",["as","@rv2","HcValMap"],{}],"key"],["object/has",["default",["as","@ov2","HcValMap"],{}],"key"]],[{"code":"@config.codes.beaconOptionUnknown.code","path":"@p","message":["str/concat","browser/beacon `key` is given in both the request and the options"],"suggestion":"Name the call once","severity":"error"}],"@none"]],"@none"],["if",["and",["object/get","@c","bg"],["not",["object/get","@c","inGuard"]],["!=",["object/get","@c","tick"],""]],["if",["=","@fam","on-device"],[{"code":"@config.codes.onDeviceEffectOnServer.code","path":"@p","message":["str/concat","`","@h","` asks the on-device model, which only a browser host holds, but the `[background]` tick '",["object/get","@c","tick"],"' runs on the server"],"suggestion":"Drop [background] so the browser runs the tick, or emit an event a browser-side trait handles","severity":"error"}],["if",["=","@fam","tab"],[{"code":"@config.codes.tabEffectOnServer.code","path":"@p","message":["str/concat","`","@h","` drives the browser's tabs, which only a browser host holds, but the `[background]` tick '",["object/get","@c","tick"],"' runs on the server"],"suggestion":"Drop [background] so the browser runs the tick, or emit an event a browser-side trait handles","severity":"error"}],"@none"]],"@none"]]}]]]]]]]]]]],["emit","LINT_PLANNED",{}]]]]]]]},{"from":"ready","to":"ready","event":"LINT_FINISH","eventId":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","effects":[["emit","LINT_FOUND",{"rule":"browser-effects","scope":"@entity.scope","findings":"@entity.findings"}]]},{"from":"ready","to":"ready","event":"LINT_PLANNED","eventId":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","effects":[["emit","EMIT_CONFIG_CHECK",{"requestId":["str/concat","emit","@entity.scope"],"items":["array/flatten",["array/map","@entity.segs",["fn","s",["object/get","@s","items"]]]]}]]},{"from":"ready","to":"ready","event":"EMIT_HEARD","eventId":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","effects":[["set","@entity.emitRes","@payload.results"],["emit","LINT_ASSEMBLE",{}]]},{"from":"ready","to":"ready","event":"LINT_ASSEMBLE","eventId":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","effects":[["set","@entity.findings",["let",[["none",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"OrbFinding\"}},\"named\":{\"OrbFinding\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"code\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"path\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"message\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"suggestion\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"severity\",\"fieldType\":{\"kind\":\"enum\",\"name\":\"\\\"warning\\\" | \\\"error\\\"\"},\"required\":false,\"constraints\":[]}]}}}"]],["array/flatten",["array/map","@entity.segs",["fn","s",["array/concat",["object/get","@s","pre"],["array/flatten",["array/map",["object/get","@s","items"],["fn","it",["object/get",["default",["array/find","@entity.emitRes",["fn","r",["=",["object/get","@r","id"],["object/get","@it","id"]]]],{"id":"","findings":"@none"}],"findings"]]]],["object/get","@s","post"]]]]]]],["emit","LINT_FINISH",{}]]}]},"config":{"codes":{"nullable":false,"type":"LintBrowserEffectsCodes","default":{"lintOperatorShapesUnread":{"code":"ORB_LINT_OPERATOR_SHAPES_UNREAD","category":"lint","description":"The installed operator table could not be read or does not match the operator shape type, so a lint cannot run"},"httpOriginNotStatic":{"code":"ORB_HTTP_ORIGIN_NOT_STATIC","category":"http","description":"An http origin is not a string literal or a url-typed config knob, so egress cannot be checked"},"httpEgressUndeclared":{"code":"ORB_HTTP_EGRESS_UNDECLARED","category":"http","description":"An outbound request targets an origin that is not declared in the program egress list"},"beaconUrlNotAbsolute":{"code":"ORB_BEACON_URL_NOT_ABSOLUTE","category":"browser","description":"A browser beacon effect targets a URL that is not an absolute http(s) URL"},"beaconOptionUnknown":{"code":"ORB_BEACON_OPTION_UNKNOWN","category":"beacon","description":"A browser beacon request carries an option key that is not a known beacon request key"},"beaconTextRequired":{"code":"ORB_BEACON_TEXT_REQUIRED","category":"browser","description":"browser/beacon needs a request carrying a text field"},"pageFactsFieldInvalid":{"code":"ORB_PAGE_FACTS_FIELD_INVALID","category":"page","description":"A browser/page-facts effect declares no facts"},"hostEffectArity":{"code":"ORB_HOST_EFFECT_ARITY","category":"effect","description":"A host effect is called with the wrong number of arguments"},"onDeviceSchemaInvalid":{"code":"ORB_ON_DEVICE_SCHEMA_INVALID","category":"browser","description":"A browser prompt response schema is not valid JSON Schema text describing a JSON object"},"hostEffectOptionUnknown":{"code":"ORB_HOST_EFFECT_OPTION_UNKNOWN","category":"host_effect","description":"A host effect is given an option outside the set of options it accepts"},"tabRequestInvalid":{"code":"ORB_TAB_REQUEST_INVALID","category":"browser","description":"A browser/tab request is not an object of the operation's closed keys or has refused literal values"},"onDeviceEffectOnServer":{"code":"ORB_ON_DEVICE_EFFECT_ON_SERVER","category":"browser","description":"An on-device model effect runs in a background tick on the server, which has no on-device model"},"tabEffectOnServer":{"code":"ORB_TAB_EFFECT_ON_SERVER","category":"tab","description":"A browser tab effect is used in a transition that runs on the server, which holds no tabs"}},"label":"Emitted codes","description":"The finding codes this rule emits, with their category and meaning; the registry is generated from this declaration.","properties":{"lintOperatorShapesUnread":{"nullable":false,"name":"lintOperatorShapesUnread","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"httpOriginNotStatic":{"nullable":false,"name":"httpOriginNotStatic","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"httpEgressUndeclared":{"nullable":false,"name":"httpEgressUndeclared","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"beaconUrlNotAbsolute":{"nullable":false,"name":"beaconUrlNotAbsolute","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"beaconOptionUnknown":{"nullable":false,"name":"beaconOptionUnknown","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"beaconTextRequired":{"nullable":false,"name":"beaconTextRequired","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"pageFactsFieldInvalid":{"nullable":false,"name":"pageFactsFieldInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"hostEffectArity":{"nullable":false,"name":"hostEffectArity","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"onDeviceSchemaInvalid":{"nullable":false,"name":"onDeviceSchemaInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"hostEffectOptionUnknown":{"nullable":false,"name":"hostEffectOptionUnknown","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"tabRequestInvalid":{"nullable":false,"name":"tabRequestInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"onDeviceEffectOnServer":{"nullable":false,"name":"onDeviceEffectOnServer","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"tabEffectOnServer":{"nullable":false,"name":"tabEffectOnServer","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}}},"projectedFrom":{"type":"LintBrowserEffectsCodes"}}},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF","fingerprint":"3f7197bd96cfe87905efbdedfe040f205b07effdf0df2a43f70897c44ee0e02f"}},{"name":"OrbLintBrowserEffectsCli","id":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D","effectRow":[{"kind":"emit","resource":"LINT_ANSWERED"},{"kind":"emit","resource":"LINT_REQUEST"}],"linkedEntity":"OrbLintBrowserEffectsRun","linkedEntityId":"ent_JRCWPYH830M1G25BA7W10MTJT5","entityRefIds":{"OrbLintBrowserEffectsRun":"ent_JRCWPYH830M1G25BA7W10MTJT5"},"emits":[{"event":"LINT_ANSWERED","eventId":"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","scope":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"event":"LINT_REQUEST","eventId":"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR","description":"Ask the lint input to read and lower this file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]},{"event":"LINT_FOUND","eventId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","description":"The rule trait's findings for the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_INPUT_UNREAD","eventId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","description":"The lint input could not read or lower the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"listens":[{"event":"LINT_FOUND","eventId":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","triggers":"LINT_FOUND","triggersId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","source":{"kind":"trait","trait":"OrbLintBrowserEffects","traitId":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"}},{"event":"LINT_INPUT_UNREAD","eventId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","triggers":"LINT_INPUT_UNREAD","triggersId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_R30KXP9MXBTENMQNC8NFZZXT9N"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true},{"name":"waiting"}],"events":[{"key":"INIT","id":"evt_ZQ6K690SX4CYJANVVX47PYCB3J","name":"Initialize"},{"key":"LINT_CALLED","id":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","name":"Lint Called","description":"Run `orb lint browser-effects` with its arguments and working directory.","synonyms":"orb lint browser-effects","payloadSchema":[{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"rawBody","type":"string","required":true}],"listened":true,"inbound":{"name":"cli-lint-browser-effects","answers":"LINT_ANSWERED"}},{"key":"LINT_FOUND","id":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","name":"Lint Found","description":"The rule trait's findings for the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"LINT_INPUT_UNREAD","id":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","name":"Lint Input Unread","description":"The lint input could not read or lower the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}],"listened":true},{"key":"LINT_ANSWERED","id":"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F","name":"Lint Answered","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"key":"LINT_REQUEST","id":"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR","name":"Lint Request","description":"Ask the lint input to read and lower this file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_ZQ6K690SX4CYJANVVX47PYCB3J"},{"from":"ready","to":"ready","event":"LINT_CALLED","eventId":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","guard":["let",[["a",["json/parse","@payload.rawBody","OrbCommandArgs"]]],["or",["=","@a",null],["!=",["array/len",["object/get","@a","argv"]],1]]],"effects":[["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint browser-effects <file>"}]]},{"from":"ready","to":"waiting","event":"LINT_CALLED","eventId":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","guard":["let",[["a",["json/parse","@payload.rawBody","OrbCommandArgs"]]],["and",["!=","@a",null],["=",["array/len",["object/get","@a","argv"]],1]]],"effects":[["let",[["a",["json/parse","@payload.rawBody","OrbCommandArgs"]]],["if",["=","@a",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint browser-effects <file>"}],["let",[["f",["array/first",["object/get","@a","argv"]]]],["if",["=","@f",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint browser-effects <file>"}],["emit","LINT_REQUEST",{"file":"@f"}]]]]]]},{"from":"waiting","to":"waiting","event":"INIT","eventId":"evt_ZQ6K690SX4CYJANVVX47PYCB3J"},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","guard":["and",["=","@payload.rule","browser-effects"],["=",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":200,"body":"lint browser-effects: clean"}]]},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","guard":["and",["=","@payload.rule","browser-effects"],[">",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":500,"body":["str/join",["array/map","@payload.findings",["fn","x",["str/concat","[",["object/get","@x","code"],"] ",["object/get","@x","path"],": ",["object/get","@x","message"],["if",["=",["object/get","@x","suggestion"],""],"",["str/concat","\n suggestion: ",["object/get","@x","suggestion"]]]]]],"\n"]}]]},{"from":"waiting","to":"ready","event":"LINT_INPUT_UNREAD","eventId":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","effects":[["emit","LINT_ANSWERED",{"status":500,"body":"lint browser-effects: the file could not be read or lowered"}]]}]},"dispatch":"client","sourceDeclaration":{"traitId":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D","fingerprint":"743099649cf0b834b7bf0244034e6f01fe9fc657cef6f2e630a065bbb8952f13"}},{"ref":"Input.traits.Versions","id":"trt_3ARNV93T63X31YR00TYK66R8WJ","name":"Versions"},{"ref":"Input.traits.Packs","id":"trt_85QCX41PCVV6DPDTY1K7ZXT85S","name":"Packs"},{"ref":"Input.traits.OrbLintInput","id":"trt_R30KXP9MXBTENMQNC8NFZZXT9N","name":"OrbLintInput","listens":[{"event":"LINT_REQUEST","triggers":"LINT_REQUEST","source":{"kind":"trait","trait":"OrbLintBrowserEffectsCli"}},{"event":"SCAN_ANSWERED","triggers":"LANG_SCAN_ANSWERED","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACK_VOCAB","triggers":"LANGUAGE_PACK_VOCAB_HEARD","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACKS_DONE","triggers":"LANGUAGE_PACKS_DONE_HEARD","source":{"kind":"trait","trait":"Packs"}}]},{"ref":"Calls.traits.HostCalls","id":"trt_KSHNW26PBTB5X5STA3NXVD22KG","name":"HostCalls","listens":[{"event":"HOST_CALLS_COLLECT","triggers":"HOST_CALLS_COLLECT","source":{"kind":"trait","trait":"OrbLintBrowserEffects"}},{"event":"LINT_OPERATOR_SHAPES","triggers":"LINT_OPERATOR_SHAPES_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}},{"event":"LINT_OPERATOR_SHAPES_UNREAD","triggers":"LINT_OPERATOR_SHAPES_UNREAD_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}},{"event":"LINT_HOST_FACTS","triggers":"LINT_HOST_FACTS_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}},{"event":"LINT_HOST_FACTS_UNREAD","triggers":"LINT_HOST_FACTS_UNREAD_HEARD","source":{"kind":"trait","trait":"OrbLintInput"}}]},{"ref":"EmitConfigUse.traits.OrbEmitConfig","id":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N","name":"OrbEmitConfig","listens":[{"event":"EMIT_CONFIG_CHECK","triggers":"EMIT_CONFIG_CHECK","source":{"kind":"trait","trait":"OrbLintBrowserEffects"}}]}],"pages":[{"name":"OrbLintBrowserEffectsOrbitalStart","id":"pag_FET4SYQ3GAHR5EHSBQSR2R8E7G","path":"","protocol":"boot","traits":[{"ref":"OrbLintBrowserEffects","refId":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},{"ref":"OrbLintBrowserEffectsCli","refId":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},{"ref":"OrbLintInput","refId":"trt_R30KXP9MXBTENMQNC8NFZZXT9N"},{"ref":"Packs","refId":"trt_85QCX41PCVV6DPDTY1K7ZXT85S"},{"ref":"Versions","refId":"trt_3ARNV93T63X31YR00TYK66R8WJ"},{"ref":"HostCalls","refId":"trt_KSHNW26PBTB5X5STA3NXVD22KG"},{"ref":"OrbEmitConfig","refId":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N"}]}],"types":{"EmitItem":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"EmitObj":[{"nullable":false,"name":"","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}],"EmitResult":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}],"EmitVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[EmitVal]","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"object","type":"Map<string,EmitVal>","items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}}]}],"HcByLiteral":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"required","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcCall":[{"nullable":false,"name":"head","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"call","type":"[HcVal]","required":true,"items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"tname","type":"string","required":true},{"nullable":false,"name":"tick","type":"string","required":true},{"nullable":false,"name":"bg","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"config","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"inGuard","type":"boolean","required":true}],"HcClosed":[{"nullable":true,"name":"request","type":"boolean"},{"nullable":true,"name":"intRange","type":"HcIntRange","projectedFrom":{"type":"HcIntRange"}},{"nullable":true,"name":"requestKeysByLiteral","type":"HcByLiteral","projectedFrom":{"type":"HcByLiteral"}}],"HcExtras":[{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitKeys","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcFact":[{"nullable":false,"name":"minArity","type":"number","required":true},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}},{"nullable":true,"name":"closedCall","type":"HcClosed","projectedFrom":{"type":"HcClosed"}},{"nullable":true,"name":"grant","type":"[HcGrantNeed]","items":{"nullable":false,"name":"","type":"HcGrantNeed","projectedFrom":{"type":"HcGrantNeed"}}},{"nullable":false,"name":"defaultPorts","type":"Map<string,number>","items":{"nullable":true,"name":"","type":"number"}},{"nullable":true,"name":"family","type":"string"},{"nullable":true,"name":"emitOrder","type":"[string]","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasOptions","type":"boolean","required":true},{"nullable":false,"name":"optionKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"emitKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"hasRequest","type":"boolean","required":true},{"nullable":false,"name":"requestFields","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"requestRequired","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"words","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"keys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"HcGrantNeed":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcIntRange":[{"nullable":false,"name":"arg","type":"number","required":true},{"nullable":false,"name":"min","type":"number","required":true},{"nullable":false,"name":"max","type":"number","required":true}],"HcLooseList":[{"nullable":false,"name":"","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"HcParam":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"HcShape":[{"nullable":true,"name":"category","type":"string"},{"nullable":true,"name":"minArity","type":"number"},{"nullable":true,"name":"maxArity","type":"number"},{"nullable":true,"name":"runsOn","type":"string"},{"nullable":true,"name":"host","type":"string"},{"nullable":false,"name":"hasSideEffects","type":"boolean","required":true},{"nullable":false,"name":"params","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":true,"name":"optional","type":"boolean"},{"nullable":false,"name":"type","type":"HcType","properties":[],"projectedFrom":{"type":"HcType"}}],"items":{"nullable":false,"name":"","type":"HcParam","projectedFrom":{"type":"HcParam"}}}],"HcStrings":[{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcType":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"HcTypeNode","type":"object","properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"HcTypeNode"}}]}],"HcTypeNode":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"fields","type":"Map<string,HcType>","items":{"nullable":true,"name":"","type":"HcType","projectedFrom":{"type":"HcType"}}},{"nullable":true,"name":"optional","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"HcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[HcVal]","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}},{"nullable":false,"name":"object","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}]}],"HcValMap":[{"nullable":false,"name":"","type":"Map<string,HcVal>","items":{"nullable":true,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"LintBrowserEffectsCodes":[{"nullable":false,"name":"lintOperatorShapesUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpOriginNotStatic","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"httpEgressUndeclared","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconUrlNotAbsolute","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"beaconTextRequired","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"pageFactsFieldInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectArity","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceSchemaInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"hostEffectOptionUnknown","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabRequestInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"onDeviceEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"tabEffectOnServer","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LnProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[HcVal]","items":{"nullable":false,"name":"","type":"HcVal","projectedFrom":{"type":"HcVal"}}}],"items":{"nullable":false,"name":"","type":"HcOrbital","projectedFrom":{"type":"HcOrbital"}}},{"nullable":true,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LnVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[LnVal]","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}},{"nullable":false,"name":"object","type":"Map<string,LnVal>","items":{"nullable":true,"name":"","type":"LnVal","projectedFrom":{"type":"LnVal"}}}]}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"Seg":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"emit","type":"EmitObj","required":true,"projectedFrom":{"type":"EmitObj"},"items":{"nullable":true,"name":"","type":"EmitVal","projectedFrom":{"type":"EmitVal"}}},{"nullable":false,"name":"allowedKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"checkDeclared","type":"boolean","required":true},{"nullable":false,"name":"declared","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"items":{"nullable":false,"name":"","type":"EmitItem","projectedFrom":{"type":"EmitItem"}}},{"nullable":false,"name":"pre","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"post","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]}}],"inbound":["cli-lint-browser-effects"],"osGrants":{"fs":[{"glob":"/**","modes":["read"]},{"glob":"~/.orb/node_modules/**","modes":["read"]}],"exec":[],"net":[],"env":["PATH"],"stdio":[],"sys":[],"desktop":[],"anchored":{"fs":[{"anchor":"cwd","glob":"**","modes":["read"]}],"exec":[{"anchor":"exe"}]}},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_JRCWPYH830M1G25BA7W10MTJT5":{"id":"ent_JRCWPYH830M1G25BA7W10MTJT5","kind":"entity","bakedName":"OrbLintBrowserEffectsRun","curName":"OrbLintBrowserEffectsRun","renames":[],"owner":"workspace"},"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19":{"id":"evt_0FY6Y9ND7GPKR2TFTHP4K2JP19","kind":"event","bakedName":"LINT_ASSEMBLE","curName":"LINT_ASSEMBLE","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_4M63S93VAPXNBANHKXCM873XSF":{"id":"evt_4M63S93VAPXNBANHKXCM873XSF","kind":"event","bakedName":"EMIT_CONFIG_CHECK","curName":"EMIT_CONFIG_CHECK","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31":{"id":"evt_5B6P9Y2T7WD3YEAZ4YXCP9PJ31","kind":"event","bakedName":"LINT_CALLED","curName":"LINT_CALLED","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_5GPWV95VZDXZPHGATZTPP3AW83":{"id":"evt_5GPWV95VZDXZPHGATZTPP3AW83","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_61TEF79AB4N5J24FCG4ZAW2YSR":{"id":"evt_61TEF79AB4N5J24FCG4ZAW2YSR","kind":"event","bakedName":"LINT_PLANNED","curName":"LINT_PLANNED","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F":{"id":"evt_A88SJ5FR1AW0ND0YNCX0VZNP2F","kind":"event","bakedName":"LINT_ANSWERED","curName":"LINT_ANSWERED","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT":{"id":"evt_AHX0PJ2YDAF6NBK3PS6V9RJCYT","kind":"event","bakedName":"LINT_INPUT","curName":"LINT_INPUT","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ":{"id":"evt_AJZWJQSJFKS7SNP2KB13TJW2TQ","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP":{"id":"evt_AMYVC6E4AW25EDRJ57ZFDNFKTP","kind":"event","bakedName":"EMIT_HEARD","curName":"EMIT_HEARD","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR":{"id":"evt_EC0YFS9Z30ZHG9FZ8RBED89XPR","kind":"event","bakedName":"LINT_FINISH","curName":"LINT_FINISH","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8":{"id":"evt_FGH4DE2JWV9EDSG27FVJ4XYRD8","kind":"event","bakedName":"LINT_INPUT_UNREAD","curName":"LINT_INPUT_UNREAD","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_M4WT4MAYTTFDDDDT10K0E3E3X1":{"id":"evt_M4WT4MAYTTFDDDDT10K0E3E3X1","kind":"event","bakedName":"HOST_CALLS_COLLECT","curName":"HOST_CALLS_COLLECT","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_S8P2Q5ZNW0TY088CRDH07Q14M6":{"id":"evt_S8P2Q5ZNW0TY088CRDH07Q14M6","kind":"event","bakedName":"HOST_CALLS_HEARD","curName":"HOST_CALLS_HEARD","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_V89EMVBX6NYKANRXRGRVZTCWVW":{"id":"evt_V89EMVBX6NYKANRXRGRVZTCWVW","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF"},"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR":{"id":"evt_ZQ1W6HJZ70FKG1TCJXGRKQG5NR","kind":"event","bakedName":"LINT_REQUEST","curName":"LINT_REQUEST","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"evt_ZQ6K690SX4CYJANVVX47PYCB3J":{"id":"evt_ZQ6K690SX4CYJANVVX47PYCB3J","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D"},"orb_RGCEKZAMY4AF2FP6RZNM26TFKJ":{"id":"orb_RGCEKZAMY4AF2FP6RZNM26TFKJ","kind":"orbital","bakedName":"OrbLintBrowserEffectsOrbital","curName":"OrbLintBrowserEffectsOrbital","renames":[],"owner":"workspace"},"pag_FET4SYQ3GAHR5EHSBQSR2R8E7G":{"id":"pag_FET4SYQ3GAHR5EHSBQSR2R8E7G","kind":"page","bakedName":"OrbLintBrowserEffectsOrbitalStart","curName":"OrbLintBrowserEffectsOrbitalStart","renames":[],"owner":"workspace"},"trt_3ARNV93T63X31YR00TYK66R8WJ":{"id":"trt_3ARNV93T63X31YR00TYK66R8WJ","kind":"trait","bakedName":"Versions","curName":"Versions","renames":[],"owner":"workspace"},"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N":{"id":"trt_7A0ZYBAT6PD3BFM20YQR8VPE7N","kind":"trait","bakedName":"OrbEmitConfig","curName":"OrbEmitConfig","renames":[],"owner":"workspace"},"trt_85QCX41PCVV6DPDTY1K7ZXT85S":{"id":"trt_85QCX41PCVV6DPDTY1K7ZXT85S","kind":"trait","bakedName":"Packs","curName":"Packs","renames":[],"owner":"workspace"},"trt_KD1ARN6TWCDE65VGSXQMMQEK0D":{"id":"trt_KD1ARN6TWCDE65VGSXQMMQEK0D","kind":"trait","bakedName":"OrbLintBrowserEffectsCli","curName":"OrbLintBrowserEffectsCli","renames":[],"owner":"workspace"},"trt_KSHNW26PBTB5X5STA3NXVD22KG":{"id":"trt_KSHNW26PBTB5X5STA3NXVD22KG","kind":"trait","bakedName":"HostCalls","curName":"HostCalls","renames":[],"owner":"workspace"},"trt_R30KXP9MXBTENMQNC8NFZZXT9N":{"id":"trt_R30KXP9MXBTENMQNC8NFZZXT9N","kind":"trait","bakedName":"OrbLintInput","curName":"OrbLintInput","renames":[],"owner":"workspace"},"trt_YBRN5V1YV9ZDMRRZRC1389XWPF":{"id":"trt_YBRN5V1YV9ZDMRRZRC1389XWPF","kind":"trait","bakedName":"OrbLintBrowserEffects","curName":"OrbLintBrowserEffects","renames":[],"owner":"workspace"}}}}