21.1.0 • Published 10 months ago

@dxatscale/sfpowerscripts v21.1.0

Weekly downloads
1,673
License
MIT
Repository
github
Last release
10 months ago

sfpowerscripts

Simple wrappers around sfdx commands to help set up CI/CD quickly. These commands are universal and may be used on any automation platform, as long as a shell process is available for executing the commands.

Installation

The SFDX CLI and sfpowerkit plugin are required for this plugin to work. If you have not already done so, please install both of these before continuing.

To install the sfpowerscripts plugin, run the following command:

$ sfdx plugins:install @dxatscale/sfpowerscripts

For automated installations as part of a CI process or Dockerfile:

$ echo 'y' | sfdx plugins:install @dxatscale/sfpowerscripts

Usage

$ sfdx sfpowerscripts:COMMAND
running command...

$ sfdx --help sfpowerscripts:[COMMAND]
USAGE
  $ sfdx sfpowerscripts:COMMAND
OPTIONS
  -flag Description
EXAMPLE
  Output variable:

...

Output variables

Many of the commands listed below will output variables which may be consumed as inputs to other tasks. The output variables are written to an environment file .env in a key=value format. A readVars.sh helper script is included as part of this package that can be used to read the values stored in the .env file and export them as environment variables.

One method of making the helper script globally invocable, is to install the NPM module as follows:

  $ npm install -g @dxatscale/sfpowerscripts

The script is then invocable as source readVars from the command-line.

If you're using a Docker image as part of your build process, you could also COPY the script into the image and link it to $PATH.

The following code snippet is an example of how output variables may be used.

$ sfdx sfpowerscripts:CreateDeltaPackage -n mypackage -r 61635fb -t 3cf01b9 -v 1.2.10 -b
$ source readVars
$ sfdx sfpowerscripts:DeploySource -u scratchorg --sourcedir ${sfpowerscripts_delta_package_path} -c

Reference name

Commands that output variables optionally accept a --refname flag that prefixes output variables with a user-specified string. The prefix is intended as a variable namespace that allows the same command to be invoked multiple times without overwriting the output variables.

$ sfdx sfpowerscripts:CreateUnlockedPackage --refname core -n core_package -b -x -v DevHub
$ sfdx sfpowerscripts:CreateUnlockedPackage --refname utility -n utility_package -b -x -v Devhub

$ source readVars
$ echo $core_sfpowerscripts_package_version_id
  04t2v000007X2YRAA0
$ echo $utility_sfpowerscripts_package_version_id
  04t2v000007X2YWAA0

Commands

sfpowerscripts:AnalyzeWithPMD

This task is used to run a static analysis of the apex classes and triggers using PMD. Please ensure that the SFDX CLI and sfpowerkit plugin are installed before using this task.

USAGE
  $ sfdx sfpowerscripts:AnalyzeWithPMD [--sourcedir <string>] [--ruleset <string>] [--rulesetpath <string>] [--format
  <string>] [-o <string>] [--version <string>] [-b] [-d <string>] [--refname <string>] [--json] [--loglevel
  trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -b, --istobreakbuild                                                               Enable this option if the build
                                                                                     should be reported as failure if 1
                                                                                     or more critical defects are
                                                                                     reported during the analysis

  -d, --projectdir=projectdir                                                        The project directory should
                                                                                     contain a sfdx-project.json for
                                                                                     this command to succeed

  -o, --outputpath=outputpath                                                        The file to which the output for
                                                                                     static analysis will be written

  --format=text|textcolor|csv|emacs|summaryhtml|html|xml|xslt|yahtml|vbhtml|textpad  [default: text]
                                                                                     https://pmd.github.io/latest/pmd_us
                                                                                     erdocs_cli_reference.html#available
                                                                                     -report-formats

  --json                                                                             format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)   [default: warn] logging level for
                                                                                     this command invocation

  --refname=refname                                                                  Reference name to be prefixed to
                                                                                     output variables

  --ruleset=sfpowerkit|Custom                                                        [default: sfpowerkit] Inbuilt is
                                                                                     the default ruleset that comes with
                                                                                     the task, If you choose custom,
                                                                                     please provide the path to the
                                                                                     ruleset

  --rulesetpath=rulesetpath                                                          The path to the ruleset if you are
                                                                                     utilizing your own ruleset

  --sourcedir=sourcedir                                                              The directory that is to be analzed
                                                                                     using PMD, If omitted default
                                                                                     project diretory as mentioned in
                                                                                     sfdx-project.json will be used

  --version=version                                                                  [default: 6.22.0] The version of
                                                                                     PMD to be used for static analysis

EXAMPLE
  $ sfdx sfpowerscripts:AnalyzeWithPMD -b
  Output variable:
  sfpowerscripts_pmd_output_path
  <refname>_sfpowerscripts_pmd_output_path

See code: lib/commands/sfpowerscripts/AnalyzeWithPMD.js

sfpowerscripts:CreateDeltaPackage

This task is used to create a delta package between two commits and bundle the created delta as as a deployable artifact. Please ensure that the SFDX CLI and sfpowerkit plugin are installed before using this task.

