framer-export 5.0.1 → 5.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.0.2
4
+
5
+ The standalone preview server and new `fexport serve [directory]` command share a graphite and peach Classic/Nerd terminal interface, request history, keyboard help and clean shutdown. Preview options include `-p`/`--port`, host, directory, browser opening, cache duration, SPA fallback, request logs and plain/quiet output. The server binds locally by default, reports occupied ports clearly, supports HEAD and rejects malformed paths and file escapes. Preview responses default to no caching.
6
+
7
+ Export logs offer Classic and Nerd views in the terminal and browser. Classic focuses on the current phase, progress and recent activity; Nerd keeps the complete colored journal, search, level filters and pause/follow controls. Switching modes preserves the reading position and full log history.
8
+
9
+ Both log viewers match the assistant's graphite and peach palette, add npm's dot spinner beside the shimmering phase title, and remove redundant statistics and stage labels. Search and filters open in web and terminal dialogs; terminal shortcut help also opens in a centered dialog with keyboard and mouse controls. Enter applies a draft and Esc cancels it without leaving the viewer. Animations respect reduced motion and pause behind dialogs.
10
+
11
+ Installer tests compare canonical filesystem paths, fixing false failures when macOS reports `/private/var` for a temporary directory created through `/var`. Additional cases cover symlinked projects, literal special characters, dependency scopes, cache recovery and real subprocess failures. `npm run test:updates` checks the updater and release sequence using local fixtures.
12
+
13
+ Preview tests separate standard output from diagnostics and normalize color settings, preventing inherited `FORCE_COLOR` from corrupting quiet-mode and version assertions. A regression test also covers conflicting color variables and Node warnings.
14
+
15
+ Native iTerm images use bounded pixel dimensions when terminal cell measurements are available, keeping artwork inside its reserved rows after font changes. Browser fixture timeouts allow resource preparation to finish on slower machines.
16
+
3
17
  ## 5.0.1
4
18
 
5
19
  The stable release uses 5.0.1 because npm permanently reserves 5.0.0 from an earlier publication that is no longer available. This changes the release version without changing the validated application behavior.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <h1 align="center">F-EXPORT</h1>
2
2
 
3
3
  <p align="center">
4
- <img src="https://img.shields.io/badge/version-5.0.1-blue" alt="Version" />
4
+ <img src="https://img.shields.io/badge/version-5.0.2-blue" alt="Version" />
5
5
  <img src="https://img.shields.io/badge/license-MIT-green" alt="License" />
6
6
  <img src="https://img.shields.io/badge/node-%3E%3D20-339933" alt="Node" />
7
7
  </p>
@@ -22,7 +22,7 @@ It knows 25 platforms and detects the right one from the URL, and when the URL i
22
22
  npm install -g framer-export
23
23
  ```
24
24
 
25
- Version 5.0.1 uses the stable `latest` channel. You can also install the validated local package with `npm install -g ./framer-export-5.0.1.tgz`. Preview releases remain available through `framer-export@beta`.
25
+ Version 5.0.2 uses the stable `latest` channel. You can also install the validated local package with `npm install -g ./framer-export-5.0.2.tgz`. Preview releases remain available through `framer-export@beta`.
26
26
 
27
27
  Or from source:
28
28
 
@@ -42,7 +42,7 @@ Node 20 or newer. Installation downloads Chrome for Testing through Puppeteer, w
42
42
  framer-export ui
43
43
  ```
44
44
 
45
- This starts a local server on port 4400 and opens your browser. The four steps are Select provider, Site details, Options and Review. Browse the provider icons in cards or a list, search and change pages, then paste the URL and choose export options. Completed steps remain clickable and retain your input. Settings and Help open in dialogs, with hover hints on controls. The export screen shows progress and a file summary; View logs opens an editor-style dialog with line numbers, search, level filters, automatic following and copying.
45
+ This starts a local server on port 4400 and opens your browser. The four steps are Select provider, Site details, Options and Review. Browse the provider icons in cards or a list, search and change pages, then paste the URL and choose export options. Completed steps remain clickable and retain your input. Settings and Help open in dialogs, with hover hints on controls. The export screen shows progress and a file summary; View logs opens a Classic or Nerd view with npm’s dot spinner, peach accents and a progress bar. Nerd includes the full journal, automatic following and copying; Filters opens a dialog for search and log levels. Apply filters confirms changes, while Esc cancels them.
46
46
 
