npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@loopb/squady-apk-tool

v0.1.3

Published

Build Flutter APK and upload files to Qiniu

Readme

@loopb/squady-apk-tool

CLI tool for:

  • Building Flutter APK and uploading to Qiniu
  • Uploading any local file directly to Qiniu (jpg/png/webp/pdf/apk, etc.)

快速开始(中文)

  1. 安装:
npm i -g @loopb/squady-apk-tool
  1. 配置七牛环境变量:
export QINIU_ACCESS_KEY=xxxx
export QINIU_SECRET_KEY=xxxx
export QINIU_BUCKET_NAME=your_bucket
export QINIU_DOWNLOAD_CDN_URL=https://cdn.example.com
  1. 上传图片(jpg/png/webp 都可以):
squady-apk upload-file --file /path/to/photo.jpg --object-prefix images
  1. 固定对象名上传:
squady-apk upload-file --file ./assets/banner.png --object-key images/banner.png

Install

npm i -g @loopb/squady-apk-tool

Or use without global install:

npx @loopb/squady-apk-tool --help

Required Environment Variables

Set these in your shell, or in a project .env and pass --env:

QINIU_ACCESS_KEY=xxxx
QINIU_SECRET_KEY=xxxx
QINIU_BUCKET_NAME=your_bucket
QINIU_DOWNLOAD_CDN_URL=https://cdn.example.com

Optional:

QINIU_UPLOAD_ZONE=z2
QINIU_UPLOAD_URL=up-z2.qiniup.com
QINIU_DEFAULT_OBJECT_KEY=apks/app-latest.apk

QINIU_UPLOAD_ZONE supported values: z0, z1, z2, na0, as0.

Commands

1) Build Flutter APK and upload

squady-apk build-upload --project /path/to/flutter-project

With flavor:

squady-apk build-upload --project . --flavor dev -- --dart-define=ENV=dev

Skip build and upload existing APK:

squady-apk build-upload --skip-build --apk /path/to/app-release.apk

2) Upload any file directly

Upload image with random versioned key under prefix:

squady-apk upload-file --file /path/to/photo.jpg --object-prefix images

Upload with fixed object key:

squady-apk upload-file --file ./assets/banner.png --object-key images/banner.png

If no --object-key and no --object-prefix are passed, default key is:

files/<original-file-name>

3) JSON output (for scripts/CI)

squady-apk upload-file --file ./assets/demo.webp --object-prefix images --json

Key Options

  • --env <file>: env file path, default <project>/.env
  • --use-system-env: allow fallback to shell env
  • --object-key <key>: set exact key in Qiniu
  • --object-prefix <prefix>: auto-generate random key under prefix
  • --json: machine-readable result

Notes

  • Local file path is not fixed. Any existing file path works.
  • For scoped npm package publish, use:
npm publish --access public