USAGE
  $ sfdx sfpowerscripts:CreateDeltaPackage -n <string> -r <string> -v <string> [-t <string>] [-b] [-d <string>] [-x]
  [--bypassdirectories <string>] [--onlydifffor <string>] [--refname <string>] [--json] [--loglevel
  trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -b, --buildartifactenabled                                                        Create a build artifact, so that
                                                                                    this pipeline can be consumed by a
                                                                                    release pipeline

  -d, --projectdir=projectdir                                                       The project directory should contain
                                                                                    a sfdx-project.json for this command
                                                                                    to succeed

  -n, --package=package                                                             (required) The name of the package

  -r, --revisionfrom=revisionfrom                                                   (required) Provide the full SHA
                                                                                    Commit ID, from where the diff
                                                                                    should start generating

  -t, --revisionto=revisionto                                                       If not set, the head commit ID of
                                                                                    the current branch is used

  -v, --versionname=versionname                                                     (required) Provide a meaningful name
                                                                                    such as the default value, so this
                                                                                    artifact can be identified in the
                                                                                    release

  -x, --generatedestructivemanifest                                                 Check this option to generate a
                                                                                    destructive manifest to be deployed

  --bypassdirectories=bypassdirectories                                             Ignore a comma seperated list of
                                                                                    directories that need to be ignored
                                                                                    while a diff is generated

  --json                                                                            format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)  [default: warn] logging level for
                                                                                    this command invocation

  --onlydifffor=onlydifffor                                                         Generate a comma seperated list of
                                                                                    directories that the diff should be
                                                                                    generated, Create a
                                                                                    sfdx-project.json to support
                                                                                    deployment

  --refname=refname                                                                 Reference name to be prefixed to
                                                                                    output variables

EXAMPLE
  $ sfdx sfpowerscripts:CreateDeltaPackage -n packagename -r 61635fb -t 3cf01b9 -v 1.2.10 -b
  Output variable:
  sfpowerscripts_delta_package_path
  <refname>_sfpowerscripts_delta_package_path
  sfpowerscripts_artifact_metadata_directory
  <refname>_sfpowerscripts_artifact_metadata_directory

See code: lib/commands/sfpowerscripts/CreateDeltaPackage.js

sfpowerscripts:CreateSourcePackage

This task simulates a packaging experience similar to unlocked packaging, just by writing the commit id to an artifact. It is basically to help with the release pipelines.

USAGE
  $ sfdx sfpowerscripts:CreateSourcePackage -n <string> -v <string> [--refname <string>] [--json] [--loglevel
  trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -n, --package=package
      (required) The name of the package

  -v, --versionnumber=versionnumber
      (required) The format is major.minor.patch.buildnumber . This will override the build number mentioned in the
      sfdx-project.json, Try considering the use of Increment Version Number task before this task

  --json
      format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)
      [default: warn] logging level for this command invocation

  --refname=refname
      Reference name to be prefixed to output variables

EXAMPLE
  $ sfdx sfpowerscripts:CreateSourcePackage -n packagename -v 1.5.10
  Output variable:
  sfpowerscripts_artifact_metadata_directory
  <refname>_sfpowerscripts_artifact_metadata_directory

See code: lib/commands/sfpowerscripts/CreateSourcePackage.js

sfpowerscripts:CreateUnlockedPackage

Creates a new package version. Utilize this task in a package build for DX Unlocked Package.

USAGE
  $ sfdx sfpowerscripts:CreateUnlockedPackage -n <string> [-b] [-k <string> | -x] [-v <string>] [--versionnumber
  <string>] [-f <string>] [-d <string>] [--enablecoverage] [-s] [--tag <string>] [--waittime <string>] [--refname
  <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -b, --buildartifactenabled
      Create a build artifact, so that this pipeline can be consumed by a release pipeline

  -d, --projectdir=projectdir
      The project directory should contain a sfdx-project.json for this command to succeed

  -f, --configfilepath=configfilepath
      [default: config/project-scratch-def.json] Path in the current project directory containing  config file for the
      packaging org

  -k, --installationkey=installationkey
      Installation key for this package

  -n, --package=package
      (required) ID (starts with 0Ho) or alias of the package to create a version of

  -s, --isvalidationtobeskipped
      Skips validation of dependencies, package ancestors, and metadata during package version creation. Skipping
      validation reduces the time it takes to create a new package version, but package versions created without
      validation can’t be promoted.

  -v, --devhubalias=devhubalias
      [default: HubOrg] Provide the alias of the devhub previously authenticated, default value is HubOrg if using the
      Authenticate Devhub task

  -x, --installationkeybypass
      Bypass the requirement for having an installation key for this version of the package

  --enablecoverage
      Please note this command takes a longer time to compute, activating this on every packaging build might not
      necessary

  --json
      format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)
      [default: warn] logging level for this command invocation

  --refname=refname
      Reference name to be prefixed to output variables

  --tag=tag
      the package version's tag

  --versionnumber=versionnumber
      The format is major.minor.patch.buildnumber . This will override the build number mentioned in the
      sfdx-project.json, Try considering the use of Increment Version Number task before this task

  --waittime=waittime
      [default: 120] wait time for command to finish in minutes

EXAMPLE
  $ sfdx sfpowerscripts:CreateUnlockedPackage -n packagealias -b -x -v HubOrg --tag tagname
  Output variable:
  sfpowerscripts_package_version_id
  <refname>_sfpowerscripts_package_version_id
  sfpowerscripts_artifact_metadata_directory
  <refname>_sfpowerscripts_artifact_metadata_directory

See code: lib/commands/sfpowerscripts/CreateUnlockedPackage.js

sfpowerscripts:DeployDestructiveManifest

Delete components in org according to destructive manifest - an empty package.xml will be automatically created, Read more about the task at https://sfpowerscripts.com/tasks/deployment-tasks/deploy-destructive-maifest-to-an-org/

