Machine learning platform for Web developers

Overview

pipcook

A JavaScript application framework for machine learning and its engineering.

npm npm GitHub repo size

Builds

Build Types Status
tests
pipeline
release
documentation
docker

Why Pipcook

With the mission of enabling JavaScript engineers to utilize the power of machine learning without any prerequisites and the vision to lead front-end technical field to the intelligention. Pipcook is to become the JavaScript application framework for the cross-cutting area of machine learning and front-end interaction.

We are truly to design Pipcook's API for front-end and machine learning applications, and focusing on the front-end area and developed from the JavaScript engineers' view. With the principle of being friendly to JavaScript, we will push the whole area forward with the machine learning engineering. For this reason we opened an issue about machine-learning application APIs, and look forward to you get involved.

What's Pipcook

The project provides subprojects including machine learning pipeline framework, management tools, a JavaScript runtime for machine learning, and these can be also used as building blocks in conjunction with other projects.

Principles

Pipcook is an open-source project guided by strong principles, aiming to be modular and flexible on user experience. It is open to the community to help set its direction.

  • Modular the project includes some of projects that have well-defined functions and APIs that work together.
  • Swappable the project includes enough modules to build what Pipcook has done, but its modular architecture ensures that most of the modules can be swapped by different implementations.

Audience

Pipcook is intended for Web engineers looking to:

  • learn what's machine learning.
  • train their models and serve them.
  • optimize own models for better model evaluation results, like higher accuracy for image classification.

If you are in the above conditions, just try it via installation guide.

Subprojects

Pipcook Pipeline

It's used to represent ML pipelines consisting of Pipcook plugins. This layer ensures the stability and scalability of the whole system and uses a plug-in mechanism to support rich functions including dataset, training, validations, and deployment.

A Pipcook Pipeline is generally composed of lots of plugins. Through different plugins and configurations, the final output to us is an NPM package, which contains the trained model and JavaScript functions that can be used directly.

Note: In Pipcook, each pipeline has only one role, which is to output the above-trained model you need. That is to say, the last stage of each pipeline must be the output of the trained model, otherwise, this Pipeline is invalid.

Pipcook Bridge to Python