47
47
  The server only listens on 127.0.0.1 and rejects cross-origin requests, so nothing on the network or in another browser tab can trigger exports on your machine. Use `--port <n>` to change the port and `--no-open` if you do not want the browser to open by itself.
48
48
 
@@ -71,9 +71,11 @@ Provider logos use native images when the terminal supports Kitty graphics, iTer
71
71
  | `,` / `?` | Preferences / shortcuts |
72
72
  | Ctrl+C | Save the draft and leave |
73
73
 
74
- Wizard exports open a dedicated log viewer with line numbers, timestamps, log levels, progress counters and a scrollbar. Use `/` to search, `f` to cycle level filters, `p` to pause following, `c` to copy the full log, and the arrow keys to scroll vertically or pan across long lines. Home goes to the first entry and End resumes following new entries. Search and filters leave the saved log unchanged; wizard exports retain the full session even beyond 5,000 entries.
74
+ Wizard exports open in **Classic** mode: a centered phase title with npm's dot spinner and a subtle shine, a peach progress bar and the two latest events. Graphite surfaces and peach accents match the export assistant. Press `n` or Tab, or click **Nerd**, to see the complete journal with colored severity levels, timestamps, line numbers, warnings, errors and a scrollbar. Clicking the issue summary opens the relevant logs. Switching modes preserves your search and reading position.
75
75
 
76
- In both interfaces, scrolling up pauses automatic following so you can read earlier entries. Latest logs returns to the newest entry and resumes following. Severity colors distinguish information, successes, warnings and errors; active progress has a subtle shine that respects reduced motion. The terminal paints only changed cells and preserves native icons between updates.
76
+ Use `/` to open the search dialog, `f` for the filter dialog and `?` for help. Select a filter with the arrow keys or `1`–`3`; Enter applies and Esc cancels. Tab moves between dialog controls. Applying a search or filter opens Nerd automatically. Use `p` to pause following, `c` to copy the full log, and the arrow keys to scroll vertically or pan across long lines in Nerd mode. Home goes to the first entry and End resumes following new entries. The progress percentage counts processed assets, including failed downloads; discovery stays indeterminate until the asset total is known, and the export is only marked complete once it finishes. Search and filters leave the saved log unchanged; wizard exports retain the full session even beyond 5,000 entries.
77
+
78
+ In the detailed logs of both interfaces, scrolling up pauses automatic following so you can read earlier entries. Latest logs returns to the newest entry and resumes following. Severity colors distinguish information, successes, warnings and errors; active progress has a subtle shine that respects reduced motion. The terminal animates only the title and progress rows, stops animation after completion or failure, and supports reduced color depths and small windows.
77
79
 
78
80
  Enter closes the viewer after the export completes or fails. Esc or Ctrl+C during an export returns to console output while the operation continues; a second Ctrl+C in the console stops the process. A failed export remains marked as failed and returns its original error after the viewer closes. Direct commands and legacy prompts retain the compact console output and optional progress sidebar.
79
81
 