USAGE
  $ sfdx sfpowerscripts:DeployDestructiveManifest [-u <string>] [-m <string>] [-t <string>] [-f <string>] [--json]
  [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -f, --destructivemanifestfilepath=destructivemanifestfilepath
      The location to the xml file which contains the destructive changes

  -m, --method=Text|FilePath
      [default: Text] If text is specified, add the members in the next field, if URL, pass in the location of the
      destructiveChanges.xml such as the raw git url

  -t, --destructivemanifesttext=destructivemanifesttext
      Type in the destructive manifest, follow the instructions,
      https://developer.salesforce.com/docs/atlas.en-us.daas.meta/daas/daas_destructive_changes.htm

  -u, --targetorg=targetorg
      [default: scratchorg] Alias or username of the target org where the code should be deployed

  --json
      format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)
      [default: warn] logging level for this command invocation

EXAMPLES
  $ sfdx sfpowerscripts:DeployDestructiveManifest -u scratchorg -m Text -t "<?xml version="1.0" encoding="UTF-8"?>
  <Package
  xmlns="http://soap.sforce.com/2006/04/metadata"><types><members>myobject__c</members><name>CustomObject</name></types>
  </Package>"

See code: lib/commands/sfpowerscripts/DeployDestructiveManifest.js

sfpowerscripts:DeploySource

Deploy source to org using mdapi based deploy (converts source to mdapi and use mdapi deployment).

USAGE
  $ sfdx sfpowerscripts:DeploySource [-u <string>] [-d <string>] [--sourcedir <string>] [--waittime <string>] [-c] [-f
  <string>] [-l <string>] [--specifiedtests <string>] [--apextestsuite <string>] [-b] [--refname <string>] [--json]
  [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -b, --istobreakbuildifempty
      Uncheck this field, to allow for empty folders not to break build, useful in the case of pre/post step uniformity
      across projects

  -c, --checkonly
      Validate a deployment, but don't save to the org, Use this for Stage 1/2 CI Run's

  -d, --projectdir=projectdir
      The  directory should contain a sfdx-project.json for this command to succeed

  -f, --validationignore=validationignore
      [default: .forceignore] Validation only deployment has issues with certain metadata such as apexttestsuite, create a
      different file similar to .forceignore and use it during validate only deployment

  -l, --testlevel=NoTestRun|RunSpecifiedTests|RunApexTestSuite|RunLocalTests|RunAllTestsInOrg
      [default: NoTestRun] The test level of the test that need to be executed when the code is to be deployed

  -u, --targetorg=targetorg
      [default: scratchorg] Alias or username of the target org where the code should be deployed

  --apextestsuite=apextestsuite
      Name of the Apex Test Suite that needs to be executed during this deployment

  --json
      format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)
      [default: warn] logging level for this command invocation

  --refname=refname
      Reference name to be prefixed to output variables

  --sourcedir=sourcedir
      [default: force-app] The source directory to be deployed

  --specifiedtests=specifiedtests
      Specify a comma seperated values of Apex Test that need to be executed during this deployment

  --waittime=waittime
      [default: 20] wait time for command to finish in minutes

EXAMPLE
  $ sfdx sfpowerscripts:DeploySource -u scratchorg --sourcedir force-app -c
  Output variable:
  sfpowerkit_deploysource_id
  <refname_sfpowerkit_deploysource_id

See code: lib/commands/sfpowerscripts/DeploySource.js

sfpowerscripts:ExportSource

Export source from any org for storing to backup or further analysis. Please ensure that the SFDX CLI and sfpowerkit plugin are installed before using this task.

USAGE
  $ sfdx sfpowerscripts:ExportSource [-u <string>] [-d <string>] [--quickfilter <string>] [-x] [-e] [--refname <string>]
  [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -d, --sourcedir=sourcedir                                                         [default: metadata] The directory to
                                                                                    which the source should be exported
                                                                                    to

  -e, --isunzipenabled                                                              Unzip the exported metadata/source
                                                                                    from the zip into the provided
                                                                                    folder

  -u, --targetorg=targetorg                                                         [default: scratchorg] Alias or
                                                                                    username of the target org where
                                                                                    metadata is to be retrieved

  -x, --ismanagedpackagestobeexcluded                                               Exclude managed package components
                                                                                    from the export

  --json                                                                            format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)  [default: warn] logging level for
                                                                                    this command invocation

  --quickfilter=quickfilter                                                         Comma separated values  of metadata
                                                                                    type, member or file names to be
                                                                                    excluded while building the manifest

  --refname=refname                                                                 Reference name to be prefixed to
                                                                                    output variables

EXAMPLE
  $ sfdx sfpowerscripts:ExportSource -u scratchorg -d metadata -x -e
  Output variable:
  sfpowerscripts_exportedsource_zip_path
  <refname>_sfpowerscripts_exportedsource_zip_path

See code: lib/commands/sfpowerscripts/ExportSource.js

sfpowerscripts:IncrementBuildNumber

Increment the selected version counter by one and adds a commit to to your repository. This task does not push the change to the repository. If a push to the repository is required, include a step after the package is created to push this commit to the repository.

Please note this task skips all the options if it figures a .NEXT in the build number for an unlocked package

