@blotout/qinto-cli 0.1.28 → 0.1.30
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 +86 -0
- package/dist/index.js +4013 -3749
- package/dist/index.js.map +1 -1
- package/dist/worker-artifact/app-runtime/index.js +14 -6
- package/dist/worker-artifact/main/8809017061697bf9b90fa4d72f7eb2e0f0e00ad4-q.js.txt +1 -0
- package/dist/worker-artifact/main/index.js +22 -13
- package/dist/worker-artifact/version.json +8 -8
- package/package.json +2 -1
- package/dist/worker-artifact/main/61afaba4cf160e30ef4b71a7ce30a398f71f13e8-q.js.txt +0 -1
package/README.md
CHANGED
|
@@ -504,6 +504,17 @@ What a publish does, in order:
|
|
|
504
504
|
Publishing installs nothing. Install the new version with `qinto app install` (below); the last line of the output
|
|
505
505
|
prints that command with the version filled in.
|
|
506
506
|
|
|
507
|
+
**Source snapshot.** Every publish also uploads the app's source with the version: the text files in the app directory, without
|
|
508
|
+
what a `.gitignore` names (in the app directory, a folder below it, or the enclosing git repository), dot-prefixed folders and files (`.git`, `.qinto`, `.env`, `.wrangler`), `node_modules`, `coverage`, `test-results`,
|
|
509
|
+
`playwright-report`, `*.tsbuildinfo`, `*.log`, `npm-debug.log*`, `wrangler.jsonc`, binary files, and symbolic links. The
|
|
510
|
+
owners and developers of the app's organization can read it in the Qinto platform. When you submit the version to the app store,
|
|
511
|
+
the Blotout reviewers can read it too. A source above 10 MiB is refused, and the error names the largest files so that you can
|
|
512
|
+
add them to `.gitignore`.
|
|
513
|
+
|
|
514
|
+
The snapshot is the record of the source a version was built from. A version without a source snapshot cannot be submitted to
|
|
515
|
+
the app store. The Qinto platform refuses a publish from an older CLI that uploads no source. A version that an older CLI published
|
|
516
|
+
has none: [update the CLI](#stay-up-to-date), publish again, and submit the new version.
|
|
517
|
+
|
|
507
518
|
| Flag | What it does |
|
|
508
519
|
| --- | --- |
|
|
509
520
|
| `--bump <level>` | `patch` (default), `minor`, or `major`, from the highest ready version. |
|
|
@@ -593,6 +604,81 @@ serialized bytes, and one variable's values across every install of that app on
|
|
|
593
604
|
manifest, the publish, the install, and the runtime envelope — is listed in
|
|
594
605
|
[Qinto app limits](https://docs.blotout.io).
|
|
595
606
|
|
|
607
|
+
## Install an app from the app store
|
|
608
|
+
|
|
609
|
+
The app store lists the apps that Blotout approved for every team. The `store` commands find an app there and install it on
|
|
610
|
+
one of your team's sites. They need a login and no developer organization.
|
|
611
|
+
|
|
612
|
+
```sh
|
|
613
|
+
qinto store search consent # apps that match a word
|
|
614
|
+
qinto store show my-app # the store listing and its approved versions
|
|
615
|
+
qinto store install my-app --site example.com # the newest approved version
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
To put your own app in the app store, publish a version with `qinto app publish`, then fill in the store listing and submit the
|
|
619
|
+
version in the Qinto platform. [Qinto app limits](https://docs.blotout.io) gives the listing limits, the submission rules, and
|
|
620
|
+
when a submission needs a review by a person.
|
|
621
|
+
|
|
622
|
+
### Search — `qinto store search [query...]`
|
|
623
|
+
|
|
624
|
+
`search` lists the apps in the app store, sorted A to Z by name, 50 to a page. Without a query it lists every app. With a
|
|
625
|
+
query, an app matches when its name contains every word, or when its tagline and description together contain every word. A
|
|
626
|
+
query word matches a whole word and not the start of one, and common endings are ignored: `purchases` finds `purchase`, but
|
|
627
|
+
`cons` does not find `consent`.
|
|
628
|
+
|
|
629
|
+
Each row gives the slug, the name, the publisher, the categories, and the tagline. When more apps match, the last line prints the
|
|
630
|
+
`--cursor` value for the next page.
|
|
631
|
+
|
|
632
|
+
| Flag | What it does |
|
|
633
|
+
| --- | --- |
|
|
634
|
+
| `--category <category>` | List only the apps in one category: `advertising`, `analytics`, `consent_privacy`, `customer_data`, `email_sms`, `personalization`, `security`, or `developer_tools`. |
|
|
635
|
+
| `--limit <limit>` | Page size, 1 to 200 (default 50). |
|
|
636
|
+
| `--cursor <cursor>` | Start after the page that printed this cursor. |
|
|
637
|
+
| `--json` | Print the apps and the next cursor as JSON. |
|
|
638
|
+
|
|
639
|
+
### Show — `qinto store show <slug>`
|
|
640
|
+
|
|
641
|
+
`show` prints one store listing: the name, the publisher, the tagline, the description, the features, and the facts the Qinto
|
|
642
|
+
platform reads from the newest approved version. The facts are the consent category, the Site API scopes, the event data, the flows, the
|
|
643
|
+
vendors, the AI tools, and the roles. A table of the approved versions follows, newest first, with at most 50 versions. `--json`
|
|
644
|
+
prints the listing as JSON.
|
|
645
|
+
|
|
646
|
+
`show` exits with an error for an app that is not in the app store, even when the app exists. An app is
|
|
647
|
+
not in the app store after its developer or Blotout removes it from the app store, while Blotout has the app suspended, and
|
|
648
|
+
when it has no approved version at or above the minimum version that Blotout set for the app.
|
|
649
|
+
|
|
650
|
+
### Install — `qinto store install <slug> --site <site>`
|
|
651
|
+
|
|
652
|
+
`store install` puts an app from the app store on a site. It takes the flags of [`qinto app install`](#install--qinto-app-install-slug---site-site),
|
|
653
|
+
and it asks for the same acceptances. Without `--version` it installs the newest version the site may run.
|
|
654
|
+
|
|
655
|
+
```sh
|
|
656
|
+
qinto store install my-app --site example.com # the newest approved version
|
|
657
|
+
qinto store install my-app --site example.com --version 1.4.1 # a specific approved version
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
The first install of an app on a site records how the site got the app, and that record decides which versions the site may
|
|
661
|
+
run afterwards:
|
|
662
|
+
|
|
663
|
+
- When a member of the app's organization installs the app, the site may run every ready version.
|
|
664
|
+
- When the site manager installs through the developer's install link, the site may run every ready version.
|
|
665
|
+
- When the site gets the app from the app store, the site may run only approved versions.
|
|
666
|
+
|
|
667
|
+
The Qinto platform checks these in that order, and `qinto app install` and `qinto store install` go through the same check. A
|
|
668
|
+
member of the app's organization who runs `store install` therefore gets a site that may run every ready version. When the
|
|
669
|
+
manager of a store site later installs through the developer's install link, the site may run every ready version from then on.
|
|
670
|
+
|
|
671
|
+
The install fails when the site may not run the version, and the CLI prints the reason the Qinto platform gives. The Qinto
|
|
672
|
+
API returns status 409 with one of these error kinds:
|
|
673
|
+
|
|
674
|
+
| Error | Meaning |
|
|
675
|
+
| --- | --- |
|
|
676
|
+
| `version_not_approved` | The site got the app from the app store, and the named version is not approved. `qinto store show <slug>` lists the approved versions. |
|
|
677
|
+
| `version_below_minimum` | Blotout set a minimum version for the app, and the named version is below it. |
|
|
678
|
+
| `version_not_offered` | Blotout has suspended the app, and the named version was published during the suspension. |
|
|
679
|
+
| `app_suspended` | Blotout has suspended the app. No site can install it until Blotout lifts the suspension. |
|
|
680
|
+
| `app_taken_down` | Blotout has taken the app down. It takes no new install. |
|
|
681
|
+
|
|
596
682
|
## Built for humans and agents alike
|
|
597
683
|
|
|
598
684
|
Every interactive path has a non-interactive equivalent. This is a standing rule for every current and future command:
|