oka_web 0.8.0 copy "oka_web: ^0.8.0" to clipboard
oka_web: ^0.8.0 copied to clipboard

Web shell station for oka (ADR-0016): per-store web/index.html as typed, drift-checked Dart, replaceable emitters, and GitHub Pages / itch.io deploy targets. Not a platform pipeline.

Changelog #

0.8.0 #

  • Part of the 0.8.0 train: Dart SDK floors ^3.13.0 (extraneous final parameter modifiers dropped); no package-specific changes.

0.7.0 #

  • Release train alignment with oka 0.7.0.

0.4.0 #

  • Version alignment with the 0.4.0 oka release train; no functional changes in this package.

0.2.0 #

  • Add browser profile diagnostics and persist profile paths/session names in Chrome leases for attribution, including temporary profiles.

Initial release (ADR-0016 — the web shell station). Publishes on the release train together with oka_core 0.2.0, which introduces the platform-agnostic Target.explainDetails extension point this package's targets use — publish only after the train lands, never against hosted oka_core 0.1.x.

  • Typed shell values: WebShellSpec, WebIconSpec, PwaManifestSpec/PwaManifestOverride, WebShellContribution + SimpleWebShellContribution (the store "what" seam), sealed head/body entry types with declarative phases (WebHeadPhase: preconnect → storeSdk → app) and requiredSdkGlobal metadata on script entries (the build-time counterpart of the runtime adapters' expectedSdkGlobal).
  • The emitter "how" seam: ShellEmitter with declared ownedPaths; GenerateShellEmitter (default — owns web/index.html + web/manifest.json, generated-content banners; Flutter template-version coupling contained in this one class) and InjectShellEmitter (marker-based injection for hand-maintained index.html; fails actionably when markers are absent; never rewrites unowned regions).
  • Targets: web-shell (compose + emit, no Flutter invocation) and web-build (an honest, named delegation to flutter build web — web is explicitly NOT a PlatformPipeline).
  • Drift gate: pure checkShellDrift / ShellDriftReport comparator over emitter-owned regions, wired as a post-emit idempotency check in EmitWebShellStep; WebScriptEntry.toString() renders requiredSdkGlobal so oka explain surfaces it.
  • Deploy targets (PublishTargets over the directory-artifact convention, artifactIsDirectory asserted by the publish conformance suite; both dry-run by default): GhPagesDeployTarget (publish-gh-pages — git-worktree deploy with ambient git auth only, prompt-free git env, allow-empty commits disabled as code) and ItchDeployTarget (publish-itch — butler push DIR USER/GAME:CHANNEL, API key surfaced only as a redacting CredentialRef; the value is never logged or stored). StageWebDirectoryStep stages the directory artifact (typed override → state → <project>/build/web).
  • Flagship example: example/crazygames/ — the third-party pattern pilot (a store package ships exactly this const shape alongside its runtime adapter), with SDK-script global reconciled against the runtime adapter's expectedSdkGlobal.
0
likes
140
points
643
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Web shell station for oka (ADR-0016): per-store web/index.html as typed, drift-checked Dart, replaceable emitters, and GitHub Pages / itch.io deploy targets. Not a platform pipeline.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#build-system #cli #flutter #web

License

MIT (license)

Dependencies

archive, crypto, meta, oka_core, path

More

Packages that depend on oka_web