USAGE
  $ sfdx sfpowerscripts:IncrementBuildNumber [--segment <string>] [-a -r <string>] [-n <string>] [-d <string>] [-c]
  [--refname <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -a, --appendbuildnumber
      Set the build segment of the version number to the build number rather than incremenenting

  -c, --commitchanges
      Mark this if you want to commit the sfdx-project json to the repository, Please note this will not push to the repo
      only commits in the local checked out repo, You would need to have a push to the repo at the end of the packaging
      task if everything is successfull

  -d, --projectdir=projectdir
      The directory should contain a sfdx-project.json for this command to succeed

  -n, --package=package
      The name of the package of which the version need to be incremented,If not specified the default package is utilized

  -r, --runnumber=runnumber
      The build number of the CI pipeline, usually available through an environment variable

  --json
      format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)
      [default: warn] logging level for this command invocation

  --refname=refname
      Reference name to be prefixed to output variables

  --segment=Major|Minor|Patch|BuildNumber
      [default: BuildNumber] Select the segment of the version

EXAMPLE
  $ sfdx IncrementBuildNumber --segment BuildNumber -n packagename -c
  Output variable:
  sfpowerscripts_incremented_project_version
  <refname>_sfpowerscripts_incremented_project_version

See code: lib/commands/sfpowerscripts/IncrementBuildNumber.js

sfpowerscripts:InstallUnlockedPackage

Installs an unlocked package using sfpowerscripts metadata.

USAGE
  $ sfdx sfpowerscripts:InstallUnlockedPackage [-n <string>] [-u <string>] [-v <string> | -i] [-k <string>] [-a]
  [--securitytype <string>] [--upgradetype <string>] [--waittime <string>] [--publishwaittime <string>] [--json]
  [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -a, --apexcompileonlypackage                                                      Each package installation triggers a
                                                                                    compilation of apex, flag to trigger
                                                                                    compilation of package only

  -i, --packageinstalledfrom                                                        automatically retrieve the version
                                                                                    ID of the package to be installed,
                                                                                    from the build artifact

  -k, --installationkey=installationkey                                             installation key for key-protected
                                                                                    package

  -n, --package=package                                                             Name of the package to be installed

  -u, --envname=envname                                                             Alias/User Name of the target
                                                                                    environment

  -v, --packageversionid=packageversionid                                           manually input package version Id of
                                                                                    the package to be installed

  --json                                                                            format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)  [default: warn] logging level for
                                                                                    this command invocation

  --publishwaittime=publishwaittime                                                 [default: 10] number of minutes to
                                                                                    wait for subscriber package version
                                                                                    ID to become available in the target
                                                                                    org

  --securitytype=AllUsers|AdminsOnly                                                [default: AllUsers] Select the
                                                                                    security access for the package
                                                                                    installation

  --upgradetype=DeprecateOnly|Mixed|Delete                                          [default: Mixed] the upgrade type
                                                                                    for the package installation

  --waittime=waittime                                                               [default: 120] wait time for command
                                                                                    to finish in minutes

EXAMPLE
  $ sfdx InstallUnlockedPackage -n packagename -u sandboxalias -i

See code: lib/commands/sfpowerscripts/InstallUnlockedPackage.js

sfpowerscripts:TriggerApexTest

Triggers an asynchronous apex unit test in an org. Please ensure that the SFDX CLI and sfpowerkit plugin are installed before using this task.

USAGE
  $ sfdx sfpowerscripts:TriggerApexTest [-u <string>] [-l <string>] [-s] [--specifiedtests <string>] [--apextestsuite
  <string>] [--waittime <string>] [--json] [--loglevel
  trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -l, --testlevel=RunSpecifiedTests|RunApexTestSuite|RunLocalTests|RunAllTestsInOrg  [default: RunLocalTests] The test
                                                                                     level of the test that need to be
                                                                                     executed when the code is to be
                                                                                     deployed

  -s, --synchronous                                                                  Select an option if the tests are
                                                                                     to be run synchronously

  -u, --targetorg=targetorg                                                          [default: scratchorg] username or
                                                                                     alias for the target org; overrides
                                                                                     default target org

  --apextestsuite=apextestsuite                                                      comma-separated list of Apex test
                                                                                     suite names to run

  --json                                                                             format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)   [default: warn] logging level for
                                                                                     this command invocation

  --specifiedtests=specifiedtests                                                    comma-separated list of Apex test
                                                                                     class names or IDs and, if
                                                                                     applicable, test methods to run

  --waittime=waittime                                                                [default: 60] wait time for command
                                                                                     to finish in minutes

EXAMPLE
  $ sfdx TriggerApexTest -u scratchorg -l RunLocalTests -s

See code: lib/commands/sfpowerscripts/TriggerApexTest.js

sfpowerscripts:ValidateApexCoverage

Validates apex test coverage in the org. Please ensure that the SFDX CLI and sfpowerkit plugin are installed before using this task.

USAGE
  $ sfdx sfpowerscripts:ValidateApexCoverage -t <string> [-u <string>] [--json] [--loglevel
  trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

OPTIONS
  -t, --testcoverage=testcoverage                                                   (required) The percentage of test
                                                                                    coverage for apex clasess, that
                                                                                    should be as per the last test run
                                                                                    status

  -u, --targetorg=targetorg                                                         [default: scratchorg] Alias or
                                                                                    username of the target org

  --json                                                                            format output as json

  --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)  [default: warn] logging level for
                                                                                    this command invocation

EXAMPLE
  $ sfdx sfpowerscripts:ValidateApexCoverage -u scratchorg -t 80

See code: lib/commands/sfpowerscripts/ValidateApexCoverage.js