For JavaScript engineers, the most difficult part is the lack of a mature machine learning toolset in the ecosystem. In Pipcook, a module called [Boa][https://github.com/imgcook/boa], which provides access to Python packages by bridging the interface of CPython using N-API.

With it, developers can use packages such as numpy, scikit-learn, jieba, tensorflow, or any other Python ecology in the Node.js runtime through JavaScript.

Quick start

Setup

Prepare the following on your machine:

Installer Version Range
Node.js >= 12.17
npm >= 6.14.4

Install the command-line tool for managing Pipcook projects:

$ npm install -g @pipcook/cli

Then run a pipeline:

$ pipcook run https://cdn.jsdelivr.net/gh/alibaba/pipcook@master/example/pipelines/bayes.v2.json

Playground

If you are wondering what you can do in Pipcook and where you can check your training logs and models, you could start from Pipboard:

open https://pipboard.imgcook.com

You will see a web page prompt in your browser, and there is a MNIST showcase on the home page and play around there.

Pipelines

If you want to train a model to recognize MNIST handwritten digits by yourself, you could try the examples below.

Name Description Open in Colab
mnist-image-classification pipeline for classific MNIST image classification problem. N/A
databinding-image-classification pipeline example to train the image classification task which is
to classify imgcook databinding pictures.
Open In Colab
object-detection pipeline example to train object detection task which is for component recognition
used by imgcook.
Open In Colab
text-bayes-classification pipeline example to train text classification task with bayes N/A

See here for complete list, and it's easy and quick to run these examples. For example, to do a MNIST image classification, just run the following to start the pipeline:

$ pipcook run https://cdn.jsdelivr.net/gh/alibaba/pipcook@master/example/pipelines/mobilenet.v2.json -o output

After the above pipeline is completed, you have already trained a model at the current output/model directory, it's a tensorflow.js model.

Documentation

Please refer to English | 中文

Developers

Clone this repository:

$ git clone [email protected]:alibaba/pipcook.git

Install dependencies, e.g. via npm:

$ npm install

After the above, now build the project:

$ npm run build

Community

DingTalk

Or searched via the group number: 30624012.

Download DingTalk (an all-in-one free communication and collaboration platform) here: English | 中文

Gitter Room

Who's using it

License

Apache 2.0

Comments
  • pipcook run json 失败

    pipcook run json 失败

    node:v14.15.0

    pipcook init 成功

    pipcook daemon start 成功

    pipcook run json 文件失败

    {
      "plugins": {
        "dataCollect": {
          "package": "@pipcook/plugins-object-detection-pascalvoc-data-collect",
          "params": {
            "url": "http://ai-sample.oss-cn-hangzhou.aliyuncs.com/pipcook/datasets/component-recognition-detection/component-recognition-detection.zip"
          }
        },
        "dataAccess": {
          "package": "@pipcook/plugins-coco-data-access"
        },
        "modelDefine": {
          "package": "@pipcook/plugins-detectron-fasterrcnn-model-define"
        },
        "modelTrain": {
          "package": "@pipcook/plugins-detectron-model-train",
          "params": {
            "steps": 100000
          }
        },
        "modelEvaluate": {
          "package": "@pipcook/plugins-detectron-model-evaluate"
        }
      }
    }
    

    info如下

    plugin @pipcook/[email protected] has already been installed
    ✔ plugin @pipcook/[email protected] has already been installed
    ✔ plugin @pipcook/[email protected] has already been installed
    ✔ plugin @pipcook/[email protected] has already been installed
    ✔ plugin @pipcook/[email protected] has already been installed
    ℹ start to create pipeline
    ✔ pipeline is created: qohrlo3y, installing
    ✔ pipeline installed successfully, start to run job
    ✔ job is created: 07ltu05m, running
    ℹ [job] running
    ℹ [job] running dataCollect start
    ℹ start loading plugin @pipcook/plugins-object-detection-pascalvoc-data-collect
    ℹ downloading dataset ...
    ℹ unzip and collecting data...
    ℹ [job] running dataCollect end
    ℹ [job] running dataAccess start
    ℹ start loading plugin @pipcook/plugins-coco-data-access
    ℹ create a result "33x4v0s7" for plugin "@pipcook/[email protected]"
    ℹ [job] running dataAccess end
    ℹ [job] running modelDefine start
    ℹ start loading plugin @pipcook/plugins-detectron-fasterrcnn-model-define
    ℹ [job] fails
    ✖ job is failed: Error: Could not locate the bindings file. Tried:
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/build/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/build/Debug/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/build/Release/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/out/Debug/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/Debug/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/out/Release/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/Release/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/build/default/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/compiled/14.15.0/darwin/x64/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/addon-build/release/install-root/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/addon-build/debug/install-root/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/addon-build/default/install-root/boa.node
     → /Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/lib/binding/node-v83-darwin-x64/boa.node
        at bindings (/Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/bindings/bindings.js:126:9)
        at Object.<anonymous> (/Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/node_modules/@pipcook/boa/lib/index.js:5:35)
        at Module._compile (internal/modules/cjs/loader.js:1063:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
        at Module.load (internal/modules/cjs/loader.js:928:32)
        at Function.Module._load (internal/modules/cjs/loader.js:769:14)
        at Module.require (internal/modules/cjs/loader.js:952:19)
        at require (internal/modules/cjs/helpers.js:88:18)
        at Object.<anonymous> (/Users/holan/.pipcook/plugins/node_modules/@pipcook/plugins-detectron-fasterrcnn-model-define/dist/index.js:34:13)
        at Module._compile (internal/modules/cjs/loader.js:1063:30)
    
    opened by holanlan 36
  •  surport use relative path in .CONDA_INSTALL_DIR file by set env variable BOA_CONDA_PREFIX .

    surport use relative path in .CONDA_INSTALL_DIR file by set env variable BOA_CONDA_PREFIX .

    项目里构建环境和线上环境的目录结构不一样,构建好后发到线上,.CONDA_INSTALL_DIR 里的目录就不对了。

    构建环境: 操作系统:Centos7 Node:v14

    线上环境: 操作系统:Centos7 Node:v14

    提示:error while loading shared libraries: libpython3.7m.so.1.0

    看了源代码,所以想设置环境变量 BOA_CONDA_PREFIX 来解决,设置了相对路径,但是执行 npm run build 的时候提示找不到python.3 ……,应该是 binding.gyp 配置文件中取的是路径不对,这里配置修了一下,还有 util 里的 getCondaPath 函数,改成相对包的根目录查找。

    本地测试没问题,请帮忙 review,更新 npm 包,多谢!!

    opened by hongyin163 22
  • plugin: try rewrite python based file.

    plugin: try rewrite python based file.

    This directory for this script.js file is temporary, and this file should be moved to right path.

    Have some problems:

    1. how to express the syntax for python use js, such as:
    for  (word in words) {
      ...
    }
    

    In my way I will use 'for of'/for/etc.

    1. how to express the data structure, such as set:

    use builtins:

    const {set} = boa.builtins() 
    const s = set()
    

    or use js native:

    const s = new Set()
    
    1. some methods looks like builtin should be implemented in unison, such string.strip()

    2. Can I use some async function to express python based function?

    plugin 
    opened by Txiaozhe 17
  • costa: make the package boa, core to be a part of plugin-runtime

    costa: make the package boa, core to be a part of plugin-runtime

    At this time, the package boa is a plugin dependency (if needed), if the plugins in one pipeline depend on more than one version of boa, there will be some problems:

    1. costa only support one boa object actually.
    2. need to download more than one version of boa (it's too slow).

    If boa is a part of the plugin-runtime, we will get:

    1. faster installation
    2. clearer runtime definition
    3. more explicit dependencies

    User still cloud install 2 or more versions of boa, but they should be completely isolated between the these nodejs projects. Plugin package could be:

    {
      "name": "plugins-data-process",
      "version": "1.0.0",
      "pipcook": {
        "category": "dataProcess",
        "datatype": "image",
        "runtimeVersion": "^1.0.0"
      },
      "conda": {
        "tensorflow": "2.2.0"
      }
    }
    

    use runtimeVersion to declare the runtime version.

    meta costa 
    opened by FeelyChau 12
  • core: add costa and integrate to daemon

    core: add costa and integrate to daemon

    This PR tries to export a class PluginRT which provides the following methods:

    • fetch(), fetch the metadata for given plugin.
    • install(), install plugin by the fetched information.
    • run(), run the given plugin with arguments.
    • test(), it's used for helping to test plugins in an easy way.

    And internally,

    • it initializes a NPM packages to manage plugins.
    • it uses Node.js's child process for managing plugin clusters. (Maybe slow in bootstrap)
    core build plugin boa 
    opened by yorkie 12
  • run pipeline error: Forbidden

    run pipeline error: Forbidden

    MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)

    • OS: macOS 11.5.2
    • nodejs: 16.9.0
    sudo npm install -g @pipcook/cli
    
    sudo pipcook train https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o output. # => run pipeline error: Forbidden
    
    pipcook train https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o output. # => run pipeline error: Forbidden(widthout sudo)
    

    just run as README.MD QUICK START

    opened by rhinonan 9
  • boa: fix import { X } from Y

    boa: fix import { X } from Y

    fix issue: https://github.com/alibaba/pipcook/issues/170

    const { Image } = boa.import('PIL'); // working
    const Image = boa.import('PIL.Image'); // working
    const PIL = boa.import('PIL'); // working
    console.log(PIL.Image); //working
    

    The difference between Python and BOA implementations is:

    • python The submodule Image is created when module PIL is creating.
    • boa The module PIL is created, then sub module Image is requested, finally the Image is created and put into PIL.
    boa 
    opened by FeelyChau 9
  • boa: could we set a global switch for pypi?

    boa: could we set a global switch for pypi?

    There are 2 way to switch pypi when install pipcook:

    1. environment variable
    2. pipcook command parameter --tuna

    Could we prioritize environment variables with commands --tuna parameter, if so, we can define the environment variable and the pypi is changed.

    question daemon 
    opened by FeelyChau 9
  • plugin-api v1

    plugin-api v1

    This is to initialize the plugin-api package

    @wordcount feel free to check packages/plugin-api/src/model.ts to check how to use boa

    let's work together in this branch on plugin apis

    plugin 
    opened by rickycao-qy 9
  • docs: refactor the directory, add typedoc and hosted on ghpages

    docs: refactor the directory, add typedoc and hosted on ghpages

    Note: this is an early stage, and don't merge this.

    I refactored our documentation site in the followings:

    • Using docsify to refactor the whole documents which supports markdowns, better multi-languages and search.
    • Using typedoc to generate the API even though the current edition is hard to read, because of our structure and comments.
    • Deployment to GitHub Pages which combine the above parts.

    An online preview is at: https://yorkie.github.io/pipcook/#/

    @utkobe @wordcount Please take a review on:

    • The new TOC.
    • The new way to write documents and language versions, it means we'll move to GitHub to update documentations.
    • The new website UX.
    • The new workflow.
    docs build 
    opened by yorkie 9
  • 请问我的数据集在本地的话datasource要怎么设置呢?

    请问我的数据集在本地的话datasource要怎么设置呢?

    "datasource": "https://cdn.jsdelivr.net/gh/imgcook/pipcook-script@b1f834c/scripts/image-classification/build/datasource.js?url=Users/adminx/Desktop/Ikki-study/iconcook/iconData/imgs.zip",

    opened by tiancaidiyibu 8
  • build(deps): bump json5 from 2.2.0 to 2.2.3 in /packages/cli

    build(deps): bump json5 from 2.2.0 to 2.2.3 in /packages/cli

    Bumps json5 from 2.2.0 to 2.2.3.

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump json5 from 2.2.0 to 2.2.3

    build(deps): bump json5 from 2.2.0 to 2.2.3

    Bumps json5 from 2.2.0 to 2.2.3.

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump express from 4.17.1 to 4.17.3 in /packages/cli

    build(deps): bump express from 4.17.1 to 4.17.3 in /packages/cli

    Bumps express from 4.17.1 to 4.17.3.

    Release notes

    Sourced from express's releases.

    4.17.3

    4.17.2

    Changelog

    Sourced from express's changelog.

    4.17.3 / 2022-02-16

    4.17.2 / 2021-12-16

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • i use object-detection on  colab, when i predict, Origin result:[[]]

    i use object-detection on colab, when i predict, Origin result:[[]]

    when i use https://colab.research.google.com/github/alibaba/pipcook/blob/main/notebooks/pipcook_object_detection.ipynb, i run the code, But when i use!sudo pipcook predict ./my-pipcook -s ./my-pipcook/data/images/maksssksksss0.png this, Origin result:[[]]. image

    opened by liuyu2013 0
  • build(deps): bump qs from 6.5.2 to 6.5.3

    build(deps): bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump qs from 6.7.0 to 6.11.0 in /packages/cli

    build(deps): bump qs from 6.7.0 to 6.11.0 in /packages/cli

    Bumps qs from 6.7.0 to 6.11.0.

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
Releases(v1.3.0)
Owner
Alibaba
Alibaba Open Source
Alibaba
Yet another Linux distribution for voice-enabled IoT and embrace Web standards

YodaOS is Yet another Linux Distribution for voice-enabled IoT and embrace Web standards, thus it uses JavaScript as the main application/scripting la

YODAOS Project 1.2k Dec 22, 2022
Mad science p2p pipe across the web using webrtc that uses your Github private/public key for authentication and a signalhub for discovery

webcat Mad science p2p pipe across the web using webrtc that uses your Github private/public key for authentication and a signalhub for discovery We a

Mathias Buus 428 Dec 30, 2022
Visualizer for neural network, deep learning, and machine learning models

Netron is a viewer for neural network, deep learning and machine learning models. Netron supports ONNX, TensorFlow Lite, Caffe, Keras, Darknet, Paddle

Lutz Roeder 21k Jan 5, 2023
LayerX-AI is a comprehensive platform to annotate and manage your machine learning data.

The AI Data Platform Annotate, Manage and Deploy Training Data The end-to-end AI data management platform that helps ML teams annotate, manage and dep

LayerX.ai 15 Dec 18, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Friendly machine learning for the web! 🤖

Read our ml5.js Code of Conduct and software licence here! This project is currently in development. Friendly machine learning for the web! ml5.js aim

ml5 5.9k Jan 2, 2023
HackMIT 2022. 2nd Place in Blockchain for Society sponsored by Jump Crypto. A revolutionary web application that leverages machine learning and blockchain technology to improve the crowdsourcing experience!

?? Wikisafe ?? Wikisafe is a revolutionary new crowdsourcing web application that innovates the process of crowdsourcing information. This application

Benson Liu 5 Dec 8, 2022
Solana blockchain candy machine app boilerplate on top of Metaplex Candy Machine. NextJS, Tailwind, Anchor, SolanaLabs.React, dev/mainnet automation scripts.

NFT Candy Factory NOTE: This repo will prob only work on unix-based environments. The NFT Candy Factory project is designed to let users fork, customi

Kevin Faveri 261 Dec 30, 2022
Complete Open Source Front End Candy Machine V2 Minter dAPP Built For The Frog Nation NFT Solana Project. Built With React, Candy Machine V2, Typescript

Complete Open Source Front End Candy Machine V2 Minter dAPP Built For The Frog Nation NFT Solana Project. Built With React, Candy Machine V2, Typescript

null 17 Sep 24, 2022
Machine learning tools in JavaScript

ml.js - Machine learning tools in JavaScript Introduction This library is a compilation of the tools developed in the mljs organization. It is mainly

ml.js 2.3k Jan 1, 2023
Machine-learning for Node.js

Limdu.js Limdu is a machine-learning framework for Node.js. It supports multi-label classification, online learning, and real-time classification. The

Erel Segal-Halevi 1k Dec 16, 2022
Train and test machine learning models for your Arduino Nano 33 BLE Sense in the browser.

Tiny Motion Trainer Train and test IMU based TFLite models on the Web Overview Since 2009, coders have created thousands of experiments using Chrome,

Google Creative Lab 59 Nov 21, 2022
JavaScript package for predictive data analysis and machine learning

scikit.js JavaScript package for predictive data analysis and machine learning. Generic math operations are powered by Tensorflowjs core layer. We are

JSdata 74 Jan 6, 2023
JavaScript Machine Learning Toolkit

The JavaScript Machine Learning Toolkit, or JSMLT, is an open source JavaScript library for education in machine learning.

JSMLT 25 Nov 23, 2022
Machine Learning library for node.js

shaman Machine Learning library for node.js Linear Regression shaman supports both simple linear regression and multiple linear regression. It support

Luc Castera 108 Feb 26, 2021
machinelearn.js is a Machine Learning library written in Typescript

machinelearn.js is a Machine Learning library written in Typescript. It solves Machine Learning problems and teaches users how Machine Learning algorithms work.

machinelearn.js 522 Jan 2, 2023
Unsupervised machine learning with multivariate Gaussian mixture model which supports both offline data and real-time data stream.

Gaussian Mixture Model Unsupervised machine learning with multivariate Gaussian mixture model which supports both offline data and real-time data stre

Luka 26 Oct 7, 2022