@@ -122,6 +124,7 @@ Auto-detection covers the hosted domains (`.framer.app`, `.webflow.io`, `.wixsit
122
124
  ```
123
125
  framer-export <url> [output-dir] export a site
124
126
  framer-export ui [--port <n>] launch the web interface
127
+ fexport serve [directory] [-p <n>] preview a local export
125
128
  framer-export --setup launch the terminal wizard
126
129
  framer-export settings edit persistent preferences
127
130
  framer-export config show preferences as JSON
@@ -183,10 +186,30 @@ To preview it:
183
186
 
184
187
  ```bash
185
188
  cd framer-mysite-fresh-build-a1b2
186
- node serve.js
189
+ node serve.js -p 3000
190
+ # or, from any folder:
191
+ fexport serve ./my-export -p 8080 --open
187
192
  ```
188
193
 
189
- The site has to be served over HTTP because module scripts do not load from `file://`. The bundled server handles MIME types, CORS headers and the sub-page fallback, so a route like `/about` resolves to `subpages/about.html` automatically.
194
+ The preview uses the same graphite and peach terminal interface as the exporter. Classic shows the address and recent activity; `n` or Tab opens Nerd for request status codes, paths and timings. Use `o` to open the browser, `?` for help, the arrows to read older requests, End to follow new requests, and `q` or Ctrl+C to stop.
195
+
196
+ Options work with both `node serve.js` and `fexport serve`. With npm, forward them as `npm run serve -- -p 8080`:
197
+
198
+ | Option | Behavior |
199
+ |---|---|
200
+ | `-p, --port <n>` | Port; defaults to `PORT` or 3000. Use 0 for an available port. |
201
+ | `-H, --host <address>` | Bind address; defaults to `127.0.0.1`. Use `0.0.0.0` to listen on the local network. |
202
+ | `-d, --dir <path>` | Choose the served directory. A positional directory also works. |
203
+ | `-o, --open` | Open the preview in your browser. |
204
+ | `--no-spa` | Return 404 for unknown routes while retaining captured subpages. |
205
+ | `--cache <seconds>` | Browser cache lifetime; defaults to 0 for fresh previews. |
206
+ | `--logs` | Open Nerd in a terminal, or print request logs to ordinary output. |
207
+ | `--no-ui` | Use ordinary console output. |
208
+ | `-q, --quiet` | Print only the URL. |
209
+ | `--no-color` | Disable colors; `NO_COLOR` is also respected. |
210
+ | `-h, --help` | Show all preview options. |
211
+
212
+ The standalone script serves its exported folder regardless of the working directory. `fexport serve` defaults to the current directory and also works for existing exports. The site has to be served over HTTP because module scripts do not load from `file://`. The bundled server handles MIME types, CORS headers and the sub-page fallback, so a route like `/about` resolves to `subpages/about.html` automatically.
190
213
 
191
214
  Every run writes `export.log` with untruncated messages from its retained log history. The terminal wizard's log viewer and the web interface offer clipboard copying, which is handy when reporting a problem or passing context to another tool.
192
215
 
@@ -252,7 +275,9 @@ npm run release -- --bypass-tests --dry-run
252
275
 
253
276
  Arguments after `--`, such as `--dry-run` or `--otp=123456`, are forwarded to npm publish. The default release command checks and builds once; its final upload skips lifecycle scripts. Ordinary `npm publish` still runs the full check suite through `prepublishOnly`, then builds through `prepare`, following [npm's lifecycle order](https://docs.npmjs.com/cli/v11/using-npm/scripts/#npm-publish).
254
277
 
255
- Use `npm run check` to validate without publishing, or `npm pack` to build `framer-export-5.0.1.tgz`. Publish that already built archive with `npm publish ./framer-export-5.0.1.tgz --tag latest`.
278
+ Use `npm run check` to validate without publishing, or `npm pack` to build `framer-export-5.0.2.tgz`. Publish that already built archive with `npm publish ./framer-export-5.0.2.tgz --tag latest`.
279
+
280
+ Use `npm run test:updates` for a focused check of update detection, installer arguments and the release sequence. These tests use temporary fixtures and a simulated npm CLI; they do not install or publish packages. They cover directory symlinks (including macOS temporary paths), special characters, dependency scopes, cache recovery and failed or interrupted installers. No temporary-directory override is needed.
256
281
 
257
282
  ## License
258
283
 
package/bin/fexport.js CHANGED
File without changes
File without changes
File without changes