22.5.4

10 months ago

22.5.3

10 months ago

22.5.2

10 months ago

20.20.0

1 year ago

20.20.1

1 year ago

20.20.2

1 year ago

20.20.3

1 year ago

20.20.4

1 year ago

20.20.5

1 year ago

20.20.6

1 year ago

20.20.7

1 year ago

20.20.8

1 year ago

20.29.0

1 year ago

20.26.0

1 year ago

20.26.1

1 year ago

20.26.2

1 year ago

20.26.3

1 year ago

21.1.1

12 months ago

21.1.0

12 months ago

20.28.0

1 year ago

22.1.1

11 months ago

22.1.0

11 months ago

20.22.0

1 year ago

22.3.0

11 months ago

22.3.2

11 months ago

22.3.1

11 months ago

20.24.0

1 year ago

20.24.1

1 year ago

20.24.2

1 year ago

20.24.3

1 year ago

20.24.4

1 year ago

20.24.5

1 year ago

20.24.6

1 year ago

22.5.0

10 months ago

20.30.5

1 year ago

20.30.4

1 year ago

20.30.3

1 year ago

20.30.2

1 year ago

20.30.1

1 year ago

20.30.0

1 year ago

20.19.7

1 year ago

20.19.8

1 year ago

20.19.9

1 year ago

21.0.2

1 year ago

21.0.1

1 year ago

21.0.3

1 year ago

21.0.0

1 year ago

21.0.5

12 months ago

20.25.0

1 year ago

20.25.2

1 year ago

20.25.3

1 year ago

20.19.11

1 year ago

20.25.4

1 year ago

20.25.5

1 year ago

20.25.6

1 year ago

20.19.10

1 year ago

20.25.9

1 year ago

22.0.2

11 months ago

22.0.1

11 months ago

22.0.0

11 months ago

22.0.4

11 months ago

21.2.2

11 months ago

21.2.1

11 months ago

21.2.3

11 months ago

22.2.1

11 months ago

22.2.0

11 months ago

22.2.4

11 months ago

22.2.3

11 months ago

22.2.2

11 months ago

20.21.0

1 year ago

20.21.1

1 year ago

22.4.2

10 months ago

22.4.1

10 months ago

22.4.0

11 months ago

20.23.0

1 year ago

20.19.0

1 year ago

20.19.1

1 year ago

20.19.2

1 year ago

20.19.3

1 year ago

20.19.4

1 year ago

20.19.5

1 year ago

20.19.6

1 year ago

20.2.10

1 year ago

20.2.11

1 year ago

20.15.0

1 year ago

20.2.2

1 year ago

20.2.1

1 year ago

20.2.0

1 year ago

20.2.6

1 year ago

20.2.5

1 year ago

20.2.4

1 year ago

20.2.9

1 year ago

20.2.8

1 year ago

20.14.0

1 year ago

20.3.2

1 year ago

20.3.1

1 year ago

20.3.0

1 year ago

20.3.3

1 year ago

20.17.0

1 year ago

20.4.1

1 year ago

20.4.0

1 year ago

20.4.3

1 year ago

20.4.2

1 year ago

20.16.0

1 year ago

20.16.1

1 year ago

20.16.2

1 year ago

20.16.3

1 year ago

20.16.4

1 year ago

20.16.5

1 year ago

20.16.6

1 year ago

20.16.7

1 year ago

20.16.8

1 year ago

20.5.0

1 year ago

20.5.3

1 year ago

20.5.2

1 year ago

20.5.1

1 year ago

20.11.0

1 year ago

20.11.1

1 year ago

20.6.3

1 year ago

20.6.2

1 year ago

20.6.1

1 year ago

20.6.0

1 year ago

20.6.7

1 year ago

20.6.6

1 year ago

20.6.5

1 year ago

20.6.4

1 year ago

20.10.0

1 year ago

20.10.1

1 year ago

20.10.2

1 year ago

20.10.3

1 year ago

20.10.4

1 year ago

20.10.5

1 year ago

20.10.6

1 year ago

20.7.0

1 year ago

20.13.0

1 year ago

20.8.0

1 year ago

20.12.0

1 year ago

20.12.1

1 year ago

20.9.0

1 year ago

20.1.10

1 year ago

19.10.0

1 year ago

20.1.11

1 year ago

20.1.12

1 year ago

20.1.13

1 year ago

19.4.9

2 years ago

19.4.8

2 years ago

19.4.7

2 years ago

19.4.6

2 years ago

20.0.1

1 year ago

20.0.0

1 year ago

20.0.5

1 year ago

20.0.3

1 year ago

20.0.2

1 year ago

20.0.7

1 year ago

20.0.6

1 year ago

20.1.0

1 year ago

20.1.4

1 year ago

20.1.3

1 year ago

20.1.2

1 year ago

20.1.1

1 year ago

20.1.8

1 year ago

20.1.7

1 year ago

20.1.6

1 year ago

20.1.9

1 year ago

19.4.10

2 years ago

19.8.0

2 years ago

19.8.3

1 year ago

19.8.2

2 years ago

19.4.11

2 years ago

19.7.0

2 years ago

19.7.1

2 years ago

19.7.4

2 years ago

19.7.3

2 years ago

19.5.11

2 years ago

19.5.10

2 years ago

19.5.13

2 years ago

19.5.12

2 years ago

19.5.15

2 years ago

19.5.14

2 years ago

19.5.16

2 years ago

19.6.0

