@triflare/fx 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -0
- package/bin/fx.js +4 -1160
- package/package.json +9 -3
- package/product.yml +1 -1
- package/src/brand.js +9 -3
- package/src/build.js +2 -1
- package/src/catalog.js +117 -140
- package/src/cli/commands/build.js +98 -0
- package/src/cli/commands/catalog.js +42 -0
- package/src/cli/commands/check.js +44 -0
- package/src/cli/commands/completion.js +54 -0
- package/src/cli/commands/decompile.js +266 -0
- package/src/cli/commands/dev.js +179 -0
- package/src/cli/commands/extension.js +110 -0
- package/src/cli/commands/index.js +39 -0
- package/src/cli/commands/init.js +169 -0
- package/src/cli/commands/package.js +137 -0
- package/src/cli/commands/sprite/add.js +85 -0
- package/src/cli/commands/sprite/build.js +62 -0
- package/src/cli/commands/sprite/helpers.js +66 -0
- package/src/cli/commands/sprite/index.js +29 -0
- package/src/cli/commands/sprite/list.js +31 -0
- package/src/cli/commands/sprite/remove.js +51 -0
- package/src/cli/commands/vendor/add.js +98 -0
- package/src/cli/commands/vendor/helpers.js +50 -0
- package/src/cli/commands/vendor/index.js +39 -0
- package/src/cli/commands/vendor/install.js +64 -0
- package/src/cli/commands/vendor/list.js +45 -0
- package/src/cli/commands/vendor/migrate.js +47 -0
- package/src/cli/commands/vendor/outdated.js +51 -0
- package/src/cli/commands/vendor/remove.js +34 -0
- package/src/cli/commands/vendor/update.js +49 -0
- package/src/cli/commands/vendor/verify.js +44 -0
- package/src/cli/completion/bash.js +10 -0
- package/src/cli/completion/fish.js +9 -0
- package/src/cli/completion/index.js +97 -0
- package/src/cli/completion/zsh.js +11 -0
- package/src/cli/context.js +257 -0
- package/src/cli/define-command.js +140 -0
- package/src/cli/errors.js +111 -0
- package/src/cli/format.js +31 -0
- package/src/cli/prompts.js +183 -0
- package/src/cli/reporter.js +194 -0
- package/src/cli/run.js +248 -0
- package/src/cli/templates/index.js +112 -0
- package/src/cli/theme.js +84 -0
- package/src/compiler.js +32 -3
- package/src/config-edit.js +280 -1
- package/src/config.js +137 -3
- package/src/decompiler.js +12 -2
- package/src/extensions.js +311 -48
- package/src/index.js +21 -0
- package/src/vendor.js +1323 -0
- package/vendor/pm-packager-dist/.fx-build.json +1 -1
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@ Code PenguinMod projects with text.
|
|
|
16
16
|
- [Highlights](#highlights)
|
|
17
17
|
- [Overview](#overview)
|
|
18
18
|
- [Usage](#usage)
|
|
19
|
+
- [Vendoring Extensions](#vendoring-extensions)
|
|
19
20
|
- [Installation](#installation)
|
|
20
21
|
- [Feedback and Contributing](#feedback-and-contributing)
|
|
21
22
|
|
|
@@ -53,6 +54,37 @@ $ fx build
|
|
|
53
54
|
extensions: (none)
|
|
54
55
|
```
|
|
55
56
|
|
|
57
|
+
## Vendoring Extensions
|
|
58
|
+
|
|
59
|
+
Extension URLs are mutable and can disappear, so Fx can commit a verified copy of every extension instead. Declare them under `vendor:` in `fx.yml`; order is load order:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
vendorDir: extensions # default
|
|
63
|
+
vendor:
|
|
64
|
+
signals: https://example.com/signals.js
|
|
65
|
+
xterm:
|
|
66
|
+
url: http://localhost:8080/xterm.js
|
|
67
|
+
volatile: true
|
|
68
|
+
mything: ./src/mything.js
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`fx vendor install <url|path> --as <name>` copies the source to `extensions/`, records its SHA-256 in `fx.lock`, and adds it to `fx.yml`. Builds load the vendored copy and embed its source, so no network access is needed after installation. Remote entries fail if their hash changes; `volatile` entries (such as localhost URLs) warn instead. Local paths remain the source of truth and are re-copied on each build with a generated-file header.
|
|
72
|
+
|
|
73
|
+
`vendorDir` must be a directory inside the project directory.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
fx vendor install # restore from fx.lock, fetching only missing files
|
|
77
|
+
fx vendor update [name] # show a diff and write updated files and fx.lock
|
|
78
|
+
fx vendor update [name] --dry-run # preview changes without writing
|
|
79
|
+
fx vendor outdated # compare upstream with fx.lock
|
|
80
|
+
fx vendor verify # check files against fx.lock, offline
|
|
81
|
+
fx vendor remove <name>
|
|
82
|
+
fx vendor list [--json]
|
|
83
|
+
fx vendor migrate # move project.extensions under vendor:
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`fx vendor migrate` writes `fx.yml.bak` first and shows the config diff. Builds only offer migration when running in a terminal; use `--no-upgrade-prompt` or `FX_NO_PROMPT=1` to keep the legacy `project.extensions` behavior.
|
|
87
|
+
|
|
56
88
|
## Installation
|
|
57
89
|
|
|
58
90
|
**Requirements:**
|