JSPM

  • Created
  • Published
  • Downloads 373
  • Score
    100M100P100Q99918F
  • License BSD-3-Clause

A Salesforce CLI plugin containing commands to generate and compare sfdx source snapshot files or manipulate local source tracking.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@jayree/sfdx-plugin-source) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    @jayree/sfdx-plugin-source

    A Salesforce CLI plugin containing commands to generate and compare sfdx source snapshot files.

    sfdx NPM test-and-release Downloads/week License

    Install

    sfdx plugins:install @jayree/sfdx-plugin-source

    Commands

    sfdx jayree project compare snapshot

    Compare sfdx source snapshot files.

    USAGE
      $ sfdx jayree project compare snapshot [--json] [--flags-dir <value>] [--filepath <value>]
    
    FLAGS
      --filepath=<value>  [default: ./sfdx-source-snapshot.json] Path of the generated snapshot file.
    
    GLOBAL FLAGS
      --flags-dir=<value>  Import flag values from a directory.
      --json               Format output as json.
    
    ALIASES
      $ sfdx jayree source snapshot compare

    See code: src/commands/jayree/project/compare/snapshot.ts

    sfdx jayree project fix

    Fix retrieved metadata.

    USAGE
      $ sfdx jayree project fix [--json] [--flags-dir <value>] [-o <value>] [-t <value>...]
    
    FLAGS
      -o, --target-org=<value>  Username or alias of the target org.
      -t, --task=<value>...     Task name(s) listed in sfdx-project.json.
    
    GLOBAL FLAGS
      --flags-dir=<value>  Import flag values from a directory.
      --json               Format output as json.
    
    ALIASES
      $ sfdx jayree source fix

    See code: src/commands/jayree/project/fix.ts

    sfdx jayree project generate snapshot

    Generate sfdx source snapshot files.

    USAGE
      $ sfdx jayree project generate snapshot [--json] [--flags-dir <value>] [--filepath <value>]
    
    FLAGS
      --filepath=<value>  [default: ./sfdx-source-snapshot.json] Path to save the generated snapshot file.
    
    GLOBAL FLAGS
      --flags-dir=<value>  Import flag values from a directory.
      --json               Format output as json.
    
    ALIASES
      $ sfdx jayree source snapshot generate

    See code: src/commands/jayree/project/generate/snapshot.ts

    sfdx jayree project list tracking

    List changes in a scratch org by remote revision counter number.

    USAGE
      $ sfdx jayree project list tracking -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-r <value>]
    
    FLAGS
      -o, --target-org=<value>   (required) Username or alias of the target org. Not required if the `target-org`
                                 configuration variable is already set.
      -r, --revision=<value>     Start at a specific revision counter number.
          --api-version=<value>  Override the api version used for api requests made by this command
    
    GLOBAL FLAGS
      --flags-dir=<value>  Import flag values from a directory.
      --json               Format output as json.
    
    ALIASES
      $ sfdx jayree source tracking list
    
    EXAMPLES
      $ sfdx jayree:source:tracking:list
      $ sfdx jayree:source:tracking:list -u me@my.org
      $ sfdx jayree:source:tracking:list -u me@my.org -r 101

    See code: src/commands/jayree/project/list/tracking.ts

    sfdx jayree project store tracking get

    Get stored revision counter number.

    USAGE
      $ sfdx jayree project store tracking get -o <value> [--json] [--flags-dir <value>]
    
    FLAGS
      -o, --target-org=<value>  (required) Username or alias of the target org. Not required if the `target-org`
                                configuration variable is already set.
    
    GLOBAL FLAGS
      --flags-dir=<value>  Import flag values from a directory.
      --json               Format output as json.
    
    ALIASES
      $ sfdx jayree source tracking store get
    
    EXAMPLES
      $ sfdx jayree:source:tracking:store:get
      $ sfdx jayree:source:tracking:store:get -u me@my.org

    See code: src/commands/jayree/project/store/tracking/get.ts

    sfdx jayree project store tracking set

    Store revision counter number.

    USAGE
      $ sfdx jayree project store tracking set -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-r
      <value>]
    
    FLAGS
      -o, --target-org=<value>   (required) Username or alias of the target org. Not required if the `target-org`
                                 configuration variable is already set.
      -r, --revision=<value>     Revision counter number (default: remote revision counter number).
          --api-version=<value>  Override the api version used for api requests made by this command
    
    GLOBAL FLAGS
      --flags-dir=<value>  Import flag values from a directory.
      --json               Format output as json.
    
    ALIASES
      $ sfdx jayree source tracking store set
    
    EXAMPLES
      $ sfdx jayree:source:tracking:store:set
      $ sfdx jayree:source:tracking:store:set -u me@my.org
      $ sfdx jayree:source:tracking:store:set -u MyTestOrg1 -r 101

    See code: src/commands/jayree/project/store/tracking/set.ts

    Hooks

    prerun

    • Resets source tracking using force:source:tracking:reset before executing force:source:pull or project:retrieve:start.

    IMPORTANT: This hook will only run if SFDX_ENABLE_JAYREE_HOOKS_RESET_BEFORE_PULL=true is set. It uses the stored serverMaxRevisionCounter as revision counter number (see: jayree:source:tracking:store:set). If the hook doesn't find a stored value it asks if the current local revision counter number should be stored and used.

    scopedPreRetrieve

    scopedPostRetrieve (plugin-source plugin) / postsourceupdate (legacy salesforce-alm plugin)

    • Applies source fixes of the jayree project fix command, deletes and moves source files to separate package directories. See the configuration file sfdx-project.json for examples. Set "isActive": true,´ to apply this fix during scopedPostRetrieve` hook.

    IMPORTANT: Since the hook is not able to update the (JSON) output of the command, an additional output is generated. Set the environment variable SFDX_ENABLE_JAYREE_HOOKS_JSON_OUTPUT=true and additional comma-separated JSON output will be appended, where the output must be parsed as an array, e.g. JSON.parse(`[${stdout}]`). See an example below:

    import execa from "execa";
    import { CliUx } from "@oclif/core";
    
    async function run() {
      const { stdout } = await execa("sfdx", [
        "force:source:retrieve",
        "--metadata",
        "Group:*",
        "--json"
      ]);
      const parsedStdout = JSON.parse(`[${stdout}]`);
      CliUx.ux.styledJSON(
        parsedStdout.length > 1
          ? {
              ...parsedStdout[0],
              result: {
                ...parsedStdout[0].result,
                fixedFiles: parsedStdout[1].fixedFiles
              }
            }
          : parsedStdout[0]
      );
    }
    
    run();