2 years ago

19.5.8

2 years ago

19.5.7

2 years ago

19.5.9

2 years ago

19.5.0

2 years ago

19.5.1

2 years ago

19.5.4

2 years ago

19.5.3

2 years ago

19.5.6

2 years ago

19.5.5

2 years ago

19.9.0

1 year ago

19.0.0

2 years ago

15.7.0

2 years ago

15.7.2

2 years ago

15.7.1

2 years ago

15.7.3

2 years ago

18.2.0

2 years ago

18.1.6

2 years ago

18.1.5

2 years ago

18.1.4

2 years ago

18.1.3

2 years ago

18.1.2

2 years ago

18.1.1

2 years ago

18.1.0

2 years ago

15.5.0

2 years ago

18.0.3

2 years ago

18.0.2

2 years ago

18.0.1

2 years ago

18.0.0

2 years ago

15.6.0

2 years ago

18.6.0

2 years ago

19.4.1

2 years ago

19.4.0

2 years ago

19.4.3

2 years ago

19.4.2

2 years ago

19.4.5

2 years ago

19.4.4

2 years ago

19.3.0

2 years ago

18.5.1

2 years ago

18.5.0

2 years ago

19.3.1

2 years ago

19.2.1

2 years ago

19.2.0

2 years ago

18.4.1

2 years ago

19.2.3

2 years ago

18.4.0

2 years ago

19.2.2

2 years ago

19.2.5

2 years ago

19.2.4

2 years ago

19.2.6

2 years ago

19.1.0

2 years ago

18.3.3

2 years ago

19.1.1

2 years ago

18.3.2

2 years ago

18.3.1

2 years ago

18.3.0

2 years ago

14.1.0

2 years ago

18.9.2

2 years ago

18.9.1

2 years ago

18.9.0

2 years ago

18.10.0

2 years ago

15.0.0

2 years ago

15.0.1

2 years ago

18.8.4

2 years ago

18.8.3

2 years ago

18.8.2

2 years ago

18.8.1

2 years ago

18.8.0

2 years ago

18.8.5

2 years ago

18.7.0

2 years ago

15.3.0

2 years ago

15.3.2

2 years ago

15.3.1

2 years ago

15.3.4

2 years ago

15.3.3

2 years ago

15.3.6

2 years ago

15.3.5

2 years ago

16.1.0

2 years ago

15.4.1

2 years ago

15.4.0

2 years ago

17.0.1

2 years ago

17.0.0

2 years ago

16.2.3

2 years ago

16.2.2

2 years ago

16.2.1

2 years ago

15.1.0

2 years ago

15.2.0

2 years ago

15.2.1

2 years ago

15.2.4

2 years ago

15.2.5

2 years ago

15.2.2

2 years ago

15.2.3

2 years ago

15.2.8

2 years ago

15.2.6

2 years ago

15.2.7

2 years ago

16.0.1

2 years ago

13.6.22

2 years ago

13.6.21

2 years ago

13.6.13

2 years ago

13.6.14

2 years ago

13.6.11

2 years ago

13.6.12

2 years ago

13.6.10

2 years ago

13.6.19

2 years ago

13.6.17

2 years ago

13.6.18

2 years ago

13.6.15

2 years ago

13.6.16

2 years ago

14.0.0

2 years ago

13.7.1

2 years ago

13.7.0

2 years ago

13.8.6

2 years ago

13.8.4

2 years ago

13.8.5

2 years ago

13.8.2

2 years ago

13.8.3

2 years ago

13.8.0

2 years ago

13.8.1

2 years ago

13.6.8

2 years ago

13.6.6

2 years ago

13.6.7

2 years ago

13.6.5

2 years ago

13.6.2

2 years ago

13.6.3

2 years ago

13.4.11

2 years ago

13.4.12

2 years ago

13.4.10

2 years ago

13.4.19

2 years ago

13.4.17

2 years ago

13.4.18

2 years ago

13.4.15

2 years ago

13.4.16

2 years ago

13.4.13

2 years ago

13.4.14

2 years ago

13.4.20

2 years ago

13.3.5

2 years ago

13.3.3

2 years ago

13.3.4

2 years ago

13.3.1

2 years ago

13.3.2

2 years ago

13.3.0

2 years ago

13.4.8

2 years ago

13.4.9

2 years ago

13.4.6

2 years ago

13.4.7

2 years ago

13.4.4

2 years ago

13.4.5

2 years ago

13.4.2

2 years ago

13.4.3

2 years ago

13.4.0

2 years ago

13.4.1

2 years ago

13.0.15

2 years ago

13.5.0

2 years ago

13.6.0

2 years ago

13.6.1

2 years ago

13.1.5

2 years ago

13.1.6

2 years ago

13.1.3

2 years ago

13.1.4

2 years ago

13.1.1

2 years ago

13.1.2

2 years ago

13.0.14

2 years ago

13.2.4

2 years ago

13.2.2

2 years ago

13.2.3

2 years ago

13.2.0

2 years ago

13.2.1

2 years ago

13.0.8

2 years ago

13.0.9

2 years ago

13.0.6

2 years ago

13.0.7

2 years ago

13.0.4

2 years ago

13.0.5

2 years ago

13.0.2

2 years ago

13.0.3

2 years ago

13.0.0

2 years ago

12.4.3

2 years ago

12.4.4

2 years ago

13.1.0

2 years ago

13.0.10

2 years ago

13.0.11

2 years ago

13.0.12

