Skip to content

Releases: alexchexes/demystify

v1.0.1-alexchexes.2

Choose a tag to compare

@alexchexes alexchexes released this 03 May 17:30

v1.0.1-alexchexes.2

Unofficial maintenance build of Demystify.

This release supersedes v1.0.1-alexchexes.1. It includes the fixes from .1, plus one parameterisation fix found while testing that build:

  • Static action suffixes are preserved when only the ID segment varies, so /orders/1234/foo and /orders/3456/foo become /orders/{order}/foo, not /orders/{order}/{paramN}.

Included assets:

  • demystify-browser-chrome-mv3-v1.0.1-alexchexes.2.zip - Chrome MV3 extension.
  • SHA-256:
    7534BA25F0B12C46885F499FFB4C84C898170285B539CC063BAC93707B610F47
  • demystify-lib-v1.0.1-alexchexes.2.tgz - packed demystify-lib package for installing the updated HAR-to-OpenAPI logic without relying on npm as it is not published there yet.
  • SHA-256:
    176B3AB0836EF6CF351657582176584233855F1D8E50B32ACBA23D7583C07378

To use the extension, unzip the asset and load the extracted folder in chrome://extensions with developer mode enabled. This is not a Chrome Web Store package.

Build artifacts for other apps/packages (Firefox, desktop, CLI tarball) are not included, as I do not have time to properly test them.
They can still be built from source; please see the existing READMEs in each subpackage.

v1.0.1-alexchexes.1 (superseded)

Choose a tag to compare

@alexchexes alexchexes released this 03 May 13:18

v1.0.1-alexchexes.1

Superseded by v1.0.1-alexchexes.2. This build can incorrectly turn a static action suffix into a path parameter in some nested ID routes, for example /orders/1234/foo + /orders/3456/foo becoming /orders/{order}/{paramN} instead of /orders/{order}/foo.

Unofficial maintenance build of Demystify.

This build is mainly for using the Chrome extension while the upstream repo appears inactive and apparently discontinued, per the owner's comment.

Changes included:

Upstream PR #7:

  • Automatic path folding is more conservative, so stable resource names such as /clients, /orders, and /tasks are less likely to be folded into generic path params.
  • Added controls for automatic path folding:
    • UI checkboxes for automatic folding, ID folding, text-route folding, and compatible-shape matching.
    • CLI --parameterisation safe-text|id-only|off.
    • Library options on Representor.
  • Schema-shape matching allows normal observed API variation such as scalar type changes or null versus a populated object branch, while still blocking object/array/scalar shape conflicts.
  • Existing parent endpoints are preserved when child paths are folded.
  • Repo tooling fixes are included so lint/typecheck/test/build run normally on Windows.

Upstream PR #8:

  • Auth-looking request cookies and headers are represented as OpenAPI security schemes instead of ordinary operation parameters.
  • Observed Authorization headers are represented both as Bearer auth and as a generic API-key header option.
  • Protocol headers such as Sec-WebSocket-Key are ignored.
  • Similar credential names such as X-Api+Key and X-Api_Key do not overwrite each other after OpenAPI component-key sanitising.

Upstream PR #9:

  • Generated OpenAPI servers now use the protocol observed in the HAR, so HTTPS captures produce https://... server URLs.

Included asset:

  • demystify-browser-chrome-mv3-v1.0.1-alexchexes.1.zip - Chrome MV3 extension.
  • SHA-256:
    595644B60F277E7E66F2FD71565FECA34E6B89131657241DF0F4010A61F1D8CA

To use the extension, unzip the asset and load the extracted folder in chrome://extensions with developer mode enabled. This is not a Chrome Web Store package.

Build artifacts for other apps/packages (Firefox, desktop, CLI tarball) are not included, as I do not have time to properly test them.
They can still be built from source; please see the existing READMEs in each subpackage.