2 years ago

12.0.7

2 years ago

12.0.8

2 years ago

12.0.9

2 years ago

12.0.3

2 years ago

12.0.4

2 years ago

12.0.5

2 years ago

12.0.6

2 years ago

12.0.2

2 years ago

12.2.5

2 years ago

12.2.6

2 years ago

12.2.7

2 years ago

12.2.8

2 years ago

12.2.1

2 years ago

12.2.2

2 years ago

12.2.3

2 years ago

12.2.4

2 years ago

12.2.0

2 years ago

12.2.9

2 years ago

12.1.0

2 years ago

12.1.1

2 years ago

12.4.0

2 years ago

12.4.1

2 years ago

12.4.2

2 years ago

12.3.4

2 years ago

12.3.1

2 years ago

12.3.2

2 years ago

12.3.3

2 years ago

12.3.9

2 years ago

12.2.20

2 years ago

12.2.18

2 years ago

12.2.19

2 years ago

12.2.14

2 years ago

12.2.15

2 years ago

12.2.16

2 years ago

12.2.17

2 years ago

12.2.10

2 years ago

12.2.11

2 years ago

12.2.12

2 years ago

12.2.13

2 years ago

12.0.13

2 years ago

12.0.12

2 years ago

12.0.15

2 years ago

12.0.14

2 years ago

12.0.11

2 years ago

12.0.10

2 years ago

10.2.5

2 years ago

10.2.6

2 years ago

10.2.7

2 years ago

10.2.8

2 years ago

10.2.9

2 years ago

10.2.14

2 years ago

10.2.15

2 years ago

10.2.13

2 years ago

10.2.10

2 years ago

10.2.11

2 years ago

10.2.16

2 years ago

11.0.0

2 years ago

10.4.2

2 years ago

10.4.3

2 years ago

10.4.4

2 years ago

10.4.5

2 years ago

10.4.0

2 years ago

10.3.2

2 years ago

10.3.3

2 years ago

10.3.4

2 years ago

10.3.5

2 years ago

10.3.6

2 years ago

10.3.0

2 years ago

10.3.1

2 years ago

11.1.5

2 years ago

11.1.6

2 years ago

11.1.4

2 years ago

11.1.9

2 years ago

11.1.7

2 years ago

11.1.8

2 years ago

11.1.1

2 years ago

11.1.2

2 years ago

11.1.0

2 years ago

11.1.11

2 years ago

11.1.10

2 years ago

11.1.13

2 years ago

11.1.12

2 years ago

10.0.8

2 years ago

10.0.9

2 years ago

10.0.13

2 years ago

10.0.12

2 years ago

10.0.11

2 years ago

10.0.10

2 years ago

10.2.3

2 years ago

10.2.4

2 years ago

10.2.0

2 years ago

10.2.1

2 years ago

10.2.2

2 years ago

10.1.4

2 years ago

10.1.5

2 years ago

10.1.6

2 years ago

10.1.7

2 years ago

10.1.8

2 years ago

10.1.0

2 years ago

10.1.1

2 years ago

10.1.2

2 years ago

10.1.3

2 years ago

10.0.5

2 years ago

10.0.6

2 years ago

10.0.7

2 years ago

10.0.0

2 years ago

10.0.1

2 years ago

10.0.2

2 years ago

10.0.3

2 years ago

10.0.4

2 years ago

9.3.12

2 years ago

9.3.11

2 years ago

9.3.10

2 years ago

9.1.0

2 years ago

9.3.7

2 years ago

9.3.6

2 years ago

9.3.5

2 years ago

9.3.4

2 years ago

9.3.3

2 years ago

9.3.2

2 years ago

9.3.1

2 years ago

9.3.0

2 years ago

9.3.9

2 years ago

9.3.8

2 years ago

9.2.0

2 years ago

9.0.4

3 years ago

9.0.3

3 years ago

9.0.1

3 years ago

9.0.0

3 years ago

8.5.3

3 years ago

8.5.0

3 years ago

8.5.2

3 years ago

8.5.1

3 years ago

8.4.3

3 years ago

8.4.2

3 years ago

8.4.1

3 years ago

8.4.0

3 years ago

8.3.0

3 years ago

8.2.1

3 years ago

8.1.19

3 years ago

8.2.0

3 years ago

8.1.18

3 years ago

8.1.17

3 years ago

8.1.16

3 years ago

8.1.15

3 years ago

8.1.11

3 years ago

8.1.13

3 years ago

8.1.12

3 years ago

8.1.14

3 years ago

8.1.10

3 years ago

8.1.9

3 years ago

8.1.8

3 years ago

8.1.7

3 years ago

8.1.4

3 years ago

8.1.6

3 years ago

8.1.5

3 years ago

8.1.2

3 years ago

8.1.1

3 years ago

8.1.3

3 years ago

7.1.21

3 years ago

8.0.16

3 years ago

8.0.14

3 years ago

8.0.15

3 years ago

8.0.10

3 years ago

8.0.12

3 years ago

8.0.11

3 years ago

8.0.13

3 years ago

8.0.9

3 years ago

8.0.8

3 years ago

8.0.5

3 years ago

8.0.4

3 years ago

8.0.7

3 years ago

8.0.6

3 years ago

8.0.1

3 years ago

8.0.0

3 years ago

8.0.3

3 years ago

8.0.2

3 years ago

7.1.19

3 years ago

7.1.20

3 years ago

7.1.13

3 years ago

7.1.14

3 years ago

7.1.12

3 years ago

7.1.17

3 years ago

7.1.18

3 years ago

7.1.15

3 years ago

7.1.16

3 years ago

7.1.11

3 years ago

7.1.10

3 years ago

7.1.9

3 years ago

7.1.8

3 years ago

7.1.7

3 years ago

7.1.6

3 years ago

7.1.5

3 years ago

7.1.4

3 years ago

7.0.0

3 years ago

7.0.1

3 years ago

7.1.3

3 years ago

7.1.2

3 years ago

7.1.1

3 years ago

7.1.0

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

5.3.1

3 years ago

5.3.0

3 years ago

6.1.0

3 years ago

6.1.2

3 years ago

6.1.1

3 years ago

5.4.0

3 years ago

5.5.0

3 years ago

5.6.0

3 years ago

5.2.0

3 years ago

5.1.0

3 years ago

5.0.5

3 years ago

5.0.4

3 years ago

5.0.3

3 years ago

4.4.12

3 years ago

5.0.2

3 years ago

4.4.11

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.4.10

3 years ago

4.4.9

3 years ago

4.4.8

3 years ago

4.4.3

3 years ago

4.4.2

3 years ago

4.4.5

3 years ago

4.4.4

3 years ago

4.4.1

3 years ago

4.4.0

3 years ago

4.3.2

3 years ago

4.3.1

3 years ago

4.3.0

3 years ago

4.2.0

3 years ago

4.0.5

3 years ago

3.0.6

3 years ago

4.1.0

3 years ago

4.1.1

3 years ago

4.0.4

3 years ago

4.0.3

3 years ago

4.0.2

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.0.5

3 years ago

1.6.16

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

1.6.15

3 years ago

2.5.28

3 years ago

3.0.0

3 years ago

2.5.25

3 years ago

2.5.26

3 years ago

2.5.27

3 years ago

2.5.23

3 years ago

2.5.22

3 years ago

2.5.21

3 years ago

2.5.20

3 years ago

2.5.19

3 years ago

2.5.18

3 years ago

2.5.17

3 years ago

2.5.15

3 years ago

2.5.16

3 years ago

2.5.14

3 years ago

2.5.13

3 years ago

2.5.12

3 years ago

2.5.10

3 years ago

2.5.11

3 years ago

2.5.9

3 years ago

2.5.8

3 years ago

2.4.2

3 years ago

2.5.7

3 years ago

2.5.6

3 years ago

2.5.5

3 years ago

2.5.4

3 years ago

2.5.3

3 years ago

2.5.2

3 years ago

2.5.1

3 years ago

2.5.0

3 years ago

2.4.1

3 years ago

2.4.0

3 years ago

2.3.1

3 years ago

2.3.0

3 years ago

2.2.5

3 years ago

2.2.4

3 years ago

2.2.3

3 years ago

1.6.14

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

1.6.13

3 years ago

2.0.1

3 years ago

1.6.12

3 years ago

2.0.0

3 years ago

1.6.9

3 years ago

1.6.8

3 years ago

1.6.7

3 years ago

1.6.11

3 years ago

1.6.10

3 years ago

1.6.6

3 years ago

1.7.0

3 years ago

1.6.5

3 years ago

1.6.4

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.5

3 years ago

1.4.4

3 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.8

3 years ago

1.3.7

3 years ago

1.3.6

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.19

3 years ago

1.1.18

3 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.17

3 years ago

1.1.13

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.29

3 years ago

1.0.30

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

0.13.10

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

0.13.9

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.13.8

4 years ago

0.13.7

4 years ago

0.13.6

4 years ago

0.13.5

4 years ago

0.13.4

4 years ago

0.13.3

4 years ago

0.13.2

4 years ago

0.13.0

4 years ago

0.13.1

4 years ago

0.12.0

4 years ago

0.10.1

4 years ago

0.10.0

4 years ago

0.9.3

4 years ago

0.9.2

4 years ago

0.9.1

4 years ago

0.9.0

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.7.2

4 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.5.5

4 years ago

0.5.4

4 years ago

0.5.3

4 years ago

0.5.2

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.3-alpha.0

4 years ago

0.3.1

4 years ago

0.3.0-alpha.0

4 years ago

0.2.0-alpha.0

4 years ago

0.1.4-beta.0

4 years ago

0.1.4-alpha.0

4 years ago

0.1.4-alpha.1

4 years ago

0.1.4

4 years ago

0.1.3-alpha.1

4 years ago

0.1.3

4 years ago

0.1.3-beta.0

4 years ago

0.1.3-alpha.0

4 years ago

0.1.1-beta.0

4 years ago

0.1.1-alpha.1

4 years ago

0.1.0

4 years ago

0.0.23-alpha.1

4 years ago

0.0.23

4 years ago

0.0.23-alpha.0

4 years ago

0.0.23-beta.0

4 years ago

0.0.22-alpha.2

4 years ago

0.0.22-alpha.1

4 years ago

0.0.22-alpha.0

4 years ago

0.0.22-beta.0

4 years ago

0.0.21-alpha.6

4 years ago

0.0.21-alpha.5

4 years ago

0.0.21-beta.0

4 years ago

0.0.21-alpha.4

4 years ago

0.0.21-alpha.3

4 years ago

0.0.21-alpha.2

4 years ago

0.0.21-alpha.1

4 years ago

0.0.21-alpha.0

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.15

4 years ago

0.0.15-beta.0

4 years ago

0.0.6

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago