pax_global_header 0000666 0000000 0000000 00000000064 14344174136 0014521 g ustar 00root root 0000000 0000000 52 comment=a044a87c6c7fb3ace4ea9bf903c63f0f15965398
node-tar-6.1.13/ 0000775 0000000 0000000 00000000000 14344174136 0013322 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/.commitlintrc.js 0000664 0000000 0000000 00000000553 14344174136 0016445 0 ustar 00root root 0000000 0000000 /* This file is automatically added by @npmcli/template-oss. Do not edit. */
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'deps', 'chore']],
'header-max-length': [2, 'always', 80],
'subject-case': [0, 'always', ['lower-case', 'sentence-case', 'start-case']],
},
}
node-tar-6.1.13/.eslintrc.js 0000664 0000000 0000000 00000000545 14344174136 0015565 0 ustar 00root root 0000000 0000000 /* This file is automatically added by @npmcli/template-oss. Do not edit. */
'use strict'
const { readdirSync: readdir } = require('fs')
const localConfigs = readdir(__dirname)
.filter((file) => file.startsWith('.eslintrc.local.'))
.map((file) => `./${file}`)
module.exports = {
root: true,
extends: [
'@npmcli',
...localConfigs,
],
}
node-tar-6.1.13/.eslintrc.local.js 0000664 0000000 0000000 00000000435 14344174136 0016654 0 ustar 00root root 0000000 0000000 module.exports = {
rules: {
'max-len': 0,
'no-shadow': 0,
'no-unused-expressions': 0,
'no-sequences': 0,
'no-empty': 0,
},
overrides: [{
files: ['test/**'],
rules: {
'promise/catch-or-return': 0,
'promise/always-return': 0,
},
}],
}
node-tar-6.1.13/.github/ 0000775 0000000 0000000 00000000000 14344174136 0014662 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/.github/CODEOWNERS 0000664 0000000 0000000 00000000132 14344174136 0016251 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
* @npm/cli-team
node-tar-6.1.13/.github/ISSUE_TEMPLATE/ 0000775 0000000 0000000 00000000000 14344174136 0017045 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/.github/ISSUE_TEMPLATE/bug.yml 0000664 0000000 0000000 00000002655 14344174136 0020355 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: Bug
description: File a bug/issue
title: "[BUG]
"
labels: [ Bug, Needs Triage ]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please [search here](./issues) to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: A clear & concise description of what you're experiencing.
validations:
required: false
- type: textarea
attributes:
label: Expected Behavior
description: A clear & concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
value: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **npm**: 7.6.3
- **Node**: 13.14.0
- **OS**: Ubuntu 20.04
- **platform**: Macbook Pro
value: |
- npm:
- Node:
- OS:
- platform:
validations:
required: false
node-tar-6.1.13/.github/ISSUE_TEMPLATE/config.yml 0000664 0000000 0000000 00000000145 14344174136 0021035 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
blank_issues_enabled: true
node-tar-6.1.13/.github/dependabot.yml 0000664 0000000 0000000 00000000563 14344174136 0017516 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: daily
allow:
- dependency-type: direct
versioning-strategy: increase-if-necessary
commit-message:
prefix: deps
prefix-development: chore
labels:
- "Dependencies"
node-tar-6.1.13/.github/matchers/ 0000775 0000000 0000000 00000000000 14344174136 0016470 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/.github/matchers/tap.json 0000664 0000000 0000000 00000001204 14344174136 0020144 0 ustar 00root root 0000000 0000000 {
"//@npmcli/template-oss": "This file is automatically added by @npmcli/template-oss. Do not edit.",
"problemMatcher": [
{
"owner": "tap",
"pattern": [
{
"regexp": "^\\s*not ok \\d+ - (.*)",
"message": 1
},
{
"regexp": "^\\s*---"
},
{
"regexp": "^\\s*at:"
},
{
"regexp": "^\\s*line:\\s*(\\d+)",
"line": 1
},
{
"regexp": "^\\s*column:\\s*(\\d+)",
"column": 1
},
{
"regexp": "^\\s*file:\\s*(.*)",
"file": 1
}
]
}
]
}
node-tar-6.1.13/.github/workflows/ 0000775 0000000 0000000 00000000000 14344174136 0016717 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/.github/workflows/audit.yml 0000664 0000000 0000000 00000002343 14344174136 0020552 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: Audit
on:
workflow_dispatch:
schedule:
# "At 08:00 UTC (01:00 PT) on Monday" https://crontab.guru/#0_8_*_*_1
- cron: "0 8 * * 1"
jobs:
audit:
name: Audit Dependencies
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund --package-lock
- name: Run Production Audit
run: npm audit --omit=dev
- name: Run Full Audit
run: npm audit --audit-level=none
node-tar-6.1.13/.github/workflows/ci-release.yml 0000664 0000000 0000000 00000016340 14344174136 0021457 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: CI - Release
on:
workflow_dispatch:
inputs:
ref:
required: true
type: string
default: main
workflow_call:
inputs:
ref:
required: true
type: string
check-sha:
required: true
type: string
jobs:
lint-all:
name: Lint All
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Get Workflow Job
uses: actions/github-script@v6
if: inputs.check-sha
id: check-output
env:
JOB_NAME: "Lint All"
MATRIX_NAME: ""
with:
script: |
const { owner, repo } = context.repo
const { data } = await github.rest.actions.listJobsForWorkflowRun({
owner,
repo,
run_id: context.runId,
per_page: 100
})
const jobName = process.env.JOB_NAME + process.env.MATRIX_NAME
const job = data.jobs.find(j => j.name.endsWith(jobName))
const jobUrl = job?.html_url
const shaUrl = `${context.serverUrl}/${owner}/${repo}/commit/${{ inputs.check-sha }}`
let summary = `This check is assosciated with ${shaUrl}\n\n`
if (jobUrl) {
summary += `For run logs, click here: ${jobUrl}`
} else {
summary += `Run logs could not be found for a job with name: "${jobName}"`
}
return { summary }
- name: Create Check
uses: LouisBrunner/checks-action@v1.3.1
id: check
if: inputs.check-sha
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: in_progress
name: Lint All
sha: ${{ inputs.check-sha }}
output: ${{ steps.check-output.outputs.result }}
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Lint
run: npm run lint --ignore-scripts
- name: Post Lint
run: npm run postlint --ignore-scripts
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.3.1
if: steps.check.outputs.check_id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ job.status }}
check_id: ${{ steps.check.outputs.check_id }}
test-all:
name: Test All - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
platform:
- name: Linux
os: ubuntu-latest
shell: bash
- name: macOS
os: macos-latest
shell: bash
- name: Windows
os: windows-latest
shell: cmd
node-version:
- 10.x
- 12.x
- 14.x
- 16.x
- 18.x
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- name: Get Workflow Job
uses: actions/github-script@v6
if: inputs.check-sha
id: check-output
env:
JOB_NAME: "Test All"
MATRIX_NAME: " - ${{ matrix.platform.name }} - ${{ matrix.node-version }}"
with:
script: |
const { owner, repo } = context.repo
const { data } = await github.rest.actions.listJobsForWorkflowRun({
owner,
repo,
run_id: context.runId,
per_page: 100
})
const jobName = process.env.JOB_NAME + process.env.MATRIX_NAME
const job = data.jobs.find(j => j.name.endsWith(jobName))
const jobUrl = job?.html_url
const shaUrl = `${context.serverUrl}/${owner}/${repo}/commit/${{ inputs.check-sha }}`
let summary = `This check is assosciated with ${shaUrl}\n\n`
if (jobUrl) {
summary += `For run logs, click here: ${jobUrl}`
} else {
summary += `Run logs could not be found for a job with name: "${jobName}"`
}
return { summary }
- name: Create Check
uses: LouisBrunner/checks-action@v1.3.1
id: check
if: inputs.check-sha
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: in_progress
name: Test All - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
sha: ${{ inputs.check-sha }}
output: ${{ steps.check-output.outputs.result }}
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Update Windows npm
# node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
run: |
curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
tar xf npm-7.5.4.tgz
cd package
node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
cd ..
rmdir /s /q package
- name: Install npm@7
if: startsWith(matrix.node-version, '10.') || startsWith(matrix.node-version, '12.')
run: npm i --prefer-online --no-fund --no-audit -g npm@7
- name: Install npm@latest
if: ${{ !startsWith(matrix.node-version, '10.') && !startsWith(matrix.node-version, '12.') }}
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Set Tap RC
run: node ./test/fixtures/taprc.js
- name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- name: Test
run: npm test --ignore-scripts
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.3.1
if: steps.check.outputs.check_id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ job.status }}
check_id: ${{ steps.check.outputs.check_id }}
node-tar-6.1.13/.github/workflows/ci.yml 0000664 0000000 0000000 00000007150 14344174136 0020040 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: CI
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
- latest
schedule:
# "At 09:00 UTC (02:00 PT) on Monday" https://crontab.guru/#0_9_*_*_1
- cron: "0 9 * * 1"
jobs:
lint:
name: Lint
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Lint
run: npm run lint --ignore-scripts
- name: Post Lint
run: npm run postlint --ignore-scripts
test:
name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
platform:
- name: Linux
os: ubuntu-latest
shell: bash
- name: macOS
os: macos-latest
shell: bash
- name: Windows
os: windows-latest
shell: cmd
node-version:
- 10.x
- 12.x
- 14.x
- 16.x
- 18.x
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Update Windows npm
# node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
run: |
curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
tar xf npm-7.5.4.tgz
cd package
node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
cd ..
rmdir /s /q package
- name: Install npm@7
if: startsWith(matrix.node-version, '10.') || startsWith(matrix.node-version, '12.')
run: npm i --prefer-online --no-fund --no-audit -g npm@7
- name: Install npm@latest
if: ${{ !startsWith(matrix.node-version, '10.') && !startsWith(matrix.node-version, '12.') }}
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Set Tap RC
run: node ./test/fixtures/taprc.js
- name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- name: Test
run: npm test --ignore-scripts
node-tar-6.1.13/.github/workflows/codeql-analysis.yml 0000664 0000000 0000000 00000002016 14344174136 0022531 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: CodeQL
on:
push:
branches:
- main
- latest
pull_request:
branches:
- main
- latest
schedule:
# "At 10:00 UTC (03:00 PT) on Monday" https://crontab.guru/#0_10_*_*_1
- cron: "0 10 * * 1"
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: javascript
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
node-tar-6.1.13/.github/workflows/post-dependabot.yml 0000664 0000000 0000000 00000012044 14344174136 0022533 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: Post Dependabot
on: pull_request
permissions:
contents: write
jobs:
template-oss:
name: template-oss
if: github.repository_owner == 'npm' && github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Fetch Dependabot Metadata
id: metadata
uses: dependabot/fetch-metadata@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Dependabot can update multiple directories so we output which directory
# it is acting on so we can run the command for the correct root or workspace
- name: Get Dependabot Directory
if: contains(steps.metadata.outputs.dependency-names, '@npmcli/template-oss')
id: flags
run: |
dependabot_dir="${{ steps.metadata.outputs.directory }}"
if [[ "$dependabot_dir" == "/" ]]; then
echo "::set-output name=workspace::-iwr"
else
# strip leading slash from directory so it works as a
# a path to the workspace flag
echo "::set-output name=workspace::-w ${dependabot_dir#/}"
fi
- name: Apply Changes
if: steps.flags.outputs.workspace
id: apply
run: |
npm run template-oss-apply ${{ steps.flags.outputs.workspace }}
if [[ `git status --porcelain` ]]; then
echo "::set-output name=changes::true"
fi
# This only sets the conventional commit prefix. This workflow can't reliably determine
# what the breaking change is though. If a BREAKING CHANGE message is required then
# this PR check will fail and the commit will be amended with stafftools
if [[ "${{ steps.metadata.outputs.update-type }}" == "version-update:semver-major" ]]; then
prefix='feat!'
else
prefix='chore'
fi
echo "::set-output name=message::$prefix: postinstall for dependabot template-oss PR"
# This step will fail if template-oss has made any workflow updates. It is impossible
# for a workflow to update other workflows. In the case it does fail, we continue
# and then try to apply only a portion of the changes in the next step
- name: Push All Changes
if: steps.apply.outputs.changes
id: push
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git commit -am "${{ steps.apply.outputs.message }}"
git push
# If the previous step failed, then reset the commit and remove any workflow changes
# and attempt to commit and push again. This is helpful because we will have a commit
# with the correct prefix that we can then --amend with @npmcli/stafftools later.
- name: Push All Changes Except Workflows
if: steps.apply.outputs.changes && steps.push.outcome == 'failure'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git reset HEAD~
git checkout HEAD -- .github/workflows/
git clean -fd .github/workflows/
git commit -am "${{ steps.apply.outputs.message }}"
git push
# Check if all the necessary template-oss changes were applied. Since we continued
# on errors in one of the previous steps, this check will fail if our follow up
# only applied a portion of the changes and we need to followup manually.
#
# Note that this used to run `lint` and `postlint` but that will fail this action
# if we've also shipped any linting changes separate from template-oss. We do
# linting in another action, so we want to fail this one only if there are
# template-oss changes that could not be applied.
- name: Check Changes
if: steps.apply.outputs.changes
run: |
npm exec --offline ${{ steps.flags.outputs.workspace }} -- template-oss-check
- name: Fail on Breaking Change
if: steps.apply.outputs.changes && startsWith(steps.apply.outputs.message, 'feat!')
run: |
echo "This PR has a breaking change. Run 'npx -p @npmcli/stafftools gh template-oss-fix'"
echo "for more information on how to fix this with a BREAKING CHANGE footer."
exit 1
node-tar-6.1.13/.github/workflows/pull-request.yml 0000664 0000000 0000000 00000002756 14344174136 0022116 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: Pull Request
on:
pull_request:
types:
- opened
- reopened
- edited
- synchronize
jobs:
commitlint:
name: Lint Commits
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Run Commitlint on Commits
id: commit
continue-on-error: true
run: |
npx --offline commitlint -V --from origin/${{ github.base_ref }} --to ${{ github.event.pull_request.head.sha }}
- name: Run Commitlint on PR Title
if: steps.commit.outcome == 'failure'
run: |
echo ${{ github.event.pull_request.title }} | npx --offline commitlint -V
node-tar-6.1.13/.github/workflows/release.yml 0000664 0000000 0000000 00000024746 14344174136 0021077 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
name: Release
on:
workflow_dispatch:
push:
branches:
- main
- latest
- release/v*
permissions:
contents: write
pull-requests: write
checks: write
jobs:
release:
outputs:
pr: ${{ steps.release.outputs.pr }}
releases: ${{ steps.release.outputs.releases }}
release-flags: ${{ steps.release.outputs.release-flags }}
branch: ${{ steps.release.outputs.pr-branch }}
pr-number: ${{ steps.release.outputs.pr-number }}
comment-id: ${{ steps.pr-comment.outputs.result }}
check-id: ${{ steps.check.outputs.check_id }}
name: Release
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Release Please
id: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
npx --offline template-oss-release-please ${{ github.ref_name }} ${{ github.event_name }}
- name: Post Pull Request Comment
if: steps.release.outputs.pr-number
uses: actions/github-script@v6
id: pr-comment
env:
PR_NUMBER: ${{ steps.release.outputs.pr-number }}
REF_NAME: ${{ github.ref_name }}
with:
script: |
const { REF_NAME, PR_NUMBER } = process.env
const repo = { owner: context.repo.owner, repo: context.repo.repo }
const issue = { ...repo, issue_number: PR_NUMBER }
const { data: workflow } = await github.rest.actions.getWorkflowRun({ ...repo, run_id: context.runId })
let body = '## Release Manager\n\n'
const comments = await github.paginate(github.rest.issues.listComments, issue)
let commentId = comments?.find(c => c.user.login === 'github-actions[bot]' && c.body.startsWith(body))?.id
body += `Release workflow run: ${workflow.html_url}\n\n#### Force CI to Update This Release\n\n`
body += `This PR will be updated and CI will run for every non-\`chore:\` commit that is pushed to \`main\`. `
body += `To force CI to update this PR, run this command:\n\n`
body += `\`\`\`\ngh workflow run release.yml -r ${REF_NAME}\n\`\`\``
if (commentId) {
await github.rest.issues.updateComment({ ...repo, comment_id: commentId, body })
} else {
const { data: comment } = await github.rest.issues.createComment({ ...issue, body })
commentId = comment?.id
}
return commentId
- name: Get Workflow Job
uses: actions/github-script@v6
if: steps.release.outputs.pr-sha
id: check-output
env:
JOB_NAME: "Release"
MATRIX_NAME: ""
with:
script: |
const { owner, repo } = context.repo
const { data } = await github.rest.actions.listJobsForWorkflowRun({
owner,
repo,
run_id: context.runId,
per_page: 100
})
const jobName = process.env.JOB_NAME + process.env.MATRIX_NAME
const job = data.jobs.find(j => j.name.endsWith(jobName))
const jobUrl = job?.html_url
const shaUrl = `${context.serverUrl}/${owner}/${repo}/commit/${{ steps.release.outputs.pr-sha }}`
let summary = `This check is assosciated with ${shaUrl}\n\n`
if (jobUrl) {
summary += `For run logs, click here: ${jobUrl}`
} else {
summary += `Run logs could not be found for a job with name: "${jobName}"`
}
return { summary }
- name: Create Check
uses: LouisBrunner/checks-action@v1.3.1
id: check
if: steps.release.outputs.pr-sha
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: in_progress
name: Release
sha: ${{ steps.release.outputs.pr-sha }}
output: ${{ steps.check-output.outputs.result }}
update:
needs: release
outputs:
sha: ${{ steps.commit.outputs.sha }}
check-id: ${{ steps.check.outputs.check_id }}
name: Update - Release
if: github.repository_owner == 'npm' && needs.release.outputs.pr
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ needs.release.outputs.branch }}
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Run Post Pull Request Actions
env:
RELEASE_PR_NUMBER: ${{ needs.release.outputs.pr-number }}
RELEASE_COMMENT_ID: ${{ needs.release.outputs.comment-id }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
npm exec --offline -- template-oss-release-manager --lockfile=false
npm run rp-pull-request --ignore-scripts --if-present
- name: Commit
id: commit
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git commit --all --amend --no-edit || true
git push --force-with-lease
echo "::set-output name=sha::$(git rev-parse HEAD)"
- name: Get Workflow Job
uses: actions/github-script@v6
if: steps.commit.outputs.sha
id: check-output
env:
JOB_NAME: "Update - Release"
MATRIX_NAME: ""
with:
script: |
const { owner, repo } = context.repo
const { data } = await github.rest.actions.listJobsForWorkflowRun({
owner,
repo,
run_id: context.runId,
per_page: 100
})
const jobName = process.env.JOB_NAME + process.env.MATRIX_NAME
const job = data.jobs.find(j => j.name.endsWith(jobName))
const jobUrl = job?.html_url
const shaUrl = `${context.serverUrl}/${owner}/${repo}/commit/${{ steps.commit.outputs.sha }}`
let summary = `This check is assosciated with ${shaUrl}\n\n`
if (jobUrl) {
summary += `For run logs, click here: ${jobUrl}`
} else {
summary += `Run logs could not be found for a job with name: "${jobName}"`
}
return { summary }
- name: Create Check
uses: LouisBrunner/checks-action@v1.3.1
id: check
if: steps.commit.outputs.sha
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: in_progress
name: Release
sha: ${{ steps.commit.outputs.sha }}
output: ${{ steps.check-output.outputs.result }}
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.3.1
if: needs.release.outputs.check-id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ job.status }}
check_id: ${{ needs.release.outputs.check-id }}
ci:
name: CI - Release
needs: [ release, update ]
if: needs.release.outputs.pr
uses: ./.github/workflows/ci-release.yml
with:
ref: ${{ needs.release.outputs.branch }}
check-sha: ${{ needs.update.outputs.sha }}
post-ci:
needs: [ release, update, ci ]
name: Post CI - Release
if: github.repository_owner == 'npm' && needs.release.outputs.pr && always()
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Get Needs Result
id: needs-result
run: |
result=""
if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then
result="failure"
elif [[ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then
result="cancelled"
else
result="success"
fi
echo "::set-output name=result::$result"
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.3.1
if: needs.update.outputs.check-id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ steps.needs-result.outputs.result }}
check_id: ${{ needs.update.outputs.check-id }}
post-release:
needs: release
name: Post Release - Release
if: github.repository_owner == 'npm' && needs.release.outputs.releases
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v3
- name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install npm@latest
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
- name: Install Dependencies
run: npm i --ignore-scripts --no-audit --no-fund
- name: Run Post Release Actions
env:
RELEASES: ${{ needs.release.outputs.releases }}
run: |
npm run rp-release --ignore-scripts --if-present ${{ join(fromJSON(needs.release.outputs.release-flags), ' ') }}
node-tar-6.1.13/.gitignore 0000664 0000000 0000000 00000000700 14344174136 0015307 0 ustar 00root root 0000000 0000000 # This file is automatically added by @npmcli/template-oss. Do not edit.
# ignore everything in the root
/*
# keep these
!**/.gitignore
!/.commitlintrc.js
!/.eslintrc.js
!/.eslintrc.local.*
!/.github/
!/.gitignore
!/.npmrc
!/.release-please-manifest.json
!/bin/
!/CHANGELOG*
!/CODE_OF_CONDUCT.md
!/docs/
!/index.js
!/lib/
!/LICENSE*
!/map.js
!/package.json
!/README*
!/release-please-config.json
!/scripts/
!/SECURITY.md
!/tap-snapshots/
!/test/
node-tar-6.1.13/.npmrc 0000664 0000000 0000000 00000000135 14344174136 0014441 0 ustar 00root root 0000000 0000000 ; This file is automatically added by @npmcli/template-oss. Do not edit.
package-lock=false
node-tar-6.1.13/.release-please-manifest.json 0000664 0000000 0000000 00000000024 14344174136 0020762 0 ustar 00root root 0000000 0000000 {
".": "6.1.13"
}
node-tar-6.1.13/CHANGELOG.md 0000664 0000000 0000000 00000005535 14344174136 0015143 0 ustar 00root root 0000000 0000000 # Changelog
## [6.1.13](https://github.com/npm/node-tar/compare/v6.1.12...v6.1.13) (2022-12-07)
### Dependencies
* [`cc4e0dd`](https://github.com/npm/node-tar/commit/cc4e0ddfe523a0bce383846a67442c637a65d486) [#343](https://github.com/npm/node-tar/pull/343) bump minipass from 3.3.6 to 4.0.0
## [6.1.12](https://github.com/npm/node-tar/compare/v6.1.11...v6.1.12) (2022-10-31)
### Bug Fixes
* [`57493ee`](https://github.com/npm/node-tar/commit/57493ee66ece50d62114e02914282fc37be3a91a) [#332](https://github.com/npm/node-tar/pull/332) ensuring close event is emited after stream has ended (@webark)
* [`b003c64`](https://github.com/npm/node-tar/commit/b003c64f624332e24e19b30dc011069bb6708680) [#314](https://github.com/npm/node-tar/pull/314) replace deprecated String.prototype.substr() (#314) (@CommanderRoot, @lukekarrys)
### Documentation
* [`f129929`](https://github.com/npm/node-tar/commit/f12992932f171ea248b27fad95e7d489a56d31ed) [#313](https://github.com/npm/node-tar/pull/313) remove dead link to benchmarks (#313) (@yetzt)
* [`c1faa9f`](https://github.com/npm/node-tar/commit/c1faa9f44001dfb0bc7638b2850eb6058bd56a4a) add examples/explanation of using tar.t (@isaacs)
## 6.0
- Drop support for node 6 and 8
- fix symlinks and hardlinks on windows being packed with `\`-style path
targets
## 5.0
- Address unpack race conditions using path reservations
- Change large-numbers errors from TypeError to Error
- Add `TAR_*` error codes
- Raise `TAR_BAD_ARCHIVE` warning/error when there are no valid entries
found in an archive
- do not treat ignored entries as an invalid archive
- drop support for node v4
- unpack: conditionally use a file mapping to write files on Windows
- Set more portable 'mode' value in portable mode
- Set `portable` gzip option in portable mode
## 4.4
- Add 'mtime' option to tar creation to force mtime
- unpack: only reuse file fs entries if nlink = 1
- unpack: rename before unlinking files on Windows
- Fix encoding/decoding of base-256 numbers
- Use `stat` instead of `lstat` when checking CWD
- Always provide a callback to fs.close()
## 4.3
- Add 'transform' unpack option
## 4.2
- Fail when zlib fails
## 4.1
- Add noMtime flag for tar creation
## 4.0
- unpack: raise error if cwd is missing or not a dir
- pack: don't drop dots from dotfiles when prefixing
## 3.1
- Support `@file.tar` as an entry argument to copy entries from one tar
file to another.
- Add `noPax` option
- `noResume` option for tar.t
- win32: convert `>|
All interactions in this repo are covered by the [npm Code of
Conduct](https://docs.npmjs.com/policies/conduct)
The npm cli team may, at its own discretion, moderate, remove, or edit
any interactions such as pull requests, issues, and comments.
node-tar-6.1.13/LICENSE 0000664 0000000 0000000 00000001375 14344174136 0014335 0 ustar 00root root 0000000 0000000 The ISC License
Copyright (c) Isaac Z. Schlueter and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
node-tar-6.1.13/README.md 0000664 0000000 0000000 00000130736 14344174136 0014613 0 ustar 00root root 0000000 0000000 # node-tar
Fast and full-featured Tar for Node.js
The API is designed to mimic the behavior of `tar(1)` on unix systems.
If you are familiar with how tar works, most of this will hopefully be
straightforward for you. If not, then hopefully this module can teach
you useful unix skills that may come in handy someday :)
## Background
A "tar file" or "tarball" is an archive of file system entries
(directories, files, links, etc.) The name comes from "tape archive".
If you run `man tar` on almost any Unix command line, you'll learn
quite a bit about what it can do, and its history.
Tar has 5 main top-level commands:
* `c` Create an archive
* `r` Replace entries within an archive
* `u` Update entries within an archive (ie, replace if they're newer)
* `t` List out the contents of an archive
* `x` Extract an archive to disk
The other flags and options modify how this top level function works.
## High-Level API
These 5 functions are the high-level API. All of them have a
single-character name (for unix nerds familiar with `tar(1)`) as well
as a long name (for everyone else).
All the high-level functions take the following arguments, all three
of which are optional and may be omitted.
1. `options` - An optional object specifying various options
2. `paths` - An array of paths to add or extract
3. `callback` - Called when the command is completed, if async. (If
sync or no file specified, providing a callback throws a
`TypeError`.)
If the command is sync (ie, if `options.sync=true`), then the
callback is not allowed, since the action will be completed immediately.
If a `file` argument is specified, and the command is async, then a
`Promise` is returned. In this case, if async, a callback may be
provided which is called when the command is completed.
If a `file` option is not specified, then a stream is returned. For
`create`, this is a readable stream of the generated archive. For
`list` and `extract` this is a writable stream that an archive should
be written into. If a file is not specified, then a callback is not
allowed, because you're already getting a stream to work with.
`replace` and `update` only work on existing archives, and so require
a `file` argument.
Sync commands without a file argument return a stream that acts on its
input immediately in the same tick. For readable streams, this means
that all of the data is immediately available by calling
`stream.read()`. For writable streams, it will be acted upon as soon
as it is provided, but this can be at any time.
### Warnings and Errors
Tar emits warnings and errors for recoverable and unrecoverable situations,
respectively. In many cases, a warning only affects a single entry in an
archive, or is simply informing you that it's modifying an entry to comply
with the settings provided.
Unrecoverable warnings will always raise an error (ie, emit `'error'` on
streaming actions, throw for non-streaming sync actions, reject the
returned Promise for non-streaming async operations, or call a provided
callback with an `Error` as the first argument). Recoverable errors will
raise an error only if `strict: true` is set in the options.
Respond to (recoverable) warnings by listening to the `warn` event.
Handlers receive 3 arguments:
- `code` String. One of the error codes below. This may not match
`data.code`, which preserves the original error code from fs and zlib.
- `message` String. More details about the error.
- `data` Metadata about the error. An `Error` object for errors raised by
fs and zlib. All fields are attached to errors raisd by tar. Typically
contains the following fields, as relevant:
- `tarCode` The tar error code.
- `code` Either the tar error code, or the error code set by the
underlying system.
- `file` The archive file being read or written.
- `cwd` Working directory for creation and extraction operations.
- `entry` The entry object (if it could be created) for `TAR_ENTRY_INFO`,
`TAR_ENTRY_INVALID`, and `TAR_ENTRY_ERROR` warnings.
- `header` The header object (if it could be created, and the entry could
not be created) for `TAR_ENTRY_INFO` and `TAR_ENTRY_INVALID` warnings.
- `recoverable` Boolean. If `false`, then the warning will emit an
`error`, even in non-strict mode.
#### Error Codes
* `TAR_ENTRY_INFO` An informative error indicating that an entry is being
modified, but otherwise processed normally. For example, removing `/` or
`C:\` from absolute paths if `preservePaths` is not set.
* `TAR_ENTRY_INVALID` An indication that a given entry is not a valid tar
archive entry, and will be skipped. This occurs when:
- a checksum fails,
- a `linkpath` is missing for a link type, or
- a `linkpath` is provided for a non-link type.
If every entry in a parsed archive raises an `TAR_ENTRY_INVALID` error,
then the archive is presumed to be unrecoverably broken, and
`TAR_BAD_ARCHIVE` will be raised.
* `TAR_ENTRY_ERROR` The entry appears to be a valid tar archive entry, but
encountered an error which prevented it from being unpacked. This occurs
when:
- an unrecoverable fs error happens during unpacking,
- an entry has `..` in the path and `preservePaths` is not set, or
- an entry is extracting through a symbolic link, when `preservePaths` is
not set.
* `TAR_ENTRY_UNSUPPORTED` An indication that a given entry is
a valid archive entry, but of a type that is unsupported, and so will be
skipped in archive creation or extracting.
* `TAR_ABORT` When parsing gzipped-encoded archives, the parser will
abort the parse process raise a warning for any zlib errors encountered.
Aborts are considered unrecoverable for both parsing and unpacking.
* `TAR_BAD_ARCHIVE` The archive file is totally hosed. This can happen for
a number of reasons, and always occurs at the end of a parse or extract:
- An entry body was truncated before seeing the full number of bytes.
- The archive contained only invalid entries, indicating that it is
likely not an archive, or at least, not an archive this library can
parse.
`TAR_BAD_ARCHIVE` is considered informative for parse operations, but
unrecoverable for extraction. Note that, if encountered at the end of an
extraction, tar WILL still have extracted as much it could from the
archive, so there may be some garbage files to clean up.
Errors that occur deeper in the system (ie, either the filesystem or zlib)
will have their error codes left intact, and a `tarCode` matching one of
the above will be added to the warning metadata or the raised error object.
Errors generated by tar will have one of the above codes set as the
`error.code` field as well, but since errors originating in zlib or fs will
have their original codes, it's better to read `error.tarCode` if you wish
to see how tar is handling the issue.
### Examples
The API mimics the `tar(1)` command line functionality, with aliases
for more human-readable option and function names. The goal is that
if you know how to use `tar(1)` in Unix, then you know how to use
`require('tar')` in JavaScript.
To replicate `tar czf my-tarball.tgz files and folders`, you'd do:
```js
tar.c(
{
gzip: ,
file: 'my-tarball.tgz'
},
['some', 'files', 'and', 'folders']
).then(_ => { .. tarball has been created .. })
```
To replicate `tar cz files and folders > my-tarball.tgz`, you'd do:
```js
tar.c( // or tar.create
{
gzip:
},
['some', 'files', 'and', 'folders']
).pipe(fs.createWriteStream('my-tarball.tgz'))
```
To replicate `tar xf my-tarball.tgz` you'd do:
```js
tar.x( // or tar.extract(
{
file: 'my-tarball.tgz'
}
).then(_=> { .. tarball has been dumped in cwd .. })
```
To replicate `cat my-tarball.tgz | tar x -C some-dir --strip=1`:
```js
fs.createReadStream('my-tarball.tgz').pipe(
tar.x({
strip: 1,
C: 'some-dir' // alias for cwd:'some-dir', also ok
})
)
```
To replicate `tar tf my-tarball.tgz`, do this:
```js
tar.t({
file: 'my-tarball.tgz',
onentry: entry => { .. do whatever with it .. }
})
```
For example, to just get the list of filenames from an archive:
```js
const getEntryFilenames = async tarballFilename => {
const filenames = []
await tar.t({
file: tarballFilename,
onentry: entry => filenames.push(entry.path),
})
return filenames
}
```
To replicate `cat my-tarball.tgz | tar t` do:
```js
fs.createReadStream('my-tarball.tgz')
.pipe(tar.t())
.on('entry', entry => { .. do whatever with it .. })
```
To do anything synchronous, add `sync: true` to the options. Note
that sync functions don't take a callback and don't return a promise.
When the function returns, it's already done. Sync methods without a
file argument return a sync stream, which flushes immediately. But,
of course, it still won't be done until you `.end()` it.
```js
const getEntryFilenamesSync = tarballFilename => {
const filenames = []
tar.t({
file: tarballFilename,
onentry: entry => filenames.push(entry.path),
sync: true,
})
return filenames
}
```
To filter entries, add `filter: ` to the options.
Tar-creating methods call the filter with `filter(path, stat)`.
Tar-reading methods (including extraction) call the filter with
`filter(path, entry)`. The filter is called in the `this`-context of
the `Pack` or `Unpack` stream object.
The arguments list to `tar t` and `tar x` specify a list of filenames
to extract or list, so they're equivalent to a filter that tests if
the file is in the list.
For those who _aren't_ fans of tar's single-character command names:
```
tar.c === tar.create
tar.r === tar.replace (appends to archive, file is required)
tar.u === tar.update (appends if newer, file is required)
tar.x === tar.extract
tar.t === tar.list
```
Keep reading for all the command descriptions and options, as well as
the low-level API that they are built on.
### tar.c(options, fileList, callback) [alias: tar.create]
Create a tarball archive.
The `fileList` is an array of paths to add to the tarball. Adding a
directory also adds its children recursively.
An entry in `fileList` that starts with an `@` symbol is a tar archive
whose entries will be added. To add a file that starts with `@`,
prepend it with `./`.
The following options are supported:
- `file` Write the tarball archive to the specified filename. If this
is specified, then the callback will be fired when the file has been
written, and a promise will be returned that resolves when the file
is written. If a filename is not specified, then a Readable Stream
will be returned which will emit the file data. [Alias: `f`]
- `sync` Act synchronously. If this is set, then any provided file
will be fully written after the call to `tar.c`. If this is set,
and a file is not provided, then the resulting stream will already
have the data ready to `read` or `emit('data')` as soon as you
request it.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `strict` Treat warnings as crash-worthy errors. Default false.
- `cwd` The current working directory for creating the archive.
Defaults to `process.cwd()`. [Alias: `C`]
- `prefix` A path portion to prefix onto the entries in the archive.
- `gzip` Set to any truthy value to create a gzipped archive, or an
object with settings for `zlib.Gzip()` [Alias: `z`]
- `filter` A function that gets called with `(path, stat)` for each
entry being added. Return `true` to add the entry to the archive,
or `false` to omit it.
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths. [Alias: `P`]
- `mode` The mode to set on the created file archive
- `noDirRecurse` Do not recursively archive the contents of
directories. [Alias: `n`]
- `follow` Set to true to pack the targets of symbolic links. Without
this option, symbolic links are archived as such. [Alias: `L`, `h`]
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
[Alias: `m`, `no-mtime`]
- `mtime` Set to a `Date` object to force a specific `mtime` for
everything added to the archive. Overridden by `noMtime`.
The following options are mostly internal, but can be modified in some
advanced use cases, such as re-using caches between runs.
- `linkCache` A Map object containing the device and inode value for
any file whose nlink is > 1, to identify hard links.
- `statCache` A Map object that caches calls `lstat`.
- `readdirCache` A Map object that caches calls to `readdir`.
- `jobs` A number specifying how many concurrent jobs to run.
Defaults to 4.
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 16 MB.
### tar.x(options, fileList, callback) [alias: tar.extract]
Extract a tarball archive.
The `fileList` is an array of paths to extract from the tarball. If
no paths are provided, then all the entries are extracted.
If the archive is gzipped, then tar will detect this and unzip it.
Note that all directories that are created will be forced to be
writable, readable, and listable by their owner, to avoid cases where
a directory prevents extraction of child entries by virtue of its
mode.
Most extraction errors will cause a `warn` event to be emitted. If
the `cwd` is missing, or not a directory, then the extraction will
fail completely.
The following options are supported:
- `cwd` Extract files relative to the specified directory. Defaults
to `process.cwd()`. If provided, this must exist and must be a
directory. [Alias: `C`]
- `file` The archive file to extract. If not specified, then a
Writable stream is returned where the archive data should be
written. [Alias: `f`]
- `sync` Create files and directories synchronously.
- `strict` Treat warnings as crash-worthy errors. Default false.
- `filter` A function that gets called with `(path, entry)` for each
entry being unpacked. Return `true` to unpack the entry from the
archive, or `false` to skip it.
- `newer` Set to true to keep the existing file on disk if it's newer
than the file in the archive. [Alias: `keep-newer`,
`keep-newer-files`]
- `keep` Do not overwrite existing files. In particular, if a file
appears more than once in an archive, later copies will not
overwrite earlier copies. [Alias: `k`, `keep-existing`]
- `preservePaths` Allow absolute paths, paths containing `..`, and
extracting through symbolic links. By default, `/` is stripped from
absolute paths, `..` paths are not extracted, and any file whose
location would be modified by a symbolic link is not extracted.
[Alias: `P`]
- `unlink` Unlink files before creating them. Without this option,
tar overwrites existing files, which preserves existing hardlinks.
With this option, existing hardlinks will be broken, as will any
symlink that would affect the location of an extracted file. [Alias:
`U`]
- `strip` Remove the specified number of leading path elements.
Pathnames with fewer elements will be silently skipped. Note that
the pathname is edited after applying the filter, but before
security checks. [Alias: `strip-components`, `stripComponents`]
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `preserveOwner` If true, tar will set the `uid` and `gid` of
extracted entries to the `uid` and `gid` fields in the archive.
This defaults to true when run as root, and false otherwise. If
false, then files and directories will be set with the owner and
group of the user running the process. This is similar to `-p` in
`tar(1)`, but ACLs and other system-specific data is never unpacked
in this implementation, and modes are set by default already.
[Alias: `p`]
- `uid` Set to a number to force ownership of all extracted files and
folders, and all implicitly created directories, to be owned by the
specified user id, regardless of the `uid` field in the archive.
Cannot be used along with `preserveOwner`. Requires also setting a
`gid` option.
- `gid` Set to a number to force ownership of all extracted files and
folders, and all implicitly created directories, to be owned by the
specified group id, regardless of the `gid` field in the archive.
Cannot be used along with `preserveOwner`. Requires also setting a
`uid` option.
- `noMtime` Set to true to omit writing `mtime` value for extracted
entries. [Alias: `m`, `no-mtime`]
- `transform` Provide a function that takes an `entry` object, and
returns a stream, or any falsey value. If a stream is provided,
then that stream's data will be written instead of the contents of
the archive entry. If a falsey value is provided, then the entry is
written to disk as normal. (To exclude items from extraction, use
the `filter` option described above.)
- `onentry` A function that gets called with `(entry)` for each entry
that passes the filter.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `noChmod` Set to true to omit calling `fs.chmod()` to ensure that the
extracted file matches the entry mode. This also suppresses the call to
`process.umask()` to determine the default umask value, since tar will
extract with whatever mode is provided, and let the process `umask` apply
normally.
The following options are mostly internal, but can be modified in some
advanced use cases, such as re-using caches between runs.
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 16 MB.
- `umask` Filter the modes of entries like `process.umask()`.
- `dmode` Default mode for directories
- `fmode` Default mode for files
- `dirCache` A Map object of which directories exist.
- `maxMetaEntrySize` The maximum size of meta entries that is
supported. Defaults to 1 MB.
Note that using an asynchronous stream type with the `transform`
option will cause undefined behavior in sync extractions.
[MiniPass](http://npm.im/minipass)-based streams are designed for this
use case.
### tar.t(options, fileList, callback) [alias: tar.list]
List the contents of a tarball archive.
The `fileList` is an array of paths to list from the tarball. If
no paths are provided, then all the entries are listed.
If the archive is gzipped, then tar will detect this and unzip it.
If the `file` option is _not_ provided, then returns an event emitter that
emits `entry` events with `tar.ReadEntry` objects. However, they don't
emit `'data'` or `'end'` events. (If you want to get actual readable
entries, use the `tar.Parse` class instead.)
If a `file` option _is_ provided, then the return value will be a promise
that resolves when the file has been fully traversed in async mode, or
`undefined` if `sync: true` is set. Thus, you _must_ specify an `onentry`
method in order to do anything useful with the data it parses.
The following options are supported:
- `file` The archive file to list. If not specified, then a
Writable stream is returned where the archive data should be
written. [Alias: `f`]
- `sync` Read the specified file synchronously. (This has no effect
when a file option isn't specified, because entries are emitted as
fast as they are parsed from the stream anyway.)
- `strict` Treat warnings as crash-worthy errors. Default false.
- `filter` A function that gets called with `(path, entry)` for each
entry being listed. Return `true` to emit the entry from the
archive, or `false` to skip it.
- `onentry` A function that gets called with `(entry)` for each entry
that passes the filter. This is important for when `file` is set,
because there is no other way to do anything useful with this method.
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 16 MB.
- `noResume` By default, `entry` streams are resumed immediately after
the call to `onentry`. Set `noResume: true` to suppress this
behavior. Note that by opting into this, the stream will never
complete until the entry data is consumed.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
### tar.u(options, fileList, callback) [alias: tar.update]
Add files to an archive if they are newer than the entry already in
the tarball archive.
The `fileList` is an array of paths to add to the tarball. Adding a
directory also adds its children recursively.
An entry in `fileList` that starts with an `@` symbol is a tar archive
whose entries will be added. To add a file that starts with `@`,
prepend it with `./`.
The following options are supported:
- `file` Required. Write the tarball archive to the specified
filename. [Alias: `f`]
- `sync` Act synchronously. If this is set, then any provided file
will be fully written after the call to `tar.c`.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `strict` Treat warnings as crash-worthy errors. Default false.
- `cwd` The current working directory for adding entries to the
archive. Defaults to `process.cwd()`. [Alias: `C`]
- `prefix` A path portion to prefix onto the entries in the archive.
- `gzip` Set to any truthy value to create a gzipped archive, or an
object with settings for `zlib.Gzip()` [Alias: `z`]
- `filter` A function that gets called with `(path, stat)` for each
entry being added. Return `true` to add the entry to the archive,
or `false` to omit it.
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths. [Alias: `P`]
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 16 MB.
- `noDirRecurse` Do not recursively archive the contents of
directories. [Alias: `n`]
- `follow` Set to true to pack the targets of symbolic links. Without
this option, symbolic links are archived as such. [Alias: `L`, `h`]
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
[Alias: `m`, `no-mtime`]
- `mtime` Set to a `Date` object to force a specific `mtime` for
everything added to the archive. Overridden by `noMtime`.
### tar.r(options, fileList, callback) [alias: tar.replace]
Add files to an existing archive. Because later entries override
earlier entries, this effectively replaces any existing entries.
The `fileList` is an array of paths to add to the tarball. Adding a
directory also adds its children recursively.
An entry in `fileList` that starts with an `@` symbol is a tar archive
whose entries will be added. To add a file that starts with `@`,
prepend it with `./`.
The following options are supported:
- `file` Required. Write the tarball archive to the specified
filename. [Alias: `f`]
- `sync` Act synchronously. If this is set, then any provided file
will be fully written after the call to `tar.c`.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `strict` Treat warnings as crash-worthy errors. Default false.
- `cwd` The current working directory for adding entries to the
archive. Defaults to `process.cwd()`. [Alias: `C`]
- `prefix` A path portion to prefix onto the entries in the archive.
- `gzip` Set to any truthy value to create a gzipped archive, or an
object with settings for `zlib.Gzip()` [Alias: `z`]
- `filter` A function that gets called with `(path, stat)` for each
entry being added. Return `true` to add the entry to the archive,
or `false` to omit it.
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths. [Alias: `P`]
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 16 MB.
- `noDirRecurse` Do not recursively archive the contents of
directories. [Alias: `n`]
- `follow` Set to true to pack the targets of symbolic links. Without
this option, symbolic links are archived as such. [Alias: `L`, `h`]
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
[Alias: `m`, `no-mtime`]
- `mtime` Set to a `Date` object to force a specific `mtime` for
everything added to the archive. Overridden by `noMtime`.
## Low-Level API
### class tar.Pack
A readable tar stream.
Has all the standard readable stream interface stuff. `'data'` and
`'end'` events, `read()` method, `pause()` and `resume()`, etc.
#### constructor(options)
The following options are supported:
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `strict` Treat warnings as crash-worthy errors. Default false.
- `cwd` The current working directory for creating the archive.
Defaults to `process.cwd()`.
- `prefix` A path portion to prefix onto the entries in the archive.
- `gzip` Set to any truthy value to create a gzipped archive, or an
object with settings for `zlib.Gzip()`
- `filter` A function that gets called with `(path, stat)` for each
entry being added. Return `true` to add the entry to the archive,
or `false` to omit it.
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths.
- `linkCache` A Map object containing the device and inode value for
any file whose nlink is > 1, to identify hard links.
- `statCache` A Map object that caches calls `lstat`.
- `readdirCache` A Map object that caches calls to `readdir`.
- `jobs` A number specifying how many concurrent jobs to run.
Defaults to 4.
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 16 MB.
- `noDirRecurse` Do not recursively archive the contents of
directories.
- `follow` Set to true to pack the targets of symbolic links. Without
this option, symbolic links are archived as such.
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
- `mtime` Set to a `Date` object to force a specific `mtime` for
everything added to the archive. Overridden by `noMtime`.
#### add(path)
Adds an entry to the archive. Returns the Pack stream.
#### write(path)
Adds an entry to the archive. Returns true if flushed.
#### end()
Finishes the archive.
### class tar.Pack.Sync
Synchronous version of `tar.Pack`.
### class tar.Unpack
A writable stream that unpacks a tar archive onto the file system.
All the normal writable stream stuff is supported. `write()` and
`end()` methods, `'drain'` events, etc.
Note that all directories that are created will be forced to be
writable, readable, and listable by their owner, to avoid cases where
a directory prevents extraction of child entries by virtue of its
mode.
`'close'` is emitted when it's done writing stuff to the file system.
Most unpack errors will cause a `warn` event to be emitted. If the
`cwd` is missing, or not a directory, then an error will be emitted.
#### constructor(options)
- `cwd` Extract files relative to the specified directory. Defaults
to `process.cwd()`. If provided, this must exist and must be a
directory.
- `filter` A function that gets called with `(path, entry)` for each
entry being unpacked. Return `true` to unpack the entry from the
archive, or `false` to skip it.
- `newer` Set to true to keep the existing file on disk if it's newer
than the file in the archive.
- `keep` Do not overwrite existing files. In particular, if a file
appears more than once in an archive, later copies will not
overwrite earlier copies.
- `preservePaths` Allow absolute paths, paths containing `..`, and
extracting through symbolic links. By default, `/` is stripped from
absolute paths, `..` paths are not extracted, and any file whose
location would be modified by a symbolic link is not extracted.
- `unlink` Unlink files before creating them. Without this option,
tar overwrites existing files, which preserves existing hardlinks.
With this option, existing hardlinks will be broken, as will any
symlink that would affect the location of an extracted file.
- `strip` Remove the specified number of leading path elements.
Pathnames with fewer elements will be silently skipped. Note that
the pathname is edited after applying the filter, but before
security checks.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `umask` Filter the modes of entries like `process.umask()`.
- `dmode` Default mode for directories
- `fmode` Default mode for files
- `dirCache` A Map object of which directories exist.
- `maxMetaEntrySize` The maximum size of meta entries that is
supported. Defaults to 1 MB.
- `preserveOwner` If true, tar will set the `uid` and `gid` of
extracted entries to the `uid` and `gid` fields in the archive.
This defaults to true when run as root, and false otherwise. If
false, then files and directories will be set with the owner and
group of the user running the process. This is similar to `-p` in
`tar(1)`, but ACLs and other system-specific data is never unpacked
in this implementation, and modes are set by default already.
- `win32` True if on a windows platform. Causes behavior where
filenames containing `<|>?` chars are converted to
windows-compatible values while being unpacked.
- `uid` Set to a number to force ownership of all extracted files and
folders, and all implicitly created directories, to be owned by the
specified user id, regardless of the `uid` field in the archive.
Cannot be used along with `preserveOwner`. Requires also setting a
`gid` option.
- `gid` Set to a number to force ownership of all extracted files and
folders, and all implicitly created directories, to be owned by the
specified group id, regardless of the `gid` field in the archive.
Cannot be used along with `preserveOwner`. Requires also setting a
`uid` option.
- `noMtime` Set to true to omit writing `mtime` value for extracted
entries.
- `transform` Provide a function that takes an `entry` object, and
returns a stream, or any falsey value. If a stream is provided,
then that stream's data will be written instead of the contents of
the archive entry. If a falsey value is provided, then the entry is
written to disk as normal. (To exclude items from extraction, use
the `filter` option described above.)
- `strict` Treat warnings as crash-worthy errors. Default false.
- `onentry` A function that gets called with `(entry)` for each entry
that passes the filter.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `noChmod` Set to true to omit calling `fs.chmod()` to ensure that the
extracted file matches the entry mode. This also suppresses the call to
`process.umask()` to determine the default umask value, since tar will
extract with whatever mode is provided, and let the process `umask` apply
normally.
### class tar.Unpack.Sync
Synchronous version of `tar.Unpack`.
Note that using an asynchronous stream type with the `transform`
option will cause undefined behavior in sync unpack streams.
[MiniPass](http://npm.im/minipass)-based streams are designed for this
use case.
### class tar.Parse
A writable stream that parses a tar archive stream. All the standard
writable stream stuff is supported.
If the archive is gzipped, then tar will detect this and unzip it.
Emits `'entry'` events with `tar.ReadEntry` objects, which are
themselves readable streams that you can pipe wherever.
Each `entry` will not emit until the one before it is flushed through,
so make sure to either consume the data (with `on('data', ...)` or
`.pipe(...)`) or throw it away with `.resume()` to keep the stream
flowing.
#### constructor(options)
Returns an event emitter that emits `entry` events with
`tar.ReadEntry` objects.
The following options are supported:
- `strict` Treat warnings as crash-worthy errors. Default false.
- `filter` A function that gets called with `(path, entry)` for each
entry being listed. Return `true` to emit the entry from the
archive, or `false` to skip it.
- `onentry` A function that gets called with `(entry)` for each entry
that passes the filter.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
#### abort(error)
Stop all parsing activities. This is called when there are zlib
errors. It also emits an unrecoverable warning with the error provided.
### class tar.ReadEntry extends [MiniPass](http://npm.im/minipass)
A representation of an entry that is being read out of a tar archive.
It has the following fields:
- `extended` The extended metadata object provided to the constructor.
- `globalExtended` The global extended metadata object provided to the
constructor.
- `remain` The number of bytes remaining to be written into the
stream.
- `blockRemain` The number of 512-byte blocks remaining to be written
into the stream.
- `ignore` Whether this entry should be ignored.
- `meta` True if this represents metadata about the next entry, false
if it represents a filesystem object.
- All the fields from the header, extended header, and global extended
header are added to the ReadEntry object. So it has `path`, `type`,
`size`, `mode`, and so on.
#### constructor(header, extended, globalExtended)
Create a new ReadEntry object with the specified header, extended
header, and global extended header values.
### class tar.WriteEntry extends [MiniPass](http://npm.im/minipass)
A representation of an entry that is being written from the file
system into a tar archive.
Emits data for the Header, and for the Pax Extended Header if one is
required, as well as any body data.
Creating a WriteEntry for a directory does not also create
WriteEntry objects for all of the directory contents.
It has the following fields:
- `path` The path field that will be written to the archive. By
default, this is also the path from the cwd to the file system
object.
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `myuid` If supported, the uid of the user running the current
process.
- `myuser` The `env.USER` string if set, or `''`. Set as the entry
`uname` field if the file's `uid` matches `this.myuid`.
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 1 MB.
- `linkCache` A Map object containing the device and inode value for
any file whose nlink is > 1, to identify hard links.
- `statCache` A Map object that caches calls `lstat`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths.
- `cwd` The current working directory for creating the archive.
Defaults to `process.cwd()`.
- `absolute` The absolute path to the entry on the filesystem. By
default, this is `path.resolve(this.cwd, this.path)`, but it can be
overridden explicitly.
- `strict` Treat warnings as crash-worthy errors. Default false.
- `win32` True if on a windows platform. Causes behavior where paths
replace `\` with `/` and filenames containing the windows-compatible
forms of `<|>?:` characters are converted to actual `<|>?:` characters
in the archive.
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
#### constructor(path, options)
`path` is the path of the entry as it is written in the archive.
The following options are supported:
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `maxReadSize` The maximum buffer size for `fs.read()` operations.
Defaults to 1 MB.
- `linkCache` A Map object containing the device and inode value for
any file whose nlink is > 1, to identify hard links.
- `statCache` A Map object that caches calls `lstat`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths.
- `cwd` The current working directory for creating the archive.
Defaults to `process.cwd()`.
- `absolute` The absolute path to the entry on the filesystem. By
default, this is `path.resolve(this.cwd, this.path)`, but it can be
overridden explicitly.
- `strict` Treat warnings as crash-worthy errors. Default false.
- `win32` True if on a windows platform. Causes behavior where paths
replace `\` with `/`.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
- `umask` Set to restrict the modes on the entries in the archive,
somewhat like how umask works on file creation. Defaults to
`process.umask()` on unix systems, or `0o22` on Windows.
#### warn(message, data)
If strict, emit an error with the provided message.
Othewise, emit a `'warn'` event with the provided message and data.
### class tar.WriteEntry.Sync
Synchronous version of tar.WriteEntry
### class tar.WriteEntry.Tar
A version of tar.WriteEntry that gets its data from a tar.ReadEntry
instead of from the filesystem.
#### constructor(readEntry, options)
`readEntry` is the entry being read out of another archive.
The following options are supported:
- `portable` Omit metadata that is system-specific: `ctime`, `atime`,
`uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and `nlink`. Note
that `mtime` is still included, because this is necessary for other
time-based operations. Additionally, `mode` is set to a "reasonable
default" for most unix systems, based on a `umask` value of `0o22`.
- `preservePaths` Allow absolute paths. By default, `/` is stripped
from absolute paths.
- `strict` Treat warnings as crash-worthy errors. Default false.
- `onwarn` A function that will get called with `(code, message, data)` for
any warnings encountered. (See "Warnings and Errors")
- `noMtime` Set to true to omit writing `mtime` values for entries.
Note that this prevents using other mtime-based features like
`tar.update` or the `keepNewer` option with the resulting tar archive.
### class tar.Header
A class for reading and writing header blocks.
It has the following fields:
- `nullBlock` True if decoding a block which is entirely composed of
`0x00` null bytes. (Useful because tar files are terminated by
at least 2 null blocks.)
- `cksumValid` True if the checksum in the header is valid, false
otherwise.
- `needPax` True if the values, as encoded, will require a Pax
extended header.
- `path` The path of the entry.
- `mode` The 4 lowest-order octal digits of the file mode. That is,
read/write/execute permissions for world, group, and owner, and the
setuid, setgid, and sticky bits.
- `uid` Numeric user id of the file owner
- `gid` Numeric group id of the file owner
- `size` Size of the file in bytes
- `mtime` Modified time of the file
- `cksum` The checksum of the header. This is generated by adding all
the bytes of the header block, treating the checksum field itself as
all ascii space characters (that is, `0x20`).
- `type` The human-readable name of the type of entry this represents,
or the alphanumeric key if unknown.
- `typeKey` The alphanumeric key for the type of entry this header
represents.
- `linkpath` The target of Link and SymbolicLink entries.
- `uname` Human-readable user name of the file owner
- `gname` Human-readable group name of the file owner
- `devmaj` The major portion of the device number. Always `0` for
files, directories, and links.
- `devmin` The minor portion of the device number. Always `0` for
files, directories, and links.
- `atime` File access time.
- `ctime` File change time.
#### constructor(data, [offset=0])
`data` is optional. It is either a Buffer that should be interpreted
as a tar Header starting at the specified offset and continuing for
512 bytes, or a data object of keys and values to set on the header
object, and eventually encode as a tar Header.
#### decode(block, offset)
Decode the provided buffer starting at the specified offset.
Buffer length must be greater than 512 bytes.
#### set(data)
Set the fields in the data object.
#### encode(buffer, offset)
Encode the header fields into the buffer at the specified offset.
Returns `this.needPax` to indicate whether a Pax Extended Header is
required to properly encode the specified data.
### class tar.Pax
An object representing a set of key-value pairs in an Pax extended
header entry.
It has the following fields. Where the same name is used, they have
the same semantics as the tar.Header field of the same name.
- `global` True if this represents a global extended header, or false
if it is for a single entry.
- `atime`
- `charset`
- `comment`
- `ctime`
- `gid`
- `gname`
- `linkpath`
- `mtime`
- `path`
- `size`
- `uid`
- `uname`
- `dev`
- `ino`
- `nlink`
#### constructor(object, global)
Set the fields set in the object. `global` is a boolean that defaults
to false.
#### encode()
Return a Buffer containing the header and body for the Pax extended
header entry, or `null` if there is nothing to encode.
#### encodeBody()
Return a string representing the body of the pax extended header
entry.
#### encodeField(fieldName)
Return a string representing the key/value encoding for the specified
fieldName, or `''` if the field is unset.
### tar.Pax.parse(string, extended, global)
Return a new Pax object created by parsing the contents of the string
provided.
If the `extended` object is set, then also add the fields from that
object. (This is necessary because multiple metadata entries can
occur in sequence.)
### tar.types
A translation table for the `type` field in tar headers.
#### tar.types.name.get(code)
Get the human-readable name for a given alphanumeric code.
#### tar.types.code.get(name)
Get the alphanumeric code for a given human-readable name.
node-tar-6.1.13/SECURITY.md 0000664 0000000 0000000 00000002467 14344174136 0015124 0 ustar 00root root 0000000 0000000
GitHub takes the security of our software products and services seriously, including the open source code repositories managed through our GitHub organizations, such as [GitHub](https://github.com/GitHub).
If you believe you have found a security vulnerability in this GitHub-owned open source repository, you can report it to us in one of two ways.
If the vulnerability you have found is *not* [in scope for the GitHub Bug Bounty Program](https://bounty.github.com/#scope) or if you do not wish to be considered for a bounty reward, please report the issue to us directly using [private vulnerability reporting](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability).
If the vulnerability you have found is [in scope for the GitHub Bug Bounty Program](https://bounty.github.com/#scope) and you would like for your finding to be considered for a bounty reward, please submit the vulnerability to us through [HackerOne](https://hackerone.com/github) in order to be eligible to receive a bounty award.
**Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.**
Thanks for helping make GitHub safe for everyone.
node-tar-6.1.13/index.js 0000664 0000000 0000000 00000001253 14344174136 0014770 0 ustar 00root root 0000000 0000000 'use strict'
// high-level commands
exports.c = exports.create = require('./lib/create.js')
exports.r = exports.replace = require('./lib/replace.js')
exports.t = exports.list = require('./lib/list.js')
exports.u = exports.update = require('./lib/update.js')
exports.x = exports.extract = require('./lib/extract.js')
// classes
exports.Pack = require('./lib/pack.js')
exports.Unpack = require('./lib/unpack.js')
exports.Parse = require('./lib/parse.js')
exports.ReadEntry = require('./lib/read-entry.js')
exports.WriteEntry = require('./lib/write-entry.js')
exports.Header = require('./lib/header.js')
exports.Pax = require('./lib/pax.js')
exports.types = require('./lib/types.js')
node-tar-6.1.13/lib/ 0000775 0000000 0000000 00000000000 14344174136 0014070 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/lib/create.js 0000664 0000000 0000000 00000004533 14344174136 0015676 0 ustar 00root root 0000000 0000000 'use strict'
// tar -c
const hlo = require('./high-level-opt.js')
const Pack = require('./pack.js')
const fsm = require('fs-minipass')
const t = require('./list.js')
const path = require('path')
module.exports = (opt_, files, cb) => {
if (typeof files === 'function') {
cb = files
}
if (Array.isArray(opt_)) {
files = opt_, opt_ = {}
}
if (!files || !Array.isArray(files) || !files.length) {
throw new TypeError('no files or directories specified')
}
files = Array.from(files)
const opt = hlo(opt_)
if (opt.sync && typeof cb === 'function') {
throw new TypeError('callback not supported for sync tar functions')
}
if (!opt.file && typeof cb === 'function') {
throw new TypeError('callback only supported with file option')
}
return opt.file && opt.sync ? createFileSync(opt, files)
: opt.file ? createFile(opt, files, cb)
: opt.sync ? createSync(opt, files)
: create(opt, files)
}
const createFileSync = (opt, files) => {
const p = new Pack.Sync(opt)
const stream = new fsm.WriteStreamSync(opt.file, {
mode: opt.mode || 0o666,
})
p.pipe(stream)
addFilesSync(p, files)
}
const createFile = (opt, files, cb) => {
const p = new Pack(opt)
const stream = new fsm.WriteStream(opt.file, {
mode: opt.mode || 0o666,
})
p.pipe(stream)
const promise = new Promise((res, rej) => {
stream.on('error', rej)
stream.on('close', res)
p.on('error', rej)
})
addFilesAsync(p, files)
return cb ? promise.then(cb, cb) : promise
}
const addFilesSync = (p, files) => {
files.forEach(file => {
if (file.charAt(0) === '@') {
t({
file: path.resolve(p.cwd, file.slice(1)),
sync: true,
noResume: true,
onentry: entry => p.add(entry),
})
} else {
p.add(file)
}
})
p.end()
}
const addFilesAsync = (p, files) => {
while (files.length) {
const file = files.shift()
if (file.charAt(0) === '@') {
return t({
file: path.resolve(p.cwd, file.slice(1)),
noResume: true,
onentry: entry => p.add(entry),
}).then(_ => addFilesAsync(p, files))
} else {
p.add(file)
}
}
p.end()
}
const createSync = (opt, files) => {
const p = new Pack.Sync(opt)
addFilesSync(p, files)
return p
}
const create = (opt, files) => {
const p = new Pack(opt)
addFilesAsync(p, files)
return p
}
node-tar-6.1.13/lib/extract.js 0000664 0000000 0000000 00000005444 14344174136 0016107 0 ustar 00root root 0000000 0000000 'use strict'
// tar -x
const hlo = require('./high-level-opt.js')
const Unpack = require('./unpack.js')
const fs = require('fs')
const fsm = require('fs-minipass')
const path = require('path')
const stripSlash = require('./strip-trailing-slashes.js')
module.exports = (opt_, files, cb) => {
if (typeof opt_ === 'function') {
cb = opt_, files = null, opt_ = {}
} else if (Array.isArray(opt_)) {
files = opt_, opt_ = {}
}
if (typeof files === 'function') {
cb = files, files = null
}
if (!files) {
files = []
} else {
files = Array.from(files)
}
const opt = hlo(opt_)
if (opt.sync && typeof cb === 'function') {
throw new TypeError('callback not supported for sync tar functions')
}
if (!opt.file && typeof cb === 'function') {
throw new TypeError('callback only supported with file option')
}
if (files.length) {
filesFilter(opt, files)
}
return opt.file && opt.sync ? extractFileSync(opt)
: opt.file ? extractFile(opt, cb)
: opt.sync ? extractSync(opt)
: extract(opt)
}
// construct a filter that limits the file entries listed
// include child entries if a dir is included
const filesFilter = (opt, files) => {
const map = new Map(files.map(f => [stripSlash(f), true]))
const filter = opt.filter
const mapHas = (file, r) => {
const root = r || path.parse(file).root || '.'
const ret = file === root ? false
: map.has(file) ? map.get(file)
: mapHas(path.dirname(file), root)
map.set(file, ret)
return ret
}
opt.filter = filter
? (file, entry) => filter(file, entry) && mapHas(stripSlash(file))
: file => mapHas(stripSlash(file))
}
const extractFileSync = opt => {
const u = new Unpack.Sync(opt)
const file = opt.file
const stat = fs.statSync(file)
// This trades a zero-byte read() syscall for a stat
// However, it will usually result in less memory allocation
const readSize = opt.maxReadSize || 16 * 1024 * 1024
const stream = new fsm.ReadStreamSync(file, {
readSize: readSize,
size: stat.size,
})
stream.pipe(u)
}
const extractFile = (opt, cb) => {
const u = new Unpack(opt)
const readSize = opt.maxReadSize || 16 * 1024 * 1024
const file = opt.file
const p = new Promise((resolve, reject) => {
u.on('error', reject)
u.on('close', resolve)
// This trades a zero-byte read() syscall for a stat
// However, it will usually result in less memory allocation
fs.stat(file, (er, stat) => {
if (er) {
reject(er)
} else {
const stream = new fsm.ReadStream(file, {
readSize: readSize,
size: stat.size,
})
stream.on('error', reject)
stream.pipe(u)
}
})
})
return cb ? p.then(cb, cb) : p
}
const extractSync = opt => new Unpack.Sync(opt)
const extract = opt => new Unpack(opt)
node-tar-6.1.13/lib/get-write-flag.js 0000664 0000000 0000000 00000001631 14344174136 0017245 0 ustar 00root root 0000000 0000000 // Get the appropriate flag to use for creating files
// We use fmap on Windows platforms for files less than
// 512kb. This is a fairly low limit, but avoids making
// things slower in some cases. Since most of what this
// library is used for is extracting tarballs of many
// relatively small files in npm packages and the like,
// it can be a big boost on Windows platforms.
// Only supported in Node v12.9.0 and above.
const platform = process.env.__FAKE_PLATFORM__ || process.platform
const isWindows = platform === 'win32'
const fs = global.__FAKE_TESTING_FS__ || require('fs')
/* istanbul ignore next */
const { O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP = 0 } = fs.constants
const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP
const fMapLimit = 512 * 1024
const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY
module.exports = !fMapEnabled ? () => 'w'
: size => size < fMapLimit ? fMapFlag : 'w'
node-tar-6.1.13/lib/header.js 0000664 0000000 0000000 00000021702 14344174136 0015660 0 ustar 00root root 0000000 0000000 'use strict'
// parse a 512-byte header block to a data object, or vice-versa
// encode returns `true` if a pax extended header is needed, because
// the data could not be faithfully encoded in a simple header.
// (Also, check header.needPax to see if it needs a pax header.)
const types = require('./types.js')
const pathModule = require('path').posix
const large = require('./large-numbers.js')
const SLURP = Symbol('slurp')
const TYPE = Symbol('type')
class Header {
constructor (data, off, ex, gex) {
this.cksumValid = false
this.needPax = false
this.nullBlock = false
this.block = null
this.path = null
this.mode = null
this.uid = null
this.gid = null
this.size = null
this.mtime = null
this.cksum = null
this[TYPE] = '0'
this.linkpath = null
this.uname = null
this.gname = null
this.devmaj = 0
this.devmin = 0
this.atime = null
this.ctime = null
if (Buffer.isBuffer(data)) {
this.decode(data, off || 0, ex, gex)
} else if (data) {
this.set(data)
}
}
decode (buf, off, ex, gex) {
if (!off) {
off = 0
}
if (!buf || !(buf.length >= off + 512)) {
throw new Error('need 512 bytes for header')
}
this.path = decString(buf, off, 100)
this.mode = decNumber(buf, off + 100, 8)
this.uid = decNumber(buf, off + 108, 8)
this.gid = decNumber(buf, off + 116, 8)
this.size = decNumber(buf, off + 124, 12)
this.mtime = decDate(buf, off + 136, 12)
this.cksum = decNumber(buf, off + 148, 12)
// if we have extended or global extended headers, apply them now
// See https://github.com/npm/node-tar/pull/187
this[SLURP](ex)
this[SLURP](gex, true)
// old tar versions marked dirs as a file with a trailing /
this[TYPE] = decString(buf, off + 156, 1)
if (this[TYPE] === '') {
this[TYPE] = '0'
}
if (this[TYPE] === '0' && this.path.slice(-1) === '/') {
this[TYPE] = '5'
}
// tar implementations sometimes incorrectly put the stat(dir).size
// as the size in the tarball, even though Directory entries are
// not able to have any body at all. In the very rare chance that
// it actually DOES have a body, we weren't going to do anything with
// it anyway, and it'll just be a warning about an invalid header.
if (this[TYPE] === '5') {
this.size = 0
}
this.linkpath = decString(buf, off + 157, 100)
if (buf.slice(off + 257, off + 265).toString() === 'ustar\u000000') {
this.uname = decString(buf, off + 265, 32)
this.gname = decString(buf, off + 297, 32)
this.devmaj = decNumber(buf, off + 329, 8)
this.devmin = decNumber(buf, off + 337, 8)
if (buf[off + 475] !== 0) {
// definitely a prefix, definitely >130 chars.
const prefix = decString(buf, off + 345, 155)
this.path = prefix + '/' + this.path
} else {
const prefix = decString(buf, off + 345, 130)
if (prefix) {
this.path = prefix + '/' + this.path
}
this.atime = decDate(buf, off + 476, 12)
this.ctime = decDate(buf, off + 488, 12)
}
}
let sum = 8 * 0x20
for (let i = off; i < off + 148; i++) {
sum += buf[i]
}
for (let i = off + 156; i < off + 512; i++) {
sum += buf[i]
}
this.cksumValid = sum === this.cksum
if (this.cksum === null && sum === 8 * 0x20) {
this.nullBlock = true
}
}
[SLURP] (ex, global) {
for (const k in ex) {
// we slurp in everything except for the path attribute in
// a global extended header, because that's weird.
if (ex[k] !== null && ex[k] !== undefined &&
!(global && k === 'path')) {
this[k] = ex[k]
}
}
}
encode (buf, off) {
if (!buf) {
buf = this.block = Buffer.alloc(512)
off = 0
}
if (!off) {
off = 0
}
if (!(buf.length >= off + 512)) {
throw new Error('need 512 bytes for header')
}
const prefixSize = this.ctime || this.atime ? 130 : 155
const split = splitPrefix(this.path || '', prefixSize)
const path = split[0]
const prefix = split[1]
this.needPax = split[2]
this.needPax = encString(buf, off, 100, path) || this.needPax
this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax
this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax
this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax
this.needPax = encNumber(buf, off + 124, 12, this.size) || this.needPax
this.needPax = encDate(buf, off + 136, 12, this.mtime) || this.needPax
buf[off + 156] = this[TYPE].charCodeAt(0)
this.needPax = encString(buf, off + 157, 100, this.linkpath) || this.needPax
buf.write('ustar\u000000', off + 257, 8)
this.needPax = encString(buf, off + 265, 32, this.uname) || this.needPax
this.needPax = encString(buf, off + 297, 32, this.gname) || this.needPax
this.needPax = encNumber(buf, off + 329, 8, this.devmaj) || this.needPax
this.needPax = encNumber(buf, off + 337, 8, this.devmin) || this.needPax
this.needPax = encString(buf, off + 345, prefixSize, prefix) || this.needPax
if (buf[off + 475] !== 0) {
this.needPax = encString(buf, off + 345, 155, prefix) || this.needPax
} else {
this.needPax = encString(buf, off + 345, 130, prefix) || this.needPax
this.needPax = encDate(buf, off + 476, 12, this.atime) || this.needPax
this.needPax = encDate(buf, off + 488, 12, this.ctime) || this.needPax
}
let sum = 8 * 0x20
for (let i = off; i < off + 148; i++) {
sum += buf[i]
}
for (let i = off + 156; i < off + 512; i++) {
sum += buf[i]
}
this.cksum = sum
encNumber(buf, off + 148, 8, this.cksum)
this.cksumValid = true
return this.needPax
}
set (data) {
for (const i in data) {
if (data[i] !== null && data[i] !== undefined) {
this[i] = data[i]
}
}
}
get type () {
return types.name.get(this[TYPE]) || this[TYPE]
}
get typeKey () {
return this[TYPE]
}
set type (type) {
if (types.code.has(type)) {
this[TYPE] = types.code.get(type)
} else {
this[TYPE] = type
}
}
}
const splitPrefix = (p, prefixSize) => {
const pathSize = 100
let pp = p
let prefix = ''
let ret
const root = pathModule.parse(p).root || '.'
if (Buffer.byteLength(pp) < pathSize) {
ret = [pp, prefix, false]
} else {
// first set prefix to the dir, and path to the base
prefix = pathModule.dirname(pp)
pp = pathModule.basename(pp)
do {
if (Buffer.byteLength(pp) <= pathSize &&
Buffer.byteLength(prefix) <= prefixSize) {
// both fit!
ret = [pp, prefix, false]
} else if (Buffer.byteLength(pp) > pathSize &&
Buffer.byteLength(prefix) <= prefixSize) {
// prefix fits in prefix, but path doesn't fit in path
ret = [pp.slice(0, pathSize - 1), prefix, true]
} else {
// make path take a bit from prefix
pp = pathModule.join(pathModule.basename(prefix), pp)
prefix = pathModule.dirname(prefix)
}
} while (prefix !== root && !ret)
// at this point, found no resolution, just truncate
if (!ret) {
ret = [p.slice(0, pathSize - 1), '', true]
}
}
return ret
}
const decString = (buf, off, size) =>
buf.slice(off, off + size).toString('utf8').replace(/\0.*/, '')
const decDate = (buf, off, size) =>
numToDate(decNumber(buf, off, size))
const numToDate = num => num === null ? null : new Date(num * 1000)
const decNumber = (buf, off, size) =>
buf[off] & 0x80 ? large.parse(buf.slice(off, off + size))
: decSmallNumber(buf, off, size)
const nanNull = value => isNaN(value) ? null : value
const decSmallNumber = (buf, off, size) =>
nanNull(parseInt(
buf.slice(off, off + size)
.toString('utf8').replace(/\0.*$/, '').trim(), 8))
// the maximum encodable as a null-terminated octal, by field size
const MAXNUM = {
12: 0o77777777777,
8: 0o7777777,
}
const encNumber = (buf, off, size, number) =>
number === null ? false :
number > MAXNUM[size] || number < 0
? (large.encode(number, buf.slice(off, off + size)), true)
: (encSmallNumber(buf, off, size, number), false)
const encSmallNumber = (buf, off, size, number) =>
buf.write(octalString(number, size), off, size, 'ascii')
const octalString = (number, size) =>
padOctal(Math.floor(number).toString(8), size)
const padOctal = (string, size) =>
(string.length === size - 1 ? string
: new Array(size - string.length - 1).join('0') + string + ' ') + '\0'
const encDate = (buf, off, size, date) =>
date === null ? false :
encNumber(buf, off, size, date.getTime() / 1000)
// enough to fill the longest string we've got
const NULLS = new Array(156).join('\0')
// pad with nulls, return true if it's longer or non-ascii
const encString = (buf, off, size, string) =>
string === null ? false :
(buf.write(string + NULLS, off, size, 'utf8'),
string.length !== Buffer.byteLength(string) || string.length > size)
module.exports = Header
node-tar-6.1.13/lib/high-level-opt.js 0000664 0000000 0000000 00000001370 14344174136 0017253 0 ustar 00root root 0000000 0000000 'use strict'
// turn tar(1) style args like `C` into the more verbose things like `cwd`
const argmap = new Map([
['C', 'cwd'],
['f', 'file'],
['z', 'gzip'],
['P', 'preservePaths'],
['U', 'unlink'],
['strip-components', 'strip'],
['stripComponents', 'strip'],
['keep-newer', 'newer'],
['keepNewer', 'newer'],
['keep-newer-files', 'newer'],
['keepNewerFiles', 'newer'],
['k', 'keep'],
['keep-existing', 'keep'],
['keepExisting', 'keep'],
['m', 'noMtime'],
['no-mtime', 'noMtime'],
['p', 'preserveOwner'],
['L', 'follow'],
['h', 'follow'],
])
module.exports = opt => opt ? Object.keys(opt).map(k => [
argmap.has(k) ? argmap.get(k) : k, opt[k],
]).reduce((set, kv) => (set[kv[0]] = kv[1], set), Object.create(null)) : {}
node-tar-6.1.13/lib/large-numbers.js 0000664 0000000 0000000 00000004265 14344174136 0017200 0 ustar 00root root 0000000 0000000 'use strict'
// Tar can encode large and negative numbers using a leading byte of
// 0xff for negative, and 0x80 for positive.
const encode = (num, buf) => {
if (!Number.isSafeInteger(num)) {
// The number is so large that javascript cannot represent it with integer
// precision.
throw Error('cannot encode number outside of javascript safe integer range')
} else if (num < 0) {
encodeNegative(num, buf)
} else {
encodePositive(num, buf)
}
return buf
}
const encodePositive = (num, buf) => {
buf[0] = 0x80
for (var i = buf.length; i > 1; i--) {
buf[i - 1] = num & 0xff
num = Math.floor(num / 0x100)
}
}
const encodeNegative = (num, buf) => {
buf[0] = 0xff
var flipped = false
num = num * -1
for (var i = buf.length; i > 1; i--) {
var byte = num & 0xff
num = Math.floor(num / 0x100)
if (flipped) {
buf[i - 1] = onesComp(byte)
} else if (byte === 0) {
buf[i - 1] = 0
} else {
flipped = true
buf[i - 1] = twosComp(byte)
}
}
}
const parse = (buf) => {
const pre = buf[0]
const value = pre === 0x80 ? pos(buf.slice(1, buf.length))
: pre === 0xff ? twos(buf)
: null
if (value === null) {
throw Error('invalid base256 encoding')
}
if (!Number.isSafeInteger(value)) {
// The number is so large that javascript cannot represent it with integer
// precision.
throw Error('parsed number outside of javascript safe integer range')
}
return value
}
const twos = (buf) => {
var len = buf.length
var sum = 0
var flipped = false
for (var i = len - 1; i > -1; i--) {
var byte = buf[i]
var f
if (flipped) {
f = onesComp(byte)
} else if (byte === 0) {
f = byte
} else {
flipped = true
f = twosComp(byte)
}
if (f !== 0) {
sum -= f * Math.pow(256, len - i - 1)
}
}
return sum
}
const pos = (buf) => {
var len = buf.length
var sum = 0
for (var i = len - 1; i > -1; i--) {
var byte = buf[i]
if (byte !== 0) {
sum += byte * Math.pow(256, len - i - 1)
}
}
return sum
}
const onesComp = byte => (0xff ^ byte) & 0xff
const twosComp = byte => ((0xff ^ byte) + 1) & 0xff
module.exports = {
encode,
parse,
}
node-tar-6.1.13/lib/list.js 0000664 0000000 0000000 00000006230 14344174136 0015402 0 ustar 00root root 0000000 0000000 'use strict'
// XXX: This shares a lot in common with extract.js
// maybe some DRY opportunity here?
// tar -t
const hlo = require('./high-level-opt.js')
const Parser = require('./parse.js')
const fs = require('fs')
const fsm = require('fs-minipass')
const path = require('path')
const stripSlash = require('./strip-trailing-slashes.js')
module.exports = (opt_, files, cb) => {
if (typeof opt_ === 'function') {
cb = opt_, files = null, opt_ = {}
} else if (Array.isArray(opt_)) {
files = opt_, opt_ = {}
}
if (typeof files === 'function') {
cb = files, files = null
}
if (!files) {
files = []
} else {
files = Array.from(files)
}
const opt = hlo(opt_)
if (opt.sync && typeof cb === 'function') {
throw new TypeError('callback not supported for sync tar functions')
}
if (!opt.file && typeof cb === 'function') {
throw new TypeError('callback only supported with file option')
}
if (files.length) {
filesFilter(opt, files)
}
if (!opt.noResume) {
onentryFunction(opt)
}
return opt.file && opt.sync ? listFileSync(opt)
: opt.file ? listFile(opt, cb)
: list(opt)
}
const onentryFunction = opt => {
const onentry = opt.onentry
opt.onentry = onentry ? e => {
onentry(e)
e.resume()
} : e => e.resume()
}
// construct a filter that limits the file entries listed
// include child entries if a dir is included
const filesFilter = (opt, files) => {
const map = new Map(files.map(f => [stripSlash(f), true]))
const filter = opt.filter
const mapHas = (file, r) => {
const root = r || path.parse(file).root || '.'
const ret = file === root ? false
: map.has(file) ? map.get(file)
: mapHas(path.dirname(file), root)
map.set(file, ret)
return ret
}
opt.filter = filter
? (file, entry) => filter(file, entry) && mapHas(stripSlash(file))
: file => mapHas(stripSlash(file))
}
const listFileSync = opt => {
const p = list(opt)
const file = opt.file
let threw = true
let fd
try {
const stat = fs.statSync(file)
const readSize = opt.maxReadSize || 16 * 1024 * 1024
if (stat.size < readSize) {
p.end(fs.readFileSync(file))
} else {
let pos = 0
const buf = Buffer.allocUnsafe(readSize)
fd = fs.openSync(file, 'r')
while (pos < stat.size) {
const bytesRead = fs.readSync(fd, buf, 0, readSize, pos)
pos += bytesRead
p.write(buf.slice(0, bytesRead))
}
p.end()
}
threw = false
} finally {
if (threw && fd) {
try {
fs.closeSync(fd)
} catch (er) {}
}
}
}
const listFile = (opt, cb) => {
const parse = new Parser(opt)
const readSize = opt.maxReadSize || 16 * 1024 * 1024
const file = opt.file
const p = new Promise((resolve, reject) => {
parse.on('error', reject)
parse.on('end', resolve)
fs.stat(file, (er, stat) => {
if (er) {
reject(er)
} else {
const stream = new fsm.ReadStream(file, {
readSize: readSize,
size: stat.size,
})
stream.on('error', reject)
stream.pipe(parse)
}
})
})
return cb ? p.then(cb, cb) : p
}
const list = opt => new Parser(opt)
node-tar-6.1.13/lib/mkdir.js 0000664 0000000 0000000 00000012555 14344174136 0015544 0 ustar 00root root 0000000 0000000 'use strict'
// wrapper around mkdirp for tar's needs.
// TODO: This should probably be a class, not functionally
// passing around state in a gazillion args.
const mkdirp = require('mkdirp')
const fs = require('fs')
const path = require('path')
const chownr = require('chownr')
const normPath = require('./normalize-windows-path.js')
class SymlinkError extends Error {
constructor (symlink, path) {
super('Cannot extract through symbolic link')
this.path = path
this.symlink = symlink
}
get name () {
return 'SylinkError'
}
}
class CwdError extends Error {
constructor (path, code) {
super(code + ': Cannot cd into \'' + path + '\'')
this.path = path
this.code = code
}
get name () {
return 'CwdError'
}
}
const cGet = (cache, key) => cache.get(normPath(key))
const cSet = (cache, key, val) => cache.set(normPath(key), val)
const checkCwd = (dir, cb) => {
fs.stat(dir, (er, st) => {
if (er || !st.isDirectory()) {
er = new CwdError(dir, er && er.code || 'ENOTDIR')
}
cb(er)
})
}
module.exports = (dir, opt, cb) => {
dir = normPath(dir)
// if there's any overlap between mask and mode,
// then we'll need an explicit chmod
const umask = opt.umask
const mode = opt.mode | 0o0700
const needChmod = (mode & umask) !== 0
const uid = opt.uid
const gid = opt.gid
const doChown = typeof uid === 'number' &&
typeof gid === 'number' &&
(uid !== opt.processUid || gid !== opt.processGid)
const preserve = opt.preserve
const unlink = opt.unlink
const cache = opt.cache
const cwd = normPath(opt.cwd)
const done = (er, created) => {
if (er) {
cb(er)
} else {
cSet(cache, dir, true)
if (created && doChown) {
chownr(created, uid, gid, er => done(er))
} else if (needChmod) {
fs.chmod(dir, mode, cb)
} else {
cb()
}
}
}
if (cache && cGet(cache, dir) === true) {
return done()
}
if (dir === cwd) {
return checkCwd(dir, done)
}
if (preserve) {
return mkdirp(dir, { mode }).then(made => done(null, made), done)
}
const sub = normPath(path.relative(cwd, dir))
const parts = sub.split('/')
mkdir_(cwd, parts, mode, cache, unlink, cwd, null, done)
}
const mkdir_ = (base, parts, mode, cache, unlink, cwd, created, cb) => {
if (!parts.length) {
return cb(null, created)
}
const p = parts.shift()
const part = normPath(path.resolve(base + '/' + p))
if (cGet(cache, part)) {
return mkdir_(part, parts, mode, cache, unlink, cwd, created, cb)
}
fs.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb))
}
const onmkdir = (part, parts, mode, cache, unlink, cwd, created, cb) => er => {
if (er) {
fs.lstat(part, (statEr, st) => {
if (statEr) {
statEr.path = statEr.path && normPath(statEr.path)
cb(statEr)
} else if (st.isDirectory()) {
mkdir_(part, parts, mode, cache, unlink, cwd, created, cb)
} else if (unlink) {
fs.unlink(part, er => {
if (er) {
return cb(er)
}
fs.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb))
})
} else if (st.isSymbolicLink()) {
return cb(new SymlinkError(part, part + '/' + parts.join('/')))
} else {
cb(er)
}
})
} else {
created = created || part
mkdir_(part, parts, mode, cache, unlink, cwd, created, cb)
}
}
const checkCwdSync = dir => {
let ok = false
let code = 'ENOTDIR'
try {
ok = fs.statSync(dir).isDirectory()
} catch (er) {
code = er.code
} finally {
if (!ok) {
throw new CwdError(dir, code)
}
}
}
module.exports.sync = (dir, opt) => {
dir = normPath(dir)
// if there's any overlap between mask and mode,
// then we'll need an explicit chmod
const umask = opt.umask
const mode = opt.mode | 0o0700
const needChmod = (mode & umask) !== 0
const uid = opt.uid
const gid = opt.gid
const doChown = typeof uid === 'number' &&
typeof gid === 'number' &&
(uid !== opt.processUid || gid !== opt.processGid)
const preserve = opt.preserve
const unlink = opt.unlink
const cache = opt.cache
const cwd = normPath(opt.cwd)
const done = (created) => {
cSet(cache, dir, true)
if (created && doChown) {
chownr.sync(created, uid, gid)
}
if (needChmod) {
fs.chmodSync(dir, mode)
}
}
if (cache && cGet(cache, dir) === true) {
return done()
}
if (dir === cwd) {
checkCwdSync(cwd)
return done()
}
if (preserve) {
return done(mkdirp.sync(dir, mode))
}
const sub = normPath(path.relative(cwd, dir))
const parts = sub.split('/')
let created = null
for (let p = parts.shift(), part = cwd;
p && (part += '/' + p);
p = parts.shift()) {
part = normPath(path.resolve(part))
if (cGet(cache, part)) {
continue
}
try {
fs.mkdirSync(part, mode)
created = created || part
cSet(cache, part, true)
} catch (er) {
const st = fs.lstatSync(part)
if (st.isDirectory()) {
cSet(cache, part, true)
continue
} else if (unlink) {
fs.unlinkSync(part)
fs.mkdirSync(part, mode)
created = created || part
cSet(cache, part, true)
continue
} else if (st.isSymbolicLink()) {
return new SymlinkError(part, part + '/' + parts.join('/'))
}
}
}
return done(created)
}
node-tar-6.1.13/lib/mode-fix.js 0000664 0000000 0000000 00000001211 14344174136 0016131 0 ustar 00root root 0000000 0000000 'use strict'
module.exports = (mode, isDir, portable) => {
mode &= 0o7777
// in portable mode, use the minimum reasonable umask
// if this system creates files with 0o664 by default
// (as some linux distros do), then we'll write the
// archive with 0o644 instead. Also, don't ever create
// a file that is not readable/writable by the owner.
if (portable) {
mode = (mode | 0o600) & ~0o22
}
// if dirs are readable, then they should be listable
if (isDir) {
if (mode & 0o400) {
mode |= 0o100
}
if (mode & 0o40) {
mode |= 0o10
}
if (mode & 0o4) {
mode |= 0o1
}
}
return mode
}
node-tar-6.1.13/lib/normalize-unicode.js 0000664 0000000 0000000 00000000635 14344174136 0020056 0 ustar 00root root 0000000 0000000 // warning: extremely hot code path.
// This has been meticulously optimized for use
// within npm install on large package trees.
// Do not edit without careful benchmarking.
const normalizeCache = Object.create(null)
const { hasOwnProperty } = Object.prototype
module.exports = s => {
if (!hasOwnProperty.call(normalizeCache, s)) {
normalizeCache[s] = s.normalize('NFKD')
}
return normalizeCache[s]
}
node-tar-6.1.13/lib/normalize-windows-path.js 0000664 0000000 0000000 00000000632 14344174136 0021051 0 ustar 00root root 0000000 0000000 // on windows, either \ or / are valid directory separators.
// on unix, \ is a valid character in filenames.
// so, on windows, and only on windows, we replace all \ chars with /,
// so that we can use / as our one and only directory separator char.
const platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform
module.exports = platform !== 'win32' ? p => p
: p => p && p.replace(/\\/g, '/')
node-tar-6.1.13/lib/pack.js 0000664 0000000 0000000 00000022713 14344174136 0015351 0 ustar 00root root 0000000 0000000 'use strict'
// A readable tar stream creator
// Technically, this is a transform stream that you write paths into,
// and tar format comes out of.
// The `add()` method is like `write()` but returns this,
// and end() return `this` as well, so you can
// do `new Pack(opt).add('files').add('dir').end().pipe(output)
// You could also do something like:
// streamOfPaths().pipe(new Pack()).pipe(new fs.WriteStream('out.tar'))
class PackJob {
constructor (path, absolute) {
this.path = path || './'
this.absolute = absolute
this.entry = null
this.stat = null
this.readdir = null
this.pending = false
this.ignore = false
this.piped = false
}
}
const MiniPass = require('minipass')
const zlib = require('minizlib')
const ReadEntry = require('./read-entry.js')
const WriteEntry = require('./write-entry.js')
const WriteEntrySync = WriteEntry.Sync
const WriteEntryTar = WriteEntry.Tar
const Yallist = require('yallist')
const EOF = Buffer.alloc(1024)
const ONSTAT = Symbol('onStat')
const ENDED = Symbol('ended')
const QUEUE = Symbol('queue')
const CURRENT = Symbol('current')
const PROCESS = Symbol('process')
const PROCESSING = Symbol('processing')
const PROCESSJOB = Symbol('processJob')
const JOBS = Symbol('jobs')
const JOBDONE = Symbol('jobDone')
const ADDFSENTRY = Symbol('addFSEntry')
const ADDTARENTRY = Symbol('addTarEntry')
const STAT = Symbol('stat')
const READDIR = Symbol('readdir')
const ONREADDIR = Symbol('onreaddir')
const PIPE = Symbol('pipe')
const ENTRY = Symbol('entry')
const ENTRYOPT = Symbol('entryOpt')
const WRITEENTRYCLASS = Symbol('writeEntryClass')
const WRITE = Symbol('write')
const ONDRAIN = Symbol('ondrain')
const fs = require('fs')
const path = require('path')
const warner = require('./warn-mixin.js')
const normPath = require('./normalize-windows-path.js')
const Pack = warner(class Pack extends MiniPass {
constructor (opt) {
super(opt)
opt = opt || Object.create(null)
this.opt = opt
this.file = opt.file || ''
this.cwd = opt.cwd || process.cwd()
this.maxReadSize = opt.maxReadSize
this.preservePaths = !!opt.preservePaths
this.strict = !!opt.strict
this.noPax = !!opt.noPax
this.prefix = normPath(opt.prefix || '')
this.linkCache = opt.linkCache || new Map()
this.statCache = opt.statCache || new Map()
this.readdirCache = opt.readdirCache || new Map()
this[WRITEENTRYCLASS] = WriteEntry
if (typeof opt.onwarn === 'function') {
this.on('warn', opt.onwarn)
}
this.portable = !!opt.portable
this.zip = null
if (opt.gzip) {
if (typeof opt.gzip !== 'object') {
opt.gzip = {}
}
if (this.portable) {
opt.gzip.portable = true
}
this.zip = new zlib.Gzip(opt.gzip)
this.zip.on('data', chunk => super.write(chunk))
this.zip.on('end', _ => super.end())
this.zip.on('drain', _ => this[ONDRAIN]())
this.on('resume', _ => this.zip.resume())
} else {
this.on('drain', this[ONDRAIN])
}
this.noDirRecurse = !!opt.noDirRecurse
this.follow = !!opt.follow
this.noMtime = !!opt.noMtime
this.mtime = opt.mtime || null
this.filter = typeof opt.filter === 'function' ? opt.filter : _ => true
this[QUEUE] = new Yallist()
this[JOBS] = 0
this.jobs = +opt.jobs || 4
this[PROCESSING] = false
this[ENDED] = false
}
[WRITE] (chunk) {
return super.write(chunk)
}
add (path) {
this.write(path)
return this
}
end (path) {
if (path) {
this.write(path)
}
this[ENDED] = true
this[PROCESS]()
return this
}
write (path) {
if (this[ENDED]) {
throw new Error('write after end')
}
if (path instanceof ReadEntry) {
this[ADDTARENTRY](path)
} else {
this[ADDFSENTRY](path)
}
return this.flowing
}
[ADDTARENTRY] (p) {
const absolute = normPath(path.resolve(this.cwd, p.path))
// in this case, we don't have to wait for the stat
if (!this.filter(p.path, p)) {
p.resume()
} else {
const job = new PackJob(p.path, absolute, false)
job.entry = new WriteEntryTar(p, this[ENTRYOPT](job))
job.entry.on('end', _ => this[JOBDONE](job))
this[JOBS] += 1
this[QUEUE].push(job)
}
this[PROCESS]()
}
[ADDFSENTRY] (p) {
const absolute = normPath(path.resolve(this.cwd, p))
this[QUEUE].push(new PackJob(p, absolute))
this[PROCESS]()
}
[STAT] (job) {
job.pending = true
this[JOBS] += 1
const stat = this.follow ? 'stat' : 'lstat'
fs[stat](job.absolute, (er, stat) => {
job.pending = false
this[JOBS] -= 1
if (er) {
this.emit('error', er)
} else {
this[ONSTAT](job, stat)
}
})
}
[ONSTAT] (job, stat) {
this.statCache.set(job.absolute, stat)
job.stat = stat
// now we have the stat, we can filter it.
if (!this.filter(job.path, stat)) {
job.ignore = true
}
this[PROCESS]()
}
[READDIR] (job) {
job.pending = true
this[JOBS] += 1
fs.readdir(job.absolute, (er, entries) => {
job.pending = false
this[JOBS] -= 1
if (er) {
return this.emit('error', er)
}
this[ONREADDIR](job, entries)
})
}
[ONREADDIR] (job, entries) {
this.readdirCache.set(job.absolute, entries)
job.readdir = entries
this[PROCESS]()
}
[PROCESS] () {
if (this[PROCESSING]) {
return
}
this[PROCESSING] = true
for (let w = this[QUEUE].head;
w !== null && this[JOBS] < this.jobs;
w = w.next) {
this[PROCESSJOB](w.value)
if (w.value.ignore) {
const p = w.next
this[QUEUE].removeNode(w)
w.next = p
}
}
this[PROCESSING] = false
if (this[ENDED] && !this[QUEUE].length && this[JOBS] === 0) {
if (this.zip) {
this.zip.end(EOF)
} else {
super.write(EOF)
super.end()
}
}
}
get [CURRENT] () {
return this[QUEUE] && this[QUEUE].head && this[QUEUE].head.value
}
[JOBDONE] (job) {
this[QUEUE].shift()
this[JOBS] -= 1
this[PROCESS]()
}
[PROCESSJOB] (job) {
if (job.pending) {
return
}
if (job.entry) {
if (job === this[CURRENT] && !job.piped) {
this[PIPE](job)
}
return
}
if (!job.stat) {
if (this.statCache.has(job.absolute)) {
this[ONSTAT](job, this.statCache.get(job.absolute))
} else {
this[STAT](job)
}
}
if (!job.stat) {
return
}
// filtered out!
if (job.ignore) {
return
}
if (!this.noDirRecurse && job.stat.isDirectory() && !job.readdir) {
if (this.readdirCache.has(job.absolute)) {
this[ONREADDIR](job, this.readdirCache.get(job.absolute))
} else {
this[READDIR](job)
}
if (!job.readdir) {
return
}
}
// we know it doesn't have an entry, because that got checked above
job.entry = this[ENTRY](job)
if (!job.entry) {
job.ignore = true
return
}
if (job === this[CURRENT] && !job.piped) {
this[PIPE](job)
}
}
[ENTRYOPT] (job) {
return {
onwarn: (code, msg, data) => this.warn(code, msg, data),
noPax: this.noPax,
cwd: this.cwd,
absolute: job.absolute,
preservePaths: this.preservePaths,
maxReadSize: this.maxReadSize,
strict: this.strict,
portable: this.portable,
linkCache: this.linkCache,
statCache: this.statCache,
noMtime: this.noMtime,
mtime: this.mtime,
prefix: this.prefix,
}
}
[ENTRY] (job) {
this[JOBS] += 1
try {
return new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job))
.on('end', () => this[JOBDONE](job))
.on('error', er => this.emit('error', er))
} catch (er) {
this.emit('error', er)
}
}
[ONDRAIN] () {
if (this[CURRENT] && this[CURRENT].entry) {
this[CURRENT].entry.resume()
}
}
// like .pipe() but using super, because our write() is special
[PIPE] (job) {
job.piped = true
if (job.readdir) {
job.readdir.forEach(entry => {
const p = job.path
const base = p === './' ? '' : p.replace(/\/*$/, '/')
this[ADDFSENTRY](base + entry)
})
}
const source = job.entry
const zip = this.zip
if (zip) {
source.on('data', chunk => {
if (!zip.write(chunk)) {
source.pause()
}
})
} else {
source.on('data', chunk => {
if (!super.write(chunk)) {
source.pause()
}
})
}
}
pause () {
if (this.zip) {
this.zip.pause()
}
return super.pause()
}
})
class PackSync extends Pack {
constructor (opt) {
super(opt)
this[WRITEENTRYCLASS] = WriteEntrySync
}
// pause/resume are no-ops in sync streams.
pause () {}
resume () {}
[STAT] (job) {
const stat = this.follow ? 'statSync' : 'lstatSync'
this[ONSTAT](job, fs[stat](job.absolute))
}
[READDIR] (job, stat) {
this[ONREADDIR](job, fs.readdirSync(job.absolute))
}
// gotta get it all in this tick
[PIPE] (job) {
const source = job.entry
const zip = this.zip
if (job.readdir) {
job.readdir.forEach(entry => {
const p = job.path
const base = p === './' ? '' : p.replace(/\/*$/, '/')
this[ADDFSENTRY](base + entry)
})
}
if (zip) {
source.on('data', chunk => {
zip.write(chunk)
})
} else {
source.on('data', chunk => {
super[WRITE](chunk)
})
}
}
}
Pack.Sync = PackSync
module.exports = Pack
node-tar-6.1.13/lib/parse.js 0000664 0000000 0000000 00000034447 14344174136 0015554 0 ustar 00root root 0000000 0000000 'use strict'
// this[BUFFER] is the remainder of a chunk if we're waiting for
// the full 512 bytes of a header to come in. We will Buffer.concat()
// it to the next write(), which is a mem copy, but a small one.
//
// this[QUEUE] is a Yallist of entries that haven't been emitted
// yet this can only get filled up if the user keeps write()ing after
// a write() returns false, or does a write() with more than one entry
//
// We don't buffer chunks, we always parse them and either create an
// entry, or push it into the active entry. The ReadEntry class knows
// to throw data away if .ignore=true
//
// Shift entry off the buffer when it emits 'end', and emit 'entry' for
// the next one in the list.
//
// At any time, we're pushing body chunks into the entry at WRITEENTRY,
// and waiting for 'end' on the entry at READENTRY
//
// ignored entries get .resume() called on them straight away
const warner = require('./warn-mixin.js')
const Header = require('./header.js')
const EE = require('events')
const Yallist = require('yallist')
const maxMetaEntrySize = 1024 * 1024
const Entry = require('./read-entry.js')
const Pax = require('./pax.js')
const zlib = require('minizlib')
const { nextTick } = require('process')
const gzipHeader = Buffer.from([0x1f, 0x8b])
const STATE = Symbol('state')
const WRITEENTRY = Symbol('writeEntry')
const READENTRY = Symbol('readEntry')
const NEXTENTRY = Symbol('nextEntry')
const PROCESSENTRY = Symbol('processEntry')
const EX = Symbol('extendedHeader')
const GEX = Symbol('globalExtendedHeader')
const META = Symbol('meta')
const EMITMETA = Symbol('emitMeta')
const BUFFER = Symbol('buffer')
const QUEUE = Symbol('queue')
const ENDED = Symbol('ended')
const EMITTEDEND = Symbol('emittedEnd')
const EMIT = Symbol('emit')
const UNZIP = Symbol('unzip')
const CONSUMECHUNK = Symbol('consumeChunk')
const CONSUMECHUNKSUB = Symbol('consumeChunkSub')
const CONSUMEBODY = Symbol('consumeBody')
const CONSUMEMETA = Symbol('consumeMeta')
const CONSUMEHEADER = Symbol('consumeHeader')
const CONSUMING = Symbol('consuming')
const BUFFERCONCAT = Symbol('bufferConcat')
const MAYBEEND = Symbol('maybeEnd')
const WRITING = Symbol('writing')
const ABORTED = Symbol('aborted')
const DONE = Symbol('onDone')
const SAW_VALID_ENTRY = Symbol('sawValidEntry')
const SAW_NULL_BLOCK = Symbol('sawNullBlock')
const SAW_EOF = Symbol('sawEOF')
const CLOSESTREAM = Symbol('closeStream')
const noop = _ => true
module.exports = warner(class Parser extends EE {
constructor (opt) {
opt = opt || {}
super(opt)
this.file = opt.file || ''
// set to boolean false when an entry starts. 1024 bytes of \0
// is technically a valid tarball, albeit a boring one.
this[SAW_VALID_ENTRY] = null
// these BADARCHIVE errors can't be detected early. listen on DONE.
this.on(DONE, _ => {
if (this[STATE] === 'begin' || this[SAW_VALID_ENTRY] === false) {
// either less than 1 block of data, or all entries were invalid.
// Either way, probably not even a tarball.
this.warn('TAR_BAD_ARCHIVE', 'Unrecognized archive format')
}
})
if (opt.ondone) {
this.on(DONE, opt.ondone)
} else {
this.on(DONE, _ => {
this.emit('prefinish')
this.emit('finish')
this.emit('end')
})
}
this.strict = !!opt.strict
this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize
this.filter = typeof opt.filter === 'function' ? opt.filter : noop
// have to set this so that streams are ok piping into it
this.writable = true
this.readable = false
this[QUEUE] = new Yallist()
this[BUFFER] = null
this[READENTRY] = null
this[WRITEENTRY] = null
this[STATE] = 'begin'
this[META] = ''
this[EX] = null
this[GEX] = null
this[ENDED] = false
this[UNZIP] = null
this[ABORTED] = false
this[SAW_NULL_BLOCK] = false
this[SAW_EOF] = false
this.on('end', () => this[CLOSESTREAM]())
if (typeof opt.onwarn === 'function') {
this.on('warn', opt.onwarn)
}
if (typeof opt.onentry === 'function') {
this.on('entry', opt.onentry)
}
}
[CONSUMEHEADER] (chunk, position) {
if (this[SAW_VALID_ENTRY] === null) {
this[SAW_VALID_ENTRY] = false
}
let header
try {
header = new Header(chunk, position, this[EX], this[GEX])
} catch (er) {
return this.warn('TAR_ENTRY_INVALID', er)
}
if (header.nullBlock) {
if (this[SAW_NULL_BLOCK]) {
this[SAW_EOF] = true
// ending an archive with no entries. pointless, but legal.
if (this[STATE] === 'begin') {
this[STATE] = 'header'
}
this[EMIT]('eof')
} else {
this[SAW_NULL_BLOCK] = true
this[EMIT]('nullBlock')
}
} else {
this[SAW_NULL_BLOCK] = false
if (!header.cksumValid) {
this.warn('TAR_ENTRY_INVALID', 'checksum failure', { header })
} else if (!header.path) {
this.warn('TAR_ENTRY_INVALID', 'path is required', { header })
} else {
const type = header.type
if (/^(Symbolic)?Link$/.test(type) && !header.linkpath) {
this.warn('TAR_ENTRY_INVALID', 'linkpath required', { header })
} else if (!/^(Symbolic)?Link$/.test(type) && header.linkpath) {
this.warn('TAR_ENTRY_INVALID', 'linkpath forbidden', { header })
} else {
const entry = this[WRITEENTRY] = new Entry(header, this[EX], this[GEX])
// we do this for meta & ignored entries as well, because they
// are still valid tar, or else we wouldn't know to ignore them
if (!this[SAW_VALID_ENTRY]) {
if (entry.remain) {
// this might be the one!
const onend = () => {
if (!entry.invalid) {
this[SAW_VALID_ENTRY] = true
}
}
entry.on('end', onend)
} else {
this[SAW_VALID_ENTRY] = true
}
}
if (entry.meta) {
if (entry.size > this.maxMetaEntrySize) {
entry.ignore = true
this[EMIT]('ignoredEntry', entry)
this[STATE] = 'ignore'
entry.resume()
} else if (entry.size > 0) {
this[META] = ''
entry.on('data', c => this[META] += c)
this[STATE] = 'meta'
}
} else {
this[EX] = null
entry.ignore = entry.ignore || !this.filter(entry.path, entry)
if (entry.ignore) {
// probably valid, just not something we care about
this[EMIT]('ignoredEntry', entry)
this[STATE] = entry.remain ? 'ignore' : 'header'
entry.resume()
} else {
if (entry.remain) {
this[STATE] = 'body'
} else {
this[STATE] = 'header'
entry.end()
}
if (!this[READENTRY]) {
this[QUEUE].push(entry)
this[NEXTENTRY]()
} else {
this[QUEUE].push(entry)
}
}
}
}
}
}
}
[CLOSESTREAM] () {
nextTick(() => this.emit('close'))
}
[PROCESSENTRY] (entry) {
let go = true
if (!entry) {
this[READENTRY] = null
go = false
} else if (Array.isArray(entry)) {
this.emit.apply(this, entry)
} else {
this[READENTRY] = entry
this.emit('entry', entry)
if (!entry.emittedEnd) {
entry.on('end', _ => this[NEXTENTRY]())
go = false
}
}
return go
}
[NEXTENTRY] () {
do {} while (this[PROCESSENTRY](this[QUEUE].shift()))
if (!this[QUEUE].length) {
// At this point, there's nothing in the queue, but we may have an
// entry which is being consumed (readEntry).
// If we don't, then we definitely can handle more data.
// If we do, and either it's flowing, or it has never had any data
// written to it, then it needs more.
// The only other possibility is that it has returned false from a
// write() call, so we wait for the next drain to continue.
const re = this[READENTRY]
const drainNow = !re || re.flowing || re.size === re.remain
if (drainNow) {
if (!this[WRITING]) {
this.emit('drain')
}
} else {
re.once('drain', _ => this.emit('drain'))
}
}
}
[CONSUMEBODY] (chunk, position) {
// write up to but no more than writeEntry.blockRemain
const entry = this[WRITEENTRY]
const br = entry.blockRemain
const c = (br >= chunk.length && position === 0) ? chunk
: chunk.slice(position, position + br)
entry.write(c)
if (!entry.blockRemain) {
this[STATE] = 'header'
this[WRITEENTRY] = null
entry.end()
}
return c.length
}
[CONSUMEMETA] (chunk, position) {
const entry = this[WRITEENTRY]
const ret = this[CONSUMEBODY](chunk, position)
// if we finished, then the entry is reset
if (!this[WRITEENTRY]) {
this[EMITMETA](entry)
}
return ret
}
[EMIT] (ev, data, extra) {
if (!this[QUEUE].length && !this[READENTRY]) {
this.emit(ev, data, extra)
} else {
this[QUEUE].push([ev, data, extra])
}
}
[EMITMETA] (entry) {
this[EMIT]('meta', this[META])
switch (entry.type) {
case 'ExtendedHeader':
case 'OldExtendedHeader':
this[EX] = Pax.parse(this[META], this[EX], false)
break
case 'GlobalExtendedHeader':
this[GEX] = Pax.parse(this[META], this[GEX], true)
break
case 'NextFileHasLongPath':
case 'OldGnuLongPath':
this[EX] = this[EX] || Object.create(null)
this[EX].path = this[META].replace(/\0.*/, '')
break
case 'NextFileHasLongLinkpath':
this[EX] = this[EX] || Object.create(null)
this[EX].linkpath = this[META].replace(/\0.*/, '')
break
/* istanbul ignore next */
default: throw new Error('unknown meta: ' + entry.type)
}
}
abort (error) {
this[ABORTED] = true
this.emit('abort', error)
// always throws, even in non-strict mode
this.warn('TAR_ABORT', error, { recoverable: false })
}
write (chunk) {
if (this[ABORTED]) {
return
}
// first write, might be gzipped
if (this[UNZIP] === null && chunk) {
if (this[BUFFER]) {
chunk = Buffer.concat([this[BUFFER], chunk])
this[BUFFER] = null
}
if (chunk.length < gzipHeader.length) {
this[BUFFER] = chunk
return true
}
for (let i = 0; this[UNZIP] === null && i < gzipHeader.length; i++) {
if (chunk[i] !== gzipHeader[i]) {
this[UNZIP] = false
}
}
if (this[UNZIP] === null) {
const ended = this[ENDED]
this[ENDED] = false
this[UNZIP] = new zlib.Unzip()
this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk))
this[UNZIP].on('error', er => this.abort(er))
this[UNZIP].on('end', _ => {
this[ENDED] = true
this[CONSUMECHUNK]()
})
this[WRITING] = true
const ret = this[UNZIP][ended ? 'end' : 'write'](chunk)
this[WRITING] = false
return ret
}
}
this[WRITING] = true
if (this[UNZIP]) {
this[UNZIP].write(chunk)
} else {
this[CONSUMECHUNK](chunk)
}
this[WRITING] = false
// return false if there's a queue, or if the current entry isn't flowing
const ret =
this[QUEUE].length ? false :
this[READENTRY] ? this[READENTRY].flowing :
true
// if we have no queue, then that means a clogged READENTRY
if (!ret && !this[QUEUE].length) {
this[READENTRY].once('drain', _ => this.emit('drain'))
}
return ret
}
[BUFFERCONCAT] (c) {
if (c && !this[ABORTED]) {
this[BUFFER] = this[BUFFER] ? Buffer.concat([this[BUFFER], c]) : c
}
}
[MAYBEEND] () {
if (this[ENDED] &&
!this[EMITTEDEND] &&
!this[ABORTED] &&
!this[CONSUMING]) {
this[EMITTEDEND] = true
const entry = this[WRITEENTRY]
if (entry && entry.blockRemain) {
// truncated, likely a damaged file
const have = this[BUFFER] ? this[BUFFER].length : 0
this.warn('TAR_BAD_ARCHIVE', `Truncated input (needed ${
entry.blockRemain} more bytes, only ${have} available)`, { entry })
if (this[BUFFER]) {
entry.write(this[BUFFER])
}
entry.end()
}
this[EMIT](DONE)
}
}
[CONSUMECHUNK] (chunk) {
if (this[CONSUMING]) {
this[BUFFERCONCAT](chunk)
} else if (!chunk && !this[BUFFER]) {
this[MAYBEEND]()
} else {
this[CONSUMING] = true
if (this[BUFFER]) {
this[BUFFERCONCAT](chunk)
const c = this[BUFFER]
this[BUFFER] = null
this[CONSUMECHUNKSUB](c)
} else {
this[CONSUMECHUNKSUB](chunk)
}
while (this[BUFFER] &&
this[BUFFER].length >= 512 &&
!this[ABORTED] &&
!this[SAW_EOF]) {
const c = this[BUFFER]
this[BUFFER] = null
this[CONSUMECHUNKSUB](c)
}
this[CONSUMING] = false
}
if (!this[BUFFER] || this[ENDED]) {
this[MAYBEEND]()
}
}
[CONSUMECHUNKSUB] (chunk) {
// we know that we are in CONSUMING mode, so anything written goes into
// the buffer. Advance the position and put any remainder in the buffer.
let position = 0
const length = chunk.length
while (position + 512 <= length && !this[ABORTED] && !this[SAW_EOF]) {
switch (this[STATE]) {
case 'begin':
case 'header':
this[CONSUMEHEADER](chunk, position)
position += 512
break
case 'ignore':
case 'body':
position += this[CONSUMEBODY](chunk, position)
break
case 'meta':
position += this[CONSUMEMETA](chunk, position)
break
/* istanbul ignore next */
default:
throw new Error('invalid state: ' + this[STATE])
}
}
if (position < length) {
if (this[BUFFER]) {
this[BUFFER] = Buffer.concat([chunk.slice(position), this[BUFFER]])
} else {
this[BUFFER] = chunk.slice(position)
}
}
}
end (chunk) {
if (!this[ABORTED]) {
if (this[UNZIP]) {
this[UNZIP].end(chunk)
} else {
this[ENDED] = true
this.write(chunk)
}
}
}
})
node-tar-6.1.13/lib/path-reservations.js 0000664 0000000 0000000 00000010472 14344174136 0020110 0 ustar 00root root 0000000 0000000 // A path exclusive reservation system
// reserve([list, of, paths], fn)
// When the fn is first in line for all its paths, it
// is called with a cb that clears the reservation.
//
// Used by async unpack to avoid clobbering paths in use,
// while still allowing maximal safe parallelization.
const assert = require('assert')
const normalize = require('./normalize-unicode.js')
const stripSlashes = require('./strip-trailing-slashes.js')
const { join } = require('path')
const platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform
const isWindows = platform === 'win32'
module.exports = () => {
// path => [function or Set]
// A Set object means a directory reservation
// A fn is a direct reservation on that path
const queues = new Map()
// fn => {paths:[path,...], dirs:[path, ...]}
const reservations = new Map()
// return a set of parent dirs for a given path
// '/a/b/c/d' -> ['/', '/a', '/a/b', '/a/b/c', '/a/b/c/d']
const getDirs = path => {
const dirs = path.split('/').slice(0, -1).reduce((set, path) => {
if (set.length) {
path = join(set[set.length - 1], path)
}
set.push(path || '/')
return set
}, [])
return dirs
}
// functions currently running
const running = new Set()
// return the queues for each path the function cares about
// fn => {paths, dirs}
const getQueues = fn => {
const res = reservations.get(fn)
/* istanbul ignore if - unpossible */
if (!res) {
throw new Error('function does not have any path reservations')
}
return {
paths: res.paths.map(path => queues.get(path)),
dirs: [...res.dirs].map(path => queues.get(path)),
}
}
// check if fn is first in line for all its paths, and is
// included in the first set for all its dir queues
const check = fn => {
const { paths, dirs } = getQueues(fn)
return paths.every(q => q[0] === fn) &&
dirs.every(q => q[0] instanceof Set && q[0].has(fn))
}
// run the function if it's first in line and not already running
const run = fn => {
if (running.has(fn) || !check(fn)) {
return false
}
running.add(fn)
fn(() => clear(fn))
return true
}
const clear = fn => {
if (!running.has(fn)) {
return false
}
const { paths, dirs } = reservations.get(fn)
const next = new Set()
paths.forEach(path => {
const q = queues.get(path)
assert.equal(q[0], fn)
if (q.length === 1) {
queues.delete(path)
} else {
q.shift()
if (typeof q[0] === 'function') {
next.add(q[0])
} else {
q[0].forEach(fn => next.add(fn))
}
}
})
dirs.forEach(dir => {
const q = queues.get(dir)
assert(q[0] instanceof Set)
if (q[0].size === 1 && q.length === 1) {
queues.delete(dir)
} else if (q[0].size === 1) {
q.shift()
// must be a function or else the Set would've been reused
next.add(q[0])
} else {
q[0].delete(fn)
}
})
running.delete(fn)
next.forEach(fn => run(fn))
return true
}
const reserve = (paths, fn) => {
// collide on matches across case and unicode normalization
// On windows, thanks to the magic of 8.3 shortnames, it is fundamentally
// impossible to determine whether two paths refer to the same thing on
// disk, without asking the kernel for a shortname.
// So, we just pretend that every path matches every other path here,
// effectively removing all parallelization on windows.
paths = isWindows ? ['win32 parallelization disabled'] : paths.map(p => {
// don't need normPath, because we skip this entirely for windows
return normalize(stripSlashes(join(p))).toLowerCase()
})
const dirs = new Set(
paths.map(path => getDirs(path)).reduce((a, b) => a.concat(b))
)
reservations.set(fn, { dirs, paths })
paths.forEach(path => {
const q = queues.get(path)
if (!q) {
queues.set(path, [fn])
} else {
q.push(fn)
}
})
dirs.forEach(dir => {
const q = queues.get(dir)
if (!q) {
queues.set(dir, [new Set([fn])])
} else if (q[q.length - 1] instanceof Set) {
q[q.length - 1].add(fn)
} else {
q.push(new Set([fn]))
}
})
return run(fn)
}
return { check, reserve }
}
node-tar-6.1.13/lib/pax.js 0000664 0000000 0000000 00000007744 14344174136 0015232 0 ustar 00root root 0000000 0000000 'use strict'
const Header = require('./header.js')
const path = require('path')
class Pax {
constructor (obj, global) {
this.atime = obj.atime || null
this.charset = obj.charset || null
this.comment = obj.comment || null
this.ctime = obj.ctime || null
this.gid = obj.gid || null
this.gname = obj.gname || null
this.linkpath = obj.linkpath || null
this.mtime = obj.mtime || null
this.path = obj.path || null
this.size = obj.size || null
this.uid = obj.uid || null
this.uname = obj.uname || null
this.dev = obj.dev || null
this.ino = obj.ino || null
this.nlink = obj.nlink || null
this.global = global || false
}
encode () {
const body = this.encodeBody()
if (body === '') {
return null
}
const bodyLen = Buffer.byteLength(body)
// round up to 512 bytes
// add 512 for header
const bufLen = 512 * Math.ceil(1 + bodyLen / 512)
const buf = Buffer.allocUnsafe(bufLen)
// 0-fill the header section, it might not hit every field
for (let i = 0; i < 512; i++) {
buf[i] = 0
}
new Header({
// XXX split the path
// then the path should be PaxHeader + basename, but less than 99,
// prepend with the dirname
path: ('PaxHeader/' + path.basename(this.path)).slice(0, 99),
mode: this.mode || 0o644,
uid: this.uid || null,
gid: this.gid || null,
size: bodyLen,
mtime: this.mtime || null,
type: this.global ? 'GlobalExtendedHeader' : 'ExtendedHeader',
linkpath: '',
uname: this.uname || '',
gname: this.gname || '',
devmaj: 0,
devmin: 0,
atime: this.atime || null,
ctime: this.ctime || null,
}).encode(buf)
buf.write(body, 512, bodyLen, 'utf8')
// null pad after the body
for (let i = bodyLen + 512; i < buf.length; i++) {
buf[i] = 0
}
return buf
}
encodeBody () {
return (
this.encodeField('path') +
this.encodeField('ctime') +
this.encodeField('atime') +
this.encodeField('dev') +
this.encodeField('ino') +
this.encodeField('nlink') +
this.encodeField('charset') +
this.encodeField('comment') +
this.encodeField('gid') +
this.encodeField('gname') +
this.encodeField('linkpath') +
this.encodeField('mtime') +
this.encodeField('size') +
this.encodeField('uid') +
this.encodeField('uname')
)
}
encodeField (field) {
if (this[field] === null || this[field] === undefined) {
return ''
}
const v = this[field] instanceof Date ? this[field].getTime() / 1000
: this[field]
const s = ' ' +
(field === 'dev' || field === 'ino' || field === 'nlink'
? 'SCHILY.' : '') +
field + '=' + v + '\n'
const byteLen = Buffer.byteLength(s)
// the digits includes the length of the digits in ascii base-10
// so if it's 9 characters, then adding 1 for the 9 makes it 10
// which makes it 11 chars.
let digits = Math.floor(Math.log(byteLen) / Math.log(10)) + 1
if (byteLen + digits >= Math.pow(10, digits)) {
digits += 1
}
const len = digits + byteLen
return len + s
}
}
Pax.parse = (string, ex, g) => new Pax(merge(parseKV(string), ex), g)
const merge = (a, b) =>
b ? Object.keys(a).reduce((s, k) => (s[k] = a[k], s), b) : a
const parseKV = string =>
string
.replace(/\n$/, '')
.split('\n')
.reduce(parseKVLine, Object.create(null))
const parseKVLine = (set, line) => {
const n = parseInt(line, 10)
// XXX Values with \n in them will fail this.
// Refactor to not be a naive line-by-line parse.
if (n !== Buffer.byteLength(line) + 1) {
return set
}
line = line.slice((n + ' ').length)
const kv = line.split('=')
const k = kv.shift().replace(/^SCHILY\.(dev|ino|nlink)/, '$1')
if (!k) {
return set
}
const v = kv.join('=')
set[k] = /^([A-Z]+\.)?([mac]|birth|creation)time$/.test(k)
? new Date(v * 1000)
: /^[0-9]+$/.test(v) ? +v
: v
return set
}
module.exports = Pax
node-tar-6.1.13/lib/read-entry.js 0000664 0000000 0000000 00000005426 14344174136 0016507 0 ustar 00root root 0000000 0000000 'use strict'
const MiniPass = require('minipass')
const normPath = require('./normalize-windows-path.js')
const SLURP = Symbol('slurp')
module.exports = class ReadEntry extends MiniPass {
constructor (header, ex, gex) {
super()
// read entries always start life paused. this is to avoid the
// situation where Minipass's auto-ending empty streams results
// in an entry ending before we're ready for it.
this.pause()
this.extended = ex
this.globalExtended = gex
this.header = header
this.startBlockSize = 512 * Math.ceil(header.size / 512)
this.blockRemain = this.startBlockSize
this.remain = header.size
this.type = header.type
this.meta = false
this.ignore = false
switch (this.type) {
case 'File':
case 'OldFile':
case 'Link':
case 'SymbolicLink':
case 'CharacterDevice':
case 'BlockDevice':
case 'Directory':
case 'FIFO':
case 'ContiguousFile':
case 'GNUDumpDir':
break
case 'NextFileHasLongLinkpath':
case 'NextFileHasLongPath':
case 'OldGnuLongPath':
case 'GlobalExtendedHeader':
case 'ExtendedHeader':
case 'OldExtendedHeader':
this.meta = true
break
// NOTE: gnutar and bsdtar treat unrecognized types as 'File'
// it may be worth doing the same, but with a warning.
default:
this.ignore = true
}
this.path = normPath(header.path)
this.mode = header.mode
if (this.mode) {
this.mode = this.mode & 0o7777
}
this.uid = header.uid
this.gid = header.gid
this.uname = header.uname
this.gname = header.gname
this.size = header.size
this.mtime = header.mtime
this.atime = header.atime
this.ctime = header.ctime
this.linkpath = normPath(header.linkpath)
this.uname = header.uname
this.gname = header.gname
if (ex) {
this[SLURP](ex)
}
if (gex) {
this[SLURP](gex, true)
}
}
write (data) {
const writeLen = data.length
if (writeLen > this.blockRemain) {
throw new Error('writing more to entry than is appropriate')
}
const r = this.remain
const br = this.blockRemain
this.remain = Math.max(0, r - writeLen)
this.blockRemain = Math.max(0, br - writeLen)
if (this.ignore) {
return true
}
if (r >= writeLen) {
return super.write(data)
}
// r < writeLen
return super.write(data.slice(0, r))
}
[SLURP] (ex, global) {
for (const k in ex) {
// we slurp in everything except for the path attribute in
// a global extended header, because that's weird.
if (ex[k] !== null && ex[k] !== undefined &&
!(global && k === 'path')) {
this[k] = k === 'path' || k === 'linkpath' ? normPath(ex[k]) : ex[k]
}
}
}
}
node-tar-6.1.13/lib/replace.js 0000664 0000000 0000000 00000013111 14344174136 0016036 0 ustar 00root root 0000000 0000000 'use strict'
// tar -r
const hlo = require('./high-level-opt.js')
const Pack = require('./pack.js')
const fs = require('fs')
const fsm = require('fs-minipass')
const t = require('./list.js')
const path = require('path')
// starting at the head of the file, read a Header
// If the checksum is invalid, that's our position to start writing
// If it is, jump forward by the specified size (round up to 512)
// and try again.
// Write the new Pack stream starting there.
const Header = require('./header.js')
module.exports = (opt_, files, cb) => {
const opt = hlo(opt_)
if (!opt.file) {
throw new TypeError('file is required')
}
if (opt.gzip) {
throw new TypeError('cannot append to compressed archives')
}
if (!files || !Array.isArray(files) || !files.length) {
throw new TypeError('no files or directories specified')
}
files = Array.from(files)
return opt.sync ? replaceSync(opt, files)
: replace(opt, files, cb)
}
const replaceSync = (opt, files) => {
const p = new Pack.Sync(opt)
let threw = true
let fd
let position
try {
try {
fd = fs.openSync(opt.file, 'r+')
} catch (er) {
if (er.code === 'ENOENT') {
fd = fs.openSync(opt.file, 'w+')
} else {
throw er
}
}
const st = fs.fstatSync(fd)
const headBuf = Buffer.alloc(512)
POSITION: for (position = 0; position < st.size; position += 512) {
for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {
bytes = fs.readSync(
fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos
)
if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {
throw new Error('cannot append to compressed archives')
}
if (!bytes) {
break POSITION
}
}
const h = new Header(headBuf)
if (!h.cksumValid) {
break
}
const entryBlockSize = 512 * Math.ceil(h.size / 512)
if (position + entryBlockSize + 512 > st.size) {
break
}
// the 512 for the header we just parsed will be added as well
// also jump ahead all the blocks for the body
position += entryBlockSize
if (opt.mtimeCache) {
opt.mtimeCache.set(h.path, h.mtime)
}
}
threw = false
streamSync(opt, p, position, fd, files)
} finally {
if (threw) {
try {
fs.closeSync(fd)
} catch (er) {}
}
}
}
const streamSync = (opt, p, position, fd, files) => {
const stream = new fsm.WriteStreamSync(opt.file, {
fd: fd,
start: position,
})
p.pipe(stream)
addFilesSync(p, files)
}
const replace = (opt, files, cb) => {
files = Array.from(files)
const p = new Pack(opt)
const getPos = (fd, size, cb_) => {
const cb = (er, pos) => {
if (er) {
fs.close(fd, _ => cb_(er))
} else {
cb_(null, pos)
}
}
let position = 0
if (size === 0) {
return cb(null, 0)
}
let bufPos = 0
const headBuf = Buffer.alloc(512)
const onread = (er, bytes) => {
if (er) {
return cb(er)
}
bufPos += bytes
if (bufPos < 512 && bytes) {
return fs.read(
fd, headBuf, bufPos, headBuf.length - bufPos,
position + bufPos, onread
)
}
if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {
return cb(new Error('cannot append to compressed archives'))
}
// truncated header
if (bufPos < 512) {
return cb(null, position)
}
const h = new Header(headBuf)
if (!h.cksumValid) {
return cb(null, position)
}
const entryBlockSize = 512 * Math.ceil(h.size / 512)
if (position + entryBlockSize + 512 > size) {
return cb(null, position)
}
position += entryBlockSize + 512
if (position >= size) {
return cb(null, position)
}
if (opt.mtimeCache) {
opt.mtimeCache.set(h.path, h.mtime)
}
bufPos = 0
fs.read(fd, headBuf, 0, 512, position, onread)
}
fs.read(fd, headBuf, 0, 512, position, onread)
}
const promise = new Promise((resolve, reject) => {
p.on('error', reject)
let flag = 'r+'
const onopen = (er, fd) => {
if (er && er.code === 'ENOENT' && flag === 'r+') {
flag = 'w+'
return fs.open(opt.file, flag, onopen)
}
if (er) {
return reject(er)
}
fs.fstat(fd, (er, st) => {
if (er) {
return fs.close(fd, () => reject(er))
}
getPos(fd, st.size, (er, position) => {
if (er) {
return reject(er)
}
const stream = new fsm.WriteStream(opt.file, {
fd: fd,
start: position,
})
p.pipe(stream)
stream.on('error', reject)
stream.on('close', resolve)
addFilesAsync(p, files)
})
})
}
fs.open(opt.file, flag, onopen)
})
return cb ? promise.then(cb, cb) : promise
}
const addFilesSync = (p, files) => {
files.forEach(file => {
if (file.charAt(0) === '@') {
t({
file: path.resolve(p.cwd, file.slice(1)),
sync: true,
noResume: true,
onentry: entry => p.add(entry),
})
} else {
p.add(file)
}
})
p.end()
}
const addFilesAsync = (p, files) => {
while (files.length) {
const file = files.shift()
if (file.charAt(0) === '@') {
return t({
file: path.resolve(p.cwd, file.slice(1)),
noResume: true,
onentry: entry => p.add(entry),
}).then(_ => addFilesAsync(p, files))
} else {
p.add(file)
}
}
p.end()
}
node-tar-6.1.13/lib/strip-absolute-path.js 0000664 0000000 0000000 00000001625 14344174136 0020341 0 ustar 00root root 0000000 0000000 // unix absolute paths are also absolute on win32, so we use this for both
const { isAbsolute, parse } = require('path').win32
// returns [root, stripped]
// Note that windows will think that //x/y/z/a has a "root" of //x/y, and in
// those cases, we want to sanitize it to x/y/z/a, not z/a, so we strip /
// explicitly if it's the first character.
// drive-specific relative paths on Windows get their root stripped off even
// though they are not absolute, so `c:../foo` becomes ['c:', '../foo']
module.exports = path => {
let r = ''
let parsed = parse(path)
while (isAbsolute(path) || parsed.root) {
// windows will think that //x/y/z has a "root" of //x/y/
// but strip the //?/C:/ off of //?/C:/path
const root = path.charAt(0) === '/' && path.slice(0, 4) !== '//?/' ? '/'
: parsed.root
path = path.slice(root.length)
r += root
parsed = parse(path)
}
return [r, path]
}
node-tar-6.1.13/lib/strip-trailing-slashes.js 0000664 0000000 0000000 00000000612 14344174136 0021035 0 ustar 00root root 0000000 0000000 // warning: extremely hot code path.
// This has been meticulously optimized for use
// within npm install on large package trees.
// Do not edit without careful benchmarking.
module.exports = str => {
let i = str.length - 1
let slashesStart = -1
while (i > -1 && str.charAt(i) === '/') {
slashesStart = i
i--
}
return slashesStart === -1 ? str : str.slice(0, slashesStart)
}
node-tar-6.1.13/lib/types.js 0000664 0000000 0000000 00000002110 14344174136 0015564 0 ustar 00root root 0000000 0000000 'use strict'
// map types from key to human-friendly name
exports.name = new Map([
['0', 'File'],
// same as File
['', 'OldFile'],
['1', 'Link'],
['2', 'SymbolicLink'],
// Devices and FIFOs aren't fully supported
// they are parsed, but skipped when unpacking
['3', 'CharacterDevice'],
['4', 'BlockDevice'],
['5', 'Directory'],
['6', 'FIFO'],
// same as File
['7', 'ContiguousFile'],
// pax headers
['g', 'GlobalExtendedHeader'],
['x', 'ExtendedHeader'],
// vendor-specific stuff
// skip
['A', 'SolarisACL'],
// like 5, but with data, which should be skipped
['D', 'GNUDumpDir'],
// metadata only, skip
['I', 'Inode'],
// data = link path of next file
['K', 'NextFileHasLongLinkpath'],
// data = path of next file
['L', 'NextFileHasLongPath'],
// skip
['M', 'ContinuationFile'],
// like L
['N', 'OldGnuLongPath'],
// skip
['S', 'SparseFile'],
// skip
['V', 'TapeVolumeHeader'],
// like x
['X', 'OldExtendedHeader'],
])
// map the other direction
exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]]))
node-tar-6.1.13/lib/unpack.js 0000664 0000000 0000000 00000061443 14344174136 0015717 0 ustar 00root root 0000000 0000000 'use strict'
// the PEND/UNPEND stuff tracks whether we're ready to emit end/close yet.
// but the path reservations are required to avoid race conditions where
// parallelized unpack ops may mess with one another, due to dependencies
// (like a Link depending on its target) or destructive operations (like
// clobbering an fs object to create one of a different type.)
const assert = require('assert')
const Parser = require('./parse.js')
const fs = require('fs')
const fsm = require('fs-minipass')
const path = require('path')
const mkdir = require('./mkdir.js')
const wc = require('./winchars.js')
const pathReservations = require('./path-reservations.js')
const stripAbsolutePath = require('./strip-absolute-path.js')
const normPath = require('./normalize-windows-path.js')
const stripSlash = require('./strip-trailing-slashes.js')
const normalize = require('./normalize-unicode.js')
const ONENTRY = Symbol('onEntry')
const CHECKFS = Symbol('checkFs')
const CHECKFS2 = Symbol('checkFs2')
const PRUNECACHE = Symbol('pruneCache')
const ISREUSABLE = Symbol('isReusable')
const MAKEFS = Symbol('makeFs')
const FILE = Symbol('file')
const DIRECTORY = Symbol('directory')
const LINK = Symbol('link')
const SYMLINK = Symbol('symlink')
const HARDLINK = Symbol('hardlink')
const UNSUPPORTED = Symbol('unsupported')
const CHECKPATH = Symbol('checkPath')
const MKDIR = Symbol('mkdir')
const ONERROR = Symbol('onError')
const PENDING = Symbol('pending')
const PEND = Symbol('pend')
const UNPEND = Symbol('unpend')
const ENDED = Symbol('ended')
const MAYBECLOSE = Symbol('maybeClose')
const SKIP = Symbol('skip')
const DOCHOWN = Symbol('doChown')
const UID = Symbol('uid')
const GID = Symbol('gid')
const CHECKED_CWD = Symbol('checkedCwd')
const crypto = require('crypto')
const getFlag = require('./get-write-flag.js')
const platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform
const isWindows = platform === 'win32'
// Unlinks on Windows are not atomic.
//
// This means that if you have a file entry, followed by another
// file entry with an identical name, and you cannot re-use the file
// (because it's a hardlink, or because unlink:true is set, or it's
// Windows, which does not have useful nlink values), then the unlink
// will be committed to the disk AFTER the new file has been written
// over the old one, deleting the new file.
//
// To work around this, on Windows systems, we rename the file and then
// delete the renamed file. It's a sloppy kludge, but frankly, I do not
// know of a better way to do this, given windows' non-atomic unlink
// semantics.
//
// See: https://github.com/npm/node-tar/issues/183
/* istanbul ignore next */
const unlinkFile = (path, cb) => {
if (!isWindows) {
return fs.unlink(path, cb)
}
const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex')
fs.rename(path, name, er => {
if (er) {
return cb(er)
}
fs.unlink(name, cb)
})
}
/* istanbul ignore next */
const unlinkFileSync = path => {
if (!isWindows) {
return fs.unlinkSync(path)
}
const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex')
fs.renameSync(path, name)
fs.unlinkSync(name)
}
// this.gid, entry.gid, this.processUid
const uint32 = (a, b, c) =>
a === a >>> 0 ? a
: b === b >>> 0 ? b
: c
// clear the cache if it's a case-insensitive unicode-squashing match.
// we can't know if the current file system is case-sensitive or supports
// unicode fully, so we check for similarity on the maximally compatible
// representation. Err on the side of pruning, since all it's doing is
// preventing lstats, and it's not the end of the world if we get a false
// positive.
// Note that on windows, we always drop the entire cache whenever a
// symbolic link is encountered, because 8.3 filenames are impossible
// to reason about, and collisions are hazards rather than just failures.
const cacheKeyNormalize = path => normalize(stripSlash(normPath(path)))
.toLowerCase()
const pruneCache = (cache, abs) => {
abs = cacheKeyNormalize(abs)
for (const path of cache.keys()) {
const pnorm = cacheKeyNormalize(path)
if (pnorm === abs || pnorm.indexOf(abs + '/') === 0) {
cache.delete(path)
}
}
}
const dropCache = cache => {
for (const key of cache.keys()) {
cache.delete(key)
}
}
class Unpack extends Parser {
constructor (opt) {
if (!opt) {
opt = {}
}
opt.ondone = _ => {
this[ENDED] = true
this[MAYBECLOSE]()
}
super(opt)
this[CHECKED_CWD] = false
this.reservations = pathReservations()
this.transform = typeof opt.transform === 'function' ? opt.transform : null
this.writable = true
this.readable = false
this[PENDING] = 0
this[ENDED] = false
this.dirCache = opt.dirCache || new Map()
if (typeof opt.uid === 'number' || typeof opt.gid === 'number') {
// need both or neither
if (typeof opt.uid !== 'number' || typeof opt.gid !== 'number') {
throw new TypeError('cannot set owner without number uid and gid')
}
if (opt.preserveOwner) {
throw new TypeError(
'cannot preserve owner in archive and also set owner explicitly')
}
this.uid = opt.uid
this.gid = opt.gid
this.setOwner = true
} else {
this.uid = null
this.gid = null
this.setOwner = false
}
// default true for root
if (opt.preserveOwner === undefined && typeof opt.uid !== 'number') {
this.preserveOwner = process.getuid && process.getuid() === 0
} else {
this.preserveOwner = !!opt.preserveOwner
}
this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ?
process.getuid() : null
this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ?
process.getgid() : null
// mostly just for testing, but useful in some cases.
// Forcibly trigger a chown on every entry, no matter what
this.forceChown = opt.forceChown === true
// turn >| in filenames into 0xf000-higher encoded forms
this.win32 = !!opt.win32 || isWindows
// do not unpack over files that are newer than what's in the archive
this.newer = !!opt.newer
// do not unpack over ANY files
this.keep = !!opt.keep
// do not set mtime/atime of extracted entries
this.noMtime = !!opt.noMtime
// allow .., absolute path entries, and unpacking through symlinks
// without this, warn and skip .., relativize absolutes, and error
// on symlinks in extraction path
this.preservePaths = !!opt.preservePaths
// unlink files and links before writing. This breaks existing hard
// links, and removes symlink directories rather than erroring
this.unlink = !!opt.unlink
this.cwd = normPath(path.resolve(opt.cwd || process.cwd()))
this.strip = +opt.strip || 0
// if we're not chmodding, then we don't need the process umask
this.processUmask = opt.noChmod ? 0 : process.umask()
this.umask = typeof opt.umask === 'number' ? opt.umask : this.processUmask
// default mode for dirs created as parents
this.dmode = opt.dmode || (0o0777 & (~this.umask))
this.fmode = opt.fmode || (0o0666 & (~this.umask))
this.on('entry', entry => this[ONENTRY](entry))
}
// a bad or damaged archive is a warning for Parser, but an error
// when extracting. Mark those errors as unrecoverable, because
// the Unpack contract cannot be met.
warn (code, msg, data = {}) {
if (code === 'TAR_BAD_ARCHIVE' || code === 'TAR_ABORT') {
data.recoverable = false
}
return super.warn(code, msg, data)
}
[MAYBECLOSE] () {
if (this[ENDED] && this[PENDING] === 0) {
this.emit('prefinish')
this.emit('finish')
this.emit('end')
}
}
[CHECKPATH] (entry) {
if (this.strip) {
const parts = normPath(entry.path).split('/')
if (parts.length < this.strip) {
return false
}
entry.path = parts.slice(this.strip).join('/')
if (entry.type === 'Link') {
const linkparts = normPath(entry.linkpath).split('/')
if (linkparts.length >= this.strip) {
entry.linkpath = linkparts.slice(this.strip).join('/')
} else {
return false
}
}
}
if (!this.preservePaths) {
const p = normPath(entry.path)
const parts = p.split('/')
if (parts.includes('..') || isWindows && /^[a-z]:\.\.$/i.test(parts[0])) {
this.warn('TAR_ENTRY_ERROR', `path contains '..'`, {
entry,
path: p,
})
return false
}
// strip off the root
const [root, stripped] = stripAbsolutePath(p)
if (root) {
entry.path = stripped
this.warn('TAR_ENTRY_INFO', `stripping ${root} from absolute path`, {
entry,
path: p,
})
}
}
if (path.isAbsolute(entry.path)) {
entry.absolute = normPath(path.resolve(entry.path))
} else {
entry.absolute = normPath(path.resolve(this.cwd, entry.path))
}
// if we somehow ended up with a path that escapes the cwd, and we are
// not in preservePaths mode, then something is fishy! This should have
// been prevented above, so ignore this for coverage.
/* istanbul ignore if - defense in depth */
if (!this.preservePaths &&
entry.absolute.indexOf(this.cwd + '/') !== 0 &&
entry.absolute !== this.cwd) {
this.warn('TAR_ENTRY_ERROR', 'path escaped extraction target', {
entry,
path: normPath(entry.path),
resolvedPath: entry.absolute,
cwd: this.cwd,
})
return false
}
// an archive can set properties on the extraction directory, but it
// may not replace the cwd with a different kind of thing entirely.
if (entry.absolute === this.cwd &&
entry.type !== 'Directory' &&
entry.type !== 'GNUDumpDir') {
return false
}
// only encode : chars that aren't drive letter indicators
if (this.win32) {
const { root: aRoot } = path.win32.parse(entry.absolute)
entry.absolute = aRoot + wc.encode(entry.absolute.slice(aRoot.length))
const { root: pRoot } = path.win32.parse(entry.path)
entry.path = pRoot + wc.encode(entry.path.slice(pRoot.length))
}
return true
}
[ONENTRY] (entry) {
if (!this[CHECKPATH](entry)) {
return entry.resume()
}
assert.equal(typeof entry.absolute, 'string')
switch (entry.type) {
case 'Directory':
case 'GNUDumpDir':
if (entry.mode) {
entry.mode = entry.mode | 0o700
}
// eslint-disable-next-line no-fallthrough
case 'File':
case 'OldFile':
case 'ContiguousFile':
case 'Link':
case 'SymbolicLink':
return this[CHECKFS](entry)
case 'CharacterDevice':
case 'BlockDevice':
case 'FIFO':
default:
return this[UNSUPPORTED](entry)
}
}
[ONERROR] (er, entry) {
// Cwd has to exist, or else nothing works. That's serious.
// Other errors are warnings, which raise the error in strict
// mode, but otherwise continue on.
if (er.name === 'CwdError') {
this.emit('error', er)
} else {
this.warn('TAR_ENTRY_ERROR', er, { entry })
this[UNPEND]()
entry.resume()
}
}
[MKDIR] (dir, mode, cb) {
mkdir(normPath(dir), {
uid: this.uid,
gid: this.gid,
processUid: this.processUid,
processGid: this.processGid,
umask: this.processUmask,
preserve: this.preservePaths,
unlink: this.unlink,
cache: this.dirCache,
cwd: this.cwd,
mode: mode,
noChmod: this.noChmod,
}, cb)
}
[DOCHOWN] (entry) {
// in preserve owner mode, chown if the entry doesn't match process
// in set owner mode, chown if setting doesn't match process
return this.forceChown ||
this.preserveOwner &&
(typeof entry.uid === 'number' && entry.uid !== this.processUid ||
typeof entry.gid === 'number' && entry.gid !== this.processGid)
||
(typeof this.uid === 'number' && this.uid !== this.processUid ||
typeof this.gid === 'number' && this.gid !== this.processGid)
}
[UID] (entry) {
return uint32(this.uid, entry.uid, this.processUid)
}
[GID] (entry) {
return uint32(this.gid, entry.gid, this.processGid)
}
[FILE] (entry, fullyDone) {
const mode = entry.mode & 0o7777 || this.fmode
const stream = new fsm.WriteStream(entry.absolute, {
flags: getFlag(entry.size),
mode: mode,
autoClose: false,
})
stream.on('error', er => {
if (stream.fd) {
fs.close(stream.fd, () => {})
}
// flush all the data out so that we aren't left hanging
// if the error wasn't actually fatal. otherwise the parse
// is blocked, and we never proceed.
stream.write = () => true
this[ONERROR](er, entry)
fullyDone()
})
let actions = 1
const done = er => {
if (er) {
/* istanbul ignore else - we should always have a fd by now */
if (stream.fd) {
fs.close(stream.fd, () => {})
}
this[ONERROR](er, entry)
fullyDone()
return
}
if (--actions === 0) {
fs.close(stream.fd, er => {
if (er) {
this[ONERROR](er, entry)
} else {
this[UNPEND]()
}
fullyDone()
})
}
}
stream.on('finish', _ => {
// if futimes fails, try utimes
// if utimes fails, fail with the original error
// same for fchown/chown
const abs = entry.absolute
const fd = stream.fd
if (entry.mtime && !this.noMtime) {
actions++
const atime = entry.atime || new Date()
const mtime = entry.mtime
fs.futimes(fd, atime, mtime, er =>
er ? fs.utimes(abs, atime, mtime, er2 => done(er2 && er))
: done())
}
if (this[DOCHOWN](entry)) {
actions++
const uid = this[UID](entry)
const gid = this[GID](entry)
fs.fchown(fd, uid, gid, er =>
er ? fs.chown(abs, uid, gid, er2 => done(er2 && er))
: done())
}
done()
})
const tx = this.transform ? this.transform(entry) || entry : entry
if (tx !== entry) {
tx.on('error', er => {
this[ONERROR](er, entry)
fullyDone()
})
entry.pipe(tx)
}
tx.pipe(stream)
}
[DIRECTORY] (entry, fullyDone) {
const mode = entry.mode & 0o7777 || this.dmode
this[MKDIR](entry.absolute, mode, er => {
if (er) {
this[ONERROR](er, entry)
fullyDone()
return
}
let actions = 1
const done = _ => {
if (--actions === 0) {
fullyDone()
this[UNPEND]()
entry.resume()
}
}
if (entry.mtime && !this.noMtime) {
actions++
fs.utimes(entry.absolute, entry.atime || new Date(), entry.mtime, done)
}
if (this[DOCHOWN](entry)) {
actions++
fs.chown(entry.absolute, this[UID](entry), this[GID](entry), done)
}
done()
})
}
[UNSUPPORTED] (entry) {
entry.unsupported = true
this.warn('TAR_ENTRY_UNSUPPORTED',
`unsupported entry type: ${entry.type}`, { entry })
entry.resume()
}
[SYMLINK] (entry, done) {
this[LINK](entry, entry.linkpath, 'symlink', done)
}
[HARDLINK] (entry, done) {
const linkpath = normPath(path.resolve(this.cwd, entry.linkpath))
this[LINK](entry, linkpath, 'link', done)
}
[PEND] () {
this[PENDING]++
}
[UNPEND] () {
this[PENDING]--
this[MAYBECLOSE]()
}
[SKIP] (entry) {
this[UNPEND]()
entry.resume()
}
// Check if we can reuse an existing filesystem entry safely and
// overwrite it, rather than unlinking and recreating
// Windows doesn't report a useful nlink, so we just never reuse entries
[ISREUSABLE] (entry, st) {
return entry.type === 'File' &&
!this.unlink &&
st.isFile() &&
st.nlink <= 1 &&
!isWindows
}
// check if a thing is there, and if so, try to clobber it
[CHECKFS] (entry) {
this[PEND]()
const paths = [entry.path]
if (entry.linkpath) {
paths.push(entry.linkpath)
}
this.reservations.reserve(paths, done => this[CHECKFS2](entry, done))
}
[PRUNECACHE] (entry) {
// if we are not creating a directory, and the path is in the dirCache,
// then that means we are about to delete the directory we created
// previously, and it is no longer going to be a directory, and neither
// is any of its children.
// If a symbolic link is encountered, all bets are off. There is no
// reasonable way to sanitize the cache in such a way we will be able to
// avoid having filesystem collisions. If this happens with a non-symlink
// entry, it'll just fail to unpack, but a symlink to a directory, using an
// 8.3 shortname or certain unicode attacks, can evade detection and lead
// to arbitrary writes to anywhere on the system.
if (entry.type === 'SymbolicLink') {
dropCache(this.dirCache)
} else if (entry.type !== 'Directory') {
pruneCache(this.dirCache, entry.absolute)
}
}
[CHECKFS2] (entry, fullyDone) {
this[PRUNECACHE](entry)
const done = er => {
this[PRUNECACHE](entry)
fullyDone(er)
}
const checkCwd = () => {
this[MKDIR](this.cwd, this.dmode, er => {
if (er) {
this[ONERROR](er, entry)
done()
return
}
this[CHECKED_CWD] = true
start()
})
}
const start = () => {
if (entry.absolute !== this.cwd) {
const parent = normPath(path.dirname(entry.absolute))
if (parent !== this.cwd) {
return this[MKDIR](parent, this.dmode, er => {
if (er) {
this[ONERROR](er, entry)
done()
return
}
afterMakeParent()
})
}
}
afterMakeParent()
}
const afterMakeParent = () => {
fs.lstat(entry.absolute, (lstatEr, st) => {
if (st && (this.keep || this.newer && st.mtime > entry.mtime)) {
this[SKIP](entry)
done()
return
}
if (lstatEr || this[ISREUSABLE](entry, st)) {
return this[MAKEFS](null, entry, done)
}
if (st.isDirectory()) {
if (entry.type === 'Directory') {
const needChmod = !this.noChmod &&
entry.mode &&
(st.mode & 0o7777) !== entry.mode
const afterChmod = er => this[MAKEFS](er, entry, done)
if (!needChmod) {
return afterChmod()
}
return fs.chmod(entry.absolute, entry.mode, afterChmod)
}
// Not a dir entry, have to remove it.
// NB: the only way to end up with an entry that is the cwd
// itself, in such a way that == does not detect, is a
// tricky windows absolute path with UNC or 8.3 parts (and
// preservePaths:true, or else it will have been stripped).
// In that case, the user has opted out of path protections
// explicitly, so if they blow away the cwd, c'est la vie.
if (entry.absolute !== this.cwd) {
return fs.rmdir(entry.absolute, er =>
this[MAKEFS](er, entry, done))
}
}
// not a dir, and not reusable
// don't remove if the cwd, we want that error
if (entry.absolute === this.cwd) {
return this[MAKEFS](null, entry, done)
}
unlinkFile(entry.absolute, er =>
this[MAKEFS](er, entry, done))
})
}
if (this[CHECKED_CWD]) {
start()
} else {
checkCwd()
}
}
[MAKEFS] (er, entry, done) {
if (er) {
this[ONERROR](er, entry)
done()
return
}
switch (entry.type) {
case 'File':
case 'OldFile':
case 'ContiguousFile':
return this[FILE](entry, done)
case 'Link':
return this[HARDLINK](entry, done)
case 'SymbolicLink':
return this[SYMLINK](entry, done)
case 'Directory':
case 'GNUDumpDir':
return this[DIRECTORY](entry, done)
}
}
[LINK] (entry, linkpath, link, done) {
// XXX: get the type ('symlink' or 'junction') for windows
fs[link](linkpath, entry.absolute, er => {
if (er) {
this[ONERROR](er, entry)
} else {
this[UNPEND]()
entry.resume()
}
done()
})
}
}
const callSync = fn => {
try {
return [null, fn()]
} catch (er) {
return [er, null]
}
}
class UnpackSync extends Unpack {
[MAKEFS] (er, entry) {
return super[MAKEFS](er, entry, () => {})
}
[CHECKFS] (entry) {
this[PRUNECACHE](entry)
if (!this[CHECKED_CWD]) {
const er = this[MKDIR](this.cwd, this.dmode)
if (er) {
return this[ONERROR](er, entry)
}
this[CHECKED_CWD] = true
}
// don't bother to make the parent if the current entry is the cwd,
// we've already checked it.
if (entry.absolute !== this.cwd) {
const parent = normPath(path.dirname(entry.absolute))
if (parent !== this.cwd) {
const mkParent = this[MKDIR](parent, this.dmode)
if (mkParent) {
return this[ONERROR](mkParent, entry)
}
}
}
const [lstatEr, st] = callSync(() => fs.lstatSync(entry.absolute))
if (st && (this.keep || this.newer && st.mtime > entry.mtime)) {
return this[SKIP](entry)
}
if (lstatEr || this[ISREUSABLE](entry, st)) {
return this[MAKEFS](null, entry)
}
if (st.isDirectory()) {
if (entry.type === 'Directory') {
const needChmod = !this.noChmod &&
entry.mode &&
(st.mode & 0o7777) !== entry.mode
const [er] = needChmod ? callSync(() => {
fs.chmodSync(entry.absolute, entry.mode)
}) : []
return this[MAKEFS](er, entry)
}
// not a dir entry, have to remove it
const [er] = callSync(() => fs.rmdirSync(entry.absolute))
this[MAKEFS](er, entry)
}
// not a dir, and not reusable.
// don't remove if it's the cwd, since we want that error.
const [er] = entry.absolute === this.cwd ? []
: callSync(() => unlinkFileSync(entry.absolute))
this[MAKEFS](er, entry)
}
[FILE] (entry, done) {
const mode = entry.mode & 0o7777 || this.fmode
const oner = er => {
let closeError
try {
fs.closeSync(fd)
} catch (e) {
closeError = e
}
if (er || closeError) {
this[ONERROR](er || closeError, entry)
}
done()
}
let fd
try {
fd = fs.openSync(entry.absolute, getFlag(entry.size), mode)
} catch (er) {
return oner(er)
}
const tx = this.transform ? this.transform(entry) || entry : entry
if (tx !== entry) {
tx.on('error', er => this[ONERROR](er, entry))
entry.pipe(tx)
}
tx.on('data', chunk => {
try {
fs.writeSync(fd, chunk, 0, chunk.length)
} catch (er) {
oner(er)
}
})
tx.on('end', _ => {
let er = null
// try both, falling futimes back to utimes
// if either fails, handle the first error
if (entry.mtime && !this.noMtime) {
const atime = entry.atime || new Date()
const mtime = entry.mtime
try {
fs.futimesSync(fd, atime, mtime)
} catch (futimeser) {
try {
fs.utimesSync(entry.absolute, atime, mtime)
} catch (utimeser) {
er = futimeser
}
}
}
if (this[DOCHOWN](entry)) {
const uid = this[UID](entry)
const gid = this[GID](entry)
try {
fs.fchownSync(fd, uid, gid)
} catch (fchowner) {
try {
fs.chownSync(entry.absolute, uid, gid)
} catch (chowner) {
er = er || fchowner
}
}
}
oner(er)
})
}
[DIRECTORY] (entry, done) {
const mode = entry.mode & 0o7777 || this.dmode
const er = this[MKDIR](entry.absolute, mode)
if (er) {
this[ONERROR](er, entry)
done()
return
}
if (entry.mtime && !this.noMtime) {
try {
fs.utimesSync(entry.absolute, entry.atime || new Date(), entry.mtime)
} catch (er) {}
}
if (this[DOCHOWN](entry)) {
try {
fs.chownSync(entry.absolute, this[UID](entry), this[GID](entry))
} catch (er) {}
}
done()
entry.resume()
}
[MKDIR] (dir, mode) {
try {
return mkdir.sync(normPath(dir), {
uid: this.uid,
gid: this.gid,
processUid: this.processUid,
processGid: this.processGid,
umask: this.processUmask,
preserve: this.preservePaths,
unlink: this.unlink,
cache: this.dirCache,
cwd: this.cwd,
mode: mode,
})
} catch (er) {
return er
}
}
[LINK] (entry, linkpath, link, done) {
try {
fs[link + 'Sync'](linkpath, entry.absolute)
done()
entry.resume()
} catch (er) {
return this[ONERROR](er, entry)
}
}
}
Unpack.Sync = UnpackSync
module.exports = Unpack
node-tar-6.1.13/lib/update.js 0000664 0000000 0000000 00000001542 14344174136 0015712 0 ustar 00root root 0000000 0000000 'use strict'
// tar -u
const hlo = require('./high-level-opt.js')
const r = require('./replace.js')
// just call tar.r with the filter and mtimeCache
module.exports = (opt_, files, cb) => {
const opt = hlo(opt_)
if (!opt.file) {
throw new TypeError('file is required')
}
if (opt.gzip) {
throw new TypeError('cannot append to compressed archives')
}
if (!files || !Array.isArray(files) || !files.length) {
throw new TypeError('no files or directories specified')
}
files = Array.from(files)
mtimeFilter(opt)
return r(opt, files, cb)
}
const mtimeFilter = opt => {
const filter = opt.filter
if (!opt.mtimeCache) {
opt.mtimeCache = new Map()
}
opt.filter = filter ? (path, stat) =>
filter(path, stat) && !(opt.mtimeCache.get(path) > stat.mtime)
: (path, stat) => !(opt.mtimeCache.get(path) > stat.mtime)
}
node-tar-6.1.13/lib/warn-mixin.js 0000664 0000000 0000000 00000001325 14344174136 0016520 0 ustar 00root root 0000000 0000000 'use strict'
module.exports = Base => class extends Base {
warn (code, message, data = {}) {
if (this.file) {
data.file = this.file
}
if (this.cwd) {
data.cwd = this.cwd
}
data.code = message instanceof Error && message.code || code
data.tarCode = code
if (!this.strict && data.recoverable !== false) {
if (message instanceof Error) {
data = Object.assign(message, data)
message = message.message
}
this.emit('warn', data.tarCode, message, data)
} else if (message instanceof Error) {
this.emit('error', Object.assign(message, data))
} else {
this.emit('error', Object.assign(new Error(`${code}: ${message}`), data))
}
}
}
node-tar-6.1.13/lib/winchars.js 0000664 0000000 0000000 00000001027 14344174136 0016244 0 ustar 00root root 0000000 0000000 'use strict'
// When writing files on Windows, translate the characters to their
// 0xf000 higher-encoded versions.
const raw = [
'|',
'<',
'>',
'?',
':',
]
const win = raw.map(char =>
String.fromCharCode(0xf000 + char.charCodeAt(0)))
const toWin = new Map(raw.map((char, i) => [char, win[i]]))
const toRaw = new Map(win.map((char, i) => [char, raw[i]]))
module.exports = {
encode: s => raw.reduce((s, c) => s.split(c).join(toWin.get(c)), s),
decode: s => win.reduce((s, c) => s.split(c).join(toRaw.get(c)), s),
}
node-tar-6.1.13/lib/write-entry.js 0000664 0000000 0000000 00000035700 14344174136 0016724 0 ustar 00root root 0000000 0000000 'use strict'
const MiniPass = require('minipass')
const Pax = require('./pax.js')
const Header = require('./header.js')
const fs = require('fs')
const path = require('path')
const normPath = require('./normalize-windows-path.js')
const stripSlash = require('./strip-trailing-slashes.js')
const prefixPath = (path, prefix) => {
if (!prefix) {
return normPath(path)
}
path = normPath(path).replace(/^\.(\/|$)/, '')
return stripSlash(prefix) + '/' + path
}
const maxReadSize = 16 * 1024 * 1024
const PROCESS = Symbol('process')
const FILE = Symbol('file')
const DIRECTORY = Symbol('directory')
const SYMLINK = Symbol('symlink')
const HARDLINK = Symbol('hardlink')
const HEADER = Symbol('header')
const READ = Symbol('read')
const LSTAT = Symbol('lstat')
const ONLSTAT = Symbol('onlstat')
const ONREAD = Symbol('onread')
const ONREADLINK = Symbol('onreadlink')
const OPENFILE = Symbol('openfile')
const ONOPENFILE = Symbol('onopenfile')
const CLOSE = Symbol('close')
const MODE = Symbol('mode')
const AWAITDRAIN = Symbol('awaitDrain')
const ONDRAIN = Symbol('ondrain')
const PREFIX = Symbol('prefix')
const HAD_ERROR = Symbol('hadError')
const warner = require('./warn-mixin.js')
const winchars = require('./winchars.js')
const stripAbsolutePath = require('./strip-absolute-path.js')
const modeFix = require('./mode-fix.js')
const WriteEntry = warner(class WriteEntry extends MiniPass {
constructor (p, opt) {
opt = opt || {}
super(opt)
if (typeof p !== 'string') {
throw new TypeError('path is required')
}
this.path = normPath(p)
// suppress atime, ctime, uid, gid, uname, gname
this.portable = !!opt.portable
// until node has builtin pwnam functions, this'll have to do
this.myuid = process.getuid && process.getuid() || 0
this.myuser = process.env.USER || ''
this.maxReadSize = opt.maxReadSize || maxReadSize
this.linkCache = opt.linkCache || new Map()
this.statCache = opt.statCache || new Map()
this.preservePaths = !!opt.preservePaths
this.cwd = normPath(opt.cwd || process.cwd())
this.strict = !!opt.strict
this.noPax = !!opt.noPax
this.noMtime = !!opt.noMtime
this.mtime = opt.mtime || null
this.prefix = opt.prefix ? normPath(opt.prefix) : null
this.fd = null
this.blockLen = null
this.blockRemain = null
this.buf = null
this.offset = null
this.length = null
this.pos = null
this.remain = null
if (typeof opt.onwarn === 'function') {
this.on('warn', opt.onwarn)
}
let pathWarn = false
if (!this.preservePaths) {
const [root, stripped] = stripAbsolutePath(this.path)
if (root) {
this.path = stripped
pathWarn = root
}
}
this.win32 = !!opt.win32 || process.platform === 'win32'
if (this.win32) {
// force the \ to / normalization, since we might not *actually*
// be on windows, but want \ to be considered a path separator.
this.path = winchars.decode(this.path.replace(/\\/g, '/'))
p = p.replace(/\\/g, '/')
}
this.absolute = normPath(opt.absolute || path.resolve(this.cwd, p))
if (this.path === '') {
this.path = './'
}
if (pathWarn) {
this.warn('TAR_ENTRY_INFO', `stripping ${pathWarn} from absolute path`, {
entry: this,
path: pathWarn + this.path,
})
}
if (this.statCache.has(this.absolute)) {
this[ONLSTAT](this.statCache.get(this.absolute))
} else {
this[LSTAT]()
}
}
emit (ev, ...data) {
if (ev === 'error') {
this[HAD_ERROR] = true
}
return super.emit(ev, ...data)
}
[LSTAT] () {
fs.lstat(this.absolute, (er, stat) => {
if (er) {
return this.emit('error', er)
}
this[ONLSTAT](stat)
})
}
[ONLSTAT] (stat) {
this.statCache.set(this.absolute, stat)
this.stat = stat
if (!stat.isFile()) {
stat.size = 0
}
this.type = getType(stat)
this.emit('stat', stat)
this[PROCESS]()
}
[PROCESS] () {
switch (this.type) {
case 'File': return this[FILE]()
case 'Directory': return this[DIRECTORY]()
case 'SymbolicLink': return this[SYMLINK]()
// unsupported types are ignored.
default: return this.end()
}
}
[MODE] (mode) {
return modeFix(mode, this.type === 'Directory', this.portable)
}
[PREFIX] (path) {
return prefixPath(path, this.prefix)
}
[HEADER] () {
if (this.type === 'Directory' && this.portable) {
this.noMtime = true
}
this.header = new Header({
path: this[PREFIX](this.path),
// only apply the prefix to hard links.
linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath)
: this.linkpath,
// only the permissions and setuid/setgid/sticky bitflags
// not the higher-order bits that specify file type
mode: this[MODE](this.stat.mode),
uid: this.portable ? null : this.stat.uid,
gid: this.portable ? null : this.stat.gid,
size: this.stat.size,
mtime: this.noMtime ? null : this.mtime || this.stat.mtime,
type: this.type,
uname: this.portable ? null :
this.stat.uid === this.myuid ? this.myuser : '',
atime: this.portable ? null : this.stat.atime,
ctime: this.portable ? null : this.stat.ctime,
})
if (this.header.encode() && !this.noPax) {
super.write(new Pax({
atime: this.portable ? null : this.header.atime,
ctime: this.portable ? null : this.header.ctime,
gid: this.portable ? null : this.header.gid,
mtime: this.noMtime ? null : this.mtime || this.header.mtime,
path: this[PREFIX](this.path),
linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath)
: this.linkpath,
size: this.header.size,
uid: this.portable ? null : this.header.uid,
uname: this.portable ? null : this.header.uname,
dev: this.portable ? null : this.stat.dev,
ino: this.portable ? null : this.stat.ino,
nlink: this.portable ? null : this.stat.nlink,
}).encode())
}
super.write(this.header.block)
}
[DIRECTORY] () {
if (this.path.slice(-1) !== '/') {
this.path += '/'
}
this.stat.size = 0
this[HEADER]()
this.end()
}
[SYMLINK] () {
fs.readlink(this.absolute, (er, linkpath) => {
if (er) {
return this.emit('error', er)
}
this[ONREADLINK](linkpath)
})
}
[ONREADLINK] (linkpath) {
this.linkpath = normPath(linkpath)
this[HEADER]()
this.end()
}
[HARDLINK] (linkpath) {
this.type = 'Link'
this.linkpath = normPath(path.relative(this.cwd, linkpath))
this.stat.size = 0
this[HEADER]()
this.end()
}
[FILE] () {
if (this.stat.nlink > 1) {
const linkKey = this.stat.dev + ':' + this.stat.ino
if (this.linkCache.has(linkKey)) {
const linkpath = this.linkCache.get(linkKey)
if (linkpath.indexOf(this.cwd) === 0) {
return this[HARDLINK](linkpath)
}
}
this.linkCache.set(linkKey, this.absolute)
}
this[HEADER]()
if (this.stat.size === 0) {
return this.end()
}
this[OPENFILE]()
}
[OPENFILE] () {
fs.open(this.absolute, 'r', (er, fd) => {
if (er) {
return this.emit('error', er)
}
this[ONOPENFILE](fd)
})
}
[ONOPENFILE] (fd) {
this.fd = fd
if (this[HAD_ERROR]) {
return this[CLOSE]()
}
this.blockLen = 512 * Math.ceil(this.stat.size / 512)
this.blockRemain = this.blockLen
const bufLen = Math.min(this.blockLen, this.maxReadSize)
this.buf = Buffer.allocUnsafe(bufLen)
this.offset = 0
this.pos = 0
this.remain = this.stat.size
this.length = this.buf.length
this[READ]()
}
[READ] () {
const { fd, buf, offset, length, pos } = this
fs.read(fd, buf, offset, length, pos, (er, bytesRead) => {
if (er) {
// ignoring the error from close(2) is a bad practice, but at
// this point we already have an error, don't need another one
return this[CLOSE](() => this.emit('error', er))
}
this[ONREAD](bytesRead)
})
}
[CLOSE] (cb) {
fs.close(this.fd, cb)
}
[ONREAD] (bytesRead) {
if (bytesRead <= 0 && this.remain > 0) {
const er = new Error('encountered unexpected EOF')
er.path = this.absolute
er.syscall = 'read'
er.code = 'EOF'
return this[CLOSE](() => this.emit('error', er))
}
if (bytesRead > this.remain) {
const er = new Error('did not encounter expected EOF')
er.path = this.absolute
er.syscall = 'read'
er.code = 'EOF'
return this[CLOSE](() => this.emit('error', er))
}
// null out the rest of the buffer, if we could fit the block padding
// at the end of this loop, we've incremented bytesRead and this.remain
// to be incremented up to the blockRemain level, as if we had expected
// to get a null-padded file, and read it until the end. then we will
// decrement both remain and blockRemain by bytesRead, and know that we
// reached the expected EOF, without any null buffer to append.
if (bytesRead === this.remain) {
for (let i = bytesRead; i < this.length && bytesRead < this.blockRemain; i++) {
this.buf[i + this.offset] = 0
bytesRead++
this.remain++
}
}
const writeBuf = this.offset === 0 && bytesRead === this.buf.length ?
this.buf : this.buf.slice(this.offset, this.offset + bytesRead)
const flushed = this.write(writeBuf)
if (!flushed) {
this[AWAITDRAIN](() => this[ONDRAIN]())
} else {
this[ONDRAIN]()
}
}
[AWAITDRAIN] (cb) {
this.once('drain', cb)
}
write (writeBuf) {
if (this.blockRemain < writeBuf.length) {
const er = new Error('writing more data than expected')
er.path = this.absolute
return this.emit('error', er)
}
this.remain -= writeBuf.length
this.blockRemain -= writeBuf.length
this.pos += writeBuf.length
this.offset += writeBuf.length
return super.write(writeBuf)
}
[ONDRAIN] () {
if (!this.remain) {
if (this.blockRemain) {
super.write(Buffer.alloc(this.blockRemain))
}
return this[CLOSE](er => er ? this.emit('error', er) : this.end())
}
if (this.offset >= this.length) {
// if we only have a smaller bit left to read, alloc a smaller buffer
// otherwise, keep it the same length it was before.
this.buf = Buffer.allocUnsafe(Math.min(this.blockRemain, this.buf.length))
this.offset = 0
}
this.length = this.buf.length - this.offset
this[READ]()
}
})
class WriteEntrySync extends WriteEntry {
[LSTAT] () {
this[ONLSTAT](fs.lstatSync(this.absolute))
}
[SYMLINK] () {
this[ONREADLINK](fs.readlinkSync(this.absolute))
}
[OPENFILE] () {
this[ONOPENFILE](fs.openSync(this.absolute, 'r'))
}
[READ] () {
let threw = true
try {
const { fd, buf, offset, length, pos } = this
const bytesRead = fs.readSync(fd, buf, offset, length, pos)
this[ONREAD](bytesRead)
threw = false
} finally {
// ignoring the error from close(2) is a bad practice, but at
// this point we already have an error, don't need another one
if (threw) {
try {
this[CLOSE](() => {})
} catch (er) {}
}
}
}
[AWAITDRAIN] (cb) {
cb()
}
[CLOSE] (cb) {
fs.closeSync(this.fd)
cb()
}
}
const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
constructor (readEntry, opt) {
opt = opt || {}
super(opt)
this.preservePaths = !!opt.preservePaths
this.portable = !!opt.portable
this.strict = !!opt.strict
this.noPax = !!opt.noPax
this.noMtime = !!opt.noMtime
this.readEntry = readEntry
this.type = readEntry.type
if (this.type === 'Directory' && this.portable) {
this.noMtime = true
}
this.prefix = opt.prefix || null
this.path = normPath(readEntry.path)
this.mode = this[MODE](readEntry.mode)
this.uid = this.portable ? null : readEntry.uid
this.gid = this.portable ? null : readEntry.gid
this.uname = this.portable ? null : readEntry.uname
this.gname = this.portable ? null : readEntry.gname
this.size = readEntry.size
this.mtime = this.noMtime ? null : opt.mtime || readEntry.mtime
this.atime = this.portable ? null : readEntry.atime
this.ctime = this.portable ? null : readEntry.ctime
this.linkpath = normPath(readEntry.linkpath)
if (typeof opt.onwarn === 'function') {
this.on('warn', opt.onwarn)
}
let pathWarn = false
if (!this.preservePaths) {
const [root, stripped] = stripAbsolutePath(this.path)
if (root) {
this.path = stripped
pathWarn = root
}
}
this.remain = readEntry.size
this.blockRemain = readEntry.startBlockSize
this.header = new Header({
path: this[PREFIX](this.path),
linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath)
: this.linkpath,
// only the permissions and setuid/setgid/sticky bitflags
// not the higher-order bits that specify file type
mode: this.mode,
uid: this.portable ? null : this.uid,
gid: this.portable ? null : this.gid,
size: this.size,
mtime: this.noMtime ? null : this.mtime,
type: this.type,
uname: this.portable ? null : this.uname,
atime: this.portable ? null : this.atime,
ctime: this.portable ? null : this.ctime,
})
if (pathWarn) {
this.warn('TAR_ENTRY_INFO', `stripping ${pathWarn} from absolute path`, {
entry: this,
path: pathWarn + this.path,
})
}
if (this.header.encode() && !this.noPax) {
super.write(new Pax({
atime: this.portable ? null : this.atime,
ctime: this.portable ? null : this.ctime,
gid: this.portable ? null : this.gid,
mtime: this.noMtime ? null : this.mtime,
path: this[PREFIX](this.path),
linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath)
: this.linkpath,
size: this.size,
uid: this.portable ? null : this.uid,
uname: this.portable ? null : this.uname,
dev: this.portable ? null : this.readEntry.dev,
ino: this.portable ? null : this.readEntry.ino,
nlink: this.portable ? null : this.readEntry.nlink,
}).encode())
}
super.write(this.header.block)
readEntry.pipe(this)
}
[PREFIX] (path) {
return prefixPath(path, this.prefix)
}
[MODE] (mode) {
return modeFix(mode, this.type === 'Directory', this.portable)
}
write (data) {
const writeLen = data.length
if (writeLen > this.blockRemain) {
throw new Error('writing more to entry than is appropriate')
}
this.blockRemain -= writeLen
return super.write(data)
}
end () {
if (this.blockRemain) {
super.write(Buffer.alloc(this.blockRemain))
}
return super.end()
}
})
WriteEntry.Sync = WriteEntrySync
WriteEntry.Tar = WriteEntryTar
const getType = stat =>
stat.isFile() ? 'File'
: stat.isDirectory() ? 'Directory'
: stat.isSymbolicLink() ? 'SymbolicLink'
: 'Unsupported'
module.exports = WriteEntry
node-tar-6.1.13/map.js 0000664 0000000 0000000 00000000411 14344174136 0014431 0 ustar 00root root 0000000 0000000 const { basename } = require('path')
const map = test =>
test === 'index.js' || test === 'map.js' ? test
: test === 'unpack.js' ? ['lib/unpack.js', 'lib/mkdir.js']
: test === 'load-all.js' ? []
: `lib/${test}`
module.exports = test => map(basename(test))
node-tar-6.1.13/package.json 0000664 0000000 0000000 00000003140 14344174136 0015606 0 ustar 00root root 0000000 0000000 {
"author": "GitHub Inc.",
"name": "tar",
"description": "tar for node",
"version": "6.1.13",
"repository": {
"type": "git",
"url": "https://github.com/npm/node-tar.git"
},
"scripts": {
"genparse": "node scripts/generate-parse-fixtures.js",
"template-oss-apply": "template-oss-apply --force",
"lint": "eslint \"**/*.js\"",
"postlint": "template-oss-check",
"lintfix": "npm run lint -- --fix",
"snap": "tap",
"test": "tap",
"posttest": "npm run lint"
},
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^4.0.0",
"minizlib": "^2.1.1",
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
"@npmcli/template-oss": "4.10.0",
"chmodr": "^1.2.0",
"end-of-stream": "^1.4.3",
"events-to-array": "^2.0.3",
"mutate-fs": "^2.1.1",
"nock": "^13.2.9",
"rimraf": "^3.0.2",
"tap": "^16.0.1"
},
"license": "ISC",
"engines": {
"node": ">=10"
},
"files": [
"bin/",
"lib/",
"index.js"
],
"tap": {
"coverage-map": "map.js",
"timeout": 0,
"nyc-arg": [
"--exclude",
"tap-snapshots/**"
]
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
"version": "4.10.0",
"content": "scripts/template-oss",
"engines": ">=10",
"distPaths": [
"index.js"
],
"allowPaths": [
"/index.js"
],
"ciVersions": [
"10.x",
"12.x",
"14.x",
"16.x",
"18.x"
]
}
}
node-tar-6.1.13/release-please-config.json 0000664 0000000 0000000 00000001254 14344174136 0020351 0 ustar 00root root 0000000 0000000 {
"exclude-packages-from-root": true,
"group-pull-request-title-pattern": "chore: release ${version}",
"pull-request-title-pattern": "chore: release${component} ${version}",
"changelog-sections": [
{
"type": "feat",
"section": "Features",
"hidden": false
},
{
"type": "fix",
"section": "Bug Fixes",
"hidden": false
},
{
"type": "docs",
"section": "Documentation",
"hidden": false
},
{
"type": "deps",
"section": "Dependencies",
"hidden": false
},
{
"type": "chore",
"hidden": true
}
],
"packages": {
".": {
"package-name": ""
}
}
}
node-tar-6.1.13/scripts/ 0000775 0000000 0000000 00000000000 14344174136 0015011 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/scripts/generate-parse-fixtures.js 0000664 0000000 0000000 00000005715 14344174136 0022130 0 ustar 00root root 0000000 0000000 'use strict'
const Parse = require('../lib/parse.js')
const fs = require('fs')
const path = require('path')
const tardir = path.resolve(__dirname, '../test/fixtures/tars')
const parsedir = path.resolve(__dirname, '../test/fixtures/parse')
const maxMetaOpt = [250, null]
const filterOpt = [true, false]
const strictOpt = [true, false]
const makeTest = (tarfile, tardata, maxMeta, filter, strict) => {
const o =
(maxMeta ? '-meta-' + maxMeta : '') +
(filter ? '-filter' : '') +
(strict ? '-strict' : '')
const tail = (o ? '-' + o : '') + '.json'
const eventsfile = parsedir + '/' + path.basename(tarfile, '.tar') + tail
const p = new Parse({
maxMetaEntrySize: maxMeta,
filter: filter ? (path, entry) => entry.size % 2 !== 0 : null,
strict: strict,
})
const events = []
const pushEntry = type => entry => {
events.push([type, {
extended: entry.extended,
globalExtended: entry.globalExtended,
type: entry.type,
meta: entry.meta,
ignore: entry.ignore,
path: entry.path,
mode: entry.mode,
uid: entry.uid,
gid: entry.gid,
uname: entry.uname,
gname: entry.gname,
size: entry.size,
mtime: entry.mtime,
atime: entry.atime,
ctime: entry.ctime,
linkpath: entry.linkpath,
header: {
cksumValid: entry.header.cksumValid,
needPax: entry.header.needPax,
path: entry.header.path,
mode: entry.header.mode,
uid: entry.header.uid,
gid: entry.header.gid,
size: entry.header.size,
mtime: entry.header.mtime,
cksum: entry.header.cksum,
linkpath: entry.header.linkpath,
ustar: entry.header.ustar,
ustarver: entry.header.ustarver,
uname: entry.header.uname,
gname: entry.header.gname,
devmaj: entry.header.devmaj,
devmin: entry.header.devmin,
ustarPrefix: entry.header.ustarPrefix,
xstarPrefix: entry.header.xstarPrefix,
prefixTerminator: entry.header.prefixTerminator,
atime: entry.header.atime,
ctime: entry.header.atime,
},
}])
entry.resume()
}
p.on('entry', pushEntry('entry'))
p.on('ignoredEntry', pushEntry('ignoredEntry'))
p.on('warn', (code, message, data) => events.push(['warn', code, message]))
p.on('error', er => events.push(['error', {
message: er.message,
code: er.code,
}]))
p.on('end', _ => events.push(['end']))
p.on('nullBlock', _ => events.push(['nullBlock']))
p.on('eof', _ => events.push(['eof']))
p.on('meta', meta => events.push(['meta', meta]))
p.end(tardata)
console.log(eventsfile)
fs.writeFileSync(eventsfile, JSON.stringify(events, null, 2) + '\n')
}
fs.readdirSync(tardir)
.forEach(tar => {
const tarfile = tardir + '/' + tar
const tardata = fs.readFileSync(tarfile)
maxMetaOpt.forEach(maxMeta =>
filterOpt.forEach(filter =>
strictOpt.forEach(strict =>
makeTest(tarfile, tardata, maxMeta, filter, strict))))
})
node-tar-6.1.13/scripts/template-oss/ 0000775 0000000 0000000 00000000000 14344174136 0017426 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/scripts/template-oss/_step-git.yml 0000664 0000000 0000000 00000000215 14344174136 0022042 0 ustar 00root root 0000000 0000000 - name: Support Long Paths
if: matrix.platform.os == 'windows-latest'
run: git config --system core.longpaths true
{{> defaultStepGit }}
node-tar-6.1.13/scripts/template-oss/_step-node.yml 0000664 0000000 0000000 00000002173 14344174136 0022211 0 ustar 00root root 0000000 0000000 - name: Setup Node
uses: actions/setup-node@v3
with:
node-version: {{#if jobIsMatrix}}$\{{ matrix.node-version }}{{else}}{{ last ciVersions }}{{/if}}
{{#if lockfile}}
cache: npm
{{/if}}
{{#if updateNpm}}
{{#if jobIsMatrix}}
- name: Update Windows npm
# node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
run: |
curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
tar xf npm-7.5.4.tgz
cd package
node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
cd ..
rmdir /s /q package
- name: Install npm@7
if: startsWith(matrix.node-version, '10.') || startsWith(matrix.node-version, '12.')
run: npm i --prefer-online --no-fund --no-audit -g npm@7
- name: Install npm@latest
if: $\{{ !startsWith(matrix.node-version, '10.') && !startsWith(matrix.node-version, '12.') }}
{{else}}
- name: Install npm@latest
{{/if}}
run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- name: npm Version
run: npm -v
{{/if}}
node-tar-6.1.13/scripts/template-oss/_step-test.yml 0000664 0000000 0000000 00000000117 14344174136 0022237 0 ustar 00root root 0000000 0000000 - name: Set Tap RC
run: node ./test/fixtures/taprc.js
{{> defaultStepTest }}
node-tar-6.1.13/test/ 0000775 0000000 0000000 00000000000 14344174136 0014301 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/create.js 0000664 0000000 0000000 00000012732 14344174136 0016107 0 ustar 00root root 0000000 0000000 'use strict'
const isWindows = process.platform === 'win32'
const t = require('tap')
const c = require('../lib/create.js')
const list = require('../lib/list.js')
const fs = require('fs')
const path = require('path')
const dir = path.resolve(__dirname, 'fixtures/create')
const tars = path.resolve(__dirname, 'fixtures/tars')
const rimraf = require('rimraf')
const mkdirp = require('mkdirp')
const spawn = require('child_process').spawn
const Pack = require('../lib/pack.js')
const mutateFS = require('mutate-fs')
const { promisify } = require('util')
const readtar = (file, cb) => {
const child = spawn('tar', ['tf', file])
const out = []
child.stdout.on('data', c => out.push(c))
child.on('close', (code, signal) =>
cb(code, signal, Buffer.concat(out).toString()))
}
t.teardown(() => new Promise(resolve => rimraf(dir, resolve)))
t.before(async () => {
await promisify(rimraf)(dir)
await mkdirp(dir)
})
t.test('no cb if sync or without file', t => {
t.throws(_ => c({ sync: true }, ['asdf'], _ => _))
t.throws(_ => c(_ => _))
t.throws(_ => c({}, _ => _))
t.throws(_ => c({}, ['asdf'], _ => _))
t.end()
})
t.test('create file', t => {
const files = [path.basename(__filename)]
t.test('sync', t => {
const file = path.resolve(dir, 'sync.tar')
c({
file: file,
cwd: __dirname,
sync: true,
}, files)
readtar(file, (code, signal, list) => {
t.equal(code, 0)
t.equal(signal, null)
t.equal(list.trim(), 'create.js')
t.end()
})
})
t.test('async', t => {
const file = path.resolve(dir, 'async.tar')
c({
file: file,
cwd: __dirname,
}, files, er => {
if (er) {
throw er
}
readtar(file, (code, signal, list) => {
t.equal(code, 0)
t.equal(signal, null)
t.equal(list.trim(), 'create.js')
t.end()
})
})
})
t.test('async promise only', t => {
const file = path.resolve(dir, 'promise.tar')
c({
file: file,
cwd: __dirname,
}, files).then(_ => {
readtar(file, (code, signal, list) => {
t.equal(code, 0)
t.equal(signal, null)
t.equal(list.trim(), 'create.js')
t.end()
})
})
})
t.test('with specific mode', t => {
const mode = isWindows ? 0o666 : 0o740
t.test('sync', t => {
const file = path.resolve(dir, 'sync-mode.tar')
c({
mode: mode,
file: file,
cwd: __dirname,
sync: true,
}, files)
readtar(file, (code, signal, list) => {
t.equal(code, 0)
t.equal(signal, null)
t.equal(list.trim(), 'create.js')
t.equal(fs.lstatSync(file).mode & 0o7777, mode)
t.end()
})
})
t.test('async', t => {
const file = path.resolve(dir, 'async-mode.tar')
c({
mode: mode,
file: file,
cwd: __dirname,
}, files, er => {
if (er) {
throw er
}
readtar(file, (code, signal, list) => {
t.equal(code, 0)
t.equal(signal, null)
t.equal(list.trim(), 'create.js')
t.equal(fs.lstatSync(file).mode & 0o7777, mode)
t.end()
})
})
})
t.end()
})
t.end()
})
t.test('create', t => {
t.type(c({ sync: true }, ['README.md']), Pack.Sync)
t.type(c(['README.md']), Pack)
t.end()
})
t.test('open fails', t => {
const poop = new Error('poop')
const file = path.resolve(dir, 'throw-open.tar')
t.teardown(mutateFS.statFail(poop))
t.throws(_ => c({
file: file,
sync: true,
cwd: __dirname,
}, [path.basename(__filename)]))
t.throws(_ => fs.lstatSync(file))
t.end()
})
t.test('gzipped tarball that makes some drain/resume stuff', t => {
const cwd = path.dirname(__dirname)
const out = path.resolve(dir, 'package.tgz')
// don't include node_modules/.cache, since that gets written to
// by nyc during tests, and can result in spurious errors.
const entries = fs.readdirSync(`${cwd}/node_modules`)
.filter(e => !/^\./.test(e))
.map(e => `node_modules/${e}`)
c({ z: true, C: cwd }, entries)
.pipe(fs.createWriteStream(out))
.on('finish', _ => {
const child = spawn('tar', ['tf', out], {
stdio: ['ignore', 'ignore', 'pipe'],
})
child.stderr.on('data', c => {
t.fail(c + '')
})
child.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
t.end()
})
})
})
t.test('create tarball out of another tarball', t => {
const out = path.resolve(dir, 'out.tar')
const check = t => {
const expect = [
'dir/',
'Ω.txt',
'🌟.txt',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt',
'hardlink-1',
'hardlink-2',
'symlink',
]
list({ f: out,
sync: true,
onentry: entry => {
if (entry.path === 'hardlink-2') {
t.equal(entry.type, 'Link')
} else if (entry.path === 'symlink') {
t.equal(entry.type, 'SymbolicLink')
} else if (entry.path === 'dir/') {
t.equal(entry.type, 'Directory')
} else {
t.equal(entry.type, 'File')
}
t.equal(entry.path, expect.shift())
} })
t.same(expect, [])
t.end()
}
t.test('sync', t => {
c({
f: out,
cwd: tars,
sync: true,
}, ['@dir.tar', '@utf8.tar', '@links.tar'])
check(t)
})
t.test('async', t => {
c({
f: out,
cwd: tars,
}, ['@dir.tar', '@utf8.tar', '@links.tar'], _ => check(t))
})
t.end()
})
node-tar-6.1.13/test/dir-normalization.tar 0000664 0000000 0000000 00000011000 14344174136 0020443 0 ustar 00root root 0000000 0000000 fixtures/ 000755 057761 000024 00000000000 12511342154 013343 5 ustar 00isaacs staff 000000 000000 fixtures/a/ 000755 057761 000024 00000000000 12511342040 013555 5 ustar 00isaacs staff 000000 000000 fixtures/the-chumbler 000755 057761 000024 00000000000 12505125041 021322 2/a/b/c/d/the-chumbler ustar 00isaacs staff 000000 000000 fixtures/a/b/ 000755 057761 000024 00000000000 12511342030 013775 5 ustar 00isaacs staff 000000 000000 fixtures/a/x 000644 057761 000024 00000000000 12511342040 013735 0 ustar 00isaacs staff 000000 000000 fixtures/a/b/c/ 000755 057761 000024 00000000000 12511342055 014226 5 ustar 00isaacs staff 000000 000000 fixtures/a/b/c/y 000755 057761 000024 00000000000 12511342055 015232 2../../x ustar 00isaacs staff 000000 000000 node-tar-6.1.13/test/extract.js 0000664 0000000 0000000 00000016170 14344174136 0016316 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const nock = require('nock')
const x = require('../lib/extract.js')
const path = require('path')
const fs = require('fs')
const extractdir = path.resolve(__dirname, 'fixtures/extract')
const tars = path.resolve(__dirname, 'fixtures/tars')
const mkdirp = require('mkdirp')
const { promisify } = require('util')
const rimraf = promisify(require('rimraf'))
const mutateFS = require('mutate-fs')
const pipeline = promisify(require('stream').pipeline)
const http = require('http')
const tnock = (t, host, opts) => {
nock.disableNetConnect()
const server = nock(host, opts)
t.teardown(function () {
nock.enableNetConnect()
server.done()
})
return server
}
t.teardown(_ => rimraf(extractdir))
t.test('basic extracting', t => {
const file = path.resolve(tars, 'utf8.tar')
const dir = path.resolve(extractdir, 'basic')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = async t => {
fs.lstatSync(dir + '/Ω.txt')
fs.lstatSync(dir + '/🌟.txt')
t.throws(_ => fs.lstatSync(dir + '/long-path/r/e/a/l/l/y/-/d/e/e/p/-' +
'/f/o/l/d/e/r/-/p/a/t/h/Ω.txt'))
await rimraf(dir)
t.end()
}
const files = ['🌟.txt', 'Ω.txt']
t.test('sync', t => {
x({ file: file, sync: true, C: dir }, files)
return check(t)
})
t.test('async promisey', t => {
return x({ file: file, cwd: dir }, files).then(_ => check(t))
})
t.test('async cb', t => {
return x({ file: file, cwd: dir }, files, er => {
if (er) {
throw er
}
return check(t)
})
})
t.end()
})
t.test('ensure an open stream is not prematuraly closed', t => {
t.plan(1)
const file = path.resolve(tars, 'long-paths.tar')
const dir = path.resolve(extractdir, 'basic-with-stream')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = async t => {
t.ok(fs.lstatSync(dir + '/long-path'))
await rimraf(dir)
t.end()
}
t.test('async promisey', t => {
const stream = fs.createReadStream(file, {
highWaterMark: 1,
})
pipeline(
stream,
x({ cwd: dir })
).then(_ => check(t))
})
t.end()
})
t.test('ensure an open stream is not prematuraly closed http', t => {
t.plan(1)
const file = path.resolve(tars, 'long-paths.tar')
const dir = path.resolve(extractdir, 'basic-with-stream-http')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = async t => {
t.ok(fs.lstatSync(dir + '/long-path'))
await rimraf(dir)
t.end()
}
t.test('async promisey', t => {
tnock(t, 'http://codeload.github.com/')
.get('/npm/node-tar/tar.gz/main')
.delay(250)
.reply(200, () => fs.createReadStream(file))
http.get('http://codeload.github.com/npm/node-tar/tar.gz/main', (stream) => {
return pipeline(
stream,
x({ cwd: dir })
).then(_ => check(t))
})
})
t.end()
})
t.test('file list and filter', t => {
const file = path.resolve(tars, 'utf8.tar')
const dir = path.resolve(extractdir, 'filter')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = async t => {
fs.lstatSync(dir + '/Ω.txt')
t.throws(_ => fs.lstatSync(dir + '/🌟.txt'))
t.throws(_ => fs.lstatSync(dir + '/long-path/r/e/a/l/l/y/-/d/e/e/p/-' +
'/f/o/l/d/e/r/-/p/a/t/h/Ω.txt'))
await rimraf(dir)
t.end()
}
const filter = path => path === 'Ω.txt'
t.test('sync', t => {
x({ filter: filter, file: file, sync: true, C: dir }, ['🌟.txt', 'Ω.txt'])
return check(t)
})
t.test('async promisey', t => {
return x({ filter: filter, file: file, cwd: dir }, ['🌟.txt', 'Ω.txt']).then(_ => {
return check(t)
})
})
t.test('async cb', t => {
return x({ filter: filter, file: file, cwd: dir }, ['🌟.txt', 'Ω.txt'], er => {
if (er) {
throw er
}
return check(t)
})
})
t.end()
})
t.test('no file list', t => {
const file = path.resolve(tars, 'body-byte-counts.tar')
const dir = path.resolve(extractdir, 'no-list')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = async t => {
t.equal(fs.lstatSync(path.resolve(dir, '1024-bytes.txt')).size, 1024)
t.equal(fs.lstatSync(path.resolve(dir, '512-bytes.txt')).size, 512)
t.equal(fs.lstatSync(path.resolve(dir, 'one-byte.txt')).size, 1)
t.equal(fs.lstatSync(path.resolve(dir, 'zero-byte.txt')).size, 0)
await rimraf(dir)
t.end()
}
t.test('sync', t => {
x({ file: file, sync: true, C: dir })
return check(t)
})
t.test('async promisey', t => {
return x({ file: file, cwd: dir }).then(_ => {
return check(t)
})
})
t.test('async cb', t => {
return x({ file: file, cwd: dir }, er => {
if (er) {
throw er
}
return check(t)
})
})
t.end()
})
t.test('read in itty bits', t => {
const maxReadSize = 1000
const file = path.resolve(tars, 'body-byte-counts.tar')
const dir = path.resolve(extractdir, 'no-list')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = async t => {
t.equal(fs.lstatSync(path.resolve(dir, '1024-bytes.txt')).size, 1024)
t.equal(fs.lstatSync(path.resolve(dir, '512-bytes.txt')).size, 512)
t.equal(fs.lstatSync(path.resolve(dir, 'one-byte.txt')).size, 1)
t.equal(fs.lstatSync(path.resolve(dir, 'zero-byte.txt')).size, 0)
await rimraf(dir)
t.end()
}
t.test('sync', t => {
x({ file: file, sync: true, C: dir, maxReadSize: maxReadSize })
return check(t)
})
t.test('async promisey', t => {
return x({ file: file, cwd: dir, maxReadSize: maxReadSize }).then(_ => {
return check(t)
})
})
t.test('async cb', t => {
return x({ file: file, cwd: dir, maxReadSize: maxReadSize }, er => {
if (er) {
throw er
}
return check(t)
})
})
t.end()
})
t.test('bad calls', t => {
t.throws(_ => x(_ => _))
t.throws(_ => x({ sync: true }, _ => _))
t.throws(_ => x({ sync: true }, [], _ => _))
t.end()
})
t.test('no file', t => {
const Unpack = require('../lib/unpack.js')
t.type(x(), Unpack)
t.type(x(['asdf']), Unpack)
t.type(x({ sync: true }), Unpack.Sync)
t.end()
})
t.test('nonexistent', t => {
t.throws(_ => x({ sync: true, file: 'does not exist' }))
x({ file: 'does not exist' }).catch(_ => t.end())
})
t.test('read fail', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('read', poop))
t.throws(_ => x({ maxReadSize: 10, sync: true, file: __filename }), poop)
t.end()
})
t.test('sync gzip error edge case test', async t => {
const file = path.resolve(__dirname, 'fixtures/sync-gzip-fail.tgz')
const dir = path.resolve(__dirname, 'sync-gzip-fail')
const cwd = process.cwd()
await mkdirp(dir + '/x')
process.chdir(dir)
t.teardown(async () => {
process.chdir(cwd)
await rimraf(dir)
})
x({
sync: true,
file: file,
onwarn: (c, m, er) => {
throw er
},
})
t.same(fs.readdirSync(dir + '/x').sort(),
['1', '10', '2', '3', '4', '5', '6', '7', '8', '9'])
t.end()
})
node-tar-6.1.13/test/fixtures/ 0000775 0000000 0000000 00000000000 14344174136 0016152 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/.gitattributes 0000664 0000000 0000000 00000000025 14344174136 0021042 0 ustar 00root root 0000000 0000000 files/** text eol=lf
node-tar-6.1.13/test/fixtures/.taprc.win32 0000664 0000000 0000000 00000000064 14344174136 0020225 0 ustar 00root root 0000000 0000000 lines: 98
branches: 98
statements: 98
functions: 98
node-tar-6.1.13/test/fixtures/files/ 0000775 0000000 0000000 00000000000 14344174136 0017254 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/.dotfile 0000664 0000000 0000000 00000000002 14344174136 0020673 0 ustar 00root root 0000000 0000000 .
100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0000664 0000000 0000000 00000000144 14344174136 0042101 0 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc node-tar-6.1.13/test/fixtures/files/1024-bytes.txt 0000664 0000000 0000000 00000002000 14344174136 0021517 0 ustar 00root root 0000000 0000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5a5d18e29413674effba80fa9253094e0c07ee15.paxheader 0000666 0000000 0000000 00000000246 14344174136 0020446 x ustar 00root root 0000000 0000000 166 path=node-tar-6.1.13/test/fixtures/files/120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
5a5d18e29413674effba80fa9253094e0c07ee15.data 0000664 0000000 0000000 00000000144 14344174136 0017301 0 ustar 00root root 0000000 0000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 5a5d18e29413674effba80fa9253094e0c07ee15.paxheader 0000666 0000000 0000000 00000000330 14344174136 0020440 x ustar 00root root 0000000 0000000 216 path=node-tar-6.1.13/test/fixtures/files/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
5a5d18e29413674effba80fa9253094e0c07ee15.data 0000664 0000000 0000000 00000000144 14344174136 0017301 0 ustar 00root root 0000000 0000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc node-tar-6.1.13/test/fixtures/files/512-bytes.txt 0000664 0000000 0000000 00000001000 14344174136 0021437 0 ustar 00root root 0000000 0000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/0000775 0000000 0000000 00000000000 14344174136 0042122 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files a-truly-unlucky-file-beyond-130-byte-path-length.txt 0000664 0000000 0000000 00000001060 14344174136 0053613 0 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc Behold! I am a text file and NOT a tar header.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
some-unlucky-file.txt 0000664 0000000 0000000 00000001060 14344174136 0046230 0 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc Behold! I am a text file and NOT a tar header.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
node-tar-6.1.13/test/fixtures/files/dir/ 0000775 0000000 0000000 00000000000 14344174136 0020032 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/dir/x 0000664 0000000 0000000 00000000000 14344174136 0020212 0 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/hardlink-1 0000664 0000000 0000000 00000000032 14344174136 0021124 0 ustar 00root root 0000000 0000000 this link is like diamond
node-tar-6.1.13/test/fixtures/files/hardlink-2 0000664 0000000 0000000 00000000032 14344174136 0021125 0 ustar 00root root 0000000 0000000 this link is like diamond
node-tar-6.1.13/test/fixtures/files/long-path/ 0000775 0000000 0000000 00000000000 14344174136 0021145 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/ 0000775 0000000 0000000 00000000000 14344174136 0021406 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/ 0000775 0000000 0000000 00000000000 14344174136 0021632 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/ 0000775 0000000 0000000 00000000000 14344174136 0022052 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/ 0000775 0000000 0000000 00000000000 14344174136 0022305 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/ 0000775 0000000 0000000 00000000000 14344174136 0022540 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/ 0000775 0000000 0000000 00000000000 14344174136 0023010 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/ 0000775 0000000 0000000 00000000000 14344174136 0023144 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/ 0000775 0000000 0000000 00000000000 14344174136 0023367 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/ 0000775 0000000 0000000 00000000000 14344174136 0023613 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/ 0000775 0000000 0000000 00000000000 14344174136 0024037 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/ 0000775 0000000 0000000 00000000000 14344174136 0024276 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/ 0000775 0000000 0000000 00000000000 14344174136 0024432 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/ 0000775 0000000 0000000 00000000000 14344174136 0024657 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/ 0000775 0000000 0000000 00000000000 14344174136 0025115 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/ 0000775 0000000 0000000 00000000000 14344174136 0025350 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/ 0000775 0000000 0000000 00000000000 14344174136 0025573 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/ 0000775 0000000 0000000 00000000000 14344174136 0026017 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/ 0000775 0000000 0000000 00000000000 14344174136 0026260 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/ 0000775 0000000 0000000 00000000000 14344174136 0026414 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/ 0000775 0000000 0000000 00000000000 14344174136 0026653 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/ 0000775 0000000 0000000 00000000000 14344174136 0027073 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/ 0000775 0000000 0000000 00000000000 14344174136 0027336 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ 0000775 0000000 0000000 00000000000 14344174136 0027565 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt 0000664 0000000 0000000 00000000006 14344174136 0030542 0 ustar 00root root 0000000 0000000 short
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0000664 0000000 0000000 00000000144 14344174136 0052763 0 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 e5a9d5e2742f65d797cb32c0290856afc604b356.paxheader 0000666 0000000 0000000 00000000336 14344174136 0020377 x ustar 00root root 0000000 0000000 222 path=node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
e5a9d5e2742f65d797cb32c0290856afc604b356.data 0000664 0000000 0000000 00000000144 14344174136 0017232 0 ustar 00root root 0000000 0000000 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 5a5d18e29413674effba80fa9253094e0c07ee15.paxheader 0000666 0000000 0000000 00000000420 14344174136 0020440 x ustar 00root root 0000000 0000000 272 path=node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
5a5d18e29413674effba80fa9253094e0c07ee15.data 0000664 0000000 0000000 00000000144 14344174136 0017301 0 ustar 00root root 0000000 0000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc node-tar-6.1.13/test/fixtures/files/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt 0000664 0000000 0000000 00000000002 14344174136 0031164 0 ustar 00root root 0000000 0000000 Ω c3b17d6c8b29cc71aca2454383b1cf9123b3e172.paxheader 0000666 0000000 0000000 00000000270 14344174136 0020501 x ustar 00root root 0000000 0000000 184 linkpath=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
node-tar-6.1.13/test/fixtures/files/longlink 0000777 0000000 0000000 00000000000 14344174136 0031047 2see c3b17d6c8b29cc71aca2454383b1cf9123b3e172.paxheader ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/one-byte.txt 0000664 0000000 0000000 00000000001 14344174136 0021526 0 ustar 00root root 0000000 0000000 a node-tar-6.1.13/test/fixtures/files/strip-dir/ 0000775 0000000 0000000 00000000000 14344174136 0021171 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/strip-dir/1/ 0000775 0000000 0000000 00000000000 14344174136 0021331 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/strip-dir/1/2/ 0000775 0000000 0000000 00000000000 14344174136 0021472 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/strip-dir/1/2/3/ 0000775 0000000 0000000 00000000000 14344174136 0021634 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/strip-dir/1/2/3/hardlink-3 0000664 0000000 0000000 00000000032 14344174136 0023506 0 ustar 00root root 0000000 0000000 this link is like diamond
node-tar-6.1.13/test/fixtures/files/strip-dir/hardlink-1 0000664 0000000 0000000 00000000032 14344174136 0023041 0 ustar 00root root 0000000 0000000 this link is like diamond
node-tar-6.1.13/test/fixtures/files/strip-dir/hardlink-2 0000664 0000000 0000000 00000000032 14344174136 0023042 0 ustar 00root root 0000000 0000000 this link is like diamond
node-tar-6.1.13/test/fixtures/files/strip-dir/symlink 0000777 0000000 0000000 00000000000 14344174136 0024453 2hardlink-2 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/symlink 0000777 0000000 0000000 00000000000 14344174136 0022536 2hardlink-2 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/zero-byte.txt 0000664 0000000 0000000 00000000000 14344174136 0021723 0 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/files/Ω.txt 0000664 0000000 0000000 00000000002 14344174136 0020653 0 ustar 00root root 0000000 0000000 Ω node-tar-6.1.13/test/fixtures/files/🌟.txt 0000664 0000000 0000000 00000000152 14344174136 0021364 0 ustar 00root root 0000000 0000000 🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠
node-tar-6.1.13/test/fixtures/parse/ 0000775 0000000 0000000 00000000000 14344174136 0017264 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/parse/bad-cksum--filter-strict.json 0000664 0000000 0000000 00000002174 14344174136 0024677 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum--filter.json 0000664 0000000 0000000 00000002016 14344174136 0023364 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum--meta-250-filter-strict.json 0000664 0000000 0000000 00000002174 14344174136 0026127 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum--meta-250-filter.json 0000664 0000000 0000000 00000002016 14344174136 0024614 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum--meta-250-strict.json 0000664 0000000 0000000 00000002174 14344174136 0024644 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum--meta-250.json 0000664 0000000 0000000 00000002016 14344174136 0023331 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum--strict.json 0000664 0000000 0000000 00000002174 14344174136 0023414 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/bad-cksum.json 0000664 0000000 0000000 00000002016 14344174136 0022024 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--filter-strict.json 0000664 0000000 0000000 00000006556 14344174136 0026250 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--filter.json 0000664 0000000 0000000 00000006556 14344174136 0024742 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--meta-250-filter-strict.json 0000664 0000000 0000000 00000006556 14344174136 0027500 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--meta-250-filter.json 0000664 0000000 0000000 00000006556 14344174136 0026172 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--meta-250-strict.json 0000664 0000000 0000000 00000006534 14344174136 0026211 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--meta-250.json 0000664 0000000 0000000 00000006534 14344174136 0024703 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts--strict.json 0000664 0000000 0000000 00000006534 14344174136 0024761 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/body-byte-counts.json 0000664 0000000 0000000 00000006534 14344174136 0023376 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--filter-strict.json 0000664 0000000 0000000 00000001577 14344174136 0023615 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--filter.json 0000664 0000000 0000000 00000001577 14344174136 0022307 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--meta-250-filter-strict.json 0000664 0000000 0000000 00000001577 14344174136 0025045 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--meta-250-filter.json 0000664 0000000 0000000 00000001577 14344174136 0023537 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--meta-250-strict.json 0000664 0000000 0000000 00000001571 14344174136 0023554 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--meta-250.json 0000664 0000000 0000000 00000001571 14344174136 0022246 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir--strict.json 0000664 0000000 0000000 00000001571 14344174136 0022324 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/dir.json 0000664 0000000 0000000 00000001571 14344174136 0020741 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--filter-strict.json 0000664 0000000 0000000 00000004467 14344174136 0024707 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--filter.json 0000664 0000000 0000000 00000004467 14344174136 0023401 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--meta-250-filter-strict.json 0000664 0000000 0000000 00000004467 14344174136 0026137 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--meta-250-filter.json 0000664 0000000 0000000 00000004467 14344174136 0024631 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--meta-250-strict.json 0000664 0000000 0000000 00000004461 14344174136 0024646 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--meta-250.json 0000664 0000000 0000000 00000004461 14344174136 0023340 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax--strict.json 0000664 0000000 0000000 00000004461 14344174136 0023416 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/emptypax.json 0000664 0000000 0000000 00000004461 14344174136 0022033 0 ustar 00root root 0000000 0000000 [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--filter-strict.json 0000664 0000000 0000000 00000001604 14344174136 0023745 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--filter.json 0000664 0000000 0000000 00000001604 14344174136 0022437 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--meta-250-filter-strict.json 0000664 0000000 0000000 00000001604 14344174136 0025175 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--meta-250-filter.json 0000664 0000000 0000000 00000001604 14344174136 0023667 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--meta-250-strict.json 0000664 0000000 0000000 00000001604 14344174136 0023712 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--meta-250.json 0000664 0000000 0000000 00000001604 14344174136 0022404 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file--strict.json 0000664 0000000 0000000 00000001604 14344174136 0022462 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/file.json 0000664 0000000 0000000 00000001604 14344174136 0021077 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--filter-strict.json 0000664 0000000 0000000 00000002436 14344174136 0025520 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--filter.json 0000664 0000000 0000000 00000002436 14344174136 0024212 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--meta-250-filter-strict.json 0000664 0000000 0000000 00000002436 14344174136 0026750 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--meta-250-filter.json 0000664 0000000 0000000 00000002436 14344174136 0025442 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--meta-250-strict.json 0000664 0000000 0000000 00000002436 14344174136 0025465 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--meta-250.json 0000664 0000000 0000000 00000002436 14344174136 0024157 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header--strict.json 0000664 0000000 0000000 00000002436 14344174136 0024235 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/global-header.json 0000664 0000000 0000000 00000002436 14344174136 0022652 0 ustar 00root root 0000000 0000000 [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--filter-strict.json 0000664 0000000 0000000 00000005072 14344174136 0024151 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--filter.json 0000664 0000000 0000000 00000005072 14344174136 0022643 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--meta-250-filter-strict.json 0000664 0000000 0000000 00000005072 14344174136 0025401 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--meta-250-filter.json 0000664 0000000 0000000 00000005072 14344174136 0024073 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--meta-250-strict.json 0000664 0000000 0000000 00000005050 14344174136 0024112 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--meta-250.json 0000664 0000000 0000000 00000005050 14344174136 0022604 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links--strict.json 0000664 0000000 0000000 00000005050 14344174136 0022662 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--filter-strict.json 0000664 0000000 0000000 00000002423 14344174136 0025572 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath forbidden",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--filter.json 0000664 0000000 0000000 00000002156 14344174136 0024267 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath forbidden"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath required"
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--meta-250-filter-strict.json 0000664 0000000 0000000 00000002423 14344174136 0027022 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath forbidden",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--meta-250-filter.json 0000664 0000000 0000000 00000002156 14344174136 0025517 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath forbidden"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath required"
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--meta-250-strict.json 0000664 0000000 0000000 00000002415 14344174136 0025540 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath forbidden",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--meta-250.json 0000664 0000000 0000000 00000002150 14344174136 0024226 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath forbidden"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath required"
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid--strict.json 0000664 0000000 0000000 00000002415 14344174136 0024310 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath forbidden",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: linkpath required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-invalid.json 0000664 0000000 0000000 00000002150 14344174136 0022721 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath forbidden"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"warn",
"TAR_ENTRY_INVALID",
"linkpath required"
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--filter-strict.json 0000664 0000000 0000000 00000010247 14344174136 0025310 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--filter.json 0000664 0000000 0000000 00000010247 14344174136 0024002 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--meta-250-filter-strict.json 0000664 0000000 0000000 00000010247 14344174136 0026540 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--meta-250-filter.json 0000664 0000000 0000000 00000010247 14344174136 0025232 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--meta-250-strict.json 0000664 0000000 0000000 00000010211 14344174136 0025244 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--meta-250.json 0000664 0000000 0000000 00000010211 14344174136 0023736 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip--strict.json 0000664 0000000 0000000 00000010211 14344174136 0024014 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links-strip.json 0000664 0000000 0000000 00000010211 14344174136 0022431 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 4708,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 26,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 5644,
"linkpath": "",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7553,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/1/2/3/hardlink-3",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 7845,
"linkpath": "strip-dir/hardlink-1",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"uname": "",
"gname": "",
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 420,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-11-06T01:45:25.000Z",
"cksum": 6417,
"linkpath": "hardlink-2",
"uname": "",
"gname": "",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/links.json 0000664 0000000 0000000 00000005050 14344174136 0021277 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--filter-strict.json 0000664 0000000 0000000 00000103631 14344174136 0025105 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--filter.json 0000664 0000000 0000000 00000103631 14344174136 0023577 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--meta-250-filter-strict.json 0000664 0000000 0000000 00000103461 14344174136 0026336 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--meta-250-filter.json 0000664 0000000 0000000 00000103461 14344174136 0025030 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--meta-250-strict.json 0000664 0000000 0000000 00000103161 14344174136 0025050 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--meta-250.json 0000664 0000000 0000000 00000103161 14344174136 0023542 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths--strict.json 0000664 0000000 0000000 00000103331 14344174136 0023617 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-paths.json 0000664 0000000 0000000 00000103331 14344174136 0022234 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--filter-strict.json 0000664 0000000 0000000 00000007600 14344174136 0024555 0 ustar 00root root 0000000 0000000 [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--filter.json 0000664 0000000 0000000 00000007600 14344174136 0023247 0 ustar 00root root 0000000 0000000 [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--meta-250-filter-strict.json 0000664 0000000 0000000 00000004027 14344174136 0026005 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--meta-250-filter.json 0000664 0000000 0000000 00000004027 14344174136 0024477 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--meta-250-strict.json 0000664 0000000 0000000 00000004021 14344174136 0024514 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--meta-250.json 0000664 0000000 0000000 00000004021 14344174136 0023206 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax--strict.json 0000664 0000000 0000000 00000007572 14344174136 0023302 0 ustar 00root root 0000000 0000000 [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"entry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/long-pax.json 0000664 0000000 0000000 00000007572 14344174136 0021717 0 ustar 00root root 0000000 0000000 [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"entry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--filter-strict.json 0000664 0000000 0000000 00000005741 14344174136 0026435 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--filter.json 0000664 0000000 0000000 00000005741 14344174136 0025127 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--meta-250-filter-strict.json 0000664 0000000 0000000 00000005741 14344174136 0027665 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--meta-250-filter.json 0000664 0000000 0000000 00000005741 14344174136 0026357 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--meta-250-strict.json 0000664 0000000 0000000 00000005725 14344174136 0026404 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--meta-250.json 0000664 0000000 0000000 00000005725 14344174136 0025076 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long--strict.json 0000664 0000000 0000000 00000005725 14344174136 0025154 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/next-file-has-long.json 0000664 0000000 0000000 00000005725 14344174136 0023571 0 ustar 00root root 0000000 0000000 [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--filter-strict.json 0000664 0000000 0000000 00000004467 14344174136 0024753 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--filter.json 0000664 0000000 0000000 00000004467 14344174136 0023445 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--meta-250-filter-strict.json 0000664 0000000 0000000 00000004467 14344174136 0026203 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--meta-250-filter.json 0000664 0000000 0000000 00000004467 14344174136 0024675 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--meta-250-strict.json 0000664 0000000 0000000 00000004453 14344174136 0024713 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--meta-250.json 0000664 0000000 0000000 00000004453 14344174136 0023405 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte--strict.json 0000664 0000000 0000000 00000004453 14344174136 0023463 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/null-byte.json 0000664 0000000 0000000 00000004453 14344174136 0022100 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--filter-strict.json 0000664 0000000 0000000 00000000675 14344174136 0025440 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: path is required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"error",
{
"message": "TAR_BAD_ARCHIVE: Unrecognized archive format",
"code": "TAR_BAD_ARCHIVE"
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--filter.json 0000664 0000000 0000000 00000000432 14344174136 0024121 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"path is required"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"warn",
"TAR_BAD_ARCHIVE",
"Unrecognized archive format"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--meta-250-filter-strict.json 0000664 0000000 0000000 00000000675 14344174136 0026670 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: path is required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"error",
{
"message": "TAR_BAD_ARCHIVE: Unrecognized archive format",
"code": "TAR_BAD_ARCHIVE"
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--meta-250-filter.json 0000664 0000000 0000000 00000000432 14344174136 0025351 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"path is required"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"warn",
"TAR_BAD_ARCHIVE",
"Unrecognized archive format"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--meta-250-strict.json 0000664 0000000 0000000 00000000675 14344174136 0025405 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: path is required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"error",
{
"message": "TAR_BAD_ARCHIVE: Unrecognized archive format",
"code": "TAR_BAD_ARCHIVE"
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--meta-250.json 0000664 0000000 0000000 00000000432 14344174136 0024066 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"path is required"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"warn",
"TAR_BAD_ARCHIVE",
"Unrecognized archive format"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing--strict.json 0000664 0000000 0000000 00000000675 14344174136 0024155 0 ustar 00root root 0000000 0000000 [
[
"error",
{
"message": "TAR_ENTRY_INVALID: path is required",
"code": "TAR_ENTRY_INVALID"
}
],
[
"error",
{
"message": "TAR_ENTRY_INVALID: checksum failure",
"code": "TAR_ENTRY_INVALID"
}
],
[
"nullBlock"
],
[
"eof"
],
[
"error",
{
"message": "TAR_BAD_ARCHIVE: Unrecognized archive format",
"code": "TAR_BAD_ARCHIVE"
}
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/path-missing.json 0000664 0000000 0000000 00000000432 14344174136 0022561 0 ustar 00root root 0000000 0000000 [
[
"warn",
"TAR_ENTRY_INVALID",
"path is required"
],
[
"warn",
"TAR_ENTRY_INVALID",
"checksum failure"
],
[
"nullBlock"
],
[
"eof"
],
[
"warn",
"TAR_BAD_ARCHIVE",
"Unrecognized archive format"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--filter-strict.json 0000664 0000000 0000000 00000007470 14344174136 0030155 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--filter.json 0000664 0000000 0000000 00000007470 14344174136 0026647 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--meta-250-filter-strict.json 0000664 0000000 0000000 00000007470 14344174136 0031405 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--meta-250-filter.json 0000664 0000000 0000000 00000007470 14344174136 0030077 0 ustar 00root root 0000000 0000000 [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--meta-250-strict.json 0000664 0000000 0000000 00000007446 14344174136 0030125 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--meta-250.json 0000664 0000000 0000000 00000007446 14344174136 0026617 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case--strict.json 0000664 0000000 0000000 00000007446 14344174136 0026675 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/trailing-slash-corner-case.json 0000664 0000000 0000000 00000007446 14344174136 0025312 0 ustar 00root root 0000000 0000000 [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--filter-strict.json 0000664 0000000 0000000 00000011043 14344174136 0023712 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--filter.json 0000664 0000000 0000000 00000011043 14344174136 0022404 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--meta-250-filter-strict.json 0000664 0000000 0000000 00000011043 14344174136 0025142 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--meta-250-filter.json 0000664 0000000 0000000 00000011043 14344174136 0023634 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--meta-250-strict.json 0000664 0000000 0000000 00000011021 14344174136 0023653 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--meta-250.json 0000664 0000000 0000000 00000011021 14344174136 0022345 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8--strict.json 0000664 0000000 0000000 00000011021 14344174136 0022423 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parse/utf8.json 0000664 0000000 0000000 00000011021 14344174136 0021040 0 ustar 00root root 0000000 0000000 [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"eof"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/parses.tar 0000664 0000000 0000000 00002424000 14344174136 0020161 0 ustar 00root root 0000000 0000000 test/fixtures/parse/ 0000755 0000000 0000000 00000000000 13334177733 013531 5 ustar root root test/fixtures/parse/bad-cksum--filter-strict.json 0000644 0000000 0000000 00000002020 13334202347 021120 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum--filter.json 0000644 0000000 0000000 00000001734 13334202347 017625 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum--meta-250-filter-strict.json 0000644 0000000 0000000 00000002020 13334202347 022350 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum--meta-250-filter.json 0000644 0000000 0000000 00000001734 13334202347 021055 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum--meta-250-strict.json 0000644 0000000 0000000 00000002020 13334202347 021065 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum--meta-250.json 0000644 0000000 0000000 00000001734 13334202347 017572 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum--strict.json 0000644 0000000 0000000 00000002020 13334202347 017635 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/bad-cksum.json 0000644 0000000 0000000 00000001734 13334202347 016265 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--filter-strict.json 0000644 0000000 0000000 00000006564 13334202347 022502 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--filter.json 0000644 0000000 0000000 00000006564 13334202347 021174 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--meta-250-filter-strict.json 0000644 0000000 0000000 00000006564 13334202347 023732 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--meta-250-filter.json 0000644 0000000 0000000 00000006564 13334202347 022424 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--meta-250-strict.json 0000644 0000000 0000000 00000006542 13334202347 022443 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--meta-250.json 0000644 0000000 0000000 00000006542 13334202347 021135 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts--strict.json 0000644 0000000 0000000 00000006542 13334202347 021213 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/body-byte-counts.json 0000644 0000000 0000000 00000006542 13334202347 017630 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "1024-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1024,
"mtime": "2017-04-10T16:57:47.000Z",
"cksum": 6109,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "512-bytes.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 512,
"mtime": "2017-04-10T17:08:55.000Z",
"cksum": 6064,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "zero-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:08:01.000Z",
"cksum": 6246,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--filter-strict.json 0000644 0000000 0000000 00000001605 13334202347 020040 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--filter.json 0000644 0000000 0000000 00000001605 13334202347 016532 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--meta-250-filter-strict.json 0000644 0000000 0000000 00000001605 13334202347 021270 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--meta-250-filter.json 0000644 0000000 0000000 00000001605 13334202347 017762 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--meta-250-strict.json 0000644 0000000 0000000 00000001577 13334202347 020015 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--meta-250.json 0000644 0000000 0000000 00000001577 13334202347 016507 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir--strict.json 0000644 0000000 0000000 00000001577 13334202347 016565 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/dir.json 0000644 0000000 0000000 00000001577 13334202347 015202 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "dir/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T17:00:17.000Z",
"cksum": 5284,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--filter-strict.json 0000644 0000000 0000000 00000004475 13334202347 021141 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--filter.json 0000644 0000000 0000000 00000004475 13334202347 017633 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--meta-250-filter-strict.json 0000644 0000000 0000000 00000004475 13334202347 022371 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--meta-250-filter.json 0000644 0000000 0000000 00000004475 13334202347 021063 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--meta-250-strict.json 0000644 0000000 0000000 00000004467 13334202347 021107 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--meta-250.json 0000644 0000000 0000000 00000004467 13334202347 017601 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax--strict.json 0000644 0000000 0000000 00000004467 13334202347 017657 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/emptypax.json 0000644 0000000 0000000 00000004467 13334202347 016274 0 ustar root root [
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491845601\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:33:21.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:33:21.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--filter-strict.json 0000644 0000000 0000000 00000001612 13334202347 020177 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--filter.json 0000644 0000000 0000000 00000001612 13334202347 016671 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--meta-250-filter-strict.json 0000644 0000000 0000000 00000001612 13334202347 021427 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--meta-250-filter.json 0000644 0000000 0000000 00000001612 13334202347 020121 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--meta-250-strict.json 0000644 0000000 0000000 00000001612 13334202347 020144 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--meta-250.json 0000644 0000000 0000000 00000001612 13334202347 016636 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file--strict.json 0000644 0000000 0000000 00000001612 13334202347 016714 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/file.json 0000644 0000000 0000000 00000001612 13334202347 015331 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--filter-strict.json 0000644 0000000 0000000 00000002444 13334202347 021752 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--filter.json 0000644 0000000 0000000 00000002444 13334202347 020444 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--meta-250-filter-strict.json 0000644 0000000 0000000 00000002444 13334202347 023202 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--meta-250-filter.json 0000644 0000000 0000000 00000002444 13334202347 021674 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--meta-250-strict.json 0000644 0000000 0000000 00000002444 13334202347 021717 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--meta-250.json 0000644 0000000 0000000 00000002444 13334202347 020411 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header--strict.json 0000644 0000000 0000000 00000002444 13334202347 020467 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/global-header.json 0000644 0000000 0000000 00000002444 13334202347 017104 0 ustar root root [
[
"meta",
"11 path=ab\n"
],
[
"entry",
{
"extended": null,
"globalExtended": {
"atime": null,
"charset": null,
"comment": null,
"ctime": null,
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "ab",
"size": null,
"uid": null,
"uname": null,
"dev": null,
"ino": null,
"nlink": null,
"global": true
},
"type": "File",
"meta": false,
"ignore": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "one-byte.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1,
"mtime": "2017-04-10T16:58:20.000Z",
"cksum": 6121,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--filter-strict.json 0000644 0000000 0000000 00000005100 13334202347 020374 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--filter.json 0000644 0000000 0000000 00000005100 13334202347 017066 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--meta-250-filter-strict.json 0000644 0000000 0000000 00000005100 13334202347 021624 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--meta-250-filter.json 0000644 0000000 0000000 00000005100 13334202347 020316 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--meta-250-strict.json 0000644 0000000 0000000 00000005056 13334202347 020353 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--meta-250.json 0000644 0000000 0000000 00000005056 13334202347 017045 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links--strict.json 0000644 0000000 0000000 00000005056 13334202347 017123 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--filter-strict.json 0000644 0000000 0000000 00000002206 13334202347 022024 0 ustar root root [
[
"error",
{
"message": "invalid: linkpath forbidden"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid: linkpath required"
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--filter.json 0000644 0000000 0000000 00000002070 13334202347 020515 0 ustar root root [
[
"warn",
"invalid: linkpath forbidden"
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid: linkpath required"
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--meta-250-filter-strict.json 0000644 0000000 0000000 00000002206 13334202347 023254 0 ustar root root [
[
"error",
{
"message": "invalid: linkpath forbidden"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid: linkpath required"
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--meta-250-filter.json 0000644 0000000 0000000 00000002070 13334202347 021745 0 ustar root root [
[
"warn",
"invalid: linkpath forbidden"
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid: linkpath required"
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--meta-250-strict.json 0000644 0000000 0000000 00000002200 13334202347 021763 0 ustar root root [
[
"error",
{
"message": "invalid: linkpath forbidden"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid: linkpath required"
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--meta-250.json 0000644 0000000 0000000 00000002062 13334202347 020463 0 ustar root root [
[
"warn",
"invalid: linkpath forbidden"
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid: linkpath required"
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid--strict.json 0000644 0000000 0000000 00000002200 13334202347 020533 0 ustar root root [
[
"error",
{
"message": "invalid: linkpath forbidden"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"error",
{
"message": "invalid: linkpath required"
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-invalid.json 0000644 0000000 0000000 00000002062 13334202347 017156 0 ustar root root [
[
"warn",
"invalid: linkpath forbidden"
],
[
"warn",
"invalid entry"
],
[
"warn",
"invalid: linkpath required"
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links.json 0000644 0000000 0000000 00000005056 13334202347 015540 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-1",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5856,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "hardlink-2",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 6792,
"linkpath": "hardlink-1",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "symlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6639,
"linkpath": "hardlink-2",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--filter-strict.json 0000644 0000000 0000000 00000103637 13334202347 021346 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--filter.json 0000644 0000000 0000000 00000103637 13334202347 020040 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--meta-250-filter-strict.json 0000644 0000000 0000000 00000103467 13334202347 022577 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--meta-250-filter.json 0000644 0000000 0000000 00000103467 13334202347 021271 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--meta-250-strict.json 0000644 0000000 0000000 00000103167 13334202347 021311 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--meta-250.json 0000644 0000000 0000000 00000103167 13334202347 020003 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 283,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14413,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 289,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18881,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 339,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19932,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths--strict.json 0000644 0000000 0000000 00000103337 13334202347 020060 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-paths.json 0000644 0000000 0000000 00000103337 13334202347 016475 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:53:02.000Z",
"cksum": 14592,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843252\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836297\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:54:12.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836297,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:54:12.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843378\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836326\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:56:18.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836326,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:56:18.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 5870,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6031,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6179,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6323,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6478,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6633,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6801,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 6893,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7040,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7188,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7336,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7587,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7736,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 7894,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8049,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8196,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8344,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8505,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8597,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8756,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 8900,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 9063,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9223,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 6,
"mtime": "2017-04-10T16:56:46.000Z",
"cksum": 9714,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 19068,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836253\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836253,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 18969,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n20 ctime=1491843140\n20 atime=1491843717\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836254\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:01:57.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:52:20.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836254,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"atime": "2017-04-10T17:01:57.000Z",
"ctime": "2017-04-10T16:52:20.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:52:20.000Z",
"cksum": 20019,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491844045\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:07:25.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:07:25.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/long-pax--filter-strict.json 0000644 0000000 0000000 00000007600 13334202347 021010 0 ustar root root [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax--filter.json 0000644 0000000 0000000 00000007600 13334202347 017502 0 ustar root root [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax--meta-250-filter-strict.json 0000644 0000000 0000000 00000004027 13334202347 022240 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax--meta-250-filter.json 0000644 0000000 0000000 00000004027 13334202347 020732 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax--meta-250-strict.json 0000644 0000000 0000000 00000004021 13334202347 020747 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax--meta-250.json 0000644 0000000 0000000 00000004021 13334202347 017441 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "ExtendedHeader",
"meta": true,
"ignore": true,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 1282,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14425,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax--strict.json 0000644 0000000 0000000 00000007572 13334202347 017535 0 ustar root root [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"entry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/long-pax.json 0000644 0000000 0000000 00000007572 13334202347 016152 0 ustar root root [
[
"meta",
"130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy\n9 gid=20\n15 gname=staff\n20 mtime=1491843252\n12 size=100\n11 uid=501\n16 uname=isaacs\n"
],
[
"entry",
{
"extended": {
"atime": null,
"charset": null,
"comment": "all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy",
"ctime": null,
"gid": 20,
"gname": "staff",
"linkpath": null,
"mtime": "2017-04-10T16:54:12.000Z",
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"size": 100,
"uid": 501,
"uname": "isaacs",
"dev": null,
"ino": null,
"nlink": null,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:54:12.000Z",
"cksum": 14495,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--filter-strict.json 0000644 0000000 0000000 00000005747 13334202347 022676 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--filter.json 0000644 0000000 0000000 00000005747 13334202347 021370 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--meta-250-filter-strict.json 0000644 0000000 0000000 00000005747 13334202347 024126 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--meta-250-filter.json 0000644 0000000 0000000 00000005747 13334202347 022620 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"ignoredEntry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--meta-250-strict.json 0000644 0000000 0000000 00000005733 13334202347 022636 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--meta-250.json 0000644 0000000 0000000 00000005733 13334202347 021330 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long--strict.json 0000644 0000000 0000000 00000005733 13334202347 021406 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/next-file-has-long.json 0000644 0000000 0000000 00000005733 13334202347 020023 0 ustar root root [
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 100,
"mtime": "2017-04-10T16:56:18.000Z",
"cksum": 14500,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
],
[
"entry",
{
"extended": {
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
},
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"header": {
"cksumValid": true,
"needPax": false,
"path": "longlink",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2017-04-10T23:22:33.000Z",
"cksum": 7135,
"linkpath": "././@LongSymLink",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--filter-strict.json 0000644 0000000 0000000 00000005202 13334202347 021172 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--filter.json 0000644 0000000 0000000 00000005202 13334202347 017664 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--meta-250-filter-strict.json 0000644 0000000 0000000 00000005202 13334202347 022422 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--meta-250-filter.json 0000644 0000000 0000000 00000005202 13334202347 021114 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--meta-250-strict.json 0000644 0000000 0000000 00000005166 13334202347 021150 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--meta-250.json 0000644 0000000 0000000 00000005166 13334202347 017642 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte--strict.json 0000644 0000000 0000000 00000005166 13334202347 017720 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/null-byte.json 0000644 0000000 0000000 00000005166 13334202347 016335 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
"mode": 509,
"uid": 1000,
"gid": 1000,
"size": 0,
"mtime": "2017-07-31T22:21:58.000Z",
"cksum": 11228,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
],
[
"entry",
{
"extended": {
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"uname": null,
"gname": null,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
"mode": 436,
"uid": 1000,
"gid": 1000,
"size": 200,
"mtime": "2017-07-31T22:21:53.000Z",
"cksum": 15210,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--filter-strict.json 0000644 0000000 0000000 00000000332 13334202347 021661 0 ustar root root [
[
"error",
{
"message": "invalid: path is required"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--filter.json 0000644 0000000 0000000 00000000246 13334202347 020357 0 ustar root root [
[
"warn",
"invalid: path is required"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--meta-250-filter-strict.json 0000644 0000000 0000000 00000000332 13334202347 023111 0 ustar root root [
[
"error",
{
"message": "invalid: path is required"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--meta-250-filter.json 0000644 0000000 0000000 00000000246 13334202347 021607 0 ustar root root [
[
"warn",
"invalid: path is required"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--meta-250-strict.json 0000644 0000000 0000000 00000000332 13334202347 021626 0 ustar root root [
[
"error",
{
"message": "invalid: path is required"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--meta-250.json 0000644 0000000 0000000 00000000246 13334202347 020324 0 ustar root root [
[
"warn",
"invalid: path is required"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing--strict.json 0000644 0000000 0000000 00000000332 13334202347 020376 0 ustar root root [
[
"error",
{
"message": "invalid: path is required"
}
],
[
"error",
{
"message": "invalid entry"
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/path-missing.json 0000644 0000000 0000000 00000000246 13334202347 017017 0 ustar root root [
[
"warn",
"invalid: path is required"
],
[
"warn",
"invalid entry"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--filter-strict.json 0000644 0000000 0000000 00000007755 13334202347 024416 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--filter.json 0000644 0000000 0000000 00000007755 13334202347 023110 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--meta-250-filter-strict.json 0000644 0000000 0000000 00000007755 13334202347 025646 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--meta-250-filter.json 0000644 0000000 0000000 00000007755 13334202347 024340 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"ignoredEntry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--meta-250-strict.json 0000644 0000000 0000000 00000007733 13334202347 024357 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--meta-250.json 0000644 0000000 0000000 00000007733 13334202347 023051 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case--strict.json 0000644 0000000 0000000 00000007733 13334202347 023127 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/trailing-slash-corner-case.json 0000644 0000000 0000000 00000007733 13334202347 021544 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/",
"mode": 493,
"uid": 501,
"gid": 20,
"size": 0,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13612,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-19T00:03:11.000Z",
"cksum": 13611,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt\u0000"
],
[
"entry",
{
"extended": {
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt"
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": null,
"gname": null,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 560,
"mtime": "2018-06-18T23:49:44.000Z",
"cksum": 13602,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--filter-strict.json 0000644 0000000 0000000 00000011051 13334202347 020144 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--filter.json 0000644 0000000 0000000 00000011051 13334202347 016636 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--meta-250-filter-strict.json 0000644 0000000 0000000 00000011051 13334202347 021374 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--meta-250-filter.json 0000644 0000000 0000000 00000011051 13334202347 020066 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"ignoredEntry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--meta-250-strict.json 0000644 0000000 0000000 00000011027 13334202347 020114 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--meta-250.json 0000644 0000000 0000000 00000011027 13334202347 016606 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8--strict.json 0000644 0000000 0000000 00000011027 13334202347 016664 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/utf8.json 0000644 0000000 0000000 00000011027 13334202347 015301 0 ustar root root [
[
"meta",
"15 path=Ω.txt\n20 ctime=1491843102\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836217\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:51:42.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836217,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:51:42.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:51:42.000Z",
"cksum": 5688,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"17 path=🌟.txt\n20 ctime=1491843956\n20 atime=1491843993\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836716\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:06:33.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T17:05:56.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "🌟.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836716,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"atime": "2017-04-10T17:06:33.000Z",
"ctime": "2017-04-10T17:05:56.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "🌟.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 106,
"mtime": "2017-04-10T17:05:55.000Z",
"cksum": 6023,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"meta",
"71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt\n20 ctime=1491843527\n20 atime=1491843758\n23 SCHILY.dev=16777220\n22 SCHILY.ino=9836396\n18 SCHILY.nlink=1\n"
],
[
"entry",
{
"extended": {
"atime": "2017-04-10T17:02:38.000Z",
"charset": null,
"comment": null,
"ctime": "2017-04-10T16:58:47.000Z",
"gid": null,
"gname": null,
"linkpath": null,
"mtime": null,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"size": null,
"uid": null,
"uname": null,
"dev": 16777220,
"ino": 9836396,
"nlink": 1,
"global": false
},
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"uname": "isaacs",
"gname": "staff",
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"atime": "2017-04-10T17:02:38.000Z",
"ctime": "2017-04-10T16:58:47.000Z",
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt",
"mode": 420,
"uid": 501,
"gid": 20,
"size": 2,
"mtime": "2017-04-10T16:58:47.000Z",
"cksum": 9990,
"linkpath": "",
"uname": "isaacs",
"gname": "staff",
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--meta-250-filter-strict.json 0000644 0000000 0000000 00000007340 13334202347 022773 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--meta-250-filter.json 0000644 0000000 0000000 00000007340 13334202347 021465 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--meta-250-strict.json 0000644 0000000 0000000 00000007310 13334202347 021505 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--meta-250.json 0000644 0000000 0000000 00000007310 13334202347 020177 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--filter-strict.json 0000644 0000000 0000000 00000007340 13334202347 021543 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--filter.json 0000644 0000000 0000000 00000007340 13334202347 020235 0 ustar root root [
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": true,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": true,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"ignoredEntry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": true,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip--strict.json 0000644 0000000 0000000 00000007310 13334202347 020255 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
test/fixtures/parse/links-strip.json 0000644 0000000 0000000 00000007310 13334202347 016672 0 ustar root root [
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Directory",
"meta": false,
"ignore": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/",
"mode": 493,
"uid": 0,
"gid": 0,
"size": 0,
"mtime": "2018-08-13T04:10:48.000Z",
"cksum": 4912,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "File",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-1",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 26,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 5515,
"linkpath": "",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "Link",
"meta": false,
"ignore": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"atime": null,
"ctime": null,
"linkpath": "strip-dir/hardlink-1",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/hardlink-2",
"mode": 420,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:05.000Z",
"cksum": 7424,
"linkpath": "strip-dir/hardlink-1",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"entry",
{
"extended": null,
"globalExtended": null,
"type": "SymbolicLink",
"meta": false,
"ignore": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"uname": null,
"gname": null,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"atime": null,
"ctime": null,
"linkpath": "hardlink-2",
"header": {
"cksumValid": true,
"needPax": false,
"path": "strip-dir/symlink",
"mode": 511,
"uid": 501,
"gid": 50,
"size": 0,
"mtime": "2017-04-10T19:27:33.000Z",
"cksum": 6302,
"linkpath": "hardlink-2",
"uname": null,
"gname": null,
"devmaj": 0,
"devmin": 0,
"atime": null,
"ctime": null
}
}
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"nullBlock"
],
[
"end"
]
]
node-tar-6.1.13/test/fixtures/sync-gzip-fail.tgz 0000664 0000000 0000000 00000000450 14344174136 0021533 0 ustar 00root root 0000000 0000000 :Z j1@7?7>P(;TEoęל\W,!PrѤ&d9w羕m]߷헝N<~h>c=?Xw?۳wgjRgt?B5)3O?B5 3zj{?B̬|F?&j>@#(OI2տOI4?&?B ^B P node-tar-6.1.13/test/fixtures/taprc.js 0000664 0000000 0000000 00000000401 14344174136 0017614 0 ustar 00root root 0000000 0000000 const fs = require('fs')
const path = require('path')
if (process.platform === 'win32') {
fs.writeFileSync(path.resolve(__dirname, '..', '..', '.taprc'), [
'lines: 98',
'branches: 98',
'statements: 98',
'functions: 98',
].join('\n'))
}
node-tar-6.1.13/test/fixtures/tars/ 0000775 0000000 0000000 00000000000 14344174136 0017123 5 ustar 00root root 0000000 0000000 node-tar-6.1.13/test/fixtures/tars/bad-cksum.tar 0000664 0000000 0000000 00000006000 14344174136 0021475 0 ustar 00root root 0000000 0000000 one-byte.txt 000644 000765 000024 00000000001 13072734654 013751 0 ustar 00isaacs staff 000000 000000 a nne-byte.txt 000644 000765 000024 00000000001 13072734654 013751 0 ustar 00isaacs staff 000000 000000 a node-tar-6.1.13/test/fixtures/tars/body-byte-counts.tar 0000664 0000000 0000000 00000012000 14344174136 0023033 0 ustar 00root root 0000000 0000000 1024-bytes.txt 000644 000765 000024 00000002000 13072734613 013735 0 ustar 00isaacs staff 000000 000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
512-bytes.txt 000644 000765 000024 00000001000 13072736047 013660 0 ustar 00isaacs staff 000000 000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
one-byte.txt 000644 000765 000024 00000000001 13072734654 013751 0 ustar 00isaacs staff 000000 000000 a zero-byte.txt 000644 000765 000024 00000000000 13072735761 014146 0 ustar 00isaacs staff 000000 000000 node-tar-6.1.13/test/fixtures/tars/dir.tar 0000664 0000000 0000000 00000003000 14344174136 0020402 0 ustar 00root root 0000000 0000000 dir/ 000755 000765 000024 00000000000 13072735041 012244 5 ustar 00isaacs staff 000000 000000 node-tar-6.1.13/test/fixtures/tars/emptypax.tar 0000664 0000000 0000000 00000011000 14344174136 0021472 0 ustar 00root root 0000000 0000000 PaxHeader/🌟.txt 000644 000765 000024 00000000170 13072735563 015560 x ustar 00isaacs staff 000000 000000 17 path=🌟.txt
20 ctime=1491843956
20 atime=1491845601
23 SCHILY.dev=16777220
22 SCHILY.ino=9836716
18 SCHILY.nlink=1
🌟.txt 000644 000765 000024 00000000152 13072735563 013607 0 ustar 00isaacs staff 000000 000000 🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠
PaxHeader/🌟.txt 000644 000765 000024 0000000000 13072735563 015430 x ustar 00isaacs staff 000000 000000 one-byte.txt 000644 000765 000024 00000000001 13072734654 013751 0 ustar 00isaacs staff 000000 000000 a node-tar-6.1.13/test/fixtures/tars/file.tar 0000664 0000000 0000000 00000004000 14344174136 0020544 0 ustar 00root root 0000000 0000000 one-byte.txt 000644 000765 000024 00000000001 13072734654 013751 0 ustar 00isaacs staff 000000 000000 a node-tar-6.1.13/test/fixtures/tars/global-header.tar 0000664 0000000 0000000 00000006000 14344174136 0022315 0 ustar 00root root 0000000 0000000 PaxHeader/ab 000644 0000000013 007054 g ustar 00 000000 000000 11 path=ab
one-byte.txt 000644 000765 000024 00000000001 13072734654 013751 0 ustar 00isaacs staff 000000 000000 a node-tar-6.1.13/test/fixtures/tars/links-invalid.tar 0000664 0000000 0000000 00000006000 14344174136 0022373 0 ustar 00root root 0000000 0000000 hardlink-1 000644 000765 000024 0000000032 13072756211 015074 0hardlink-2 ustar 00isaacs staff 000000 000000 this link is like diamond
hardlink-2 000644 000765 000024 0000000000 13072756211 013215 1 ustar 00isaacs staff 000000 000000 symlink 000755 000765 000024 00000000000 13072756245 014757 2hardlink-2 ustar 00isaacs staff 000000 000000 node-tar-6.1.13/test/fixtures/tars/links-strip.tar 0000664 0000000 0000000 00000006000 14344174136 0022106 0 ustar 00root root 0000000 0000000 strip-dir/ 000755 000000 000000 00000000000 13370171065 011144 5 ustar 00 000000 000000 strip-dir/hardlink-1 000644 000000 000000 00000000032 13370171065 013014 0 ustar 00 000000 000000 this link is like diamond
strip-dir/hardlink-2 000644 000000 000000 00000000000 13370171065 016601 1strip-dir/hardlink-1 ustar 00 000000 000000 strip-dir/1/2/3/hardlink-3 000644 000000 000000 00000000000 13370171065 017245 1strip-dir/hardlink-1 ustar 00 000000 000000 strip-dir/symlink 000644 000000 000000 00000000000 13370171065 014421 2hardlink-2 ustar 00 000000 000000 node-tar-6.1.13/test/fixtures/tars/links.tar 0000664 0000000 0000000 00000006000 14344174136 0020747 0 ustar 00root root 0000000 0000000 hardlink-1 000644 000765 000024 00000000032 13072756211 013340 0 ustar 00isaacs staff 000000 000000 this link is like diamond
hardlink-2 000644 000765 000024 00000000000 13072756211 015210 1hardlink-1 ustar 00isaacs staff 000000 000000 symlink 000755 000765 000024 00000000000 13072756245 014757 2hardlink-2 ustar 00isaacs staff 000000 000000 node-tar-6.1.13/test/fixtures/tars/long-paths.tar 0000664 0000000 0000000 00000064000 14344174136 0021707 0 ustar 00root root 0000000 0000000 100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc000644 000765 000024 00000000144 13072734156 034400 0 ustar 00isaacs staff 000000 000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc PaxHeader/120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000351 13072734264 034107 x ustar 00isaacs staff 000000 000000 130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
20 ctime=1491843252
20 atime=1491843717
23 SCHILY.dev=16777220
22 SCHILY.ino=9836297
18 SCHILY.nlink=1
120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000144 13072734264 034237 0 ustar 00isaacs staff 000000 000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc PaxHeader/170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000433 13072734462 034115 x ustar 00isaacs staff 000000 000000 180 path=170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
20 ctime=1491843378
20 atime=1491843717
23 SCHILY.dev=16777220
22 SCHILY.ino=9836326
18 SCHILY.nlink=1
170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000144 13072734462 034244 0 ustar 00isaacs staff 000000 000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc long-path/ 000755 000765 000024 00000000000 13072734104 013356 5 ustar 00isaacs staff 000000 000000 long-path/r/ 000755 000765 000024 00000000000 13072734104 013617 5 ustar 00isaacs staff 000000 000000 long-path/r/e/ 000755 000765 000024 00000000000 13072734104 014043 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/ 000755 000765 000024 00000000000 13072734104 014263 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/ 000755 000765 000024 00000000000 13072734104 014516 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/ 000755 000765 000024 00000000000 13072734104 014751 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/ 000755 000765 000024 00000000000 13072734104 015221 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/ 000755 000765 000024 00000000000 13072734104 015355 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/ 000755 000765 000024 00000000000 13072734104 015600 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/ 000755 000765 000024 00000000000 13072734104 016024 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/ 000755 000765 000024 00000000000 13072734104 016250 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/ 000755 000765 000024 00000000000 13072734104 016507 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/ 000755 000765 000024 00000000000 13072734104 016643 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/ 000755 000765 000024 00000000000 13072734104 017070 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/ 000755 000765 000024 00000000000 13072734104 017326 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/ 000755 000765 000024 00000000000 13072734104 017561 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/ 000755 000765 000024 00000000000 13072734104 020004 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/ 000755 000765 000024 00000000000 13072734104 020230 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/ 000755 000765 000024 00000000000 13072734104 020471 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/ 000755 000765 000024 00000000000 13072734104 020625 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/ 000755 000765 000024 00000000000 13072734104 021064 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/ 000755 000765 000024 00000000000 13072734104 021304 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/ 000755 000765 000024 00000000000 13072734104 021547 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ 000755 000765 000024 00000000000 13072734707 022007 5 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt 000644 000765 000024 00000000006 13072734516 022762 0 ustar 00isaacs staff 000000 000000 short
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc000644 000765 000024 00000000144 13072734104 045174 0 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc h/PaxHeader/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc000644 000765 000024 00000000441 13072734104 044701 x ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t 186 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
20 ctime=1491843140
20 atime=1491843717
23 SCHILY.dev=16777220
22 SCHILY.ino=9836253
18 SCHILY.nlink=1
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000144 13072734104 045031 0 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc h/PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccc000644 000765 000024 00000000523 13072734104 046734 x ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t 236 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
20 ctime=1491843140
20 atime=1491843717
23 SCHILY.dev=16777220
22 SCHILY.ino=9836254
18 SCHILY.nlink=1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000144 13072734104 047063 0 ustar 00isaacs staff 000000 000000 long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/Ω.txt 000644 000765 000024 00000000256 13072734707 025372 x ustar 00isaacs staff 000000 000000 71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt
20 ctime=1491843527
20 atime=1491844045
23 SCHILY.dev=16777220
22 SCHILY.ino=9836396
18 SCHILY.nlink=1
long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt 000644 000765 000024 00000000002 13072734707 023406 0 ustar 00isaacs staff 000000 000000 Ω node-tar-6.1.13/test/fixtures/tars/long-pax.tar 0000664 0000000 0000000 00000006000 14344174136 0021354 0 ustar 00root root 0000000 0000000 PaxHeader/120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 0000002402 13072734264 034131 x ustar 00isaacs staff 000000 000000 130 path=120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1069 comment=all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy all work and no play makes johnny a tar boy
9 gid=20
15 gname=staff
20 mtime=1491843252
12 size=100
11 uid=501
16 uname=isaacs
120-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000144 13072734264 034237 0 ustar 00isaacs staff 000000 000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc node-tar-6.1.13/test/fixtures/tars/next-file-has-long.tar 0000664 0000000 0000000 00000011000 14344174136 0023224 0 ustar 00root root 0000000 0000000 NextFileHasLongPath 0000000252 007674 L ustar 00 000000 000000 170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 170-byte-filename-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 000644 000765 000024 00000000144 13072734462 034244 0 ustar 00isaacs staff 000000 000000 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc NextFileHasLongLinkpath 0000000252 010551 K ustar 00 000000 000000 170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc longlink 000755 000765 000024 00000000000 13073011671 015737 2././@LongSymLink ustar 00isaacs staff 000000 000000 node-tar-6.1.13/test/fixtures/tars/null-byte.tar 0000664 0000000 0000000 00000024000 14344174136 0021542 0 ustar 00root root 0000000 0000000 this_is_a_really_long_directory_name_with_a_lot_of_characters/ 0000775 0001750 0001750 00000000000 13137726606 025734 5 ustar freitagb freitagb ././@LongLink 0000644 0000000 0000000 00000000172 00000000000 011603 L ustar root root this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_0000664 0001750 0001750 00000000310 13137726601 035552 0 ustar freitagb freitagb Y ij1a)lca605xT>NPB(}!,>]}_.ķ9c)BM>NZ}CUMX[\ƨB?dE|*
5~?/Q2!ƭ|];^ɿ=ߔUEOy{6 uT ( node-tar-6.1.13/test/fixtures/tars/path-missing.tar 0000664 0000000 0000000 00000004000 14344174136 0022230 0 ustar 00root root 0000000 0000000 000644 000765 000024 0000000001 13072734654 011350 0 ustar 00isaacs staff 000000 000000 a node-tar-6.1.13/test/fixtures/tars/trailing-slash-corner-case.tar 0000664 0000000 0000000 00000024000 14344174136 0024747 0 ustar 00root root 0000000 0000000 99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/0000755 0000765 0000024 00000000000 13312044077 032454 5 ustar rmg staff ././@LongLink 0000644 0000000 0000000 00000000231 00000000000 011720 L ustar root wheel 99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/a-truly-unlucky-file-beyond-130-byte-path-length.txt 99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/0000644 0000765 0000024 00000001060 13312044077 032453 0 ustar rmg staff Behold! I am a text file and NOT a tar header.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
././@LongLink 0000644 0000000 0000000 00000000172 00000000000 011724 L ustar root wheel 99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/some-unlucky-file.txt 99-byte-dirname-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc/0000644 0000765 0000024 00000001060 13312042430 032442 0 ustar rmg staff Behold! I am a text file and NOT a tar header.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
node-tar-6.1.13/test/fixtures/tars/utf8.tar 0000664 0000000 0000000 00000016000 14344174136 0020516 0 ustar 00root root 0000000 0000000 PaxHeader/Ω.txt 000644 000765 000024 00000000166 13072734036 015054 x ustar 00isaacs staff 000000 000000 15 path=Ω.txt
20 ctime=1491843102
20 atime=1491843758
23 SCHILY.dev=16777220
22 SCHILY.ino=9836217
18 SCHILY.nlink=1
Ω.txt 000644 000765 000024 00000000002 13072734036 013070 0 ustar 00isaacs staff 000000 000000 Ω PaxHeader/🌟.txt 000644 000765 000024 00000000170 13072735563 015560 x ustar 00isaacs staff 000000 000000 17 path=🌟.txt
20 ctime=1491843956
20 atime=1491843993
23 SCHILY.dev=16777220
22 SCHILY.ino=9836716
18 SCHILY.nlink=1
🌟.txt 000644 000765 000024 00000000152 13072735563 013607 0 ustar 00isaacs staff 000000 000000 🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠
long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/PaxHeader/Ω.txt 000644 000765 000024 00000000256 13072734707 025372 x ustar 00isaacs staff 000000 000000 71 path=long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt
20 ctime=1491843527
20 atime=1491843758
23 SCHILY.dev=16777220
22 SCHILY.ino=9836396
18 SCHILY.nlink=1
long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt 000644 000765 000024 00000000002 13072734707 023406 0 ustar 00isaacs staff 000000 000000 Ω node-tar-6.1.13/test/fixtures/test.js 0000664 0000000 0000000 00000000777 14344174136 0017502 0 ustar 00root root 0000000 0000000 const platform = process.platform === 'win32' ? 'win32' : 'posix'
const { spawn } = require('child_process')
const c = spawn(process.execPath, [
process.env.npm_execpath,
'run',
`test:${platform}`,
'--',
...process.argv.slice(2),
], {
stdio: 'inherit',
})
c.on('close', (code, signal) => {
process.exitCode = code
if (signal) {
process.kill(process.pid, signal)
setTimeout(() => {}, 200)
}
})
process.on('SIGTERM', () => c.kill('SIGTERM'))
process.on('SIGINT', () => c.kill('SIGINT'))
node-tar-6.1.13/test/get-write-flag.js 0000664 0000000 0000000 00000003172 14344174136 0017460 0 ustar 00root root 0000000 0000000 const t = require('tap')
// run three scenarios
// unix (no fmap)
// win32 (without fmap support)
// win32 (with fmap support)
const fs = require('fs')
const hasFmap = !!fs.constants.UV_FS_O_FILEMAP
const platform = process.platform
const UV_FS_O_FILEMAP = 0x20000000
switch (process.argv[2]) {
case 'win32-fmap': {
if (!hasFmap) {
global.__FAKE_TESTING_FS__ = {
constants: {
...fs.constants,
...{ UV_FS_O_FILEMAP },
},
}
}
const { O_CREAT, O_TRUNC, O_WRONLY } = fs.constants
if (platform !== 'win32') {
process.env.__FAKE_PLATFORM__ = 'win32'
}
const getFlag = require('../lib/get-write-flag.js')
t.equal(getFlag(1), UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY)
t.equal(getFlag(512 * 1024 + 1), 'w')
break
}
case 'win32-nofmap': {
if (hasFmap) {
global.__FAKE_TESTING_FS__ = {
constants: {
...fs.constants,
...{ UV_FS_O_FILEMAP: 0 },
},
}
}
if (platform !== 'win32') {
process.env.__FAKE_PLATFORM__ = 'win32'
}
const getFlag = require('../lib/get-write-flag.js')
t.equal(getFlag(1), 'w')
t.equal(getFlag(512 * 1024 + 1), 'w')
break
}
case 'unix': {
if (platform === 'win32') {
process.env.__FAKE_PLATFORM__ = 'darwin'
}
const getFlag = require('../lib/get-write-flag.js')
t.equal(getFlag(1), 'w')
t.equal(getFlag(512 * 1024 + 1), 'w')
break
}
default: {
const node = process.execPath
t.spawn(node, [__filename, 'win32-fmap'])
t.spawn(node, [__filename, 'win32-nofmap'])
t.spawn(node, [__filename, 'unix'])
}
}
node-tar-6.1.13/test/header.js 0000664 0000000 0000000 00000055057 14344174136 0016103 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const Header = require('../lib/header.js')
t.test('ustar format', t => {
const buf = Buffer.from(
'666f6f2e74787400000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303037353520003035373736312000303030303234200037373737' +
'3737373737373700313236373735363735343000303133303531200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex')
const h = new Header({
path: 'foo.txt',
})
const slab = Buffer.alloc(1024)
h.set({
mode: 0o755,
uid: 24561,
gid: 20,
size: 0o77777777777,
mtime: new Date('2016-04-01T22:00Z'),
type: 'File',
uname: 'isaacs',
gname: 'staff',
})
h.encode(slab)
t.equal(slab.slice(0, 512).toString('hex'), buf.toString('hex'))
t.equal(slab.toString('hex'), buf.toString('hex') +
(new Array(1025).join('0')))
const h2 = new Header(buf)
t.match(h2, {
path: 'foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 0o77777777777,
ctime: null,
atime: null,
uname: 'isaacs',
gname: 'staff',
cksumValid: true,
cksum: 5673,
})
t.end()
})
t.test('xstar format', t => {
const buf = Buffer.from(
'666f6f2e74787400000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303037353520003035373736312000303030303234200030303030' +
'3030303134342000313236373735363735343000303135313331200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000031323637' +
'3735363735343000313236373735363735343000000000000000000000000000' +
// just some junk
'420420420420420420420420420420420420420420420420420420420420',
'hex')
const h = new Header({
path: 'foo.txt',
})
h.set({
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
type: 'File',
uname: 'isaacs',
gname: 'staff',
})
h.encode()
const slab = h.block
t.equal(slab.toString('hex'), buf.slice(0, 512).toString('hex'))
const h2 = new Header(buf)
t.match(h2, {
path: 'foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
type: 'File',
uname: 'isaacs',
gname: 'staff',
cksumValid: true,
cksum: 6745,
})
t.end()
})
t.test('prefix handling', t => {
t.plan(4)
t.test('no times', t => {
const buf = Buffer.from(
'666f6f2e74787400000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303037353520003035373736312000303030303234200030303030' +
'3030303134342000313236373735363735343000303337323734200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'00000000000000000030303030303020003030303030302000722f652f612f6c' +
'2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f79' +
'2f2d2f722f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f72' +
'2f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f722f652f61' +
'2f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f642f652f652f702f2d' +
'2f702f612f742f68000000000000000000000000000000000000000000000000',
'hex')
const h = new Header({
path: 'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/d/e/e/p/-/p/a/t/h/foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: null,
atime: undefined,
type: '0',
uname: 'isaacs',
gname: 'staff',
})
const b2 = Buffer.alloc(512)
h.encode(b2, 0)
t.equal(b2.toString().replace(/\0+/g, ' '),
buf.toString().replace(/\0+/g, ' '))
t.equal(b2.toString('hex'), buf.toString('hex'))
const h2 = new Header(buf)
t.match(h2, {
path: 'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/d/e/e/p/-/p/a/t/h/foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: null,
atime: null,
type: 'File',
uname: 'isaacs',
gname: 'staff',
cksumValid: true,
cksum: 16060,
needPax: false,
})
t.equal(b2.toString().replace(/\0.*$/, ''), 'foo.txt')
t.equal(b2.slice(345).toString().replace(/\0.*$/, ''), 'r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/d/e/e/p/-/p/a/t/h')
t.end()
})
t.test('a/c times, use shorter prefix field', t => {
const buf = Buffer.from(
'652f702f2d2f702f612f742f682f666f6f2e7478740000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303037353520003035373736312000303030303234200030303030' +
'3030303134342000313236373735363735343000303431353030200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'00000000000000000030303030303020003030303030302000722f652f612f6c' +
'2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f79' +
'2f2d2f722f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f72' +
'2f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f722f652f61' +
'2f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f642f65000031323637' +
'3735363735343000313236373735363735343000000000000000000000000000',
'hex')
const h = new Header()
h.path = 'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/d/e/e/p/-/p/a/t/h/foo.txt'
h.mode = 0o755
h.uid = 24561
h.gid = 20
h.size = 100
h.mtime = new Date('2016-04-01T22:00Z')
h.ctime = new Date('2016-04-01T22:00Z')
h.atime = new Date('2016-04-01T22:00Z')
h.type = 'File'
h.uname = 'isaacs'
h.gname = 'staff'
const b2 = Buffer.alloc(512)
h.encode(b2, 0)
t.equal(b2.toString('hex'), buf.toString('hex'))
const b3 = Buffer.alloc(1024)
h.encode(b3, 100)
t.equal(b2.toString('hex'), b3.slice(100, 612).toString('hex'))
const h2 = new Header(b3, 100)
t.match(h2, {
path: 'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/d/e/e/p/-/p/a/t/h/foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
type: 'File',
uname: 'isaacs',
gname: 'staff',
cksumValid: true,
cksum: 17216,
needPax: false,
}, 'header from buffer')
t.equal(b2.toString().replace(/\0.*$/, ''), 'e/p/-/p/a/t/h/foo.txt')
t.equal(b2.slice(345).toString().replace(/\0.*$/, ''), 'r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-' +
'/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/d/e')
t.end()
})
t.test('hella long basename', t => {
const buf = Buffer.from(
'6c6f6e672d66696c652d6c6f6e672d66696c652d6c6f6e672d66696c652d6c6f' +
'6e672d66696c652d6c6f6e672d66696c652d6c6f6e672d66696c652d6c6f6e67' +
'2d66696c652d6c6f6e672d66696c652d6c6f6e672d66696c652d6c6f6e672d66' +
'696c650030303037353520003035373736312000303030303234200030303030' +
'3030303134342000313236373735363735343000303630313431200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'00000000000000000030303030303020003030303030302000722f652f612f6c' +
'2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f79' +
'2f2d2f722f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f72' +
'2f652f612f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f722f652f61' +
'2f6c2f6c2f792f2d2f722f652f612f6c2f6c2f792f2d2f642f652f652f702f2d' +
'2f702f612f742f68000000000000000000000000000000000000000000000000',
'hex')
const h = new Header({
path: 'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/d/e/e/p/-/p/a/t/h/' +
(new Array(20).join('long-file-')) + 'long-file.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: null,
atime: undefined,
type: '0',
uname: 'isaacs',
gname: 'staff',
})
const b2 = Buffer.alloc(513)
h.encode(b2, 1)
t.equal(b2.toString('hex'), '00' + buf.toString('hex'))
t.ok(h.needPax, 'need pax because long filename')
const h2 = new Header(b2, 1)
t.match(h2, {
cksumValid: true,
cksum: 24673,
path: 'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/r/e/a/l/l/y/-/' +
'r/e/a/l/l/y/-/d/e/e/p/-/p/a/t/h/long-file-long-file-long-' +
'file-long-file-long-file-long-file-long-file-long-file-long-' +
'file-long-file',
needPax: false,
})
t.end()
})
t.test('long basename, long dirname', t => {
const buf = Buffer.from(
'6c6f6e672d6469726e616d652d6c6f6e672d6469726e616d652d6c6f6e672d64' +
'69726e616d652d6c6f6e672d6469726e616d652d6c6f6e672d6469726e616d65' +
'2d6c6f6e672d6469726e616d652d6c6f6e672d6469726e616d652d6c6f6e672d' +
'6469720030303037353520003035373736312000303030303234200030303030' +
'3030303134342000313236373735363735343000303334323035200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex')
const h = new Header({
path: (new Array(30).join('long-dirname-')) + 'long-dirname/' +
(new Array(20).join('long-file-')) + 'long-file.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: null,
atime: undefined,
type: '0',
uname: 'isaacs',
gname: 'staff',
})
const b2 = Buffer.alloc(512)
h.encode(b2, 0)
t.equal(h.type, 'File')
t.equal(h.typeKey, '0')
t.equal(b2.toString('hex'), buf.toString('hex'))
t.equal(h.cksum, 14469)
t.ok(h.needPax, 'need pax because long filename')
const h2 = new Header(b2)
t.match(h2, {
path: 'long-dirname-long-dirname-long-dirname-long-dirname-' +
'long-dirname-long-dirname-long-dirname-long-dir',
cksum: 14469,
cksumValid: true,
needPax: false,
})
t.end()
})
})
t.test('throwers', t => {
t.throws(_ => new Header(Buffer.alloc(100)),
new Error('need 512 bytes for header'))
t.throws(_ => new Header({}).encode(Buffer.alloc(100)),
new Error('need 512 bytes for header'))
t.end()
})
t.test('null block', t => {
const h = new Header(Buffer.alloc(512))
t.match(h, {
cksumValid: false,
needPax: false,
path: '',
type: 'File',
mode: null,
uid: null,
gid: null,
size: null,
mtime: null,
cksum: null,
linkpath: '',
uname: null,
gname: null,
devmaj: 0,
devmin: 0,
atime: null,
ctime: null,
nullBlock: true,
})
t.end()
})
t.test('unknown type', t => {
const h = new Header(Buffer.from(
'666f6f2e74787400000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303037353520003035373736312000303030303234200030303030' +
'303030313434200031323637373536373534300030303630373620005a000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex'))
t.equal(h.type, 'Z')
t.equal(h.typeKey, 'Z')
t.end()
})
t.test('dir as file with trailing /', t => {
const b = Buffer.from(
'782f792f00000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000030303030' +
'3030303030302000000000000000000000000000303034363136200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030300000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex')
const h = new Header(b)
t.equal(h.type, 'Directory')
b[156] = '0'.charCodeAt(0)
const h2 = new Header(b)
t.equal(h2.type, 'Directory')
t.end()
})
t.test('null numeric values do not get written', t => {
const b = Buffer.alloc(512)
const h = new Header()
h.encode(b, 0)
t.equal(
b.toString('hex'),
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000303033303737200030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030300000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000')
const h2 = new Header(b)
t.match(h2, {
type: 'File',
cksumValid: true,
needPax: false,
nullBlock: false,
path: '',
mode: null,
uid: null,
gid: null,
size: null,
mtime: null,
cksum: 1599,
linkpath: '',
uname: '',
gname: '',
devmaj: 0,
devmin: 0,
atime: null,
ctime: null,
})
t.end()
})
t.test('big numbers', t => {
const b = Buffer.alloc(512)
const h = new Header({
path: 'bignum',
size: 0o77777777777 + 1,
})
h.encode(b, 0)
const h2 = new Header(b)
t.equal(h2.size, 0o77777777777 + 1)
t.end()
})
t.test('dir with long body', t => {
const b = Buffer.from(
'7061636b6167652f76656e646f72000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303037353520003030303030302000303030303030200030303030' +
'3030313030303020313330363133303232343120303132303236200035000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030300000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex')
const h = new Header(b)
t.equal(h.type, 'Directory')
t.equal(h.size, 0)
t.end()
})
t.test('null block, global extended header', t => {
const h = new Header(Buffer.alloc(512), 0, {
undef: undefined,
blerg: 'bloo',
}, {
path: '/global.path',
foo: 'global foo',
})
t.match(h, {
cksumValid: false,
needPax: false,
path: '',
type: 'File',
mode: null,
uid: null,
gid: null,
size: null,
mtime: null,
cksum: null,
linkpath: '',
uname: null,
gname: null,
devmaj: 0,
devmin: 0,
atime: null,
ctime: null,
nullBlock: true,
blerg: 'bloo',
foo: 'global foo',
})
t.end()
})
t.test('gnutar-generated 10gb file size', t => {
const b = Buffer.from(
'313067622e696d67000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303030363634003030303137353000303030313735300080000000' +
'0000000280000000313334373434303132303500303131313437002030000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461722020006973616163730000000000000000000000000000000000' +
'0000000000000000006973616163730000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000', 'hex')
const h = new Header(b)
t.equal(h.size, 1024 * 1024 * 1024 * 10, 'should be 10gb file')
t.end()
})
node-tar-6.1.13/test/high-level-opt.js 0000664 0000000 0000000 00000001141 14344174136 0017460 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const hlo = require('../lib/high-level-opt.js')
t.same(hlo(), {})
t.same(hlo({
C: 'dir',
f: 'file',
z: 'zip',
P: 'preserve',
U: 'unlink',
'strip-components': 99,
foo: 'bar',
}), {
cwd: 'dir',
file: 'file',
gzip: 'zip',
preservePaths: 'preserve',
unlink: 'unlink',
strip: 99,
foo: 'bar',
})
t.same(hlo({
C: 'dir',
f: 'file',
z: 'zip',
P: 'preserve',
U: 'unlink',
stripComponents: 99,
foo: 'bar',
}), {
cwd: 'dir',
file: 'file',
gzip: 'zip',
preservePaths: 'preserve',
unlink: 'unlink',
strip: 99,
foo: 'bar',
})
node-tar-6.1.13/test/index.js 0000664 0000000 0000000 00000003435 14344174136 0015753 0 ustar 00root root 0000000 0000000 const t = require('tap')
const tar = require('../')
t.match(tar, {
create: Function,
c: Function,
replace: Function,
r: Function,
list: Function,
t: Function,
update: Function,
u: Function,
extract: Function,
x: Function,
Pack: Function,
Unpack: Function,
Parse: Function,
ReadEntry: Function,
WriteEntry: Function,
Header: Function,
Pax: Function,
types: {
name: new Map([
['0', 'File'],
['', 'OldFile'],
['1', 'Link'],
['2', 'SymbolicLink'],
['3', 'CharacterDevice'],
['4', 'BlockDevice'],
['5', 'Directory'],
['6', 'FIFO'],
['7', 'ContiguousFile'],
['g', 'GlobalExtendedHeader'],
['x', 'ExtendedHeader'],
['A', 'SolarisACL'],
['D', 'GNUDumpDir'],
['I', 'Inode'],
['K', 'NextFileHasLongLinkpath'],
['L', 'NextFileHasLongPath'],
['M', 'ContinuationFile'],
['N', 'OldGnuLongPath'],
['S', 'SparseFile'],
['V', 'TapeVolumeHeader'],
['X', 'OldExtendedHeader'],
]),
code: new Map([
['File', '0'],
['OldFile', ''],
['Link', '1'],
['SymbolicLink', '2'],
['CharacterDevice', '3'],
['BlockDevice', '4'],
['Directory', '5'],
['FIFO', '6'],
['ContiguousFile', '7'],
['GlobalExtendedHeader', 'g'],
['ExtendedHeader', 'x'],
['SolarisACL', 'A'],
['GNUDumpDir', 'D'],
['Inode', 'I'],
['NextFileHasLongLinkpath', 'K'],
['NextFileHasLongPath', 'L'],
['ContinuationFile', 'M'],
['OldGnuLongPath', 'N'],
['SparseFile', 'S'],
['TapeVolumeHeader', 'V'],
['OldExtendedHeader', 'X'],
]),
},
})
t.match(tar.Pack.Sync, Function)
t.match(tar.WriteEntry.Sync, Function)
t.match(tar.WriteEntry.Tar, Function)
t.match(tar.Pax.parse, Function)
node-tar-6.1.13/test/large-numbers.js 0000664 0000000 0000000 00000005326 14344174136 0017410 0 ustar 00root root 0000000 0000000 'use strict'
const large = require('../lib/large-numbers.js')
const encode = large.encode
const parse = large.parse
const t = require('tap')
t.test('parse', t => {
const cases = new Map([
['ffffffffffffffffffffffff', -1],
['800000000000100000000020', 17592186044448],
['fffffffffffffffe1ecc8020', -8073215968],
['fffffffffffffff000000020', -68719476704],
['80000000001fffffffffffff', 9007199254740991], // MAX_SAFE_INTEGER
['ffffffffffe0000000000001', -9007199254740991], // MIN_SAFE_INTEGER
['800000000000100000000000', 17592186044416],
['fffffffffffffffe1ecc8000', -8073216000],
['fffffffffffffff000000000', -68719476736],
['800000000000000353b66200', 14289363456],
])
t.plan(cases.size)
cases.forEach((value, hex) =>
t.equal(parse(Buffer.from(hex, 'hex')), value))
})
t.test('parse out of range', t => {
const cases = [
'800000030000000000000000',
'800000000020000000000000', // MAX_SAFE_INTEGER + 1
'ffffffffffe0000000000000', // MIN_SAFE_INTEGER - 1
'fffffffffdd0000000000000',
]
t.plan(cases.length)
cases.forEach((hex) =>
t.throws(_ => parse(Buffer.from(hex, 'hex')),
Error('parsed number outside of javascript safe integer range')))
})
t.test('parse invalid base256 encoding', t => {
const cases = [
'313233343536373131', // octal encoded
'700000030000000000000000', // does not start with 0x80 or 0xff
]
t.plan(cases.length)
cases.forEach((hex) =>
t.throws(_ => parse(Buffer.from(hex, 'hex')),
Error('invalid base256 encoding')))
})
t.test('encode', t => {
const cases = new Map([
['ffffffffffffffffffffffff', -1],
['800000000000100000000020', 17592186044448],
['800000000000100000000000', 17592186044416],
['fffffffffffffffe1ecc8020', -8073215968],
['fffffffffffffff000000020', -68719476704],
['fffffffffffffff000000000', -68719476736], // Allows us to test the case where there's a trailing 00
['80000000001fffffffffffff', 9007199254740991], // MAX_SAFE_INTEGER
['ffffffffffe0000000000001', -9007199254740991], // MIN_SAFE_INTEGER
])
t.plan(2)
t.test('alloc', t => {
t.plan(cases.size)
cases.forEach((value, hex) =>
t.equal(encode(value, Buffer.alloc(12)).toString('hex'), hex))
})
t.test('allocUnsafe', t => {
t.plan(cases.size)
cases.forEach((value, hex) =>
t.equal(encode(value, Buffer.allocUnsafe(12)).toString('hex'), hex))
})
})
t.test('encode unsafe numbers', t => {
const cases = [
Number.MAX_VALUE,
Number.MAX_SAFE_INTEGER + 1,
Number.MIN_SAFE_INTEGER - 1,
Number.MIN_VALUE,
]
t.plan(cases.length)
cases.forEach((value) =>
t.throws(_ => encode(value),
Error('cannot encode number outside of javascript safe integer range')))
})
node-tar-6.1.13/test/list.js 0000664 0000000 0000000 00000015123 14344174136 0015614 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const list = require('../lib/list.js')
const path = require('path')
const fs = require('fs')
const mutateFS = require('mutate-fs')
t.test('basic', t => {
const file = path.resolve(__dirname, 'fixtures/tars/long-paths.tar')
const expect = require('./fixtures/parse/long-paths.json').filter(
e => Array.isArray(e) && e[0] === 'entry'
).map(e => e[1].path)
const check = (actual, t) => {
t.same(actual, expect)
return Promise.resolve(null)
}
;[1000, null].forEach(maxReadSize => {
t.test('file maxReadSize=' + maxReadSize, t => {
t.test('sync', t => {
const actual = []
const onentry = entry => actual.push(entry.path)
list({
file: file,
sync: true,
onentry: onentry,
maxReadSize: maxReadSize,
})
return check(actual, t)
})
t.test('async promise', t => {
const actual = []
const onentry = entry => actual.push(entry.path)
return list({
file: file,
onentry: onentry,
maxReadSize: maxReadSize,
}).then(_ => check(actual, t))
})
t.test('async cb', t => {
const actual = []
const onentry = entry => actual.push(entry.path)
list({
file: file,
onentry: onentry,
maxReadSize: maxReadSize,
}, er => {
if (er) {
throw er
}
check(actual, t)
t.end()
})
})
t.end()
})
})
t.test('stream', t => {
t.test('sync', t => {
const actual = []
const onentry = entry => actual.push(entry.path)
const l = list({ sync: true, onentry: onentry })
l.end(fs.readFileSync(file))
return check(actual, t)
})
t.test('async', t => {
const actual = []
const onentry = entry => actual.push(entry.path)
const l = list()
l.on('entry', onentry)
l.on('end', _ => check(actual, t).then(_ => t.end()))
fs.createReadStream(file).pipe(l)
})
t.end()
})
t.test('no onentry function', t => list({ file: file }))
t.test('limit to specific files', t => {
const fileList = [
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t',
'170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc///',
]
const expect = [
'170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt',
]
t.test('no filter function', t => {
const check = _ => t.same(actual, expect)
const actual = []
return list({
file: file,
onentry: entry => actual.push(entry.path),
}, fileList).then(check)
})
t.test('no filter function, stream', t => {
const check = _ => t.same(actual, expect)
const actual = []
const onentry = entry => actual.push(entry.path)
fs.createReadStream(file).pipe(list(fileList)
.on('entry', onentry)
.on('end', _ => {
check()
t.end()
}))
})
t.test('filter function', t => {
const check = _ => t.same(actual, expect.slice(0, 1))
const actual = []
return list({
file: file,
filter: path => path === expect[0],
onentry: entry => actual.push(entry.path),
}, fileList).then(check)
})
return t.test('list is unmunged', t => {
t.same(fileList, [
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t',
'170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc///',
])
t.end()
})
})
t.end()
})
t.test('bad args', t => {
t.throws(_ => list({ file: __filename, sync: true }, _ => _),
new TypeError('callback not supported for sync tar functions'))
t.throws(_ => list(_ => _),
new TypeError('callback only supported with file option'))
t.end()
})
t.test('stat fails', t => {
const poop = new Error('poop')
t.teardown(mutateFS.statFail(poop))
t.test('sync', t => {
t.plan(1)
t.throws(_ => list({ file: __filename, sync: true }), poop)
})
t.test('cb', t => {
t.plan(1)
list({ file: __filename }, er => t.equal(er, poop))
})
t.test('promise', t => {
t.plan(1)
list({ file: __filename }).catch(er => t.equal(er, poop))
})
t.end()
})
t.test('read fail', t => {
t.test('sync', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('read', poop))
t.plan(1)
t.throws(_ => list({
file: __filename,
sync: true,
maxReadSize: 10,
}), poop)
})
t.test('cb', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('read', poop))
t.plan(1)
list({ file: __filename }, er => t.equal(er, poop))
})
t.test('promise', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('read', poop))
t.plan(1)
list({ file: __filename }).catch(er => t.equal(er, poop))
})
t.end()
})
t.test('noResume option', t => {
const file = path.resolve(__dirname, 'fixtures/tars/file.tar')
t.test('sync', t => {
let e
list({
file: file,
onentry: entry => {
e = entry
process.nextTick(_ => {
t.notOk(entry.flowing)
entry.resume()
})
},
sync: true,
noResume: true,
})
t.ok(e)
t.notOk(e.flowing)
e.on('end', _ => t.end())
})
t.test('async', t => list({
file: file,
onentry: entry => {
process.nextTick(_ => {
t.notOk(entry.flowing)
entry.resume()
})
},
noResume: true,
}))
t.end()
})
node-tar-6.1.13/test/load-all.js 0000664 0000000 0000000 00000000524 14344174136 0016325 0 ustar 00root root 0000000 0000000 'use strict'
// just load all the files so we can't cheat coverage by avoiding something
require('../')
const fs = require('fs')
const path = require('path')
const lib = path.resolve(__dirname, '../lib')
fs.readdirSync(lib)
.filter(f => /\.js$/.test(f))
.forEach(f => require('../lib/' + f))
require('tap').pass('all lib files loaded')
node-tar-6.1.13/test/make-tar.js 0000664 0000000 0000000 00000001245 14344174136 0016342 0 ustar 00root root 0000000 0000000 'use strict'
// a little utility to create virtual tar data
if (module === require.main) {
return require('tap').pass('this is fine')
}
const Header = require('../lib/header.js')
module.exports = chunks => {
let dataLen = 0
return Buffer.concat(chunks.map(chunk => {
if (Buffer.isBuffer(chunk)) {
dataLen += chunk.length
return chunk
}
const size = Math.max(typeof chunk === 'string'
? 512 * Math.ceil(chunk.length / 512)
: 512)
dataLen += size
const buf = Buffer.alloc(size)
if (typeof chunk === 'string') {
buf.write(chunk)
} else {
new Header(chunk).encode(buf, 0)
}
return buf
}), dataLen)
}
node-tar-6.1.13/test/map.js 0000664 0000000 0000000 00000000422 14344174136 0015412 0 ustar 00root root 0000000 0000000 const t = require('tap')
const map = require('../map.js')
t.equal(map('test/index.js'), 'index.js')
t.same(map('test/unpack.js'), ['lib/unpack.js', 'lib/mkdir.js'])
t.same(map('test/load-all.js'), [])
t.equal(map(__filename), 'map.js')
t.equal(map('test/asdf'), 'lib/asdf')
node-tar-6.1.13/test/mode-fix.js 0000664 0000000 0000000 00000000756 14344174136 0016357 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const mf = require('../lib/mode-fix.js')
t.equal(mf(0o10644, false), 0o644)
t.equal(mf(0o10644, true), 0o755)
t.equal(mf(0o10604, true), 0o705)
t.equal(mf(0o10600, true), 0o700)
t.equal(mf(0o10066, true), 0o077)
t.equal(mf(0o10664, false, true), 0o644)
t.equal(mf(0o10066, false, true), 0o644)
t.equal(mf(0o10666, true, true), 0o755)
t.equal(mf(0o10604, true, true), 0o705)
t.equal(mf(0o10600, true, true), 0o700)
t.equal(mf(0o10066, true, true), 0o755)
node-tar-6.1.13/test/normalize-unicode.js 0000664 0000000 0000000 00000000656 14344174136 0020272 0 ustar 00root root 0000000 0000000 const t = require('tap')
const normalize = require('../lib/normalize-unicode.js')
// café
const cafe1 = Buffer.from([0x63, 0x61, 0x66, 0xc3, 0xa9]).toString()
// cafe with a `
const cafe2 = Buffer.from([0x63, 0x61, 0x66, 0x65, 0xcc, 0x81]).toString()
t.equal(normalize(cafe1), normalize(cafe2), 'matching unicodes')
t.equal(normalize(cafe1), normalize(cafe2), 'cached')
t.equal(normalize('foo'), 'foo', 'non-unicode string')
node-tar-6.1.13/test/normalize-windows-path.js 0000664 0000000 0000000 00000001573 14344174136 0021267 0 ustar 00root root 0000000 0000000 const t = require('tap')
const realPlatform = process.platform
const fakePlatform = realPlatform === 'win32' ? 'posix' : 'win32'
t.test('posix', t => {
if (realPlatform === 'win32') {
process.env.TESTING_TAR_FAKE_PLATFORM = fakePlatform
} else {
delete process.env.TESTING_TAR_FAKE_PLATFORM
}
const normPath = t.mock('../lib/normalize-windows-path.js')
t.equal(normPath('/some/path/back\\slashes'), '/some/path/back\\slashes')
t.equal(normPath('c:\\foo\\bar'), 'c:\\foo\\bar')
t.end()
})
t.test('win32', t => {
if (realPlatform !== 'win32') {
process.env.TESTING_TAR_FAKE_PLATFORM = fakePlatform
} else {
delete process.env.TESTING_TAR_FAKE_PLATFORM
}
const normPath = t.mock('../lib/normalize-windows-path.js')
t.equal(normPath('/some/path/back\\slashes'), '/some/path/back/slashes')
t.equal(normPath('c:\\foo\\bar'), 'c:/foo/bar')
t.end()
})
node-tar-6.1.13/test/pack.js 0000664 0000000 0000000 00000077246 14344174136 0015575 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const Pack = require('../lib/pack.js')
const PackSync = Pack.Sync
const fs = require('fs')
const path = require('path')
const fixtures = path.resolve(__dirname, 'fixtures')
const files = path.resolve(fixtures, 'files')
const tars = path.resolve(fixtures, 'tars')
const chmodr = require('chmodr')
const Header = require('../lib/header.js')
const zlib = require('zlib')
const miniz = require('minizlib')
const mutateFS = require('mutate-fs')
const MiniPass = require('minipass')
process.env.USER = 'isaacs'
const EE = require('events').EventEmitter
const rimraf = require('rimraf')
const mkdirp = require('mkdirp')
const ReadEntry = require('../lib/read-entry.js')
const isWindows = process.platform === 'win32'
const normPath = require('../lib/normalize-windows-path.js')
const ctime = new Date('2017-05-10T01:03:12.000Z')
const atime = new Date('2017-04-17T00:00:00.000Z')
const mtime = new Date('2016-04-01T19:00:00.000Z')
t.teardown(mutateFS.statMutate((er, st) => {
if (st) {
st.ctime = ctime
st.atime = atime
st.mtime = mtime
}
}))
t.test('set up', t => {
const one = fs.statSync(files + '/hardlink-1')
const two = fs.statSync(files + '/hardlink-2')
if (one.dev !== two.dev || one.ino !== two.ino) {
try {
fs.unlinkSync(files + '/hardlink-2')
} catch (e) {}
fs.linkSync(files + '/hardlink-1', files + '/hardlink-2')
}
chmodr.sync(files, 0o644)
t.end()
})
t.test('pack a file', t => {
const out = []
new Pack({ cwd: files })
.end('one-byte.txt')
.on('data', c => out.push(c))
.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(data.slice(512).toString(), /^a\0{511}\0{1024}$/)
const h = new Header(data)
const expect = {
cksumValid: true,
needPax: false,
path: 'one-byte.txt',
mode: isWindows ? 0o666 : 0o644,
size: 1,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
type: 'File',
}
t.match(h, expect) || console.log(h, expect)
const ps = new PackSync({ cwd: files })
const sout = []
ps.on('data', chunk => sout.push(chunk))
ps.add('one-byte.txt').end()
const sync = Buffer.concat(sout)
if (sync.length === 0) {
throw new Error('no data!')
}
t.equal(sync.slice(512).toString(), data.slice(512).toString())
const hs = new Header(sync)
t.match(hs, expect)
t.end()
})
})
t.test('pack a file with a prefix', t => {
const out = []
new Pack({ cwd: files, prefix: 'package/' })
.end('.dotfile')
.on('data', c => out.push(c))
.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(data.slice(512).toString(), /^.\n\0{510}\0{1024}$/)
const h = new Header(data)
const expect = {
cksumValid: true,
needPax: false,
path: 'package/.dotfile',
mode: isWindows ? 0o666 : 0o644,
size: 2,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
type: 'File',
}
t.match(h, expect)
const sync = new PackSync({ cwd: files, prefix: 'package' })
.add('.dotfile').end().read()
t.equal(sync.slice(512).toString(), data.slice(512).toString())
const hs = new Header(sync)
t.match(hs, expect)
t.end()
})
})
t.test('portable pack a dir', t => {
const out = []
new Pack({ cwd: files, portable: true, gzip: true })
.add('dir')
.on('data', c => out.push(c))
.end()
.on('end', _ => {
const zipped = Buffer.concat(out)
t.equal(zipped[9], 255, 'gzip OS flag set to "unknown"')
const data = new miniz.Gunzip().end(zipped).read()
// dir/, dir/x, and the nulls
// neither the dir or the file have any body bits
const h = new Header(data)
const expect = {
type: 'Directory',
cksumValid: true,
needPax: false,
path: 'dir/',
mode: 0o755,
size: 0,
mtime: null,
cksum: Number,
linkpath: '',
uname: '',
gname: '',
devmaj: 0,
devmin: 0,
atime: null,
ctime: null,
nullBlock: false,
}
t.match(h, expect)
t.equal(data.length, 2048)
t.match(data.slice(1024).toString(), /^\0{1024}$/)
const syncgz = new PackSync({ cwd: files, portable: true, gzip: true })
.add('dir').end().read()
t.equal(syncgz[9], 255, 'gzip OS flag set to "unknown"')
const sync = new miniz.Gunzip().end(zipped).read()
t.equal(sync.slice(512).toString(), data.slice(512).toString())
const hs = new Header(sync)
t.match(hs, expect)
const expect2 = {
type: 'File',
cksumValid: true,
needPax: false,
path: 'dir/x',
mode: 0o644,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: '',
gname: '',
devmaj: 0,
devmin: 0,
atime: null,
ctime: null,
nullBlock: false,
}
t.match(new Header(data.slice(512)), expect2)
t.match(new Header(sync.slice(512)), expect2)
t.end()
})
})
t.test('use process cwd if cwd not specified', t => {
const cwd = process.cwd()
t.teardown(_ => process.chdir(cwd))
process.chdir(files)
const out = []
new Pack()
.add('dir')
.on('data', c => out.push(c))
.end()
.on('end', _ => {
const data = Buffer.concat(out)
// dir/, dir/x, and the nulls
// neither the dir or the file have any body bits
const h = new Header(data)
const expect = {
type: 'Directory',
cksumValid: true,
needPax: false,
path: 'dir/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
}
t.match(h, expect)
t.equal(data.length, 2048)
t.match(data.slice(1024).toString(), /^\0{1024}$/)
const sync = new PackSync({ cwd: files })
.add('dir').end().read()
t.equal(sync.slice(512).toString(), data.slice(512).toString())
const hs = new Header(sync)
t.match(hs, expect)
const expect2 = {
type: 'File',
cksumValid: true,
needPax: false,
path: 'dir/x',
mode: isWindows ? 0o666 : 0o644,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
}
t.match(new Header(data.slice(512)), expect2)
t.match(new Header(sync.slice(512)), expect2)
t.end()
})
})
t.test('filter', t => {
const out = []
const filter = (path, stat) => stat.isDirectory()
// only include directories, so dir/x should not appear
new Pack({ cwd: files, filter: filter })
.add('dir')
.on('data', c => out.push(c))
.end()
.on('end', _ => {
const data = Buffer.concat(out)
// dir/, dir/x, and the nulls
// neither the dir or the file have any body bits
const h = new Header(data)
const expect = {
type: 'Directory',
cksumValid: true,
needPax: false,
path: 'dir/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
}
t.match(h, expect)
t.equal(data.length, 1536)
t.match(data.slice(512).toString(), /^\0{1024}$/)
const sync = new PackSync({ cwd: files, filter: filter })
.add('dir').end().read()
t.equal(sync.slice(512).toString(), data.slice(512).toString())
const hs = new Header(sync)
t.match(hs, expect)
t.end()
})
})
t.test('add the same dir twice (exercise cache code)', t => {
const out = []
const filter = (path, stat) => stat.isDirectory()
// only include directories, so dir/x should not appear
const pack = new Pack({ cwd: files, filter: filter })
.add('dir')
.add('dir')
.on('data', c => out.push(c))
.end()
.on('end', _ => {
const data = Buffer.concat(out)
// dir/, dir/x, and the nulls
// neither the dir or the file have any body bits
const h = new Header(data)
const expect = {
type: 'Directory',
cksumValid: true,
needPax: false,
path: 'dir/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
}
t.match(h, expect)
const h2 = new Header(data.slice(512))
t.match(h2, expect)
t.equal(data.length, 2048)
t.match(data.slice(1024).toString(), /^\0{1024}$/)
const sync = new PackSync({
cwd: files,
filter: filter,
linkCache: pack.linkCache,
readdirCache: pack.readdirCache,
statCache: pack.statCache,
})
.add('dir').add('dir').end().read()
t.equal(sync.slice(1024).toString(), data.slice(1024).toString())
const hs = new Header(sync)
t.match(hs, expect)
const hs2 = new Header(sync.slice(512))
t.match(hs2, expect)
t.end()
})
})
t.test('if gzip is truthy, make it an object', t => {
const opt = { gzip: true }
new Pack(opt)
t.type(opt.gzip, 'object')
t.end()
})
t.test('gzip, also a very deep path', t => {
const out = []
new Pack({
cwd: files,
gzip: { flush: 1 },
})
.add('dir')
.add('long-path')
.on('data', c => out.push(c))
.end()
.on('end', _ => {
const zipped = Buffer.concat(out)
const data = zlib.unzipSync(zipped)
const entries = []
for (var i = 0; i < data.length; i += 512) {
const slice = data.slice(i, i + 512)
const h = new Header(slice)
if (h.nullBlock) {
entries.push('null block')
} else if (h.cksumValid) {
entries.push([h.type, h.path])
} else if (entries[entries.length - 1][0] === 'File') {
entries[entries.length - 1].push(slice.toString().replace(/\0.*$/, ''))
}
}
const expect = [
['Directory', 'dir/'],
['Directory', 'long-path/'],
['File', 'dir/x'],
['Directory', 'long-path/r/'],
['Directory', 'long-path/r/e/'],
['Directory', 'long-path/r/e/a/'],
['Directory', 'long-path/r/e/a/l/'],
['Directory', 'long-path/r/e/a/l/l/'],
['Directory', 'long-path/r/e/a/l/l/y/'],
['Directory', 'long-path/r/e/a/l/l/y/-/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt', 'short\n'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'],
['ExtendedHeader', 'PaxHeader/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', '2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'],
['ExtendedHeader', 'PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccc'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc', 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'],
['ExtendedHeader', 'PaxHeader/Ω.txt'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt', 'Ω'],
'null block',
'null block',
]
let ok = true
entries.forEach((entry, i) => {
ok = ok &&
t.equal(entry[0], expect[i][0]) &&
t.equal(entry[1], expect[i][1]) &&
(!entry[2] || t.equal(entry[2], expect[i][2]))
})
// t.match(entries, expect)
t.end()
})
})
t.test('very deep gzip path, sync', t => {
const pack = new PackSync({
cwd: files,
gzip: true,
}).add('dir')
.add('long-path')
.end()
// these do nothing!
pack.pause()
pack.resume()
const zipped = pack.read()
t.type(zipped, Buffer)
const data = zlib.unzipSync(zipped)
const entries = []
for (var i = 0; i < data.length; i += 512) {
const slice = data.slice(i, i + 512)
const h = new Header(slice)
if (h.nullBlock) {
entries.push('null block')
} else if (h.cksumValid) {
entries.push([h.type, h.path])
} else if (entries[entries.length - 1][0] === 'File') {
entries[entries.length - 1].push(slice.toString().replace(/\0.*$/, ''))
}
}
const expect = [
['Directory', 'dir/'],
['File', 'dir/x'],
['Directory', 'long-path/'],
['Directory', 'long-path/r/'],
['Directory', 'long-path/r/e/'],
['Directory', 'long-path/r/e/a/'],
['Directory', 'long-path/r/e/a/l/'],
['Directory', 'long-path/r/e/a/l/l/'],
['Directory', 'long-path/r/e/a/l/l/y/'],
['Directory', 'long-path/r/e/a/l/l/y/-/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/'],
['Directory', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt', 'short\n'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'],
['ExtendedHeader', 'PaxHeader/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', '2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'],
['ExtendedHeader', 'PaxHeader/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccc'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxccccccccccccccccccccccccccccccccccccccccccccccccc', 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'],
['ExtendedHeader', 'PaxHeader/Ω.txt'],
['File', 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt', 'Ω'],
'null block',
'null block',
]
let ok = true
entries.forEach((entry, i) => {
ok = ok &&
t.equal(entry[0], expect[i][0]) &&
t.equal(entry[1], expect[i][1]) &&
(!entry[2] || t.equal(entry[2], expect[i][2]))
})
// t.match(entries, expect)
t.end()
})
t.test('write after end', t => {
const p = new Pack()
p.end()
t.throws(_ => p.add('nope'), new Error('write after end'))
t.end()
})
t.test('emit error when stat fail', t => {
t.teardown(mutateFS.statFail(new Error('xyz')))
t.throws(_ => new PackSync({ cwd: files }).add('one-byte.txt'),
new Error('xyz'))
new Pack({ cwd: files }).add('one-byte.txt').on('error', e => {
t.match(e, { message: 'xyz' })
t.end()
})
})
t.test('readdir fail', t => {
t.teardown(mutateFS.fail('readdir', new Error('xyz')))
t.throws(_ => new PackSync({ cwd: files }).add('dir'), new Error('xyz'))
new Pack({ cwd: files }).add('dir').on('error', e => {
t.match(e, { message: 'xyz' })
t.end()
})
})
t.test('pipe into a slow reader', t => {
const out = []
const mp = new MiniPass()
const mp2 = new MiniPass()
const p = new Pack({ cwd: files }).add('long-path').end()
p.pause()
p.pipe(mp).pipe(mp2)
setTimeout(_ => {
mp2.on('data', c => out.push(c))
setTimeout(_ => p.resume(), 100)
}, 100)
mp.on('end', _ => {
const data = Buffer.concat(out)
const h = new Header(data)
const expect = {
type: 'Directory',
cksumValid: true,
needPax: false,
path: 'long-path/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
}
t.match(h, expect)
t.equal(data.length, 21504)
t.match(data.slice(data.length - 1024).toString(), /^\0{1024}$/)
t.end()
})
})
t.test('pipe into a slow gzip reader', t => {
const out = []
const mp2 = new miniz.Unzip()
const p = new Pack({ cwd: files, gzip: true }).add('long-path').end()
p.pause()
class SlowStream extends EE {
write (chunk) {
mp2.write(chunk)
setTimeout(_ => {
this.emit('drain')
p.resume()
})
return false
}
end (chunk) {
return mp2.end(chunk)
}
}
const ss = new SlowStream()
setTimeout(_ => {
p.pipe(ss)
p.resume()
})
mp2.on('data', c => out.push(c))
mp2.on('end', _ => {
t.pass('mp2 end')
const data = Buffer.concat(out)
// dir/, dir/x, and the nulls
// neither the dir or the file have any body bits
const h = new Header(data)
const expect = {
type: 'Directory',
cksumValid: true,
needPax: false,
path: 'long-path/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
mtime: mtime,
cksum: Number,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
atime: atime,
ctime: ctime,
nullBlock: false,
}
t.match(h, expect)
t.equal(data.length, 21504)
t.match(data.slice(data.length - 1024).toString(), /^\0{1024}$/)
t.end()
})
})
t.test('ignores mid-queue', t => {
// we let the first one through, and then ignore all the others
// so that we trigger the case where an ignored entry is not the
// head of the queue.
let didFirst = false
const p = new Pack({
cwd: tars,
filter: (p, st) => {
if (p === './') {
return true
}
if (!didFirst) {
return didFirst = true
}
return false
},
})
const out = []
const files = fs.readdirSync(tars)
p.on('data', c => out.push(c))
p.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.slice(0, 100).toString().replace(/\0.*$/, ''), './')
const file = data.slice(512, 612).toString().replace(/\0.*$/, '')
t.not(files.indexOf(file), -1)
t.end()
})
p.add('')
p.end()
})
t.test('warnings', t => {
const f = path.resolve(files, '512-bytes.txt')
t.test('preservePaths=false strict=false', t => {
const warnings = []
const p = new Pack({
cwd: files,
onwarn: (c, m, p) => warnings.push([c, m, p]),
}).end(f).on('data', c => out.push(c))
const out = []
p.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(warnings, [[
'TAR_ENTRY_INFO',
/stripping .* from absolute path/,
{ path: normPath(f) },
]])
t.match(new Header(data), {
path: normPath(f).replace(/^(\/|[a-z]:\/)/i, ''),
})
t.end()
})
})
t.test('preservePaths=true', t => {
t.plan(2)
// with preservePaths, strictness doens't matter
;[true, false].forEach(strict => {
t.test('strict=' + strict, t => {
const warnings = []
const out = []
const p = new Pack({
cwd: files,
strict: strict,
preservePaths: true,
onwarn: (c, m, p) => warnings.push([c, m, p]),
}).end(f).on('data', c => out.push(c))
p.on('end', _ => {
const data = Buffer.concat(out)
t.equal(warnings.length, 0)
t.match(new Header(data), {
path: normPath(f),
})
t.end()
})
})
})
})
t.test('preservePaths=false strict=true', t => {
new Pack({
strict: true,
cwd: files,
}).end(f).on('error', e => {
t.match(e, {
message: /stripping .* from absolute path/,
path: normPath(f),
})
t.end()
})
})
t.end()
})
t.test('no dir recurse', t => {
const dir = path.resolve(fixtures, 'pack-no-dir-recurse')
t.teardown(_ => rimraf.sync(dir))
t.beforeEach(() => {
rimraf.sync(dir)
mkdirp.sync(dir + '/x')
fs.writeFileSync(dir + '/x/y', 'y')
})
const check = (t, data) => {
t.equal(data.length, 512 + 1024)
t.equal(data.slice(512).toString(), new Array(1025).join('\0'))
t.match(new Header(data), {
type: 'Directory',
path: 'x/',
size: 0,
})
t.end()
}
t.test('async', t => {
const p = new Pack({
cwd: dir,
noDirRecurse: true,
})
const out = []
p.end('x')
.on('data', c => out.push(c))
.on('end', _ => check(t, Buffer.concat(out)))
})
t.test('sync', t => {
const p = new Pack.Sync({
cwd: dir,
noDirRecurse: true,
})
p.end('x')
check(t, p.read())
})
t.end()
})
t.test('follow', { skip: isWindows && 'file symlinks not available' }, t => {
const check = (out, t) => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(new Header(data, 0), {
type: 'File',
cksumValid: true,
needPax: false,
path: 'symlink',
mode: isWindows ? 0o666 : 0o644,
size: 26,
})
t.match(data.slice(512).toString(), /this link is like diamond\n\0+$/)
t.end()
}
t.test('async', t => {
const out = []
const p = new Pack({ cwd: files, follow: true })
p.on('data', c => out.push(c))
p.on('end', _ => check(out, t))
p.end('symlink')
})
t.test('sync', t => {
const out = []
const p = new Pack.Sync({ cwd: files, follow: true })
p.on('data', c => out.push(c))
p.end('symlink')
check(out, t)
})
t.end()
})
t.test('pack ReadEntries', t => {
t.test('basic', t => {
const readEntry = new ReadEntry(new Header({
path: 'x',
type: 'File',
size: 1,
}))
const p = new Pack()
p.end(readEntry)
const out = []
p.on('data', c => out.push(c))
p.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(data.slice(1024).toString(), /^\0+$/)
t.equal(data.slice(0, 100).toString().replace(/\0.*$/, ''), 'x')
t.equal(data.slice(512, 514).toString(), 'x\0')
t.end()
})
const buf = Buffer.alloc(512)
buf.write('x')
readEntry.end(buf)
})
t.test('prefix', t => {
const readEntry = new ReadEntry(new Header({
path: 'x',
type: 'File',
size: 1,
}))
const p = new Pack({ prefix: 'y' })
p.end(readEntry)
const out = []
p.on('data', c => out.push(c))
p.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(data.slice(1024).toString(), /^\0+$/)
t.equal(data.slice(0, 100).toString().replace(/\0.*$/, ''), 'y/x')
t.equal(data.slice(512, 514).toString(), 'x\0')
t.end()
})
const buf = Buffer.alloc(512)
buf.write('x')
readEntry.end(buf)
})
t.test('filter out', t => {
const re1 = new ReadEntry(new Header({
path: 'a',
type: 'File',
size: 1,
}))
const re2 = new ReadEntry(new Header({
path: 'x',
type: 'File',
size: 1,
}))
const re3 = new ReadEntry(new Header({
path: 'y',
type: 'File',
size: 1,
}))
const p = new Pack({ filter: p => p === 'x' })
p.add(re1)
p.add(re2)
p.end(re3)
const out = []
p.on('data', c => out.push(c))
p.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 2048)
t.match(data.slice(1024).toString(), /^\0+$/)
t.equal(data.slice(0, 100).toString().replace(/\0.*$/, ''), 'x')
t.equal(data.slice(512, 514).toString(), 'x\0')
t.end()
})
{
const buf = Buffer.alloc(512)
buf.write('x')
re1.end(buf)
}
{
const buf = Buffer.alloc(512)
buf.write('x')
re2.end(buf)
}
{
const buf = Buffer.alloc(512)
buf.write('x')
re3.end(buf)
}
})
t.end()
})
t.test('filter out everything', t => {
const filter = _ => false
const check = (out, t) => {
const data = Buffer.concat(out)
t.equal(data.length, 1024)
t.match(data.toString(), /^\0+$/)
t.end()
}
t.test('sync', t => {
const out = []
const p = new Pack.Sync({ cwd: files, filter: filter })
p.on('data', c => out.push(c))
p.end('./')
check(out, t)
})
t.test('async', t => {
const out = []
const p = new Pack.Sync({ cwd: files, filter: filter })
p.on('data', c => out.push(c))
p.on('end', _ => check(out, t))
p.end('./')
})
t.end()
})
t.test('fs.open fails', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('open', poop))
t.test('async', t => {
t.plan(1)
new Pack({ cwd: files })
.on('error', er => t.equal(er, poop))
.end('one-byte.txt')
})
t.test('sync', t => {
t.plan(1)
t.throws(_ =>
new Pack.Sync({ cwd: files }).end('one-byte.txt'), poop)
})
t.end()
})
const write = opts => new Promise((resolve, reject) => {
const p = new Pack()
let totalSize = 0
p.on('data', d => totalSize += d.length)
p.once('error', reject)
p.once('end', () => resolve(totalSize))
const file1 = new ReadEntry(new Header({
path: 'file1.txt',
size: 5,
}))
if (opts.before) {
file1.end('file1')
p.add(file1)
} else {
p.add(file1)
file1.end('file1')
}
p.end()
})
t.test('padding works regardless of arite/add order', t =>
Promise.all([
write({ before: true }),
write({ before: false }),
]).then(res =>
t.equal(res[0], res[1], 'length is the same regardless of write/add order')))
t.test('prefix and subdirs', t => {
const dir = path.resolve(fixtures, 'pack-prefix-subdirs')
t.teardown(_ => rimraf.sync(dir))
mkdirp.sync(dir + '/in/a/b/c')
fs.writeFileSync(dir + '/in/a/b/c/d', 'ddd')
fs.writeFileSync(dir + '/in/a/b/d', 'ddd')
fs.writeFileSync(dir + '/in/a/d', 'ddd')
fs.writeFileSync(dir + '/in/d', 'ddd')
const expect = [
'out/x/\0',
'out/x/a/\0',
'out/x/d\0',
'ddd\0',
'out/x/a/b/\0',
'out/x/a/d\0',
'ddd\0',
'out/x/a/b/c/\0',
'out/x/a/b/d\0',
'ddd\0',
'out/x/a/b/c/d\0',
'ddd\0',
'\0',
'\0',
]
const check = (out, t) => {
const data = Buffer.concat(out)
expect.forEach((e, i) =>
t.equal(e, data.slice(i * 512, i * 512 + e.length).toString()))
t.end()
}
const runTest = (t, path, Class) => {
const p = new Class({
cwd: dir + '/in',
prefix: 'out/x',
})
const out = []
p.on('data', d => out.push(d))
p.on('end', _ => check(out, t))
p.end(path)
}
t.test('async', t => {
t.test('.', t => runTest(t, '.', Pack))
return t.test('./', t => runTest(t, './', Pack))
})
return t.test('sync', t => {
t.test('.', t => runTest(t, '.', Pack.Sync))
return t.test('./', t => runTest(t, './', Pack.Sync))
})
})
// https://github.com/npm/node-tar/issues/284
t.test('prefix and hard links', t => {
const dir = path.resolve(fixtures, 'pack-prefix-hardlinks')
t.teardown(_ => rimraf.sync(dir))
mkdirp.sync(dir + '/in/z/b/c')
fs.writeFileSync(dir + '/in/target', 'ddd')
fs.linkSync(dir + '/in/target', dir + '/in/z/b/c/d')
fs.linkSync(dir + '/in/target', dir + '/in/z/b/d')
fs.linkSync(dir + '/in/target', dir + '/in/z/d')
fs.linkSync(dir + '/in/target', dir + '/in/y')
const expect = [
'out/x/\0',
{
type: 'File',
size: 3,
path: 'out/x/target',
linkpath: '',
},
'ddd\0\0\0\0\0\0\0\0\0\0\0',
{
path: 'out/x/y',
type: 'Link',
linkpath: 'out/x/target',
},
'out/x/z/\0',
'out/x/z/b/\0',
{
path: 'out/x/z/d',
type: 'Link',
linkpath: 'out/x/target',
},
'out/x/z/b/c/\0',
{
path: 'out/x/z/b/d',
type: 'Link',
linkpath: 'out/x/target',
},
{
path: 'out/x/z/b/c/d',
type: 'Link',
linkpath: 'out/x/target',
},
'\0',
'\0',
]
const check = (out, t) => {
const data = Buffer.concat(out)
expect.forEach((e, i) => {
if (typeof e === 'string') {
t.equal(data.slice(i * 512, i * 512 + e.length).toString(), e)
} else {
t.match(new Header(data.slice(i * 512, (i + 1) * 512)), e)
}
})
t.end()
}
const runTest = (t, path, Class) => {
const p = new Class({
cwd: dir + '/in',
prefix: 'out/x',
noDirRecurse: true,
})
const out = []
p.on('data', d => out.push(d))
p.on('end', () => check(out, t))
p.write(path)
if (path === '.') {
path = './'
}
p.write(`${path}target`)
p.write(`${path}y`)
p.write(`${path}z`)
p.write(`${path}z/b`)
p.write(`${path}z/d`)
p.write(`${path}z/b/c`)
p.write(`${path}z/b/d`)
p.write(`${path}z/b/c/d`)
p.end()
}
t.test('async', t => {
t.test('.', t => runTest(t, '.', Pack))
return t.test('./', t => runTest(t, './', Pack))
})
t.test('sync', t => {
t.test('.', t => runTest(t, '.', Pack.Sync))
return t.test('./', t => runTest(t, './', Pack.Sync))
})
t.end()
})
node-tar-6.1.13/test/parse.js 0000664 0000000 0000000 00000037163 14344174136 0015763 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const Parse = require('../lib/parse.js')
const makeTar = require('./make-tar.js')
const fs = require('fs')
const path = require('path')
const tardir = path.resolve(__dirname, 'fixtures/tars')
const zlib = require('zlib')
const MiniPass = require('minipass')
const Header = require('../lib/header.js')
const EE = require('events').EventEmitter
t.test('fixture tests', t => {
class ByteStream extends MiniPass {
write (chunk) {
for (let i = 0; i < chunk.length - 1; i++) {
super.write(chunk.slice(i, i + 1))
}
return super.write(chunk.slice(chunk.length - 1, chunk.length))
}
}
const trackEvents = (t, expect, p, slow) => {
let ok = true
let cursor = 0
p.on('entry', entry => {
ok = ok && t.match(['entry', entry], expect[cursor++], entry.path)
if (slow) {
setTimeout(_ => entry.resume())
} else {
entry.resume()
}
})
p.on('ignoredEntry', entry => {
ok = ok && t.match(['ignoredEntry', entry], expect[cursor++],
'ignored: ' + entry.path)
})
p.on('warn', (c, message, data) => {
ok = ok && t.match(['warn', c, message], expect[cursor++], 'warn')
})
p.on('nullBlock', _ => {
ok = ok && t.match(['nullBlock'], expect[cursor++], 'null')
})
p.on('error', er => {
ok = ok && t.match(['error', er], expect[cursor++], 'error')
})
p.on('meta', meta => {
ok = ok && t.match(['meta', meta], expect[cursor++], 'meta')
})
p.on('eof', _ => {
ok = ok && t.match(['eof'], expect[cursor++], 'eof')
})
p.on('end', _ => {
ok = ok && t.match(['end'], expect[cursor++], 'end')
t.end()
})
}
t.jobs = 4
const path = require('path')
const parsedir = path.resolve(__dirname, 'fixtures/parse')
const files = fs.readdirSync(tardir)
const maxMetaOpt = [250, null]
const filterOpt = [true, false]
const strictOpt = [true, false]
const runTest = (file, maxMeta, filter, strict) => {
const tardata = fs.readFileSync(file)
const base = path.basename(file, '.tar')
t.test('file=' + base + '.tar' +
' maxmeta=' + maxMeta +
' filter=' + filter +
' strict=' + strict, t => {
const o =
(maxMeta ? '-meta-' + maxMeta : '') +
(filter ? '-filter' : '') +
(strict ? '-strict' : '')
const tail = (o ? '-' + o : '') + '.json'
const eventsFile = parsedir + '/' + base + tail
const expect = require(eventsFile)
t.test('one byte at a time', t => {
const bs = new ByteStream()
const opt = (maxMeta || filter || strict) ? {
maxMetaEntrySize: maxMeta,
filter: filter ? (path, entry) => entry.size % 2 !== 0 : null,
strict: strict,
} : null
const bp = new Parse(opt)
trackEvents(t, expect, bp)
bs.pipe(bp)
bs.end(tardata)
})
t.test('all at once', t => {
const p = new Parse({
maxMetaEntrySize: maxMeta,
filter: filter ? (path, entry) => entry.size % 2 !== 0 : null,
strict: strict,
})
trackEvents(t, expect, p)
p.end(tardata)
})
t.test('gzipped all at once', t => {
const p = new Parse({
maxMetaEntrySize: maxMeta,
filter: filter ? (path, entry) => entry.size % 2 !== 0 : null,
strict: strict,
})
trackEvents(t, expect, p)
p.end(zlib.gzipSync(tardata))
})
t.test('gzipped byte at a time', t => {
const bs = new ByteStream()
const bp = new Parse({
maxMetaEntrySize: maxMeta,
filter: filter ? (path, entry) => entry.size % 2 !== 0 : null,
strict: strict,
})
trackEvents(t, expect, bp)
bs.pipe(bp)
bs.end(zlib.gzipSync(tardata))
})
t.test('async chunks', t => {
const p = new Parse({
maxMetaEntrySize: maxMeta,
filter: filter ? (path, entry) => entry.size % 2 !== 0 : null,
strict: strict,
})
trackEvents(t, expect, p, true)
p.write(tardata.slice(0, Math.floor(tardata.length / 2)))
process.nextTick(_ => p.end(tardata.slice(Math.floor(tardata.length / 2))))
})
t.end()
})
}
files
.map(f => path.resolve(tardir, f)).forEach(file =>
maxMetaOpt.forEach(maxMeta =>
strictOpt.forEach(strict =>
filterOpt.forEach(filter =>
runTest(file, maxMeta, filter, strict)))))
t.end()
})
t.test('strict warn with an error emits that error', t => {
t.plan(1)
const p = new Parse({
strict: true,
})
p.on('error', emitted => t.equal(emitted, er))
const er = new Error('yolo')
p.warn('TAR_TEST', er)
})
t.test('onwarn gets added to the warn event', t => {
t.plan(1)
const p = new Parse({
onwarn (code, message) {
t.equal(message, 'this is fine')
},
})
p.warn('TAR_TEST', 'this is fine')
})
t.test('onentry gets added to entry event', t => {
t.plan(1)
const p = new Parse({
onentry: entry => t.equal(entry, 'yes hello this is dog'),
})
p.emit('entry', 'yes hello this is dog')
})
t.test('drain event timings', t => {
let sawOndone = false
const ondone = function () {
sawOndone = true
this.emit('prefinish')
this.emit('finish')
this.emit('end')
this.emit('close')
}
// write 1 header and body, write 2 header, verify false return
// wait for drain event before continuing.
// write 2 body, 3 header and body, 4 header, verify false return
// wait for drain event
// write 4 body and null blocks
const data = [
[
{
path: 'one',
size: 513,
type: 'File',
},
new Array(513).join('1'),
'1',
{
path: 'two',
size: 513,
type: 'File',
},
new Array(513).join('2'),
'2',
{
path: 'three',
size: 1024,
type: 'File',
},
],
[
new Array(513).join('3'),
new Array(513).join('3'),
{
path: 'four',
size: 513,
type: 'File',
},
],
[
new Array(513).join('4'),
'4',
{
path: 'five',
size: 1024,
type: 'File',
},
new Array(513).join('5'),
new Array(513).join('5'),
{
path: 'six',
size: 1024,
type: 'File',
},
new Array(513).join('6'),
new Array(513).join('6'),
{
path: 'seven',
size: 1024,
type: 'File',
},
new Array(513).join('7'),
new Array(513).join('7'),
{
path: 'eight',
size: 1024,
type: 'File',
},
new Array(513).join('8'),
new Array(513).join('8'),
{
path: 'four',
size: 513,
type: 'File',
},
new Array(513).join('4'),
'4',
{
path: 'five',
size: 1024,
type: 'File',
},
new Array(513).join('5'),
new Array(513).join('5'),
{
path: 'six',
size: 1024,
type: 'File',
},
new Array(513).join('6'),
new Array(513).join('6'),
{
path: 'seven',
size: 1024,
type: 'File',
},
new Array(513).join('7'),
new Array(513).join('7'),
{
path: 'eight',
size: 1024,
type: 'File',
},
new Array(513).join('8'),
],
[
new Array(513).join('8'),
{
path: 'nine',
size: 1537,
type: 'File',
},
new Array(513).join('9'),
],
[new Array(513).join('9')],
[new Array(513).join('9')],
['9'],
].map(chunks => makeTar(chunks))
const expect = [
'one', 'two', 'three',
'four', 'five', 'six', 'seven', 'eight',
'four', 'five', 'six', 'seven', 'eight',
'nine',
'one', 'two', 'three',
'four', 'five', 'six', 'seven', 'eight',
'four', 'five', 'six', 'seven', 'eight',
'nine',
]
class SlowStream extends EE {
write () {
setTimeout(_ => this.emit('drain'))
return false
}
end () {
return this.write()
}
}
let currentEntry
const autoPipe = true
const p = new Parse({
ondone,
onentry: entry => {
t.equal(entry.path, expect.shift())
currentEntry = entry
if (autoPipe) {
setTimeout(_ => entry.pipe(new SlowStream()))
}
},
})
data.forEach(d => {
if (!t.equal(p.write(d), false, 'write should return false')) {
return t.end()
}
})
let interval
const go = _ => {
const d = data.shift()
if (d === undefined) {
return p.end()
}
let paused
if (currentEntry) {
currentEntry.pause()
paused = true
}
const hunklen = Math.floor(d.length / 2)
const hunks = [
d.slice(0, hunklen),
d.slice(hunklen),
]
p.write(hunks[0])
if (currentEntry && !paused) {
console.error('has current entry')
currentEntry.pause()
paused = true
}
if (!t.equal(p.write(hunks[1]), false, 'write should return false: ' + d)) {
return t.end()
}
p.once('drain', go)
if (paused) {
currentEntry.resume()
}
}
p.once('drain', go)
p.on('end', _ => {
clearInterval(interval)
t.ok(sawOndone)
t.end()
})
go()
})
t.test('consume while consuming', t => {
const data = makeTar([
{
path: 'one',
size: 0,
type: 'File',
},
{
path: 'zero',
size: 0,
type: 'File',
},
{
path: 'two',
size: 513,
type: 'File',
},
new Array(513).join('2'),
'2',
{
path: 'three',
size: 1024,
type: 'File',
},
new Array(513).join('3'),
new Array(513).join('3'),
{
path: 'zero',
size: 0,
type: 'File',
},
{
path: 'zero',
size: 0,
type: 'File',
},
{
path: 'four',
size: 1024,
type: 'File',
},
new Array(513).join('4'),
new Array(513).join('4'),
{
path: 'zero',
size: 0,
type: 'File',
},
{
path: 'zero',
size: 0,
type: 'File',
},
])
const runTest = (t, size) => {
const p = new Parse()
const first = data.slice(0, size)
const rest = data.slice(size)
p.once('entry', entry => {
for (let pos = 0; pos < rest.length; pos += size) {
p.write(rest.slice(pos, pos + size))
}
p.end()
})
.on('entry', entry => entry.resume())
.on('end', _ => t.end())
.write(first)
}
// one that aligns, and another that doesn't, so that we
// get some cases where there's leftover chunk and a buffer
t.test('size=1000', t => runTest(t, 1000))
t.test('size=1024', t => runTest(t, 4096))
t.end()
})
t.test('truncated input', t => {
const data = makeTar([
{
path: 'foo/',
type: 'Directory',
},
{
path: 'foo/bar',
type: 'File',
size: 18,
},
])
t.test('truncated at block boundary', t => {
const warnings = []
const p = new Parse({ onwarn: (c, message) => warnings.push(message) })
p.end(data)
t.same(warnings, [
'Truncated input (needed 512 more bytes, only 0 available)',
])
t.end()
})
t.test('truncated mid-block', t => {
const warnings = []
const p = new Parse({ onwarn: (c, message) => warnings.push(message) })
p.write(data)
p.end(Buffer.from('not a full block'))
t.same(warnings, [
'Truncated input (needed 512 more bytes, only 16 available)',
])
t.end()
})
t.end()
})
t.test('truncated gzip input', t => {
const raw = makeTar([
{
path: 'foo/',
type: 'Directory',
},
{
path: 'foo/bar',
type: 'File',
size: 18,
},
new Array(19).join('x'),
'',
'',
])
const tgz = zlib.gzipSync(raw)
const split = Math.floor(tgz.length * 2 / 3)
const trunc = tgz.slice(0, split)
const skipEarlyEnd = process.version.match(/^v4\./)
t.test('early end', {
skip: skipEarlyEnd ? 'not a zlib error on v4' : false,
}, t => {
const warnings = []
const p = new Parse()
p.on('error', er => warnings.push(er.message))
let aborted = false
p.on('abort', _ => aborted = true)
p.end(trunc)
t.equal(aborted, true, 'aborted writing')
t.same(warnings, ['zlib: unexpected end of file'])
t.end()
})
t.test('just wrong', t => {
const warnings = []
const p = new Parse()
p.on('error', er => warnings.push(er.message))
let aborted = false
p.on('abort', _ => aborted = true)
p.write(trunc)
p.write(trunc)
p.write(tgz.slice(split))
p.end()
t.equal(aborted, true, 'aborted writing')
t.same(warnings, ['zlib: incorrect data check'])
t.end()
})
t.end()
})
t.test('end while consuming', t => {
// https://github.com/npm/node-tar/issues/157
const data = zlib.gzipSync(makeTar([
{
path: 'package/package.json',
type: 'File',
size: 130,
},
new Array(131).join('x'),
{
path: 'package/node_modules/@c/d/node_modules/e/package.json',
type: 'File',
size: 30,
},
new Array(31).join('e'),
{
path: 'package/node_modules/@c/d/package.json',
type: 'File',
size: 33,
},
new Array(34).join('d'),
{
path: 'package/node_modules/a/package.json',
type: 'File',
size: 59,
},
new Array(60).join('a'),
{
path: 'package/node_modules/b/package.json',
type: 'File',
size: 30,
},
new Array(31).join('b'),
'',
'',
]))
const actual = []
const expect = [
'package/package.json',
'package/node_modules/@c/d/node_modules/e/package.json',
'package/node_modules/@c/d/package.json',
'package/node_modules/a/package.json',
'package/node_modules/b/package.json',
]
const mp = new MiniPass()
const p = new Parse({
onentry: entry => {
actual.push(entry.path)
entry.resume()
},
onwarn: (c, m, data) => t.fail(`${c}: ${m}`, data),
})
p.on('end', () => {
t.same(actual, expect)
t.end()
})
mp.end(data)
mp.pipe(p)
})
t.test('bad archives', t => {
const p = new Parse()
const warnings = []
p.on('warn', (code, msg, data) => {
warnings.push([code, msg, data])
})
p.on('end', () => {
// last one should be 'this archive sucks'
t.match(warnings.pop(), [
'TAR_BAD_ARCHIVE',
'Unrecognized archive format',
{ code: 'TAR_BAD_ARCHIVE', tarCode: 'TAR_BAD_ARCHIVE' },
])
t.end()
})
// javascript test is not a tarball.
p.end(fs.readFileSync(__filename))
})
t.test('header that throws', t => {
const p = new Parse()
p.on('warn', (c, m, d) => {
t.equal(m, 'invalid base256 encoding')
t.match(d, {
code: 'TAR_ENTRY_INVALID',
})
t.end()
})
const h = new Header({
path: 'path',
mode: 0o07777, // gonna make this one invalid
uid: 1234,
gid: 4321,
type: 'File',
size: 1,
})
h.encode()
const buf = h.block
const bad = Buffer.from([0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])
bad.copy(buf, 100)
t.throws(() => new Header(buf), 'the header with that buffer throws')
p.write(buf)
})
t.test('warnings that are not so bad', t => {
const p = new Parse()
const warnings = []
p.on('warn', (code, m, d) => {
warnings.push([code, m, d])
t.fail('should get no warnings')
})
// the parser doesn't actually decide what's "ok" or "supported",
// it just parses. So we have to set it ourselves like unpack does
p.once('entry', entry => entry.invalid = true)
p.on('entry', entry => entry.resume())
const data = makeTar([
{
path: '/a/b/c',
type: 'File',
size: 1,
},
'a',
{
path: 'a/b/c',
type: 'Directory',
},
'',
'',
])
p.on('end', () => {
t.same(warnings, [])
t.end()
})
p.end(data)
})
node-tar-6.1.13/test/path-reservations.js 0000664 0000000 0000000 00000010120 14344174136 0020307 0 ustar 00root root 0000000 0000000 const t = require('tap')
// load up the posix and windows versions of the reserver
if (process.platform === 'win32') {
process.env.TESTING_TAR_FAKE_PLATFORM = 'posix'
}
const { reserve } = t.mock('../lib/path-reservations.js', {
path: require('path').posix,
})()
delete process.env.TESTING_TAR_FAKE_PLATFORM
if (process.platform !== 'win32') {
process.env.TESTING_TAR_FAKE_PLATFORM = 'win32'
}
const { reserve: winReserve } = t.mock('../lib/path-reservations.js', {
path: require('path').win32,
})()
t.test('basic race', t => {
// simulate the race conditions we care about
let didFile = false
const file = done => {
t.equal(didFile, false, 'only call file once')
didFile = true
t.equal(didLink, false, 'do file before link')
setTimeout(done)
}
let didLink = false
const link = done => {
t.equal(didLink, false, 'only call once')
t.equal(didFile, true, 'do file before link')
didLink = true
// make sure this one is super duper cleared lol
// the subsequent calls are no-ops, but verify as much
done()
done()
done()
}
let didDir = false
const dir = done => {
t.equal(didDir, false, 'only do dir once')
t.equal(didLink, true, 'do link before dir')
didDir = true
done()
}
let didDir2 = false
const dir2 = done => {
t.equal(didDir, true, 'did dir before dir2')
t.equal(didDir2, false, 'only do dir2 once')
didDir2 = true
done()
}
let didDir3 = false
const dir3 = done => {
t.equal(didDir2, true, 'did dir2 before dir3')
t.equal(didDir3, false, 'only do dir3 once')
didDir3 = true
done()
t.end()
}
t.ok(reserve(['a/b/c/d'], file), 'file starts right away')
t.notOk(reserve(['a/B/c////D', 'a/b/e'], link), 'link waits')
t.notOk(reserve(['a/b/e/f'], dir), 'dir waits')
t.notOk(reserve(['a/b'], dir2), 'dir2 waits')
t.notOk(reserve(['a/b/x'], dir3), 'dir3 waits')
})
t.test('unicode shenanigans', t => {
const e1 = Buffer.from([0xc3, 0xa9])
const e2 = Buffer.from([0x65, 0xcc, 0x81])
let didCafe1 = false
const cafe1 = done => {
t.equal(didCafe1, false, 'did cafe1 only once')
t.equal(didCafe2, false, 'did cafe1 before cafe2')
didCafe1 = true
setTimeout(done)
}
let didCafe2 = false
const cafe2 = done => {
t.equal(didCafe1, true, 'did cafe1 before cafe2')
t.equal(didCafe2, false, 'did cafe2 only once')
didCafe2 = true
done()
t.end()
}
const cafePath1 = `c/a/f/${e1}`
const cafePath2 = `c/a/f/${e2}`
t.ok(reserve([cafePath1], cafe1))
t.notOk(reserve([cafePath2], cafe2))
})
t.test('absolute paths and trailing slash', t => {
let calledA1 = false
let calledA2 = false
const a1 = done => {
t.equal(calledA1, false, 'called a1 only once')
t.equal(calledA2, false, 'called a1 before 2')
calledA1 = true
setTimeout(done)
}
const a2 = done => {
t.equal(calledA1, true, 'called a1 before 2')
t.equal(calledA2, false, 'called a2 only once')
calledA2 = true
done()
if (calledR2) {
t.end()
}
}
let calledR1 = false
let calledR2 = false
const r1 = done => {
t.equal(calledR1, false, 'called r1 only once')
t.equal(calledR2, false, 'called r1 before 2')
calledR1 = true
setTimeout(done)
}
const r2 = done => {
t.equal(calledR1, true, 'called r1 before 2')
t.equal(calledR2, false, 'called r1 only once')
calledR2 = true
done()
if (calledA2) {
t.end()
}
}
t.ok(reserve(['/p/a/t/h'], a1))
t.notOk(reserve(['/p/a/t/h/'], a2))
t.ok(reserve(['p/a/t/h'], r1))
t.notOk(reserve(['p/a/t/h/'], r2))
})
t.test('on windows, everything collides with everything', t => {
const reserve = winReserve
let called1 = false
let called2 = false
const f1 = done => {
t.equal(called1, false, 'only call 1 once')
t.equal(called2, false, 'call 1 before 2')
called1 = true
setTimeout(done)
}
const f2 = done => {
t.equal(called1, true, 'call 1 before 2')
t.equal(called2, false, 'only call 2 once')
called2 = true
done()
t.end()
}
t.equal(reserve(['some/path'], f1), true)
t.equal(reserve(['other/path'], f2), false)
})
node-tar-6.1.13/test/pax.js 0000664 0000000 0000000 00000020554 14344174136 0015435 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const Pax = require('../lib/pax.js')
t.test('create a pax', t => {
const p = new Pax({
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('1979-07-01T19:10:00.000Z'),
mtime: new Date('1979-07-01T19:10:00.000Z'),
gid: 20,
gname: 'staff',
uid: 24561,
uname: 'isaacs',
path: 'foo.txt',
size: 100,
dev: 123456,
ino: 7890,
nlink: 1,
})
// console.log(p.encode().toString('hex').split('').reduce((s,c)=>{if(s[s.length-1].length<64)s[s.length-1]+=c;else s.push(c);return s},['']))
const buf = Buffer.from(
// pax entry header
'5061784865616465722f666f6f2e747874000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303036343420003035373736312000303030303234200030303030' +
'3030303330342000323136373231373631302000303136373332200078000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030306973616163730000000000000000000000000000000000' +
'0000000000000000007374616666000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000032313637' +
'3231373631302000323136373231373631302000000000000000000000000000' +
// entry body
'313620706174683d666f6f2e7478740a3139206374696d653d32393937303432' +
'30300a3139206174696d653d3239393730343230300a323120534348494c592e' +
'6465763d3132333435360a313920534348494c592e696e6f3d373839300a3138' +
'20534348494c592e6e6c696e6b3d310a39206769643d32300a313520676e616d' +
'653d73746166660a3139206d74696d653d3239393730343230300a3132207369' +
'7a653d3130300a3133207569643d32343536310a313620756e616d653d697361' +
'6163730a00000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex')
const actual = p.encode()
t.equal(actual.toString('hex'), buf.toString('hex'))
t.end()
})
t.test('null pax', t => {
const p = new Pax({})
t.equal(p.encode(), null)
t.end()
})
t.test('tiny pax', t => {
// weird to have a global setting a path. Maybe this should be
// an error?
const p = new Pax({ path: 'ab' }, true)
const actual = p.encode()
// console.log(actual.toString('hex').split('').reduce((s,c)=>{if(s[s.length-1].length<64)s[s.length-1]+=c;else s.push(c);return s},['']))
// return Promise.resolve()
const buf = Buffer.from(
// header
'5061784865616465722f61620000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000030303036343420000000000000000000000000000000000030303030' +
'3030303031332000000000000000000000000000303037303534200067000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0075737461720030300000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000003030303030302000303030303030200000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
// body
// note that a 2-char path is 11, but a 1 char path is 9, because
// adding the second char bumps the n to 10, which adds 1, which
// means it has to be 11.
// a 1-char path COULD be encoded as EITHER "10 path=x\n", or as
// "9 path=x\n", and it'd be true either way.
'313120706174683d61620a000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000',
'hex')
t.equal(actual.toString('hex'), buf.toString('hex'))
t.end()
})
t.test('parse', t => {
t.same(Pax.parse('11 path=ab\n', { uid: 24561 }, true), {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: null,
gname: null,
linkpath: null,
mtime: null,
path: 'ab',
size: null,
uid: 24561,
uname: null,
dev: null,
ino: null,
nlink: null,
global: true,
})
t.same(Pax.parse('11 path=ab\n', null, false), {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: null,
gname: null,
linkpath: null,
mtime: null,
path: 'ab',
size: null,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
global: false,
})
t.same(Pax.parse('9 gid=20\n9 path=x\n', null, false), {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: 20,
gname: null,
linkpath: null,
mtime: null,
path: 'x',
size: null,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
global: false,
})
t.same(Pax.parse('9 gid=20\n9 path=x\n', null, false), {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: 20,
gname: null,
linkpath: null,
mtime: null,
path: 'x',
size: null,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
global: false,
})
t.same(Pax.parse('20 mtime=1491436800\n', null, false), {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: null,
gname: null,
linkpath: null,
mtime: new Date('2017-04-06'),
path: null,
size: null,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
global: false,
})
const breaky =
'93 NODETAR.package.readme=karma-moment\n' +
'=================\n' +
'\n' +
'Karma plugin for Moment framework\n' +
'\n'
const noKey = '10 =pathx\n'
t.same(Pax.parse(breaky + '9 gid=20\n10 path=x\n' + noKey, null, false), {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: 20,
gname: null,
linkpath: null,
mtime: null,
path: 'x',
size: null,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
global: false,
})
t.end()
})
node-tar-6.1.13/test/read-entry.js 0000664 0000000 0000000 00000012017 14344174136 0016712 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const ReadEntry = require('../lib/read-entry.js')
const Header = require('../lib/header.js')
t.test('create read entry', t => {
const h = new Header({
path: 'oof.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
type: 'File',
uname: 'isaacs',
gname: 'staff',
})
h.encode()
const entry = new ReadEntry(h, { x: 'y', path: 'foo.txt' }, { z: 0, a: null, b: undefined })
t.ok(entry.header.cksumValid, 'header checksum should be valid')
t.match(entry, {
extended: { x: 'y', path: 'foo.txt' },
globalExtended: { z: 0, a: null, b: undefined },
header: {
cksumValid: true,
needPax: false,
path: 'oof.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00:00.000Z'),
typeKey: '0',
type: 'File',
linkpath: null,
uname: 'isaacs',
gname: 'staff',
devmaj: 0,
devmin: 0,
atime: new Date('2016-04-01T22:00:00.000Z'),
ctime: new Date('2016-04-01T22:00:00.000Z'),
},
blockRemain: 512,
remain: 100,
type: 'File',
meta: false,
ignore: false,
path: 'foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
uname: 'isaacs',
gname: 'staff',
size: 100,
mtime: new Date('2016-04-01T22:00:00.000Z'),
atime: new Date('2016-04-01T22:00:00.000Z'),
ctime: new Date('2016-04-01T22:00:00.000Z'),
linkpath: null,
x: 'y',
z: 0,
})
let data = ''
let ended = false
entry.on('data', c => data += c)
entry.on('end', _ => ended = true)
const body = Buffer.alloc(512)
body.write(new Array(101).join('z'), 0)
entry.write(body)
entry.end()
t.equal(data, new Array(101).join('z'))
t.ok(ended, 'saw end event')
t.end()
})
t.test('meta entry', t => {
const h = new Header({
path: 'PaxHeader/foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 23,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
type: 'NextFileHasLongLinkpath',
uname: 'isaacs',
gname: 'staff',
})
const body = Buffer.alloc(512)
body.write('not that long, actually')
const expect = 'not that long, actually'
let actual = ''
const entry = new ReadEntry(h)
entry.on('data', c => actual += c)
entry.write(body.slice(0, 1))
entry.write(body.slice(1, 25))
entry.write(body.slice(25))
t.throws(_ => entry.write(Buffer.alloc(1024)))
t.equal(actual, expect)
t.match(entry, { meta: true, type: 'NextFileHasLongLinkpath' })
t.end()
})
t.test('unknown entry type', t => {
const h = new Header({
path: 'PaxHeader/foo.txt',
mode: 0o755,
uid: 24561,
gid: 20,
size: 23,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
uname: 'isaacs',
gname: 'staff',
})
h.encode()
h.block.write('9', 156, 1, 'ascii')
const body = Buffer.alloc(512)
body.write('not that long, actually')
const expect = ''
let actual = ''
const entry = new ReadEntry(new Header(h.block))
entry.on('data', c => actual += c)
entry.write(body.slice(0, 1))
entry.write(body.slice(1, 25))
entry.write(body.slice(25))
t.throws(_ => entry.write(Buffer.alloc(1024)))
t.equal(actual, expect)
t.match(entry, { ignore: true })
t.end()
})
t.test('entry without mode', t => {
const h = new Header({
path: 'foo.txt',
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00Z'),
ctime: new Date('2016-04-01T22:00Z'),
atime: new Date('2016-04-01T22:00Z'),
type: 'File',
uname: 'isaacs',
gname: 'staff',
})
h.encode()
const entry = new ReadEntry(h)
t.ok(entry.header.cksumValid, 'header checksum should be valid')
t.match(entry, {
header: {
cksumValid: true,
needPax: false,
path: 'foo.txt',
mode: null,
uid: 24561,
gid: 20,
size: 100,
mtime: new Date('2016-04-01T22:00:00.000Z'),
typeKey: '0',
type: 'File',
linkpath: null,
uname: 'isaacs',
gname: 'staff',
devmaj: 0,
devmin: 0,
atime: new Date('2016-04-01T22:00:00.000Z'),
ctime: new Date('2016-04-01T22:00:00.000Z'),
},
blockRemain: 512,
remain: 100,
type: 'File',
meta: false,
ignore: false,
path: 'foo.txt',
mode: null,
uid: 24561,
gid: 20,
uname: 'isaacs',
gname: 'staff',
size: 100,
mtime: new Date('2016-04-01T22:00:00.000Z'),
atime: new Date('2016-04-01T22:00:00.000Z'),
ctime: new Date('2016-04-01T22:00:00.000Z'),
linkpath: null,
})
let data = ''
let ended = false
entry.on('data', c => data += c)
entry.on('end', _ => ended = true)
const body = Buffer.alloc(512)
body.write(new Array(101).join('z'), 0)
entry.write(body)
entry.end()
t.equal(data, new Array(101).join('z'))
t.ok(ended, 'saw end event')
t.end()
})
node-tar-6.1.13/test/replace.js 0000664 0000000 0000000 00000022753 14344174136 0016263 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const r = require('../lib/replace.js')
const path = require('path')
const fs = require('fs')
const mutateFS = require('mutate-fs')
const list = require('../lib/list.js')
const { resolve } = require('path')
const fixtures = path.resolve(__dirname, 'fixtures')
const tars = path.resolve(fixtures, 'tars')
const zlib = require('zlib')
const spawn = require('child_process').spawn
const data = fs.readFileSync(tars + '/body-byte-counts.tar')
const dataNoNulls = data.slice(0, data.length - 1024)
const fixtureDef = {
'body-byte-counts.tar': data,
'no-null-eof.tar': dataNoNulls,
'truncated-head.tar': Buffer.concat([dataNoNulls, data.slice(0, 500)]),
'truncated-body.tar': Buffer.concat([dataNoNulls, data.slice(0, 700)]),
'zero.tar': Buffer.from(''),
'empty.tar': Buffer.alloc(512),
'compressed.tgz': zlib.gzipSync(data),
}
t.test('basic file add to archive (good or truncated)', t => {
const check = (file, t) => {
const c = spawn('tar', ['tf', file], { stdio: [0, 'pipe', 2] })
const out = []
c.stdout.on('data', chunk => out.push(chunk))
c.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
const actual = Buffer.concat(out).toString().trim().split(/\r?\n/)
t.same(actual, [
'1024-bytes.txt',
'512-bytes.txt',
'one-byte.txt',
'zero-byte.txt',
path.basename(__filename),
])
t.end()
})
}
const files = [
'body-byte-counts.tar',
'no-null-eof.tar',
'truncated-head.tar',
'truncated-body.tar',
]
const td = files.map(f => [f, fixtureDef[f]]).reduce((s, [k, v]) => {
s[k] = v
return s
}, {})
const fileList = [path.basename(__filename)]
t.test('sync', t => {
t.plan(files.length)
const dir = t.testdir(td)
for (const file of files) {
t.test(file, t => {
r({
sync: true,
file: resolve(dir, file),
cwd: __dirname,
}, fileList)
check(resolve(dir, file), t)
})
}
})
t.test('async cb', t => {
t.plan(files.length)
const dir = t.testdir(td)
for (const file of files) {
t.test(file, t => {
r({
file: resolve(dir, file),
cwd: __dirname,
}, fileList, er => {
if (er) {
throw er
}
check(resolve(dir, file), t)
})
})
}
})
t.test('async', t => {
t.plan(files.length)
const dir = t.testdir(td)
for (const file of files) {
t.test(file, t => {
r({
file: resolve(dir, file),
cwd: __dirname,
}, fileList).then(() => {
check(resolve(dir, file), t)
})
})
}
})
t.end()
})
t.test('add to empty archive', t => {
const check = (file, t) => {
const c = spawn('tar', ['tf', file])
const out = []
c.stdout.on('data', chunk => out.push(chunk))
c.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
const actual = Buffer.concat(out).toString().trim().split('\n')
t.same(actual, [
path.basename(__filename),
])
t.end()
})
}
const files = [
'empty.tar',
'zero.tar',
]
const td = files.map(f => [f, fixtureDef[f]]).reduce((s, [k, v]) => {
s[k] = v
return s
}, {})
files.push('not-existing.tar')
t.test('sync', t => {
const dir = t.testdir(td)
t.plan(files.length)
for (const file of files) {
t.test(file, t => {
r({
sync: true,
file: resolve(dir, file),
cwd: __dirname,
}, [path.basename(__filename)])
check(resolve(dir, file), t)
})
}
})
t.test('async cb', t => {
const dir = t.testdir(td)
t.plan(files.length)
for (const file of files) {
t.test(file, t => {
r({
file: resolve(dir, file),
cwd: __dirname,
}, [path.basename(__filename)], er => {
if (er) {
throw er
}
check(resolve(dir, file), t)
})
})
}
})
t.test('async', async t => {
const dir = t.testdir(td)
t.plan(files.length)
for (const file of files) {
t.test(file, t => {
r({
file: resolve(dir, file),
cwd: __dirname,
}, [path.basename(__filename)]).then(() => {
check(resolve(dir, file), t)
})
})
}
})
t.end()
})
t.test('cannot append to gzipped archives', async t => {
const dir = t.testdir({
'compressed.tgz': fixtureDef['compressed.tgz'],
})
const file = resolve(dir, 'compressed.tgz')
const expect = new Error('cannot append to compressed archives')
const expectT = new TypeError('cannot append to compressed archives')
t.throws(_ => r({
file,
cwd: __dirname,
gzip: true,
}, [path.basename(__filename)]), expectT)
t.throws(_ => r({
file,
cwd: __dirname,
sync: true,
}, [path.basename(__filename)]), expect)
return r({
file,
cwd: __dirname,
}, [path.basename(__filename)], er => t.match(er, expect))
})
t.test('other throws', t => {
t.throws(_ => r({}, ['asdf']), new TypeError('file is required'))
t.throws(_ => r({ file: 'asdf' }, []),
new TypeError('no files or directories specified'))
t.end()
})
t.test('broken open', t => {
const dir = t.testdir({
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
})
const file = resolve(dir, 'body-byte-counts.tar')
const poop = new Error('poop')
t.teardown(mutateFS.fail('open', poop))
t.throws(_ => r({ sync: true, file }, ['README.md']), poop)
r({ file }, ['README.md'], er => {
t.match(er, poop)
t.end()
})
})
t.test('broken fstat', t => {
const td = {
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
}
const poop = new Error('poop')
t.test('sync', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
t.teardown(mutateFS.fail('fstat', poop))
t.throws(_ => r({ sync: true, file }, ['README.md']), poop)
t.end()
})
t.test('async', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
t.teardown(mutateFS.fail('fstat', poop))
r({ file }, ['README.md'], async er => {
t.match(er, poop)
t.end()
})
})
t.end()
})
t.test('broken read', t => {
const dir = t.testdir({
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
})
const file = resolve(dir, 'body-byte-counts.tar')
const poop = new Error('poop')
t.teardown(mutateFS.fail('read', poop))
t.throws(_ => r({ sync: true, file }, ['README.md']), poop)
r({ file }, ['README.md'], er => {
t.match(er, poop)
t.end()
})
})
t.test('mtime cache', async t => {
const td = {
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
}
let mtimeCache
const check = (file, t) => {
const c = spawn('tar', ['tf', file])
const out = []
c.stdout.on('data', chunk => out.push(chunk))
c.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
const actual = Buffer.concat(out).toString().trim().split(/\r?\n/)
t.same(actual, [
'1024-bytes.txt',
'512-bytes.txt',
'one-byte.txt',
'zero-byte.txt',
path.basename(__filename),
])
const mtc = {}
mtimeCache.forEach((v, k) => mtc[k] = mtimeCache.get(k).toISOString())
t.same(mtc, {
'1024-bytes.txt': '2017-04-10T16:57:47.000Z',
'512-bytes.txt': '2017-04-10T17:08:55.000Z',
'one-byte.txt': '2017-04-10T16:58:20.000Z',
'zero-byte.txt': '2017-04-10T17:08:01.000Z',
})
t.end()
})
}
t.test('sync', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
r({
sync: true,
file,
cwd: __dirname,
mtimeCache: mtimeCache = new Map(),
}, [path.basename(__filename)])
check(file, t)
})
t.test('async cb', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
r({
file,
cwd: __dirname,
mtimeCache: mtimeCache = new Map(),
}, [path.basename(__filename)], er => {
if (er) {
throw er
}
check(file, t)
})
})
t.test('async promise', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
r({
file,
cwd: __dirname,
mtimeCache: mtimeCache = new Map(),
}, [path.basename(__filename)]).then(_ => check(file, t))
})
t.end()
})
t.test('create tarball out of another tarball', t => {
const td = {
'out.tar': fs.readFileSync(path.resolve(tars, 'dir.tar')),
}
const check = (out, t) => {
const expect = [
'dir/',
'Ω.txt',
'🌟.txt',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt',
]
list({
f: out,
sync: true,
onentry: entry => {
t.equal(entry.path, expect.shift())
} })
t.same(expect, [])
t.end()
}
t.test('sync', t => {
const dir = t.testdir(td)
const out = resolve(dir, 'out.tar')
r({
f: out,
cwd: tars,
sync: true,
}, ['@utf8.tar'])
check(out, t)
})
t.test('async cb', t => {
const dir = t.testdir(td)
const out = resolve(dir, 'out.tar')
r({
f: out,
cwd: tars,
}, ['@utf8.tar'], er => {
if (er) {
throw er
}
check(out, t)
})
})
t.test('async', t => {
const dir = t.testdir(td)
const out = resolve(dir, 'out.tar')
r({
f: out,
cwd: tars,
}, ['@utf8.tar']).then(() => check(out, t))
})
t.end()
})
node-tar-6.1.13/test/strip-absolute-path.js 0000664 0000000 0000000 00000003214 14344174136 0020546 0 ustar 00root root 0000000 0000000 const t = require('tap')
const stripAbsolutePath = require('../lib/strip-absolute-path.js')
const cwd = process.cwd()
t.test('basic', t => {
const cases = {
'/': ['/', ''],
'////': ['////', ''],
'c:///a/b/c': ['c:///', 'a/b/c'],
'\\\\foo\\bar\\baz': ['\\\\foo\\bar\\', 'baz'],
'//foo//bar//baz': ['//', 'foo//bar//baz'],
'c:\\c:\\c:\\c:\\\\d:\\e/f/g': ['c:\\c:\\c:\\c:\\\\d:\\', 'e/f/g'],
}
for (const [input, [root, stripped]] of Object.entries(cases)) {
t.strictSame(stripAbsolutePath(input, cwd), [root, stripped], input)
}
t.end()
})
t.test('drive-local paths', t => {
const env = process.env
t.teardown(() => process.env = env)
const cwd = 'D:\\safety\\land'
const realPath = require('path')
// be windowsy
const path = {
...realPath.win32,
win32: realPath.win32,
posix: realPath.posix,
}
const stripAbsolutePath = t.mock('../lib/strip-absolute-path.js', { path })
const cases = {
'/': ['/', ''],
'////': ['////', ''],
'c:///a/b/c': ['c:///', 'a/b/c'],
'\\\\foo\\bar\\baz': ['\\\\foo\\bar\\', 'baz'],
'//foo//bar//baz': ['//', 'foo//bar//baz'],
'c:\\c:\\c:\\c:\\\\d:\\e/f/g': ['c:\\c:\\c:\\c:\\\\d:\\', 'e/f/g'],
'c:..\\system\\explorer.exe': ['c:', '..\\system\\explorer.exe'],
'd:..\\..\\unsafe\\land': ['d:', '..\\..\\unsafe\\land'],
'c:foo': ['c:', 'foo'],
'D:mark': ['D:', 'mark'],
'//?/X:/y/z': ['//?/X:/', 'y/z'],
'\\\\?\\X:\\y\\z': ['\\\\?\\X:\\', 'y\\z'],
}
for (const [input, [root, stripped]] of Object.entries(cases)) {
if (!t.strictSame(stripAbsolutePath(input, cwd), [root, stripped], input)) {
break
}
}
t.end()
})
node-tar-6.1.13/test/strip-trailing-slashes.js 0000664 0000000 0000000 00000000500 14344174136 0021242 0 ustar 00root root 0000000 0000000 const t = require('tap')
const stripSlash = require('../lib/strip-trailing-slashes.js')
const short = '///a///b///c///'
const long = short.repeat(10) + '/'.repeat(1000000)
t.equal(stripSlash('no slash'), 'no slash')
t.equal(stripSlash(short), '///a///b///c')
t.equal(stripSlash(long), short.repeat(9) + '///a///b///c')
node-tar-6.1.13/test/types.js 0000664 0000000 0000000 00000000300 14344174136 0015774 0 ustar 00root root 0000000 0000000 'use strict'
// not much to test here, just 2 maps.
const t = require('tap')
const types = require('../lib/types.js')
t.equal(types.name.get('0'), 'File')
t.equal(types.code.get('File'), '0')
node-tar-6.1.13/test/unpack.js 0000664 0000000 0000000 00000236341 14344174136 0016131 0 ustar 00root root 0000000 0000000 'use strict'
process.umask(0o022)
const Unpack = require('../lib/unpack.js')
const UnpackSync = Unpack.Sync
const t = require('tap')
const MiniPass = require('minipass')
const makeTar = require('./make-tar.js')
const Header = require('../lib/header.js')
const z = require('minizlib')
const fs = require('fs')
const path = require('path')
const fixtures = path.resolve(__dirname, 'fixtures')
const tars = path.resolve(fixtures, 'tars')
const parses = path.resolve(fixtures, 'parse')
const unpackdir = path.resolve(fixtures, 'unpack')
const { promisify } = require('util')
const rimraf = promisify(require('rimraf'))
const mkdirp = require('mkdirp')
const mutateFS = require('mutate-fs')
const eos = require('end-of-stream')
const normPath = require('../lib/normalize-windows-path.js')
// On Windows in particular, the "really deep folder path" file
// often tends to cause problems, which don't indicate a failure
// of this library, it's just what happens on Windows with super
// long file paths.
const isWindows = process.platform === 'win32'
const isLongFile = f => f.match(/r.e.a.l.l.y.-.d.e.e.p.-.f.o.l.d.e.r.-.p.a.t.h/)
t.teardown(_ => rimraf(unpackdir))
t.before(async () => {
await rimraf(unpackdir)
await mkdirp(unpackdir)
})
t.test('basic file unpack tests', t => {
const basedir = path.resolve(unpackdir, 'basic')
t.teardown(_ => rimraf(basedir))
const cases = {
'emptypax.tar': {
'🌟.txt': '🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠\n',
'one-byte.txt': 'a',
},
'body-byte-counts.tar': {
'1024-bytes.txt': new Array(1024).join('x') + '\n',
'512-bytes.txt': new Array(512).join('x') + '\n',
'one-byte.txt': 'a',
'zero-byte.txt': '',
},
'utf8.tar': {
'🌟.txt': '🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠\n',
'Ω.txt': 'Ω',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt': 'Ω',
},
'file.tar': {
'one-byte.txt': 'a',
},
'global-header.tar': {
'one-byte.txt': 'a',
},
'long-pax.tar': {
'120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
},
'long-paths.tar': {
'100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'120-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'170-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt': 'short\n',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt': 'Ω',
},
}
const tarfiles = Object.keys(cases)
t.plan(tarfiles.length)
t.jobs = tarfiles.length
tarfiles.forEach(tarfile => {
t.test(tarfile, t => {
const tf = path.resolve(tars, tarfile)
const dir = path.resolve(basedir, tarfile)
const linkdir = path.resolve(basedir, tarfile + '.link')
t.beforeEach(async () => {
await rimraf(dir)
await rimraf(linkdir)
await mkdirp(dir)
fs.symlinkSync(dir, linkdir, 'junction')
})
const check = t => {
const expect = cases[tarfile]
Object.keys(expect).forEach(file => {
const f = path.resolve(dir, file)
if (isWindows && isLongFile(file)) {
return
}
t.equal(fs.readFileSync(f, 'utf8'), expect[file], file)
})
t.end()
}
t.plan(2)
t.test('async unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new Unpack({ cwd: linkdir, strict: true })
fs.createReadStream(tf).pipe(unpack)
eos(unpack, _ => check(t))
})
t.test('loose', t => {
const unpack = new Unpack({ cwd: linkdir })
fs.createReadStream(tf).pipe(unpack)
eos(unpack, _ => check(t))
})
})
t.test('sync unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new UnpackSync({ cwd: linkdir })
unpack.end(fs.readFileSync(tf))
check(t)
})
t.test('loose', t => {
const unpack = new UnpackSync({ cwd: linkdir })
unpack.end(fs.readFileSync(tf))
check(t)
})
})
})
})
})
t.test('cwd default to process cwd', t => {
const u = new Unpack()
const us = new UnpackSync()
const cwd = normPath(process.cwd())
t.equal(u.cwd, cwd)
t.equal(us.cwd, cwd)
t.end()
})
t.test('links!', t => {
const dir = path.resolve(unpackdir, 'links')
const data = fs.readFileSync(tars + '/links.tar')
const stripData = fs.readFileSync(tars + '/links-strip.tar')
t.plan(6)
t.beforeEach(() => mkdirp(dir))
t.afterEach(() => rimraf(dir))
const check = t => {
const hl1 = fs.lstatSync(dir + '/hardlink-1')
const hl2 = fs.lstatSync(dir + '/hardlink-2')
t.equal(hl1.dev, hl2.dev)
t.equal(hl1.ino, hl2.ino)
t.equal(hl1.nlink, 2)
t.equal(hl2.nlink, 2)
if (!isWindows) {
// doesn't work on win32 without special privs
const sym = fs.lstatSync(dir + '/symlink')
t.ok(sym.isSymbolicLink())
t.equal(fs.readlinkSync(dir + '/symlink'), 'hardlink-2')
}
t.end()
}
const checkForStrip = t => {
const hl1 = fs.lstatSync(dir + '/hardlink-1')
const hl2 = fs.lstatSync(dir + '/hardlink-2')
const hl3 = fs.lstatSync(dir + '/1/2/3/hardlink-3')
t.equal(hl1.dev, hl2.dev)
t.equal(hl1.ino, hl2.ino)
t.equal(hl1.dev, hl3.dev)
t.equal(hl1.ino, hl3.ino)
t.equal(hl1.nlink, 3)
t.equal(hl2.nlink, 3)
if (!isWindows) {
const sym = fs.lstatSync(dir + '/symlink')
t.ok(sym.isSymbolicLink())
t.equal(fs.readlinkSync(dir + '/symlink'), 'hardlink-2')
}
t.end()
}
const checkForStrip3 = t => {
// strips the linkpath entirely, so the link doesn't get extracted.
t.throws(() => fs.lstatSync(dir + '/3'), { code: 'ENOENT' })
t.end()
}
t.test('async', t => {
const unpack = new Unpack({ cwd: dir })
let finished = false
unpack.on('finish', _ => finished = true)
unpack.on('close', _ => t.ok(finished, 'emitted finish before close'))
unpack.on('close', _ => check(t))
unpack.end(data)
})
t.test('sync', t => {
const unpack = new UnpackSync({ cwd: dir })
unpack.end(data)
check(t)
})
t.test('sync strip', t => {
const unpack = new UnpackSync({ cwd: dir, strip: 1 })
unpack.end(stripData)
checkForStrip(t)
})
t.test('async strip', t => {
const unpack = new Unpack({ cwd: dir, strip: 1 })
let finished = false
unpack.on('finish', _ => finished = true)
unpack.on('close', _ => t.ok(finished, 'emitted finish before close'))
unpack.on('close', _ => checkForStrip(t))
unpack.end(stripData)
})
t.test('sync strip 3', t => {
const unpack = new UnpackSync({ cwd: dir, strip: 3 })
unpack.end(fs.readFileSync(tars + '/links-strip.tar'))
checkForStrip3(t)
})
t.test('async strip 3', t => {
const unpack = new Unpack({ cwd: dir, strip: 3 })
let finished = false
unpack.on('finish', _ => finished = true)
unpack.on('close', _ => t.ok(finished, 'emitted finish before close'))
unpack.on('close', _ => checkForStrip3(t))
unpack.end(stripData)
})
})
t.test('links without cleanup (exercise clobbering code)', t => {
const dir = path.resolve(unpackdir, 'links')
const data = fs.readFileSync(tars + '/links.tar')
t.plan(6)
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
t.beforeEach(() => {
// clobber this junk
try {
mkdirp.sync(dir + '/hardlink-1')
mkdirp.sync(dir + '/hardlink-2')
fs.writeFileSync(dir + '/symlink', 'not a symlink')
} catch (er) {}
})
const check = t => {
const hl1 = fs.lstatSync(dir + '/hardlink-1')
const hl2 = fs.lstatSync(dir + '/hardlink-2')
t.equal(hl1.dev, hl2.dev)
t.equal(hl1.ino, hl2.ino)
t.equal(hl1.nlink, 2)
t.equal(hl2.nlink, 2)
if (!isWindows) {
const sym = fs.lstatSync(dir + '/symlink')
t.ok(sym.isSymbolicLink())
t.equal(fs.readlinkSync(dir + '/symlink'), 'hardlink-2')
}
t.end()
}
t.test('async', t => {
const unpack = new Unpack({ cwd: dir })
let prefinished = false
unpack.on('prefinish', _ => prefinished = true)
unpack.on('finish', _ =>
t.ok(prefinished, 'emitted prefinish before finish'))
unpack.on('close', _ => check(t))
unpack.end(data)
})
t.test('sync', t => {
const unpack = new UnpackSync({ cwd: dir })
unpack.end(data)
check(t)
})
t.test('async again', t => {
const unpack = new Unpack({ cwd: dir })
eos(unpack, _ => check(t))
unpack.end(data)
})
t.test('sync again', t => {
const unpack = new UnpackSync({ cwd: dir })
unpack.end(data)
check(t)
})
t.test('async unlink', t => {
const unpack = new Unpack({ cwd: dir, unlink: true })
unpack.on('close', _ => check(t))
unpack.end(data)
})
t.test('sync unlink', t => {
const unpack = new UnpackSync({ cwd: dir, unlink: true })
unpack.end(data)
check(t)
})
})
t.test('nested dir dupe', t => {
const dir = path.resolve(unpackdir, 'nested-dir')
mkdirp.sync(dir + '/d/e/e/p')
t.teardown(_ => rimraf(dir))
const expect = {
'd/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/a.txt': 'short\n',
'd/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'd/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'd/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
'd/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt': 'Ω',
}
const check = t => {
const entries = fs.readdirSync(dir)
t.equal(entries.length, 1)
t.equal(entries[0], 'd')
Object.keys(expect).forEach(f => {
const file = dir + '/' + f
t.equal(fs.readFileSync(file, 'utf8'), expect[f])
})
t.end()
}
const unpack = new Unpack({ cwd: dir, strip: 8 })
const data = fs.readFileSync(tars + '/long-paths.tar')
// while we're at it, why not use gzip too?
const zip = new z.Gzip()
zip.pipe(unpack)
unpack.on('close', _ => check(t))
zip.end(data)
})
t.test('symlink in dir path', {
skip: isWindows && 'symlinks not fully supported',
}, t => {
const dir = path.resolve(unpackdir, 'symlink-junk')
t.teardown(_ => rimraf(dir))
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const data = makeTar([
{
path: 'd/i',
type: 'Directory',
},
{
path: 'd/i/r/dir',
type: 'Directory',
mode: 0o751,
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/file',
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
{
path: 'd/i/r/link',
type: 'Link',
linkpath: 'd/i/r/file',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/symlink',
type: 'SymbolicLink',
linkpath: './dir',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/symlink/x',
type: 'File',
size: 0,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'',
'',
])
t.test('no clobbering', t => {
const warnings = []
const u = new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
})
u.on('close', _ => {
t.equal(fs.lstatSync(dir + '/d/i').mode & 0o7777, isWindows ? 0o666 : 0o755)
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, isWindows ? 0o666 : 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
if (!isWindows) {
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'got symlink')
t.throws(_ => fs.statSync(dir + '/d/i/r/symlink/x'))
}
t.equal(warnings[0][0], 'TAR_ENTRY_ERROR')
if (!isWindows) {
t.equal(warnings[0][1], 'Cannot extract through symbolic link')
t.match(warnings[0][2], {
name: 'SylinkError',
path: dir + '/d/i/r/symlink/',
symlink: dir + '/d/i/r/symlink',
})
}
t.equal(warnings.length, 1)
t.end()
})
u.end(data)
})
t.test('no clobbering, sync', t => {
const warnings = []
const u = new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
})
u.end(data)
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, isWindows ? 0o666 : 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
if (!isWindows) {
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'got symlink')
t.throws(_ => fs.statSync(dir + '/d/i/r/symlink/x'))
}
t.equal(warnings.length, 1)
t.equal(warnings[0][0], 'TAR_ENTRY_ERROR')
t.equal(warnings[0][1], 'Cannot extract through symbolic link')
t.match(warnings[0][2], {
name: 'SylinkError',
path: dir + '/d/i/r/symlink/',
symlink: dir + '/d/i/r/symlink',
})
t.end()
})
t.test('extract through symlink', t => {
const warnings = []
const u = new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
preservePaths: true,
})
u.on('close', _ => {
t.same(warnings, [])
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'got symlink')
t.ok(fs.lstatSync(dir + '/d/i/r/dir/x').isFile(), 'x thru link')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink/x').isFile(), 'x thru link')
t.end()
})
u.end(data)
})
t.test('extract through symlink sync', t => {
const warnings = []
const u = new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
preservePaths: true,
})
u.end(data)
t.same(warnings, [])
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'got symlink')
t.ok(fs.lstatSync(dir + '/d/i/r/dir/x').isFile(), 'x thru link')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink/x').isFile(), 'x thru link')
t.end()
})
t.test('clobber through symlink', t => {
const warnings = []
const u = new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
unlink: true,
})
u.on('close', _ => {
t.same(warnings, [])
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
t.notOk(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'no link')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isDirectory(), 'sym is dir')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink/x').isFile(), 'x thru link')
t.end()
})
u.end(data)
})
t.test('clobber through symlink with busted unlink', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('unlink', poop))
const warnings = []
const u = new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
unlink: true,
})
u.on('close', _ => {
t.same(warnings, [['TAR_ENTRY_ERROR', 'poop', poop]])
t.end()
})
u.end(data)
})
t.test('clobber through symlink sync', t => {
const warnings = []
const u = new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([c, w, d]),
unlink: true,
})
u.end(data)
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
t.notOk(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'no link')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isDirectory(), 'sym is dir')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink/x').isFile(), 'x thru link')
t.end()
})
t.test('clobber dirs', t => {
mkdirp.sync(dir + '/d/i/r/dir')
mkdirp.sync(dir + '/d/i/r/file')
mkdirp.sync(dir + '/d/i/r/link')
mkdirp.sync(dir + '/d/i/r/symlink')
const warnings = []
const u = new Unpack({
cwd: dir,
onwarn: (c, w, d) => {
warnings.push([c, w, d])
},
})
u.on('close', _ => {
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'got symlink')
t.throws(_ => fs.statSync(dir + '/d/i/r/symlink/x'))
t.equal(warnings.length, 1)
t.equal(warnings[0][0], 'TAR_ENTRY_ERROR')
t.equal(warnings[0][1], 'Cannot extract through symbolic link')
t.match(warnings[0][2], {
name: 'SylinkError',
path: dir + '/d/i/r/symlink/',
symlink: dir + '/d/i/r/symlink',
})
t.end()
})
u.end(data)
})
t.test('clobber dirs sync', t => {
mkdirp.sync(dir + '/d/i/r/dir')
mkdirp.sync(dir + '/d/i/r/file')
mkdirp.sync(dir + '/d/i/r/link')
mkdirp.sync(dir + '/d/i/r/symlink')
const warnings = []
const u = new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => {
warnings.push([c, w, d])
},
})
u.end(data)
t.equal(fs.lstatSync(dir + '/d/i/r/dir').mode & 0o7777, 0o751)
t.ok(fs.lstatSync(dir + '/d/i/r/file').isFile(), 'got file')
t.ok(fs.lstatSync(dir + '/d/i/r/symlink').isSymbolicLink(), 'got symlink')
t.throws(_ => fs.statSync(dir + '/d/i/r/symlink/x'))
t.equal(warnings.length, 1)
t.equal(warnings[0][0], 'TAR_ENTRY_ERROR')
t.equal(warnings[0][1], 'Cannot extract through symbolic link')
t.match(warnings[0][2], {
name: 'SylinkError',
path: dir + '/d/i/r/symlink/',
symlink: dir + '/d/i/r/symlink',
})
t.end()
})
t.end()
})
t.test('unsupported entries', t => {
const dir = path.resolve(unpackdir, 'unsupported-entries')
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
const unknown = new Header({ path: 'qux', type: 'File', size: 4 })
unknown.type = 'Z'
unknown.encode()
const data = makeTar([
{
path: 'dev/random',
type: 'CharacterDevice',
},
{
path: 'dev/hd0',
type: 'BlockDevice',
},
{
path: 'dev/fifo0',
type: 'FIFO',
},
// note: unrecognized types are ignored, so this won't emit a warning.
// gnutar and bsdtar treat unrecognized types as 'file', so it may be
// worth doing the same thing, but with a warning.
unknown.block,
'asdf',
'',
'',
])
t.test('basic, warns', t => {
const warnings = []
const u = new Unpack({ cwd: dir, onwarn: (c, w, d) => warnings.push([c, w, d]) })
const c = 'TAR_ENTRY_UNSUPPORTED'
const expect = [
[c, 'unsupported entry type: CharacterDevice', {
entry: { path: 'dev/random' } }],
[c, 'unsupported entry type: BlockDevice', {
entry: { path: 'dev/hd0' } }],
[c, 'unsupported entry type: FIFO', {
entry: { path: 'dev/fifo0' } }],
]
u.on('close', _ => {
t.equal(fs.readdirSync(dir).length, 0)
t.match(warnings, expect)
t.end()
})
u.end(data)
})
t.test('strict, throws', t => {
const warnings = []
const errors = []
const u = new Unpack({
cwd: dir,
strict: true,
onwarn: (c, w, d) => warnings.push([c, w, d]),
})
u.on('error', e => errors.push(e))
u.on('close', _ => {
t.equal(fs.readdirSync(dir).length, 0)
t.same(warnings, [])
t.match(errors, [
{
message: 'unsupported entry type: CharacterDevice',
entry: { path: 'dev/random' },
},
{
message: 'unsupported entry type: BlockDevice',
entry: { path: 'dev/hd0' },
},
{
message: 'unsupported entry type: FIFO',
entry: { path: 'dev/fifo0' },
},
])
t.end()
})
u.end(data)
})
t.end()
})
t.test('file in dir path', t => {
const dir = path.resolve(unpackdir, 'file-junk')
t.teardown(_ => rimraf(dir))
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const data = makeTar([
{
path: 'd/i/r/file',
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
{
path: 'd/i/r/file/a/b/c',
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'b',
'',
'',
])
t.test('fail because of file', t => {
const check = t => {
t.equal(fs.readFileSync(dir + '/d/i/r/file', 'utf8'), 'a')
t.throws(_ => fs.statSync(dir + '/d/i/r/file/a/b/c'))
t.end()
}
t.plan(2)
t.test('async', t => {
new Unpack({ cwd: dir }).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
new UnpackSync({ cwd: dir }).end(data)
check(t)
})
})
t.test('clobber on through', t => {
const check = t => {
t.ok(fs.statSync(dir + '/d/i/r/file').isDirectory())
t.equal(fs.readFileSync(dir + '/d/i/r/file/a/b/c', 'utf8'), 'b')
t.end()
}
t.plan(2)
t.test('async', t => {
new Unpack({ cwd: dir, unlink: true }).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
new UnpackSync({ cwd: dir, unlink: true }).end(data)
check(t)
})
})
t.end()
})
t.test('set umask option', t => {
const dir = path.resolve(unpackdir, 'umask')
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
const data = makeTar([
{
path: 'd/i/r/dir',
type: 'Directory',
mode: 0o751,
},
'',
'',
])
new Unpack({
umask: 0o027,
cwd: dir,
}).on('close', _ => {
t.equal(fs.statSync(dir + '/d/i/r').mode & 0o7777, isWindows ? 0o666 : 0o750)
t.equal(fs.statSync(dir + '/d/i/r/dir').mode & 0o7777, isWindows ? 0o666 : 0o751)
t.end()
}).end(data)
})
t.test('absolute paths', t => {
const dir = path.join(unpackdir, 'absolute-paths')
t.teardown(_ => rimraf(dir))
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const absolute = path.resolve(dir, 'd/i/r/absolute')
const root = path.parse(absolute).root
const extraAbsolute = root + root + root + absolute
t.ok(path.isAbsolute(extraAbsolute))
t.ok(path.isAbsolute(absolute))
const parsed = path.parse(absolute)
const relative = absolute.slice(parsed.root.length)
t.notOk(path.isAbsolute(relative))
const data = makeTar([
{
path: extraAbsolute,
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
'',
'',
])
t.test('warn and correct', t => {
const check = t => {
const r = normPath(root)
t.match(warnings, [[
`stripping ${r}${r}${r}${r} from absolute path`,
{ path: normPath(absolute), code: 'TAR_ENTRY_INFO' },
]])
t.ok(fs.lstatSync(path.resolve(dir, relative)).isFile(), 'is file')
t.end()
}
const warnings = []
t.test('async', t => {
warnings.length = 0
new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
warnings.length = 0
new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t)
})
t.end()
})
t.test('preserve absolute path', t => {
// if we use the extraAbsolute path here, we end up creating a dir
// like C:\C:\C:\C:\path\to\absolute, which is both 100% valid on
// windows, as well as SUUUUUPER annoying.
const data = makeTar([
{
path: isWindows ? absolute : extraAbsolute,
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
'',
'',
])
const check = t => {
t.same(warnings, [])
t.ok(fs.lstatSync(absolute).isFile(), 'is file')
t.end()
}
const warnings = []
t.test('async', t => {
warnings.length = 0
new Unpack({
preservePaths: true,
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
warnings.length = 0
new UnpackSync({
preservePaths: true,
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t)
})
t.end()
})
t.end()
})
t.test('.. paths', t => {
const dir = path.join(unpackdir, 'dotted-paths')
t.teardown(_ => rimraf(dir))
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const fmode = 0o755
const dotted = 'a/b/c/../d'
const resolved = path.resolve(dir, dotted)
const data = makeTar([
{
path: dotted,
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'd',
'',
'',
])
t.test('warn and skip', t => {
const check = t => {
t.match(warnings, [[
'path contains \'..\'',
{ path: dotted, code: 'TAR_ENTRY_ERROR' },
]])
t.throws(_ => fs.lstatSync(resolved))
t.end()
}
const warnings = []
t.test('async', t => {
warnings.length = 0
new Unpack({
fmode: fmode,
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
warnings.length = 0
new UnpackSync({
fmode: fmode,
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t)
})
t.end()
})
t.test('preserve dotted path', t => {
const check = t => {
t.same(warnings, [])
t.ok(fs.lstatSync(resolved).isFile(), 'is file')
t.equal(fs.lstatSync(resolved).mode & 0o777, isWindows ? 0o666 : fmode)
t.end()
}
const warnings = []
t.test('async', t => {
warnings.length = 0
new Unpack({
fmode: fmode,
preservePaths: true,
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
warnings.length = 0
new UnpackSync({
fmode: fmode,
preservePaths: true,
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t)
})
t.end()
})
t.end()
})
t.test('fail all stats', t => {
const poop = new Error('poop')
poop.code = 'EPOOP'
const dir = normPath(path.join(unpackdir, 'stat-fail'))
const {
stat,
fstat,
lstat,
statSync,
fstatSync,
lstatSync,
} = fs
const unmutate = () => Object.assign(fs, {
stat,
fstat,
lstat,
statSync,
fstatSync,
lstatSync,
})
const mutate = () => {
fs.stat = fs.lstat = fs.fstat = (...args) => {
// don't fail statting the cwd, or we get different errors
if (normPath(args[0]) === dir) {
return lstat(dir, args.pop())
}
process.nextTick(() => args.pop()(poop))
}
fs.statSync = fs.lstatSync = fs.fstatSync = (...args) => {
if (normPath(args[0]) === dir) {
return lstatSync(dir)
}
throw poop
}
}
const warnings = []
t.beforeEach(() => {
warnings.length = 0
mkdirp.sync(dir)
mutate()
})
t.afterEach(async () => {
unmutate()
await rimraf(dir)
})
const data = makeTar([
{
path: 'd/i/r/file/',
type: 'Directory',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/dir/',
type: 'Directory',
mode: 0o751,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/file',
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
{
path: 'd/i/r/link',
type: 'Link',
linkpath: 'd/i/r/file',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/symlink',
type: 'SymbolicLink',
linkpath: './dir',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'',
'',
])
const check = (t, expect) => {
t.match(warnings, expect)
warnings.forEach(w => t.equal(w[0], w[1].message))
t.end()
}
t.test('async', t => {
const expect = [
['poop', poop],
['poop', poop],
]
new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t, expect)).end(data)
})
t.test('sync', t => {
const expect = [
[
String,
{
code: 'EISDIR',
path: normPath(path.resolve(dir, 'd/i/r/file')),
syscall: 'open',
},
],
[
String,
{
dest: normPath(path.resolve(dir, 'd/i/r/link')),
path: normPath(path.resolve(dir, 'd/i/r/file')),
syscall: 'link',
},
],
]
new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t, expect)
})
t.end()
})
t.test('fail symlink', t => {
const poop = new Error('poop')
poop.code = 'EPOOP'
const unmutate = mutateFS.fail('symlink', poop)
const dir = path.join(unpackdir, 'symlink-fail')
t.teardown(async _ => {
unmutate()
await rimraf(dir)
})
const warnings = []
t.beforeEach(async () => {
warnings.length = 0
await rimraf(dir)
await mkdirp(dir)
})
const data = makeTar([
{
path: 'd/i/r/dir/',
type: 'Directory',
mode: 0o751,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/symlink',
type: 'SymbolicLink',
linkpath: './dir',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'',
'',
])
const check = (t, expect) => {
t.match(warnings, expect)
warnings.forEach(w => t.equal(w[0], w[1].message))
t.end()
}
t.test('async', t => {
const expect = [['poop', poop]]
new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t, expect)).end(data)
})
t.test('sync', t => {
const expect = [['poop', poop]]
new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t, expect)
})
t.end()
})
t.test('fail chmod', t => {
const poop = new Error('poop')
poop.code = 'EPOOP'
const unmutate = mutateFS.fail('chmod', poop)
const dir = path.join(unpackdir, 'chmod-fail')
t.teardown(async _ => {
unmutate()
await rimraf(dir)
})
const warnings = []
t.beforeEach(async () => {
warnings.length = 0
await rimraf(dir)
await mkdirp(dir)
})
const data = makeTar([
{
path: 'd/i/r/dir/',
type: 'Directory',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/dir/',
type: 'Directory',
mode: 0o751,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'',
'',
])
const check = (t, expect) => {
t.match(warnings, expect)
warnings.forEach(w => t.equal(w[0], w[1].message))
t.end()
}
t.test('async', t => {
const expect = [['poop', poop]]
new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t, expect)).end(data)
})
t.test('sync', t => {
const expect = [['poop', poop]]
new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t, expect)
})
t.end()
})
t.test('fail mkdir', t => {
const poop = new Error('poop')
poop.code = 'EPOOP'
let unmutate
const dir = path.join(unpackdir, 'mkdir-fail')
t.teardown(_ => rimraf(dir))
const warnings = []
t.beforeEach(async () => {
warnings.length = 0
await rimraf(dir)
await mkdirp(dir)
unmutate = mutateFS.fail('mkdir', poop)
})
t.afterEach(() => unmutate())
const data = makeTar([
{
path: 'dir/',
type: 'Directory',
mode: 0o751,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'',
'',
])
const expect = [[
'ENOENT: no such file or directory',
{
code: 'ENOENT',
syscall: 'lstat',
path: normPath(path.resolve(dir, 'dir')),
},
]]
const check = t => {
t.match(warnings, expect)
warnings.forEach(w => t.equal(w[0], w[1].message))
t.end()
}
t.test('sync', t => {
new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t)
})
t.test('async', t => {
new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t)).end(data)
})
t.end()
})
t.test('fail write', t => {
const poop = new Error('poop')
poop.code = 'EPOOP'
const unmutate = mutateFS.fail('write', poop)
const dir = path.join(unpackdir, 'write-fail')
t.teardown(async _ => {
unmutate()
await rimraf(dir)
})
const warnings = []
t.beforeEach(async () => {
warnings.length = 0
await rimraf(dir)
await mkdirp(dir)
})
const data = makeTar([
{
path: 'x',
type: 'File',
size: 1,
mode: 0o751,
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'x',
'',
'',
])
const expect = [['poop', poop]]
const check = t => {
t.match(warnings, expect)
warnings.forEach(w => t.equal(w[0], w[1].message))
t.end()
}
t.test('async', t => {
new Unpack({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
new UnpackSync({
cwd: dir,
onwarn: (c, w, d) => warnings.push([w, d]),
}).end(data)
check(t)
})
t.end()
})
t.test('skip existing', t => {
const dir = path.join(unpackdir, 'skip-newer')
t.teardown(_ => rimraf(dir))
const date = new Date('2011-03-27T22:16:31.000Z')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
fs.writeFileSync(dir + '/x', 'y')
fs.utimesSync(dir + '/x', date, date)
})
const data = makeTar([
{
path: 'x',
type: 'File',
size: 1,
mode: 0o751,
mtime: new Date('2013-12-19T17:00:00.000Z'),
},
'x',
'',
'',
])
const check = t => {
const st = fs.lstatSync(dir + '/x')
t.equal(st.atime.toISOString(), date.toISOString())
t.equal(st.mtime.toISOString(), date.toISOString())
const data = fs.readFileSync(dir + '/x', 'utf8')
t.equal(data, 'y')
t.end()
}
t.test('async', t => {
new Unpack({
cwd: dir,
keep: true,
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
new UnpackSync({
cwd: dir,
keep: true,
}).end(data)
check(t)
})
t.end()
})
t.test('skip newer', t => {
const dir = path.join(unpackdir, 'skip-newer')
t.teardown(_ => rimraf(dir))
const date = new Date('2013-12-19T17:00:00.000Z')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
fs.writeFileSync(dir + '/x', 'y')
fs.utimesSync(dir + '/x', date, date)
})
const data = makeTar([
{
path: 'x',
type: 'File',
size: 1,
mode: 0o751,
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'x',
'',
'',
])
const check = t => {
const st = fs.lstatSync(dir + '/x')
t.equal(st.atime.toISOString(), date.toISOString())
t.equal(st.mtime.toISOString(), date.toISOString())
const data = fs.readFileSync(dir + '/x', 'utf8')
t.equal(data, 'y')
t.end()
}
t.test('async', t => {
new Unpack({
cwd: dir,
newer: true,
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
new UnpackSync({
cwd: dir,
newer: true,
}).end(data)
check(t)
})
t.end()
})
t.test('no mtime', t => {
const dir = path.join(unpackdir, 'skip-newer')
t.teardown(_ => rimraf(dir))
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const date = new Date('2011-03-27T22:16:31.000Z')
const data = makeTar([
{
path: 'x/',
type: 'Directory',
size: 0,
atime: date,
ctime: date,
mtime: date,
},
{
path: 'x/y',
type: 'File',
size: 1,
mode: 0o751,
atime: date,
ctime: date,
mtime: date,
},
'x',
'',
'',
])
const check = t => {
// this may fail if it's run on March 27, 2011
const stx = fs.lstatSync(dir + '/x')
t.not(stx.atime.toISOString(), date.toISOString())
t.not(stx.mtime.toISOString(), date.toISOString())
const sty = fs.lstatSync(dir + '/x/y')
t.not(sty.atime.toISOString(), date.toISOString())
t.not(sty.mtime.toISOString(), date.toISOString())
const data = fs.readFileSync(dir + '/x/y', 'utf8')
t.equal(data, 'x')
t.end()
}
t.test('async', t => {
new Unpack({
cwd: dir,
noMtime: true,
}).on('close', _ => check(t)).end(data)
})
t.test('sync', t => {
new UnpackSync({
cwd: dir,
noMtime: true,
}).end(data)
check(t)
})
t.end()
})
t.test('unpack big enough to pause/drain', t => {
const dir = path.resolve(unpackdir, 'drain-clog')
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
const stream = fs.createReadStream(fixtures + '/parses.tar')
const u = new Unpack({
cwd: dir,
strip: 3,
strict: true,
})
u.on('ignoredEntry', entry =>
t.fail('should not get ignored entry: ' + entry.path))
u.on('close', _ => {
t.pass('extraction finished')
const actual = fs.readdirSync(dir)
const expected = fs.readdirSync(parses)
t.same(actual, expected)
t.end()
})
stream.pipe(u)
})
t.test('set owner', t => {
// fake it on platforms that don't have getuid
const myUid = 501
const myGid = 1024
const getuid = process.getuid
const getgid = process.getgid
process.getuid = _ => myUid
process.getgid = _ => myGid
t.teardown(_ => (process.getuid = getuid, process.getgid = getgid))
// can't actually do this because it requires root, but we can
// verify that chown gets called.
t.test('as root, defaults to true', t => {
const getuid = process.getuid
process.getuid = _ => 0
const u = new Unpack()
t.equal(u.preserveOwner, true, 'preserveOwner enabled')
process.getuid = getuid
t.end()
})
t.test('as non-root, defaults to false', t => {
const getuid = process.getuid
process.getuid = _ => 501
const u = new Unpack()
t.equal(u.preserveOwner, false, 'preserveOwner disabled')
process.getuid = getuid
t.end()
})
const data = makeTar([
{
uid: 2456124561,
gid: 813708013,
path: 'foo/',
type: 'Directory',
},
{
uid: myUid,
gid: 813708013,
path: 'foo/my-uid-different-gid',
type: 'File',
size: 3,
},
'qux',
{
uid: 2456124561,
path: 'foo/different-uid-nogid',
type: 'Directory',
},
{
uid: 2456124561,
path: 'foo/different-uid-nogid/bar',
type: 'File',
size: 3,
},
'qux',
{
gid: 813708013,
path: 'foo/different-gid-nouid/bar',
type: 'File',
size: 3,
},
'qux',
{
uid: myUid,
gid: myGid,
path: 'foo-mine/',
type: 'Directory',
},
{
uid: myUid,
gid: myGid,
path: 'foo-mine/bar',
type: 'File',
size: 3,
},
'qux',
{
uid: myUid,
path: 'foo-mine/nogid',
type: 'Directory',
},
{
uid: myUid,
path: 'foo-mine/nogid/bar',
type: 'File',
size: 3,
},
'qux',
'',
'',
])
t.test('chown failure results in unpack failure', t => {
const dir = path.resolve(unpackdir, 'chown')
const poop = new Error('expected chown failure')
const un = mutateFS.fail('chown', poop)
const unl = mutateFS.fail('lchown', poop)
const unf = mutateFS.fail('fchown', poop)
t.teardown(async () => {
un()
unf()
unl()
await rimraf(dir)
})
t.test('sync', t => {
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
let warned = false
const u = new Unpack.Sync({
cwd: dir,
preserveOwner: true,
onwarn: (c, m, er) => {
if (!warned) {
warned = true
t.equal(er, poop)
t.end()
}
},
})
u.end(data)
})
t.test('async', t => {
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
let warned = false
const u = new Unpack({
cwd: dir,
preserveOwner: true,
onwarn: (c, m, er) => {
if (!warned) {
warned = true
t.equal(er, poop)
t.end()
}
},
})
u.end(data)
})
t.end()
})
t.test('chown when true', t => {
const dir = path.resolve(unpackdir, 'chown')
const chown = fs.chown
const lchown = fs.lchown
const fchown = fs.fchown
const chownSync = fs.chownSync
const fchownSync = fs.fchownSync
const lchownSync = fs.lchownSync
let called = 0
fs.fchown = fs.chown = fs.lchown = (path, owner, group, cb) => {
called++
cb()
}
fs.chownSync = fs.lchownSync = fs.fchownSync = _ => called++
t.teardown(_ => {
fs.chown = chown
fs.fchown = fchown
fs.lchown = lchown
fs.chownSync = chownSync
fs.fchownSync = fchownSync
fs.lchownSync = lchownSync
})
t.test('sync', t => {
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
called = 0
const u = new Unpack.Sync({ cwd: dir, preserveOwner: true })
u.end(data)
t.ok(called >= 5, 'called chowns')
t.end()
})
t.test('async', t => {
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
called = 0
const u = new Unpack({ cwd: dir, preserveOwner: true })
u.end(data)
u.on('close', _ => {
t.ok(called >= 5, 'called chowns')
t.end()
})
})
t.end()
})
t.test('no chown when false', t => {
const dir = path.resolve(unpackdir, 'nochown')
const poop = new Error('poop')
const un = mutateFS.fail('chown', poop)
const unf = mutateFS.fail('fchown', poop)
const unl = mutateFS.fail('lchown', poop)
t.teardown(async _ => {
un()
unf()
unl()
await rimraf(dir)
})
t.beforeEach(() => mkdirp(dir))
t.afterEach(() => rimraf(dir))
const check = t => {
const dirStat = fs.statSync(dir + '/foo')
t.not(dirStat.uid, 2456124561)
t.not(dirStat.gid, 813708013)
const fileStat = fs.statSync(dir + '/foo/my-uid-different-gid')
t.not(fileStat.uid, 2456124561)
t.not(fileStat.gid, 813708013)
const dirStat2 = fs.statSync(dir + '/foo/different-uid-nogid')
t.not(dirStat2.uid, 2456124561)
const fileStat2 = fs.statSync(dir + '/foo/different-uid-nogid/bar')
t.not(fileStat2.uid, 2456124561)
t.end()
}
t.test('sync', t => {
const u = new Unpack.Sync({ cwd: dir, preserveOwner: false })
u.end(data)
check(t)
})
t.test('async', t => {
const u = new Unpack({ cwd: dir, preserveOwner: false })
u.end(data)
u.on('close', _ => check(t))
})
t.end()
})
t.end()
})
t.test('unpack when dir is not writable', t => {
const data = makeTar([
{
path: 'a/',
type: 'Directory',
mode: 0o444,
},
{
path: 'a/b',
type: 'File',
size: 1,
},
'a',
'',
'',
])
const dir = path.resolve(unpackdir, 'nowrite-dir')
t.beforeEach(() => mkdirp(dir))
t.afterEach(() => rimraf(dir))
const check = t => {
t.equal(fs.statSync(dir + '/a').mode & 0o7777, isWindows ? 0o666 : 0o744)
t.equal(fs.readFileSync(dir + '/a/b', 'utf8'), 'a')
t.end()
}
t.test('sync', t => {
const u = new Unpack.Sync({ cwd: dir, strict: true })
u.end(data)
check(t)
})
t.test('async', t => {
const u = new Unpack({ cwd: dir, strict: true })
u.end(data)
u.on('close', _ => check(t))
})
t.end()
})
t.test('transmute chars on windows', t => {
const data = makeTar([
{
path: '<|>?:.txt',
size: 5,
type: 'File',
},
'<|>?:',
'',
'',
])
const dir = path.resolve(unpackdir, 'winchars')
t.beforeEach(() => mkdirp(dir))
t.afterEach(() => rimraf(dir))
const hex = 'ef80bcef81bcef80beef80bfef80ba2e747874'
const uglyName = Buffer.from(hex, 'hex').toString()
const ugly = path.resolve(dir, uglyName)
const check = t => {
t.same(fs.readdirSync(dir), [uglyName])
t.equal(fs.readFileSync(ugly, 'utf8'), '<|>?:')
t.end()
}
t.test('async', t => {
const u = new Unpack({
cwd: dir,
win32: true,
})
u.end(data)
u.on('close', _ => check(t))
})
t.test('sync', t => {
const u = new Unpack.Sync({
cwd: dir,
win32: true,
})
u.end(data)
check(t)
})
t.end()
})
t.test('safely transmute chars on windows with absolutes', t => {
// don't actually make the directory
const poop = new Error('poop')
t.teardown(mutateFS.fail('mkdir', poop))
const data = makeTar([
{
path: 'c:/x/y/z/<|>?:.txt',
size: 5,
type: 'File',
},
'<|>?:',
'',
'',
])
const hex = 'ef80bcef81bcef80beef80bfef80ba2e747874'
const uglyName = Buffer.from(hex, 'hex').toString()
const uglyPath = 'c:/x/y/z/' + uglyName
const u = new Unpack({
win32: true,
preservePaths: true,
})
u.on('entry', entry => {
t.equal(entry.path, uglyPath)
t.end()
})
u.end(data)
})
t.test('use explicit chmod when required by umask', t => {
process.umask(0o022)
const basedir = path.resolve(unpackdir, 'umask-chmod')
const data = makeTar([
{
path: 'x/y/z',
mode: 0o775,
type: 'Directory',
},
'',
'',
])
const check = async t => {
const st = fs.statSync(basedir + '/x/y/z')
t.equal(st.mode & 0o777, isWindows ? 0o666 : 0o775)
await rimraf(basedir)
t.end()
}
t.test('async', t => {
mkdirp.sync(basedir)
const unpack = new Unpack({ cwd: basedir })
unpack.on('close', _ => check(t))
unpack.end(data)
})
return t.test('sync', t => {
mkdirp.sync(basedir)
const unpack = new Unpack.Sync({ cwd: basedir })
unpack.end(data)
check(t)
})
})
t.test('dont use explicit chmod if noChmod flag set', t => {
process.umask(0o022)
const { umask } = process
t.teardown(() => process.umask = umask)
process.umask = () => {
throw new Error('should not call process.umask()')
}
const basedir = path.resolve(unpackdir, 'umask-no-chmod')
const data = makeTar([
{
path: 'x/y/z',
mode: 0o775,
type: 'Directory',
},
'',
'',
])
const check = async t => {
const st = fs.statSync(basedir + '/x/y/z')
t.equal(st.mode & 0o777, isWindows ? 0o666 : 0o755)
await rimraf(basedir)
t.end()
}
t.test('async', t => {
mkdirp.sync(basedir)
const unpack = new Unpack({ cwd: basedir, noChmod: true })
unpack.on('close', _ => check(t))
unpack.end(data)
})
return t.test('sync', t => {
mkdirp.sync(basedir)
const unpack = new Unpack.Sync({ cwd: basedir, noChmod: true })
unpack.end(data)
check(t)
})
})
t.test('chown implicit dirs and also the entries', t => {
const basedir = path.resolve(unpackdir, 'chownr')
// club these so that the test can run as non-root
const chown = fs.chown
const chownSync = fs.chownSync
const lchown = fs.lchown
const lchownSync = fs.lchownSync
const fchown = fs.fchown
const fchownSync = fs.fchownSync
const getuid = process.getuid
const getgid = process.getgid
t.teardown(_ => {
fs.chown = chown
fs.chownSync = chownSync
fs.lchown = lchown
fs.lchownSync = lchownSync
fs.fchown = fchown
fs.fchownSync = fchownSync
process.getgid = getgid
})
let chowns = 0
let currentTest = null
fs.lchown = fs.fchown = fs.chown = (path, uid, gid, cb) => {
currentTest.equal(uid, 420, 'chown(' + path + ') uid')
currentTest.equal(gid, 666, 'chown(' + path + ') gid')
chowns++
cb()
}
fs.lchownSync = fs.chownSync = fs.fchownSync = (path, uid, gid) => {
currentTest.equal(uid, 420, 'chownSync(' + path + ') uid')
currentTest.equal(gid, 666, 'chownSync(' + path + ') gid')
chowns++
}
const data = makeTar([
{
path: 'a/b/c',
mode: 0o775,
type: 'File',
size: 1,
uid: null,
gid: null,
},
'.',
{
path: 'x/y/z',
mode: 0o775,
uid: 12345,
gid: 54321,
type: 'File',
size: 1,
},
'.',
'',
'',
])
const check = async t => {
currentTest = null
t.equal(chowns, 8)
chowns = 0
await rimraf(basedir)
t.end()
}
t.test('throws when setting uid/gid improperly', t => {
t.throws(_ => new Unpack({ uid: 420 }),
TypeError('cannot set owner without number uid and gid'))
t.throws(_ => new Unpack({ gid: 666 }),
TypeError('cannot set owner without number uid and gid'))
t.throws(_ => new Unpack({ uid: 1, gid: 2, preserveOwner: true }),
TypeError('cannot preserve owner in archive and also set owner explicitly'))
t.end()
})
const tests = () =>
t.test('async', t => {
currentTest = t
mkdirp.sync(basedir)
const unpack = new Unpack({ cwd: basedir, uid: 420, gid: 666 })
unpack.on('close', _ => check(t))
unpack.end(data)
}).then(t.test('sync', t => {
currentTest = t
mkdirp.sync(basedir)
const unpack = new Unpack.Sync({ cwd: basedir, uid: 420, gid: 666 })
unpack.end(data)
check(t)
}))
tests()
t.test('make it look like processUid is 420', t => {
process.getuid = () => 420
t.end()
})
tests()
t.test('make it look like processGid is 666', t => {
process.getuid = getuid
process.getgid = () => 666
t.end()
})
return tests()
})
t.test('bad cwd setting', t => {
const basedir = path.resolve(unpackdir, 'bad-cwd')
mkdirp.sync(basedir)
t.teardown(_ => rimraf(basedir))
const cases = [
// the cwd itself
{
path: './',
type: 'Directory',
},
// a file directly in the cwd
{
path: 'a',
type: 'File',
},
// a file nested within a subdir of the cwd
{
path: 'a/b/c',
type: 'File',
},
]
fs.writeFileSync(basedir + '/file', 'xyz')
cases.forEach(c => t.test(c.type + ' ' + c.path, t => {
const data = makeTar([
{
path: c.path,
mode: 0o775,
type: c.type,
size: 0,
uid: null,
gid: null,
},
'',
'',
])
t.test('cwd is a file', t => {
const cwd = basedir + '/file'
const opt = { cwd: cwd }
t.throws(_ => new Unpack.Sync(opt).end(data), {
name: 'CwdError',
message: 'ENOTDIR: Cannot cd into \'' + normPath(cwd) + '\'',
path: normPath(cwd),
code: 'ENOTDIR',
})
new Unpack(opt).on('error', er => {
t.match(er, {
name: 'CwdError',
message: 'ENOTDIR: Cannot cd into \'' + normPath(cwd) + '\'',
path: normPath(cwd),
code: 'ENOTDIR',
})
t.end()
}).end(data)
})
return t.test('cwd is missing', t => {
const cwd = basedir + '/asdf/asdf/asdf'
const opt = { cwd: cwd }
t.throws(_ => new Unpack.Sync(opt).end(data), {
name: 'CwdError',
message: 'ENOENT: Cannot cd into \'' + normPath(cwd) + '\'',
path: normPath(cwd),
code: 'ENOENT',
})
new Unpack(opt).on('error', er => {
t.match(er, {
name: 'CwdError',
message: 'ENOENT: Cannot cd into \'' + normPath(cwd) + '\'',
path: normPath(cwd),
code: 'ENOENT',
})
t.end()
}).end(data)
})
}))
t.end()
})
t.test('transform', t => {
const basedir = path.resolve(unpackdir, 'transform')
t.teardown(_ => rimraf(basedir))
const cases = {
'emptypax.tar': {
'🌟.txt': '🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠\n',
'one-byte.txt': '[a]',
},
'body-byte-counts.tar': {
'1024-bytes.txt': new Array(1024).join('[x]') + '[\n]',
'512-bytes.txt': new Array(512).join('[x]') + '[\n]',
'one-byte.txt': '[a]',
'zero-byte.txt': '',
},
'utf8.tar': {
'🌟.txt': '🌟✧✩⭐︎✪✫✬✭✮⚝✯✰✵✶✷✸✹❂⭑⭒★☆✡☪✴︎✦✡️🔯✴️🌠\n',
'Ω.txt': '[Ω]',
'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt': '[Ω]',
},
}
const txFn = entry => {
switch (path.basename(entry.path)) {
case 'zero-bytes.txt':
return entry
case 'one-byte.txt':
case '1024-bytes.txt':
case '512-bytes.txt':
case 'Ω.txt':
return new Bracer()
}
}
class Bracer extends MiniPass {
write (data) {
const d = data.toString().split('').map(c => '[' + c + ']').join('')
return super.write(d)
}
}
const tarfiles = Object.keys(cases)
t.plan(tarfiles.length)
t.jobs = tarfiles.length
tarfiles.forEach(tarfile => {
t.test(tarfile, t => {
const tf = path.resolve(tars, tarfile)
const dir = path.resolve(basedir, tarfile)
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
const check = t => {
const expect = cases[tarfile]
Object.keys(expect).forEach(file => {
const f = path.resolve(dir, file)
t.equal(fs.readFileSync(f, 'utf8'), expect[file], file)
})
t.end()
}
t.plan(2)
t.test('async unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new Unpack({ cwd: dir, strict: true, transform: txFn })
fs.createReadStream(tf).pipe(unpack)
eos(unpack, _ => check(t))
})
t.test('loose', t => {
const unpack = new Unpack({ cwd: dir, transform: txFn })
fs.createReadStream(tf).pipe(unpack)
eos(unpack, _ => check(t))
})
})
t.test('sync unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new UnpackSync({ cwd: dir, strict: true, transform: txFn })
unpack.end(fs.readFileSync(tf))
check(t)
})
t.test('loose', t => {
const unpack = new UnpackSync({ cwd: dir, transform: txFn })
unpack.end(fs.readFileSync(tf))
check(t)
})
})
})
})
})
t.test('transform error', t => {
const dir = path.resolve(unpackdir, 'transform-error')
mkdirp.sync(dir)
t.teardown(_ => rimraf(dir))
const tarfile = path.resolve(tars, 'body-byte-counts.tar')
const tardata = fs.readFileSync(tarfile)
const poop = new Error('poop')
const txFn = () => {
const tx = new MiniPass()
tx.write = () => tx.emit('error', poop)
tx.resume()
return tx
}
t.test('sync unpack', t => {
t.test('strict', t => {
const unpack = new UnpackSync({ cwd: dir, strict: true, transform: txFn })
const expect = 3
let actual = 0
unpack.on('error', er => {
t.equal(er, poop)
actual++
})
unpack.end(tardata)
t.equal(actual, expect, 'error count')
t.end()
})
t.test('loose', t => {
const unpack = new UnpackSync({ cwd: dir, transform: txFn })
const expect = 3
let actual = 0
unpack.on('warn', (code, msg, er) => {
t.equal(er, poop)
actual++
})
unpack.end(tardata)
t.equal(actual, expect, 'error count')
t.end()
})
t.end()
})
t.test('async unpack', t => {
// the last error is about the folder being deleted, just ignore that one
t.test('strict', t => {
const unpack = new Unpack({ cwd: dir, strict: true, transform: txFn })
t.plan(3)
t.teardown(() => {
unpack.removeAllListeners('error')
unpack.on('error', () => {})
})
unpack.on('error', er => t.equal(er, poop))
unpack.end(tardata)
})
t.test('loose', t => {
const unpack = new Unpack({ cwd: dir, transform: txFn })
t.plan(3)
t.teardown(() => unpack.removeAllListeners('warn'))
unpack.on('warn', (code, msg, er) => t.equal(er, poop))
unpack.end(tardata)
})
t.end()
})
t.end()
})
t.test('futimes/fchown failures', t => {
const archive = path.resolve(tars, 'utf8.tar')
const dir = path.resolve(unpackdir, 'futimes-fchown-fails')
const tardata = fs.readFileSync(archive)
const poop = new Error('poop')
const second = new Error('second error')
t.beforeEach(async () => {
await rimraf(dir)
await mkdirp(dir)
})
t.teardown(() => rimraf(dir))
const methods = ['utimes', 'chown']
methods.forEach(method => {
const fc = method === 'chown'
t.test(method + ' fallback', t => {
t.teardown(mutateFS.fail('f' + method, poop))
// forceChown will fail on systems where the user is not root
// and/or the uid/gid in the archive aren't valid. We're just
// verifying coverage here, so make the method auto-pass.
t.teardown(mutateFS.pass(method))
t.plan(2)
t.test('async unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new Unpack({ cwd: dir, strict: true, forceChown: fc })
unpack.on('finish', t.end)
unpack.end(tardata)
})
t.test('loose', t => {
const unpack = new Unpack({ cwd: dir, forceChown: fc })
unpack.on('finish', t.end)
unpack.on('warn', t.fail)
unpack.end(tardata)
})
})
t.test('sync unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new Unpack.Sync({ cwd: dir, strict: true, forceChown: fc })
unpack.end(tardata)
t.end()
})
t.test('loose', t => {
const unpack = new Unpack.Sync({ cwd: dir, forceChown: fc })
unpack.on('warn', t.fail)
unpack.end(tardata)
t.end()
})
})
})
t.test('also fail ' + method, t => {
const unmutate = mutateFS.fail('f' + method, poop)
const unmutate2 = mutateFS.fail(method, second)
t.teardown(() => {
unmutate()
unmutate2()
})
t.plan(2)
t.test('async unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new Unpack({ cwd: dir, strict: true, forceChown: fc })
t.plan(3)
unpack.on('error', er => t.equal(er, poop))
unpack.end(tardata)
})
t.test('loose', t => {
const unpack = new Unpack({ cwd: dir, forceChown: fc })
t.plan(3)
unpack.on('warn', (code, m, er) => t.equal(er, poop))
unpack.end(tardata)
})
})
t.test('sync unpack', t => {
t.plan(2)
t.test('strict', t => {
const unpack = new Unpack.Sync({ cwd: dir, strict: true, forceChown: fc })
t.plan(3)
unpack.on('error', er => t.equal(er, poop))
unpack.end(tardata)
})
t.test('loose', t => {
const unpack = new Unpack.Sync({ cwd: dir, forceChown: fc })
t.plan(3)
unpack.on('warn', (c, m, er) => t.equal(er, poop))
unpack.end(tardata)
})
})
})
})
t.end()
})
t.test('onentry option is preserved', t => {
const basedir = path.resolve(unpackdir, 'onentry-method')
mkdirp.sync(basedir)
t.teardown(() => rimraf(basedir))
let oecalls = 0
const onentry = entry => oecalls++
const data = makeTar([
{
path: 'd/i',
type: 'Directory',
},
{
path: 'd/i/r/dir',
type: 'Directory',
mode: 0o751,
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
{
path: 'd/i/r/file',
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
'',
'',
])
const check = t => {
t.equal(oecalls, 3)
oecalls = 0
t.end()
}
t.test('sync', t => {
const dir = path.join(basedir, 'sync')
mkdirp.sync(dir)
const unpack = new UnpackSync({ cwd: dir, onentry })
unpack.end(data)
check(t)
})
t.test('async', t => {
const dir = path.join(basedir, 'async')
mkdirp.sync(dir)
const unpack = new Unpack({ cwd: dir, onentry })
unpack.on('finish', () => check(t))
unpack.end(data)
})
t.end()
})
t.test('do not reuse hardlinks, only nlink=1 files', t => {
const basedir = path.resolve(unpackdir, 'hardlink-reuse')
mkdirp.sync(basedir)
t.teardown(() => rimraf(basedir))
const now = new Date('2018-04-30T18:30:39.025Z')
const data = makeTar([
{
path: 'overwriteme',
type: 'File',
size: 4,
mode: 0o644,
mtime: now,
},
'foo\n',
{
path: 'link',
linkpath: 'overwriteme',
type: 'Link',
mode: 0o644,
mtime: now,
},
{
path: 'link',
type: 'File',
size: 4,
mode: 0o644,
mtime: now,
},
'bar\n',
'',
'',
])
const checks = {
link: 'bar\n',
overwriteme: 'foo\n',
}
const check = t => {
for (const f in checks) {
t.equal(fs.readFileSync(basedir + '/' + f, 'utf8'), checks[f], f)
t.equal(fs.statSync(basedir + '/' + f).nlink, 1, f)
}
t.end()
}
t.test('async', t => {
const u = new Unpack({ cwd: basedir })
u.on('close', () => check(t))
u.end(data)
})
t.test('sync', t => {
const u = new UnpackSync({ cwd: basedir })
u.end(data)
check(t)
})
t.end()
})
t.test('trying to unpack a non-zlib gzip file should fail', t => {
const data = Buffer.from('hello this is not gzip data')
const dataGzip = Buffer.concat([Buffer.from([0x1f, 0x8b]), data])
const basedir = path.resolve(unpackdir, 'bad-archive')
t.test('abort if gzip has an error', t => {
t.plan(2)
const expect = {
message: /^zlib/,
errno: Number,
code: /^Z/,
recoverable: false,
cwd: normPath(basedir),
tarCode: 'TAR_ABORT',
}
const opts = {
cwd: basedir,
gzip: true,
}
new Unpack(opts)
.once('error', er => t.match(er, expect, 'async emits'))
.end(dataGzip)
const skip = !/^v([0-9]|1[0-3])\./.test(process.version) ? false
: 'node prior to v14 did not raise sync zlib errors properly'
t.throws(() => new UnpackSync(opts).end(dataGzip),
expect, 'sync throws', { skip })
})
t.test('bad archive if no gzip', t => {
t.plan(2)
const expect = {
tarCode: 'TAR_BAD_ARCHIVE',
recoverable: false,
}
const opts = { cwd: basedir }
new Unpack(opts)
.on('error', er => t.match(er, expect, 'async emits'))
.end(data)
t.throws(() => new UnpackSync(opts).end(data), expect, 'sync throws')
})
t.end()
})
t.test('handle errors on fs.close', t => {
const poop = new Error('poop')
const { close, closeSync } = fs
// have to actually close them, or else windows gets mad
fs.close = (fd, cb) => close(fd, () => cb(poop))
fs.closeSync = (fd) => {
closeSync(fd)
throw poop
}
t.teardown(() => Object.assign(fs, { close, closeSync }))
const dir = path.resolve(unpackdir, 'close-fail')
mkdirp.sync(dir + '/sync')
mkdirp.sync(dir + '/async')
const data = makeTar([
{
path: 'file',
type: 'File',
size: 1,
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'a',
'',
'',
])
t.plan(2)
new Unpack({ cwd: dir + '/async', strict: true })
.on('error', er => t.equal(er, poop, 'async'))
.end(data)
t.throws(() => new UnpackSync({
cwd: normPath(dir + '/sync'), strict: true,
}).end(data), poop, 'sync')
})
t.test('drop entry from dirCache if no longer a directory', {
skip: isWindows && 'symlinks not fully supported',
}, t => {
const dir = path.resolve(unpackdir, 'dir-cache-error')
mkdirp.sync(dir + '/sync/y')
mkdirp.sync(dir + '/async/y')
const data = makeTar([
{
path: 'x',
type: 'Directory',
},
{
path: 'x',
type: 'SymbolicLink',
linkpath: './y',
},
{
path: 'x/ginkoid',
type: 'File',
size: 'ginkoid'.length,
},
'ginkoid',
'',
'',
])
t.plan(2)
const WARNINGS = {}
const check = (t, path) => {
t.equal(fs.statSync(path + '/x').isDirectory(), true)
t.equal(fs.lstatSync(path + '/x').isSymbolicLink(), true)
t.equal(fs.statSync(path + '/y').isDirectory(), true)
t.strictSame(fs.readdirSync(path + '/y'), [])
t.throws(() => fs.readFileSync(path + '/x/ginkoid'), { code: 'ENOENT' })
t.strictSame(WARNINGS[path], [
'TAR_ENTRY_ERROR',
'Cannot extract through symbolic link',
])
t.end()
}
t.test('async', t => {
const path = dir + '/async'
new Unpack({ cwd: path })
.on('warn', (code, msg) => WARNINGS[path] = [code, msg])
.on('end', () => check(t, path))
.end(data)
})
t.test('sync', t => {
const path = dir + '/sync'
new UnpackSync({ cwd: path })
.on('warn', (code, msg) => WARNINGS[path] = [code, msg])
.end(data)
check(t, path)
})
})
t.test('using strip option when top level file exists', t => {
const dir = path.resolve(unpackdir, 'strip-with-top-file')
mkdirp.sync(dir + '/sync/y')
mkdirp.sync(dir + '/async/y')
const data = makeTar([
{
path: 'top',
type: 'File',
size: 0,
},
{
path: 'x',
type: 'Directory',
},
{
path: 'x/a',
type: 'File',
size: 'a'.length,
},
'a',
{
path: 'y',
type: 'GNUDumpDir',
},
{
path: 'y/b',
type: 'File',
size: 'b'.length,
},
'b',
'',
'',
])
t.plan(2)
const check = (t, path) => {
t.equal(fs.statSync(path).isDirectory(), true)
t.equal(fs.readFileSync(path + '/a', 'utf8'), 'a')
t.equal(fs.readFileSync(path + '/b', 'utf8'), 'b')
t.throws(() => fs.statSync(path + '/top'), { code: 'ENOENT' })
t.end()
}
t.test('async', t => {
const path = dir + '/async'
new Unpack({ cwd: path, strip: 1 })
.on('end', () => check(t, path))
.end(data)
})
t.test('sync', t => {
const path = dir + '/sync'
new UnpackSync({ cwd: path, strip: 1 }).end(data)
check(t, path)
})
})
t.test('handle EPERMs when creating symlinks', t => {
// https://github.com/npm/node-tar/issues/265
const msg = 'You do not have sufficient privilege to perform this operation.'
const er = Object.assign(new Error(msg), {
code: 'EPERM',
})
t.teardown(mutateFS.fail('symlink', er))
const data = makeTar([
{
path: 'x',
type: 'Directory',
},
{
path: 'x/y',
type: 'File',
size: 'hello, world'.length,
},
'hello, world',
{
path: 'x/link1',
type: 'SymbolicLink',
linkpath: './y',
},
{
path: 'x/link2',
type: 'SymbolicLink',
linkpath: './y',
},
{
path: 'x/link3',
type: 'SymbolicLink',
linkpath: './y',
},
{
path: 'x/z',
type: 'File',
size: 'hello, world'.length,
},
'hello, world',
'',
'',
])
const dir = path.resolve(unpackdir, 'eperm-symlinks')
mkdirp.sync(`${dir}/sync`)
mkdirp.sync(`${dir}/async`)
const check = path => {
t.match(WARNINGS, [
['TAR_ENTRY_ERROR', msg],
['TAR_ENTRY_ERROR', msg],
['TAR_ENTRY_ERROR', msg],
], 'got expected warnings')
t.equal(WARNINGS.length, 3)
WARNINGS.length = 0
t.equal(fs.readFileSync(`${path}/x/y`, 'utf8'), 'hello, world')
t.equal(fs.readFileSync(`${path}/x/z`, 'utf8'), 'hello, world')
t.throws(() => fs.statSync(`${path}/x/link1`), { code: 'ENOENT' })
t.throws(() => fs.statSync(`${path}/x/link2`), { code: 'ENOENT' })
t.throws(() => fs.statSync(`${path}/x/link3`), { code: 'ENOENT' })
}
const WARNINGS = []
const u = new Unpack({
cwd: `${dir}/async`,
onwarn: (code, msg, er) => WARNINGS.push([code, msg]),
})
u.on('end', () => {
check(`${dir}/async`)
const u = new UnpackSync({
cwd: `${dir}/sync`,
onwarn: (code, msg, er) => WARNINGS.push([code, msg]),
})
u.end(data)
check(`${dir}/sync`)
t.end()
})
u.end(data)
})
t.test('close fd when error writing', t => {
const data = makeTar([
{
type: 'Directory',
path: 'x',
},
{
type: 'File',
size: 1,
path: 'x/y',
},
'.',
'',
'',
])
t.teardown(mutateFS.fail('write', new Error('nope')))
const CLOSES = []
const OPENS = {}
const { open } = require('fs')
t.teardown(() => fs.open = open)
fs.open = (...args) => {
const cb = args.pop()
args.push((er, fd) => {
OPENS[args[0]] = fd
cb(er, fd)
})
return open.call(fs, ...args)
}
t.teardown(mutateFS.mutateArgs('close', ([fd]) => {
CLOSES.push(fd)
return [fd]
}))
const WARNINGS = []
const dir = path.resolve(unpackdir, 'close-on-write-error')
mkdirp.sync(dir)
const unpack = new Unpack({
cwd: dir,
onwarn: (code, msg) => WARNINGS.push([code, msg]),
})
unpack.on('end', () => {
for (const [path, fd] of Object.entries(OPENS)) {
t.equal(CLOSES.includes(fd), true, 'closed fd for ' + path)
}
t.end()
})
unpack.end(data)
})
t.test('close fd when error setting mtime', t => {
const data = makeTar([
{
type: 'Directory',
path: 'x',
},
{
type: 'File',
size: 1,
path: 'x/y',
atime: new Date('1979-07-01T19:10:00.000Z'),
ctime: new Date('2011-03-27T22:16:31.000Z'),
mtime: new Date('2011-03-27T22:16:31.000Z'),
},
'.',
'',
'',
])
// have to clobber these both, because we fall back
t.teardown(mutateFS.fail('futimes', new Error('nope')))
t.teardown(mutateFS.fail('utimes', new Error('nooooope')))
const CLOSES = []
const OPENS = {}
const { open } = require('fs')
t.teardown(() => fs.open = open)
fs.open = (...args) => {
const cb = args.pop()
args.push((er, fd) => {
OPENS[args[0]] = fd
cb(er, fd)
})
return open.call(fs, ...args)
}
t.teardown(mutateFS.mutateArgs('close', ([fd]) => {
CLOSES.push(fd)
return [fd]
}))
const WARNINGS = []
const dir = path.resolve(unpackdir, 'close-on-futimes-error')
mkdirp.sync(dir)
const unpack = new Unpack({
cwd: dir,
onwarn: (code, msg) => WARNINGS.push([code, msg]),
})
unpack.on('end', () => {
for (const [path, fd] of Object.entries(OPENS)) {
t.equal(CLOSES.includes(fd), true, 'closed fd for ' + path)
}
t.end()
})
unpack.end(data)
})
t.test('do not hang on large files that fail to open()', t => {
const data = makeTar([
{
type: 'Directory',
path: 'x',
},
{
type: 'File',
size: 31745,
path: 'x/y',
},
'x'.repeat(31745),
'',
'',
])
t.teardown(mutateFS.fail('open', new Error('nope')))
const dir = path.resolve(unpackdir, 'no-hang-for-large-file-failures')
mkdirp.sync(dir)
const WARNINGS = []
const unpack = new Unpack({
cwd: dir,
onwarn: (code, msg) => WARNINGS.push([code, msg]),
})
unpack.on('end', () => {
t.strictSame(WARNINGS, [['TAR_ENTRY_ERROR', 'nope']])
t.end()
})
unpack.write(data.slice(0, 2048))
setTimeout(() => {
unpack.write(data.slice(2048, 4096))
setTimeout(() => {
unpack.write(data.slice(4096))
setTimeout(() => {
unpack.end()
})
})
})
})
t.test('dirCache pruning unicode normalized collisions', {
skip: isWindows && 'symlinks not fully supported',
}, t => {
const data = makeTar([
{
type: 'Directory',
path: 'foo',
},
{
type: 'File',
path: 'foo/bar',
size: 1,
},
'x',
{
type: 'Directory',
// café
path: Buffer.from([0x63, 0x61, 0x66, 0xc3, 0xa9]).toString(),
},
{
type: 'SymbolicLink',
// cafe with a `
path: Buffer.from([0x63, 0x61, 0x66, 0x65, 0xcc, 0x81]).toString(),
linkpath: 'foo',
},
{
type: 'Directory',
path: 'foo',
},
{
type: 'File',
path: Buffer.from([0x63, 0x61, 0x66, 0xc3, 0xa9]).toString() + '/bar',
size: 1,
},
'y',
'',
'',
])
const check = (path, dirCache, t) => {
path = path.replace(/\\/g, '/')
t.strictSame([...dirCache.entries()][0], [`${path}/foo`, true])
t.equal(fs.readFileSync(path + '/foo/bar', 'utf8'), 'x')
t.end()
}
t.test('sync', t => {
const path = t.testdir()
const dirCache = new Map()
new UnpackSync({ cwd: path, dirCache }).end(data)
check(path, dirCache, t)
})
t.test('async', t => {
const path = t.testdir()
const dirCache = new Map()
new Unpack({ cwd: path, dirCache })
.on('close', () => check(path, dirCache, t))
.end(data)
})
t.end()
})
t.test('dircache prune all on windows when symlink encountered', t => {
if (process.platform !== 'win32') {
process.env.TESTING_TAR_FAKE_PLATFORM = 'win32'
t.teardown(() => {
delete process.env.TESTING_TAR_FAKE_PLATFORM
})
}
const symlinks = []
const Unpack = t.mock('../lib/unpack.js', {
fs: {
...fs,
symlink: (target, dest, cb) => {
symlinks.push(['async', target, dest])
process.nextTick(cb)
},
symlinkSync: (target, dest) => symlinks.push(['sync', target, dest]),
},
})
const UnpackSync = Unpack.Sync
const data = makeTar([
{
type: 'Directory',
path: 'foo',
},
{
type: 'File',
path: 'foo/bar',
size: 1,
},
'x',
{
type: 'Directory',
// café
path: Buffer.from([0x63, 0x61, 0x66, 0xc3, 0xa9]).toString(),
},
{
type: 'SymbolicLink',
// cafe with a `
path: Buffer.from([0x63, 0x61, 0x66, 0x65, 0xcc, 0x81]).toString(),
linkpath: 'safe/actually/but/cannot/be/too/careful',
},
{
type: 'File',
path: 'bar/baz',
size: 1,
},
'z',
'',
'',
])
const check = (path, dirCache, t) => {
// symlink blew away all dirCache entries before it
path = path.replace(/\\/g, '/')
t.strictSame([...dirCache.entries()], [
[`${path}/bar`, true],
])
t.equal(fs.readFileSync(`${path}/foo/bar`, 'utf8'), 'x')
t.equal(fs.readFileSync(`${path}/bar/baz`, 'utf8'), 'z')
t.end()
}
t.test('sync', t => {
const path = t.testdir()
const dirCache = new Map()
new UnpackSync({ cwd: path, dirCache }).end(data)
check(path, dirCache, t)
})
t.test('async', t => {
const path = t.testdir()
const dirCache = new Map()
new Unpack({ cwd: path, dirCache })
.on('close', () => check(path, dirCache, t))
.end(data)
})
t.end()
})
t.test('recognize C:.. as a dot path part', t => {
if (process.platform !== 'win32') {
process.env.TESTING_TAR_FAKE_PLATFORM = 'win32'
t.teardown(() => {
delete process.env.TESTING_TAR_FAKE_PLATFORM
})
}
const Unpack = t.mock('../lib/unpack.js', {
path: {
...path.win32,
win32: path.win32,
posix: path.posix,
},
})
const UnpackSync = Unpack.Sync
const data = makeTar([
{
type: 'File',
path: 'C:../x/y/z',
size: 1,
},
'z',
{
type: 'File',
path: 'x:..\\y\\z',
size: 1,
},
'x',
{
type: 'File',
path: 'Y:foo',
size: 1,
},
'y',
'',
'',
])
const check = (path, warnings, t) => {
t.equal(fs.readFileSync(`${path}/foo`, 'utf8'), 'y')
t.strictSame(warnings, [
[
'TAR_ENTRY_ERROR',
"path contains '..'",
'C:../x/y/z',
'C:../x/y/z',
],
['TAR_ENTRY_ERROR', "path contains '..'", 'x:../y/z', 'x:../y/z'],
[
'TAR_ENTRY_INFO',
'stripping Y: from absolute path',
'Y:foo',
'foo',
],
])
t.end()
}
t.test('async', t => {
const warnings = []
const path = t.testdir()
new Unpack({
cwd: path,
onwarn: (c, w, { entry, path }) => warnings.push([c, w, path, entry.path]),
})
.on('close', () => check(path, warnings, t))
.end(data)
})
t.test('sync', t => {
const warnings = []
const path = t.testdir()
new UnpackSync({
cwd: path,
onwarn: (c, w, { entry, path }) => warnings.push([c, w, path, entry.path]),
}).end(data)
check(path, warnings, t)
})
t.end()
})
node-tar-6.1.13/test/update.js 0000664 0000000 0000000 00000021532 14344174136 0016124 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const u = require('../lib/update.js')
const path = require('path')
const fs = require('fs')
const mutateFS = require('mutate-fs')
const { resolve } = require('path')
const fixtures = path.resolve(__dirname, 'fixtures')
const tars = path.resolve(fixtures, 'tars')
const zlib = require('zlib')
const spawn = require('child_process').spawn
const data = fs.readFileSync(tars + '/body-byte-counts.tar')
const dataNoNulls = data.slice(0, data.length - 1024)
const fixtureDef = {
'body-byte-counts.tar': data,
'no-null-eof.tar': dataNoNulls,
'truncated-head.tar': Buffer.concat([dataNoNulls, data.slice(0, 500)]),
'truncated-body.tar': Buffer.concat([dataNoNulls, data.slice(0, 700)]),
'zero.tar': Buffer.from(''),
'empty.tar': Buffer.alloc(512),
'compressed.tgz': zlib.gzipSync(data),
}
t.test('basic file add to archive (good or truncated)', t => {
const check = (file, t) => {
const c = spawn('tar', ['tf', file])
const out = []
c.stdout.on('data', chunk => out.push(chunk))
c.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
const actual = Buffer.concat(out).toString().trim().split(/\r?\n/)
t.same(actual, [
'1024-bytes.txt',
'512-bytes.txt',
'one-byte.txt',
'zero-byte.txt',
path.basename(__filename),
])
t.end()
})
}
const files = [
'body-byte-counts.tar',
'no-null-eof.tar',
'truncated-head.tar',
'truncated-body.tar',
]
const td = files.map(f => [f, fixtureDef[f]]).reduce((s, [k, v]) => {
s[k] = v
return s
}, {})
const fileList = [path.basename(__filename)]
t.test('sync', t => {
t.plan(files.length)
const dir = t.testdir(td)
for (const file of files) {
t.test(file, t => {
u({
sync: true,
file: resolve(dir, file),
cwd: __dirname,
}, fileList)
check(resolve(dir, file), t)
})
}
})
t.test('async cb', t => {
t.plan(files.length)
const dir = t.testdir(td)
for (const file of files) {
t.test(file, t => {
u({
file: resolve(dir, file),
cwd: __dirname,
}, fileList, er => {
if (er) {
throw er
}
check(resolve(dir, file), t)
})
})
}
})
t.test('async', t => {
t.plan(files.length)
const dir = t.testdir(td)
for (const file of files) {
t.test(file, t => {
u({
file: resolve(dir, file),
cwd: __dirname,
}, fileList).then(() => {
check(resolve(dir, file), t)
})
})
}
})
t.end()
})
t.test('add to empty archive', t => {
const check = (file, t) => {
const c = spawn('tar', ['tf', file])
const out = []
c.stdout.on('data', chunk => out.push(chunk))
c.on('close', (code, signal) => {
t.equal(code, 0)
t.equal(signal, null)
const actual = Buffer.concat(out).toString().trim().split(/\r?\n/)
t.same(actual, [
path.basename(__filename),
])
t.end()
})
}
const files = [
'empty.tar',
'zero.tar',
]
const td = files.map(f => [f, fixtureDef[f]]).reduce((s, [k, v]) => {
s[k] = v
return s
}, {})
files.push('not-existing.tar')
t.test('sync', t => {
const dir = t.testdir(td)
t.plan(files.length)
for (const file of files) {
t.test(file, t => {
u({
sync: true,
file: resolve(dir, file),
cwd: __dirname,
}, [path.basename(__filename)])
check(resolve(dir, file), t)
})
}
})
t.test('async cb', t => {
const dir = t.testdir(td)
t.plan(files.length)
for (const file of files) {
t.test(file, t => {
u({
file: resolve(dir, file),
cwd: __dirname,
}, [path.basename(__filename)], er => {
if (er) {
throw er
}
check(resolve(dir, file), t)
})
})
}
})
t.test('async', async t => {
const dir = t.testdir(td)
t.plan(files.length)
for (const file of files) {
t.test(file, t => {
u({
file: resolve(dir, file),
cwd: __dirname,
}, [path.basename(__filename)]).then(() => {
check(resolve(dir, file), t)
})
})
}
})
t.end()
})
t.test('cannot append to gzipped archives', t => {
const dir = t.testdir({
'compressed.tgz': fixtureDef['compressed.tgz'],
})
const file = resolve(dir, 'compressed.tgz')
const expect = new Error('cannot append to compressed archives')
const expectT = new TypeError('cannot append to compressed archives')
t.throws(_ => u({
file,
cwd: __dirname,
gzip: true,
}, [path.basename(__filename)]), expectT)
t.throws(_ => u({
file,
cwd: __dirname,
sync: true,
}, [path.basename(__filename)]), expect)
u({
file,
cwd: __dirname,
}, [path.basename(__filename)], er => {
t.match(er, expect)
t.end()
})
})
t.test('other throws', t => {
t.throws(_ => u({}, ['asdf']), new TypeError('file is required'))
t.throws(_ => u({ file: 'asdf' }, []),
new TypeError('no files or directories specified'))
t.end()
})
t.test('broken open', t => {
const dir = t.testdir({
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
})
const file = resolve(dir, 'body-byte-counts.tar')
const poop = new Error('poop')
t.teardown(mutateFS.fail('open', poop))
t.throws(_ => u({ sync: true, file: file }, ['README.md']), poop)
u({ file }, ['README.md'], er => {
t.match(er, poop)
t.end()
})
})
t.test('broken fstat', t => {
const td = {
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
}
const poop = new Error('poop')
t.test('sync', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
t.teardown(mutateFS.fail('fstat', poop))
t.throws(_ => u({ sync: true, file }, ['README.md']), poop)
t.end()
})
t.test('async', t => {
const dir = t.testdir(td)
const file = resolve(dir, 'body-byte-counts.tar')
t.teardown(mutateFS.fail('fstat', poop))
u({ file }, ['README.md'], async er => {
t.match(er, poop)
t.end()
})
})
t.end()
})
t.test('broken read', t => {
const dir = t.testdir({
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
})
const file = resolve(dir, 'body-byte-counts.tar')
const poop = new Error('poop')
t.teardown(mutateFS.fail('read', poop))
t.throws(_ => u({ sync: true, file }, ['README.md']), poop)
u({ file }, ['README.md'], er => {
t.match(er, poop)
t.end()
})
})
t.test('do not add older file', t => {
const dir = t.testdir({
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
'1024-bytes.txt': '.'.repeat(1024),
foo: 'foo',
})
const file = resolve(dir, 'body-byte-counts.tar')
const f = resolve(dir, '1024-bytes.txt')
const oldDate = new Date('1997-04-10T16:57:47.000Z')
fs.utimesSync(f, oldDate, oldDate)
// file size should not change
const expect = fixtureDef['body-byte-counts.tar'].length
const check = t => {
t.equal(fs.statSync(file).size, expect)
t.end()
}
t.test('sync', t => {
u({
mtimeCache: new Map(),
file,
cwd: dir,
sync: true,
filter: path => path === '1024-bytes.txt',
}, ['1024-bytes.txt', 'foo'])
check(t)
})
t.test('async', t => {
u({ file, cwd: dir }, ['1024-bytes.txt']).then(_ => check(t))
})
t.test('async cb', t => {
u({ file, cwd: dir }, ['1024-bytes.txt'], er => {
if (er) {
throw er
}
check(t)
})
})
t.end()
})
t.test('do add newer file', t => {
const setup = t => {
const dir = t.testdir({
'body-byte-counts.tar': fixtureDef['body-byte-counts.tar'],
'1024-bytes.txt': '.'.repeat(1024),
foo: 'foo',
})
const f = resolve(dir, '1024-bytes.txt')
const newDate = new Date(Date.now() + 24 * 60 * 60 * 1000)
fs.utimesSync(f, newDate, newDate)
return dir
}
// a chunk for the header, then 2 for the body
const expect = fixtureDef['body-byte-counts.tar'].length + 512 + 1024
const check = (file, t) => {
t.equal(fs.statSync(file).size, expect)
t.end()
}
t.test('sync', t => {
const dir = setup(t)
const file = resolve(dir, 'body-byte-counts.tar')
u({
mtimeCache: new Map(),
file,
cwd: dir,
sync: true,
filter: path => path === '1024-bytes.txt',
}, ['1024-bytes.txt', 'foo'])
check(file, t)
})
t.test('async', t => {
const dir = setup(t)
const file = resolve(dir, 'body-byte-counts.tar')
u({ file, cwd: dir }, ['1024-bytes.txt']).then(_ => check(file, t))
})
t.test('async cb', t => {
const dir = setup(t)
const file = resolve(dir, 'body-byte-counts.tar')
u({ file, cwd: dir }, ['1024-bytes.txt'], er => {
if (er) {
throw er
}
check(file, t)
})
})
t.end()
})
node-tar-6.1.13/test/warn-mixin.js 0000664 0000000 0000000 00000002073 14344174136 0016732 0 ustar 00root root 0000000 0000000 const t = require('tap')
const EE = require('events').EventEmitter
const warner = require('../lib/warn-mixin.js')
const Warner = warner(EE)
const w = new Warner()
t.type(w.warn, 'function')
const warning = []
w.once('warn', (code, msg, data) => warning.push(code, msg, data))
w.warn('code', 'hello')
t.same(warning, ['code', 'hello', { tarCode: 'code', code: 'code' }])
warning.length = 0
w.once('warn', (code, msg, data) => warning.push(code, msg, data))
w.warn('ok', new Error('this is fine'), { foo: 'bar' })
t.match(warning, ['ok', 'this is fine', {
message: 'this is fine',
foo: 'bar',
}])
w.strict = true
t.throws(_ => w.warn('code', 'hello', { data: 123 }),
{ message: 'hello', data: 123 })
const poop = new Error('poop')
t.throws(_ => w.warn('ok', poop), poop)
w.file = 'some/file'
t.throws(_ => w.warn('ok', 'this is fine'), { file: 'some/file' })
w.cwd = 'some/dir'
t.throws(_ => w.warn('ok', 'this is fine'), { cwd: 'some/dir' })
w.strict = false
t.throws(_ => w.warn('ok', 'this is fine', { recoverable: false }),
{ cwd: 'some/dir', recoverable: false })
node-tar-6.1.13/test/winchars.js 0000664 0000000 0000000 00000000370 14344174136 0016455 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const wc = require('../lib/winchars.js')
t.equal(wc.encode('<>'), '\uf03c\uf03e', 'encode')
t.equal(wc.decode(wc.encode('<>')), '<>', 'decode')
t.equal(wc.decode(wc.encode('\\|<>?:')), '\\|<>?:', 'all chars')
node-tar-6.1.13/test/write-entry.js 0000664 0000000 0000000 00000123011 14344174136 0017126 0 ustar 00root root 0000000 0000000 'use strict'
const t = require('tap')
const mkdirp = require('mkdirp')
// make our tests verify that windows link targets get turned into / paths
const fs = require('fs')
const { readlink, readlinkSync } = fs
fs.readlink = (path, cb) => {
readlink(path, (er, path) => {
if (er) {
return cb(er)
} else {
cb(null, path.replace(/\//g, '\\'))
}
})
}
fs.readlinkSync = path => readlinkSync(path).replace(/\//g, '\\')
const ReadEntry = require('../lib/read-entry.js')
const makeTar = require('./make-tar.js')
const WriteEntry = require('../lib/write-entry.js')
const path = require('path')
const fixtures = path.resolve(__dirname, 'fixtures')
const files = path.resolve(fixtures, 'files')
const Header = require('../lib/header.js')
const mutateFS = require('mutate-fs')
process.env.USER = 'isaacs'
const chmodr = require('chmodr')
const Parser = require('../lib/parse.js')
const rimraf = require('rimraf')
const isWindows = process.platform === 'win32'
const normPath = require('../lib/normalize-windows-path.js')
t.test('set up', t => {
const one = fs.statSync(files + '/hardlink-1')
const two = fs.statSync(files + '/hardlink-2')
if (one.dev !== two.dev || one.ino !== two.ino) {
fs.unlinkSync(files + '/hardlink-2')
fs.linkSync(files + '/hardlink-1', files + '/hardlink-2')
}
chmodr.sync(files, isWindows ? 0o666 : 0o644)
t.end()
})
t.test('100 byte filename', t => {
// do this one twice, so we have it with and without cache
let statCache = null
let linkCache = null
t.plan(2)
const runTest = t => {
const f = '100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'
const ws = new WriteEntry(f, {
cwd: files,
linkCache: linkCache,
statCache: statCache,
})
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.match(ws, {
header: {
cksumValid: true,
needPax: false,
path: '100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
mode: isWindows ? 0o666 : 0o644,
size: 100,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
},
})
const wss = new WriteEntry.Sync(f, {
cwd: files,
linkCache: linkCache,
statCache: statCache,
})
linkCache = ws.linkCache
statCache = ws.statCache
t.equal(out.slice(512).toString('hex'),
wss.read().slice(512).toString('hex'))
t.equal(out.length, 1024)
t.equal(out.slice(0, 100).toString(), f)
const h = new Header(out.slice(0, 512))
t.match(h, {
cksumValid: true,
needPax: false,
path: '100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
mode: isWindows ? 0o666 : 0o644,
size: 100,
linkpath: '',
uname: 'isaacs',
gname: '',
devmaj: 0,
devmin: 0,
})
t.equal(out.slice(512).toString('hex'),
'6363636363636363636363636363636363636363636363636363636363636363' +
'6363636363636363636363636363636363636363636363636363636363636363' +
'6363636363636363636363636363636363636363636363636363636363636363' +
'6363636300000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000')
t.end()
})
}
t.test('uncached', runTest)
t.test('cached', runTest)
})
t.test('directory', t => {
const ws = new WriteEntry('dir', {
cwd: files,
})
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.match(ws.header, {
cksumValid: true,
needPax: false,
path: 'dir/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.equal(out.length, 512)
const wss = new WriteEntry.Sync('dir', { cwd: files })
t.equal(wss.read().length, 512)
t.match(wss.header, {
cksumValid: true,
needPax: false,
path: 'dir/',
mode: isWindows ? 0o777 : 0o755,
size: 0,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('empty path for cwd', t => {
const ws = new WriteEntry('')
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.match(ws.header, {
cksumValid: true,
needPax: false,
path: './',
mode: isWindows ? 0o777 : fs.statSync('./').mode & 0o7777,
size: 0,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('symlink', {
skip: isWindows && 'symlinks not fully supported',
}, t => {
const ws = new WriteEntry('symlink', { cwd: files })
let out = []
ws.on('data', c => out.push(c))
const header = {
cksumValid: true,
needPax: false,
path: 'symlink',
size: 0,
linkpath: 'hardlink-2',
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
}
const wss = new WriteEntry.Sync('symlink', { cwd: files })
t.match(wss.header, header)
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 512)
t.match(ws.header, header)
t.end()
})
})
t.test('zero-byte file', t => {
const ws = new WriteEntry('files/zero-byte.txt', { cwd: fixtures })
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 512)
t.match(ws.header, {
path: 'files/zero-byte.txt',
cksumValid: true,
needPax: false,
mode: isWindows ? 0o666 : 0o644,
size: 0,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('zero-byte file, but close fails', t => {
const poop = new Error('poop')
t.teardown(mutateFS.fail('close', poop))
const ws = new WriteEntry('files/1024-bytes.txt', { cwd: fixtures })
ws.on('end', _ =>
t.fail('should not get an end, because the close fails'))
ws.on('error', er => {
t.match(er, { message: 'poop' })
t.end()
})
ws.resume()
})
t.test('hardlinks', t => {
const wss = new WriteEntry.Sync('hardlink-1', {
cwd: files,
})
const ws = new WriteEntry('files/hardlink-2', {
cwd: fixtures,
linkCache: wss.linkCache,
})
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 512)
t.match(ws.header, {
type: 'Link',
path: 'files/hardlink-2',
cksumValid: true,
needPax: false,
mode: isWindows ? 0o666 : 0o644,
size: 0,
linkpath: 'files/hardlink-1',
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('hardlinks far away', t => {
const h1 = 'hardlink-1'
const f = path.resolve(files, h1)
const stat = fs.statSync(f)
const linkCache = new Map([[stat.dev + ':' + stat.ino, '/a/b/c/d/e']])
const ws = new WriteEntry('files/hardlink-2', {
cwd: fixtures,
linkCache: linkCache,
})
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 1024)
t.match(ws.header, {
path: 'files/hardlink-2',
cksumValid: true,
needPax: false,
mode: isWindows ? 0o666 : 0o644,
size: 26,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('really deep path', t => {
const f = 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'
const ws = new WriteEntry(f, { cwd: files })
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.match(ws.header, {
cksumValid: true,
needPax: true,
path: 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
mode: isWindows ? 0o666 : 0o644,
size: 100,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.equal(out.length, 2048)
t.end()
})
})
t.test('no pax', t => {
const f = 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'
const ws = new WriteEntry(f, { cwd: files, noPax: true })
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.match(ws.header, {
cksumValid: true,
needPax: true,
path: 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
mode: isWindows ? 0o666 : 0o644,
size: 100,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.equal(out.length, 1024)
t.end()
})
})
t.test('nonexistent file', t => {
const f = path.resolve(files, 'does not exist')
const ws = new WriteEntry('does not exist', { cwd: files })
ws.on('error', er => {
t.match(er, {
message: 'ENOENT: no such file or directory, lstat \'' + f + '\'',
code: 'ENOENT',
path: f,
syscall: 'lstat',
})
t.end()
})
})
t.test('absolute path', t => {
const absolute = path.resolve(files, '512-bytes.txt')
const { root } = path.parse(absolute)
const f = root + root + root + absolute
const warn = normPath(isWindows ? root : root + root + root + root)
t.test('preservePaths=false strict=false', t => {
const warnings = []
// on windows, c:\c:\c:\... is a valid path, so just use the
// single-root absolute version of it.
const ws = new WriteEntry(isWindows ? absolute : f, {
cwd: files,
onwarn: (c, m, p) => warnings.push([c, m, p]),
})
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 1024)
t.match(warnings, [[
'TAR_ENTRY_INFO',
`stripping ${warn} from absolute path`,
{ path: normPath(isWindows ? absolute : f) },
]])
t.match(ws.header, {
cksumValid: true,
needPax: false,
path: normPath(absolute.replace(/^(\/|[a-z]:[/\\])*/i, '')),
mode: isWindows ? 0o666 : 0o644,
size: 512,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('preservePaths=true', t => {
t.plan(2)
// with preservePaths, strictness doens't matter
;[true, false].forEach(strict => {
t.test('strict=' + strict, t => {
const warnings = []
const ws = new WriteEntry(isWindows ? absolute : f, {
cwd: files,
strict: strict,
preservePaths: true,
onwarn: (c, m, p) => warnings.push([c, m, p]),
})
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(warnings.length, 0)
t.match(ws.header, {
cksumValid: true,
needPax: false,
path: normPath(isWindows ? absolute : f),
mode: isWindows ? 0o666 : 0o644,
size: 512,
linkpath: null,
uname: 'isaacs',
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
})
})
t.test('preservePaths=false strict=true', t => {
t.throws(_ => {
new WriteEntry(isWindows ? absolute : f, {
strict: true,
cwd: files,
})
}, {
message: /stripping .* from absolute path/,
path: normPath(isWindows ? absolute : f),
})
t.end()
})
t.end()
})
t.throws(_ => new WriteEntry(null), new TypeError('path is required'))
t.test('no user environ, sets uname to empty string', t => {
delete process.env.USER
const ws = new WriteEntry('512-bytes.txt', { cwd: files })
let out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 1024)
t.match(ws.header, {
cksumValid: true,
needPax: false,
path: '512-bytes.txt',
mode: isWindows ? 0o666 : 0o644,
size: 512,
uname: '',
linkpath: null,
gname: null,
devmaj: 0,
devmin: 0,
})
t.end()
})
})
t.test('an unsuppored type', {
skip: isWindows && '/dev/random on windows',
}, t => {
const ws = new WriteEntry('/dev/random', { preservePaths: true })
ws.on('data', c => {
throw new Error('should not get data from random')
})
ws.on('stat', stat => {
t.match(stat, {
dev: Number,
mode: 0o020666,
nlink: 1,
rdev: Number,
blksize: Number,
ino: Number,
size: 0,
blocks: 0,
})
t.ok(stat.isCharacterDevice(), 'random is a character device')
})
ws.on('end', _ => {
t.match(ws, { type: 'Unsupported', path: '/dev/random' })
t.end()
})
})
t.test('readlink fail', t => {
const expect = {
syscall: 'readlink',
path: String,
}
// pretend everything is a symbolic link, then read something that isn't
t.teardown(mutateFS.statType('SymbolicLink'))
t.throws(_ => {
return new WriteEntry.Sync('write-entry.js', { cwd: __dirname })
}, expect)
new WriteEntry('write-entry.js', { cwd: __dirname }).on('error', er => {
t.match(er, expect)
t.equal(normPath(er.path), normPath(__filename))
t.end()
})
})
t.test('open fail', t => {
t.teardown(mutateFS.fail('open', new Error('pwn')))
t.throws(_ => new WriteEntry.Sync('write-entry.js', { cwd: __dirname }),
{ message: 'pwn' })
new WriteEntry('write-entry.js', { cwd: __dirname }).on('error', er => {
t.match(er, { message: 'pwn' })
t.end()
})
})
t.test('read fail', t => {
const expect = {
message: 'EISDIR: illegal operation on a directory, read',
code: 'EISDIR',
syscall: 'read',
}
// pretend everything is a file, then read something that isn't
t.teardown(mutateFS.statMutate((er, st) => {
if (er) {
return [er, st]
}
st.isFile = () => true
st.size = 123
}))
t.throws(_ => new WriteEntry.Sync('fixtures', {
cwd: __dirname,
}), expect)
new WriteEntry('fixtures', { cwd: __dirname }).on('error', er => {
t.match(er, expect)
t.end()
})
})
t.test('read invalid EOF', t => {
t.teardown(mutateFS.mutate('read', (er, br) => [er, 0]))
const expect = {
message: 'encountered unexpected EOF',
path: normPath(__filename),
syscall: 'read',
code: 'EOF',
}
t.throws(_ => new WriteEntry.Sync('write-entry.js', { cwd: __dirname }),
expect)
new WriteEntry('write-entry.js', { cwd: __dirname }).on('error', er => {
t.match(er, expect)
t.end()
})
})
t.test('read overflow expectation', t => {
t.teardown(mutateFS.statMutate((er, st) => {
if (st) {
st.size = 3
}
}))
const f = '512-bytes.txt'
const expect = {
message: 'did not encounter expected EOF',
path: normPath(path.resolve(files, f)),
syscall: 'read',
code: 'EOF',
}
t.plan(2)
t.throws(_ => new WriteEntry.Sync(f, { cwd: files, maxReadSize: 2 }), expect)
new WriteEntry(f, { cwd: files, maxReadSize: 2 }).on('error', er => {
t.match(er, expect)
}).resume()
})
t.test('short reads', t => {
t.teardown(mutateFS.zenoRead())
const cases = {
'1024-bytes.txt': new Array(1024).join('x') + '\n',
'100-byte-filename-cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc': new Array(101).join('c'),
}
const maxReadSize = [null, 1024, 100, 111]
Object.keys(cases).forEach(filename => {
t.test(filename.split('byte').shift() + 'byte', t => {
const contents = cases[filename]
maxReadSize.forEach(mRS => {
t.test('maxReadSize=' + mRS, t => {
let out = []
const ws = new WriteEntry(filename, {
maxReadSize: mRS,
cwd: files,
})
ws.on('data', c => out.push(c))
ws.on('end', _ => {
out = Buffer.concat(out)
t.equal(out.length, 512 * Math.ceil(1 + contents.length / 512))
t.equal(out.slice(512).toString().replace(/\0.*$/, ''), contents)
const wss = new WriteEntry.Sync(filename, { cwd: files })
const syncOut = wss.read()
t.equal(syncOut.length, out.length)
t.equal(syncOut.slice(512).toString(), out.slice(512).toString())
t.end()
})
})
})
t.end()
})
})
t.end()
})
t.test('win32 path conversion', {
skip: isWindows && 'no need to test on windows',
}, t => {
const ws = new WriteEntry('long-path\\r', {
cwd: files,
win32: true,
})
t.equal(ws.path, 'long-path/r')
t.end()
})
t.test('win32 <|>? in paths', {
skip: isWindows && 'do not create annoying junk on windows systems',
}, t => {
const file = path.resolve(fixtures, '<|>?.txt')
const uglyName = Buffer.from('ef80bcef81bcef80beef80bf2e747874', 'hex').toString()
const ugly = path.resolve(fixtures, uglyName)
t.teardown(_ => {
rimraf.sync(file)
rimraf.sync(ugly)
})
fs.writeFileSync(ugly, '<|>?')
const wc = new WriteEntry(uglyName, {
cwd: fixtures,
win32: true,
})
const out = []
wc.on('data', c => out.push(c))
wc.on('end', _ => {
const data = Buffer.concat(out).toString()
t.equal(data.slice(0, 4), '<|>?')
t.end()
})
t.equal(wc.path, '<|>?.txt')
t.equal(wc.absolute, ugly)
})
t.test('uid doesnt match, dont set uname', t => {
t.teardown(mutateFS.statMutate((er, st) => {
if (st) {
st.uid -= 1
}
}))
const ws = new WriteEntry('long-path/r', {
cwd: files,
})
t.notOk(ws.uname)
t.end()
})
t.test('override absolute to some other file', t => {
const ws = new WriteEntry('blerg', {
absolute: files + '/one-byte.txt',
})
const out = []
ws.on('data', c => out.push(c))
ws.on('end', _ => {
const data = Buffer.concat(out)
t.equal(data.length, 1024)
t.match(data.slice(512).toString(), /^a\0{511}$/)
t.match(ws, {
path: 'blerg',
header: { size: 1 },
})
const wss = new WriteEntry.Sync('blerg', {
absolute: files + '/one-byte.txt',
})
const sdata = wss.read()
t.equal(sdata.length, 1024)
t.match(sdata.slice(512).toString(), /^a\0{511}$/)
t.match(wss, {
path: 'blerg',
header: { size: 1 },
})
t.end()
})
})
t.test('portable entries, nothing platform-specific', t => {
const om = 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt'
const ws = new WriteEntry(om, {
cwd: files,
portable: true,
})
const pexpect = {
atime: null,
charset: null,
comment: null,
ctime: null,
gid: null,
gname: null,
linkpath: null,
path: 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt',
size: 2,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
}
const hexpect = {
size: 2,
ctime: null,
atime: null,
uid: null,
uname: '',
gid: null,
gname: '',
}
const ps = new Parser()
const wss = new WriteEntry.Sync(om, {
cwd: files,
portable: true,
})
ps.on('entry', entry => {
t.match(entry.extended, pexpect)
t.match(entry.header, hexpect)
})
ps.end(wss.read())
const p = new Parser()
ws.pipe(p)
p.on('entry', entry => {
t.match(entry.extended, pexpect)
t.match(entry.header, hexpect)
t.end()
})
})
t.test('no mtime', t => {
const om = 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt'
const ws = new WriteEntry(om, {
cwd: files,
noMtime: true,
portable: true,
})
const pexpect = {
atime: null,
mtime: null,
charset: null,
comment: null,
ctime: null,
gid: null,
gname: null,
linkpath: null,
path: 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt',
size: 2,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
}
const hexpect = {
size: 2,
ctime: null,
atime: null,
mtime: null,
uid: null,
uname: '',
gid: null,
gname: '',
}
const ps = new Parser()
const wss = new WriteEntry.Sync(om, {
cwd: files,
portable: true,
noMtime: true,
})
ps.on('entry', entry => {
t.match(entry.extended, pexpect)
t.match(entry.header, hexpect)
})
ps.end(wss.read())
const p = new Parser()
ws.pipe(p)
p.on('entry', entry => {
t.match(entry.extended, pexpect)
t.match(entry.header, hexpect)
t.end()
})
})
t.test('force mtime', t => {
const om = 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt'
const date = new Date('1979-07-01T19:10:00.000Z')
const ws = new WriteEntry(om, {
cwd: files,
mtime: date,
portable: true,
})
const pexpect = {
atime: null,
mtime: new Date('1979-07-01T19:10:00.000Z'),
charset: null,
comment: null,
ctime: null,
gid: null,
gname: null,
linkpath: null,
path: 'long-path/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/Ω.txt',
size: 2,
uid: null,
uname: null,
dev: null,
ino: null,
nlink: null,
}
const hexpect = {
size: 2,
ctime: null,
atime: null,
mtime: new Date('1979-07-01T19:10:00.000Z'),
uid: null,
uname: '',
gid: null,
gname: '',
}
const ps = new Parser()
const wss = new WriteEntry.Sync(om, {
cwd: files,
portable: true,
mtime: new Date('1979-07-01T19:10:00.000Z'),
})
ps.on('entry', entry => {
t.match(entry.extended, pexpect)
t.match(entry.header, hexpect)
})
ps.end(wss.read())
const p = new Parser()
ws.pipe(p)
p.on('entry', entry => {
t.match(entry.extended, pexpect)
t.match(entry.header, hexpect)
t.end()
})
})
t.test('portable dir entries, no mtime', t => {
const dir = 'long-path/'
const ws = new WriteEntry(dir, {
cwd: files,
portable: true,
})
const hexpect = {
path: 'long-path/',
ctime: null,
atime: null,
uid: null,
uname: '',
gid: null,
gname: '',
mtime: null,
}
const ps = new Parser()
const wss = new WriteEntry.Sync(dir, {
cwd: files,
portable: true,
})
ps.on('entry', entry => {
t.match(entry.header, hexpect)
})
ps.end(wss.read())
const p = new Parser()
ws.pipe(p)
p.on('entry', entry => {
t.match(entry.header, hexpect)
t.end()
})
})
t.test('writing more data than is appropriate', t => {
const path = t.testdir({
file: 'hello',
})
const wss = new WriteEntry(`${path}/file`)
wss.on('error', er => {
t.match(er, {
message: 'writing more data than expected',
})
t.end()
})
wss.on('stat', () => wss.write(Buffer.from('some more stuff')))
})
t.test('write entry from read entry', t => {
const data = makeTar([
{
path: '$',
type: 'File',
size: 10,
mode: isWindows ? 0o777 : 0o755,
uid: 123,
gid: 321,
ctime: new Date('1979-07-01'),
atime: new Date('1980-08-17'),
},
'$$$$$$$$$$',
{
path: 'blep',
type: 'SymbolicLink',
linkpath: 'xyz',
},
'',
'',
])
t.test('basic file', t => {
const fileEntry = new ReadEntry(new Header(data))
const wetFile = new WriteEntry.Tar(fileEntry)
const out = []
let wetFileEnded = false
wetFile.on('data', c => out.push(c))
wetFile.on('end', _ => wetFileEnded = true)
fileEntry.write(data.slice(512, 550))
fileEntry.write(data.slice(550, 1000))
fileEntry.end(data.slice(1000, 1024))
t.equal(wetFileEnded, true)
const result = Buffer.concat(out)
t.equal(result.length, 1024)
t.equal(result.toString().replace(/\0.*$/, ''), '$')
const body = result.slice(512).toString().replace(/\0*$/, '')
t.equal(body, '$$$$$$$$$$')
t.end()
})
t.test('basic file', t => {
const data = makeTar([
{
path: '$',
type: 'Directory',
size: 0,
mode: isWindows ? 0o777 : 0o755,
uid: 123,
gid: 321,
ctime: new Date('1979-07-01'),
atime: new Date('1980-08-17'),
mtime: new Date('1997-06-21'),
},
'',
'',
])
const fileEntry = new ReadEntry(new Header(data))
const wetFile = new WriteEntry.Tar(fileEntry, { portable: true })
const out = []
let wetFileEnded = false
wetFile.on('data', c => out.push(c))
wetFile.on('end', _ => wetFileEnded = true)
fileEntry.end()
t.equal(wetFileEnded, true)
const result = Buffer.concat(out)
t.match(new Header(result), { mtime: null })
t.end()
})
t.test('with pax header', t => {
const fileEntryPax = new ReadEntry(new Header(data))
fileEntryPax.path = new Array(200).join('$')
const wetPax = new WriteEntry.Tar(fileEntryPax)
let wetPaxEnded = false
const out = []
wetPax.on('data', c => out.push(c))
wetPax.on('end', _ => wetPaxEnded = true)
fileEntryPax.write(data.slice(512, 550))
fileEntryPax.write(data.slice(550, 1000))
fileEntryPax.end(data.slice(1000, 1024))
t.equal(wetPaxEnded, true)
const result = Buffer.concat(out)
t.equal(result.length, 2048)
t.match(result.slice(1024, 1124).toString(), /^\$+\0?$/)
const body = result.slice(1536).toString().replace(/\0*$/, '')
t.match(new Header(result), { type: 'ExtendedHeader' })
t.equal(body, '$$$$$$$$$$')
t.end()
})
t.test('pax and portable', t => {
const fileEntryPax = new ReadEntry(new Header(data))
fileEntryPax.path = new Array(200).join('$')
const wetPax = new WriteEntry.Tar(fileEntryPax, { portable: true })
let wetPaxEnded = false
const out = []
wetPax.on('data', c => out.push(c))
wetPax.on('end', _ => wetPaxEnded = true)
fileEntryPax.write(data.slice(512, 550))
fileEntryPax.write(data.slice(550, 1000))
fileEntryPax.end(data.slice(1000, 1024))
t.equal(wetPaxEnded, true)
const result = Buffer.concat(out)
t.equal(result.length, 2048)
t.match(result.slice(1024, 1124).toString(), /^\$+\0?$/)
t.match(new Header(result), { type: 'ExtendedHeader' })
t.match(new Header(result.slice(1024)), {
ctime: null,
atime: null,
uname: '',
gname: '',
})
const body = result.slice(1536).toString().replace(/\0*$/, '')
t.equal(body, '$$$$$$$$$$')
t.end()
})
t.test('pax, portable, and noMtime', t => {
const fileEntryPax = new ReadEntry(new Header(data))
fileEntryPax.path = new Array(200).join('$')
const wetPax = new WriteEntry.Tar(fileEntryPax, {
noMtime: true,
portable: true,
})
let wetPaxEnded = false
const out = []
wetPax.on('data', c => out.push(c))
wetPax.on('end', _ => wetPaxEnded = true)
fileEntryPax.write(data.slice(512, 550))
fileEntryPax.write(data.slice(550, 1000))
fileEntryPax.end(data.slice(1000, 1024))
t.equal(wetPaxEnded, true)
const result = Buffer.concat(out)
t.equal(result.length, 2048)
t.match(result.slice(1024, 1124).toString(), /^\$+\0?$/)
t.match(new Header(result), { type: 'ExtendedHeader' })
t.match(new Header(result.slice(1024)), {
mtime: null,
ctime: null,
atime: null,
uname: '',
gname: '',
})
const body = result.slice(1536).toString().replace(/\0*$/, '')
t.equal(body, '$$$$$$$$$$')
t.end()
})
t.test('abs path', t => {
const fileEntry = new ReadEntry(new Header(data))
fileEntry.path = '/a/b/c'
t.test('warn', t => {
const warnings = []
new WriteEntry.Tar(fileEntry, {
onwarn: (code, msg, data) => warnings.push(code, msg, data),
})
t.match(warnings, ['TAR_ENTRY_INFO', 'stripping / from absolute path', {
path: '/a/b/c',
}])
t.end()
})
t.test('preserve', t => {
const warnings = []
new WriteEntry.Tar(fileEntry, {
onwarn: (code, msg, data) => warnings.push(code, msg, data),
preservePaths: true,
})
t.same(warnings, [])
t.end()
})
t.test('throw', t => {
t.throws(_ => new WriteEntry.Tar(fileEntry, {
strict: true,
}))
t.end()
})
t.end()
})
t.test('no block remain', t => {
const readEntry = new ReadEntry(new Header({
size: 512,
type: 'File',
path: 'x',
}))
const wet = new WriteEntry.Tar(readEntry)
const out = []
wet.on('data', c => out.push(c))
let wetEnded = false
wet.on('end', _ => wetEnded = true)
t.equal(wetEnded, false)
readEntry.end(Buffer.from(new Array(513).join('@')))
t.equal(wetEnded, true)
const res = Buffer.concat(out)
t.equal(res.length, 1024)
t.match(res.slice(512).toString(), /^@+$/)
t.end()
})
t.test('write more than appropriate', t => {
const readEntry = new ReadEntry(new Header({
path: 'x',
type: 'File',
size: '1',
}))
const wet = new WriteEntry.Tar(readEntry)
t.throws(_ => wet.write(Buffer.from(new Array(1024).join('x'))))
t.end()
})
t.end()
})
// https://github.com/npm/node-tar/issues/284
t.test('prefix and hard links', t => {
const dir = path.resolve(fixtures, 'writeentry-prefix-hardlinks')
rimraf.sync(dir)
t.teardown(_ => rimraf.sync(dir))
mkdirp.sync(dir + '/in/z/b/c')
fs.writeFileSync(dir + '/in/target', 'ddd')
fs.linkSync(dir + '/in/target', dir + '/in/z/b/c/d')
fs.linkSync(dir + '/in/target', dir + '/in/z/b/d')
fs.linkSync(dir + '/in/target', dir + '/in/z/d')
fs.linkSync(dir + '/in/target', dir + '/in/y')
const long = 'y'.repeat(250)
fs.linkSync(dir + '/in/target', dir + '/in/' + long)
const expect = [
{
type: 'Directory',
path: 'out/x/',
},
{
type: 'File',
size: 3,
path: 'out/x/target',
},
'ddd\0',
{
path: 'out/x/y',
type: 'Link',
linkpath: 'out/x/target',
},
{
path: 'PaxHeader/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
type: 'ExtendedHeader',
},
new RegExp('^266 path=out.x.' + long + '[\\w\\W]*linkpath=out.x.target'),
{
path: 'out/x/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
type: 'Link',
linkpath: 'out/x/target',
},
{
type: 'Directory',
path: 'out/x/z/',
},
{
type: 'Directory',
path: 'out/x/z/b/',
},
{
path: 'out/x/z/d',
type: 'Link',
linkpath: 'out/x/target',
},
{
type: 'Directory',
path: 'out/x/z/b/c/',
},
{
path: 'out/x/z/b/d',
type: 'Link',
linkpath: 'out/x/target',
},
{
path: 'out/x/z/b/c/d',
type: 'Link',
linkpath: 'out/x/target',
},
]
const check = (out, t) => {
const data = Buffer.concat(out)
expect.forEach((e, i) => {
if (typeof e === 'string') {
t.equal(data.slice(i * 512, i * 512 + e.length).toString(), e)
} else if (e instanceof RegExp) {
t.match(data.slice(i * 512, (i + 1) * 512).toString(), e)
} else {
t.match(new Header(data.slice(i * 512, (i + 1) * 512)), e)
}
})
}
const runTest = async (t, path, Class) => {
const linkCache = new Map()
const statCache = new Map()
const opt = {
cwd: dir + '/in',
prefix: 'out/x',
noDirRecurse: true,
linkCache,
statCache,
}
const out = []
const entry = (path) => new Promise(resolve => {
const p = new Class(path, opt)
p.on('end', resolve)
p.on('data', d => out.push(d))
})
await entry(path)
if (path === '.') {
path = './'
}
await entry(`${path}target`)
await entry(`${path}y`)
await entry(`${path}${long}`)
await entry(`${path}z`)
await entry(`${path}z/b`)
await entry(`${path}z/d`)
await entry(`${path}z/b/c`)
await entry(`${path}z/b/d`)
await entry(`${path}z/b/c/d`)
check(out, t)
}
t.test('async', t => {
t.test('.', t => runTest(t, '.', WriteEntry))
return t.test('./', t => runTest(t, './', WriteEntry))
})
t.test('sync', t => {
t.test('.', t => runTest(t, '.', WriteEntry.Sync))
return t.test('./', t => runTest(t, './', WriteEntry.Sync))
})
t.end()
})
t.test('prefix and hard links from tar entries', t => {
const long = 'y'.repeat(250)
const expect = [
{
type: 'Directory',
path: 'out/x/',
},
{
type: 'File',
size: 3,
path: 'out/x/target',
},
'ddd\0',
{
path: 'out/x/y',
type: 'Link',
linkpath: 'out/x/target',
},
{
path: 'PaxHeader/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
type: 'ExtendedHeader',
},
new RegExp('^266 path=out.x.' + long + '[\\w\\W]*linkpath=out.x.target'),
{
path: 'out/x/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
type: 'Link',
linkpath: 'out/x/target',
},
{
type: 'Directory',
path: 'out/x/z/',
},
{
type: 'Directory',
path: 'out/x/z/b/',
},
{
path: 'out/x/z/d',
type: 'Link',
linkpath: 'out/x/target',
},
{
type: 'Directory',
path: 'out/x/z/b/c/',
},
{
path: 'out/x/z/b/d',
type: 'Link',
linkpath: 'out/x/target',
},
{
path: 'out/x/z/b/c/d',
type: 'Link',
linkpath: 'out/x/target',
},
]
const data = makeTar([
{
type: 'Directory',
path: './',
},
{
type: 'File',
size: 3,
path: 'target',
},
'ddd\0',
{
path: 'y',
type: 'Link',
linkpath: 'target',
},
{
path: 'PaxHeader/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
type: 'ExtendedHeader',
size: ('260 path=' + long + '\n19 linkpath=target\n').length,
},
'260 path=' + long + '\n19 linkpath=target\n',
{
path: 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/',
},
{
type: 'Directory',
path: 'z/b/',
},
{
path: 'z/d',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/b/c/',
},
{
path: 'z/b/d',
type: 'Link',
linkpath: 'target',
},
{
path: 'z/b/c/d',
type: 'Link',
linkpath: 'target',
},
'',
'',
])
const check = (out, t) => {
const data = Buffer.concat(out)
expect.forEach((e, i) => {
if (typeof e === 'string') {
t.equal(data.slice(i * 512, i * 512 + e.length).toString(), e)
} else if (e instanceof RegExp) {
t.match(data.slice(i * 512, (i + 1) * 512).toString(), e)
} else {
t.match(new Header(data.slice(i * 512, (i + 1) * 512)), e)
}
})
}
const runTest = async (t, path) => {
const linkCache = new Map()
const statCache = new Map()
const opt = {
prefix: 'out/x',
noDirRecurse: true,
linkCache,
statCache,
}
const out = []
const parser = new Parser({
strict: true,
onentry: readEntry => {
const p = new WriteEntry.Tar(readEntry, opt)
p.on('data', d => out.push(d))
},
})
parser.on('end', () => check(out, t))
parser.end(data)
}
t.test('.', t => runTest(t, '.'))
t.test('./', t => runTest(t, './'))
t.end()
})
t.test('hard links and no prefix', t => {
const dir = path.resolve(fixtures, 'writeentry-prefix-hardlinks')
t.teardown(_ => rimraf.sync(dir))
mkdirp.sync(dir + '/in/z/b/c')
fs.writeFileSync(dir + '/in/target', 'ddd')
fs.linkSync(dir + '/in/target', dir + '/in/z/b/c/d')
fs.linkSync(dir + '/in/target', dir + '/in/z/b/d')
fs.linkSync(dir + '/in/target', dir + '/in/z/d')
fs.linkSync(dir + '/in/target', dir + '/in/y')
const expect = [
{
type: 'Directory',
path: './',
},
{
type: 'File',
size: 3,
path: 'target',
},
'ddd\0',
{
path: 'y',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/',
},
{
type: 'Directory',
path: 'z/b/',
},
{
path: 'z/d',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/b/c/',
},
{
path: 'z/b/d',
type: 'Link',
linkpath: 'target',
},
{
path: 'z/b/c/d',
type: 'Link',
linkpath: 'target',
},
]
const check = (out, t) => {
const data = Buffer.concat(out)
expect.forEach((e, i) => {
if (typeof e === 'string') {
t.equal(data.slice(i * 512, i * 512 + e.length).toString(), e)
} else {
t.match(new Header(data.slice(i * 512, (i + 1) * 512)), e)
}
})
}
const runTest = async (t, path, Class) => {
const linkCache = new Map()
const statCache = new Map()
const opt = {
cwd: dir + '/in',
linkCache,
statCache,
}
const out = []
const entry = (path) => new Promise(resolve => {
const p = new Class(path, opt)
p.on('end', resolve)
p.on('data', d => out.push(d))
})
await entry(path)
if (path === '.') {
path = './'
}
await entry(`${path}target`)
await entry(`${path}y`)
await entry(`${path}z`)
await entry(`${path}z/b`)
await entry(`${path}z/d`)
await entry(`${path}z/b/c`)
await entry(`${path}z/b/d`)
await entry(`${path}z/b/c/d`)
check(out, t)
}
t.test('async', t => {
t.test('.', t => runTest(t, '.', WriteEntry))
return t.test('./', t => runTest(t, './', WriteEntry))
})
t.test('sync', t => {
t.test('.', t => runTest(t, '.', WriteEntry.Sync))
return t.test('./', t => runTest(t, './', WriteEntry.Sync))
})
t.end()
})
t.test('hard links from tar entries and no prefix', t => {
const expect = [
{
type: 'Directory',
path: './',
},
{
type: 'File',
size: 3,
path: 'target',
},
'ddd\0',
{
path: 'y',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/',
},
{
type: 'Directory',
path: 'z/b/',
},
{
path: 'z/d',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/b/c/',
},
{
path: 'z/b/d',
type: 'Link',
linkpath: 'target',
},
{
path: 'z/b/c/d',
type: 'Link',
linkpath: 'target',
},
]
const data = makeTar([
{
type: 'Directory',
path: './',
},
{
type: 'File',
size: 3,
path: 'target',
},
'ddd\0',
{
path: 'y',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/',
},
{
type: 'Directory',
path: 'z/b/',
},
{
path: 'z/d',
type: 'Link',
linkpath: 'target',
},
{
type: 'Directory',
path: 'z/b/c/',
},
{
path: 'z/b/d',
type: 'Link',
linkpath: 'target',
},
{
path: 'z/b/c/d',
type: 'Link',
linkpath: 'target',
},
])
const check = (out, t) => {
const data = Buffer.concat(out)
expect.forEach((e, i) => {
if (typeof e === 'string') {
t.equal(data.slice(i * 512, i * 512 + e.length).toString(), e)
} else if (e instanceof RegExp) {
t.match(data.slice(i * 512, (i + 1) * 512).toString(), e)
} else {
t.match(new Header(data.slice(i * 512, (i + 1) * 512)), e)
}
})
}
const runTest = async (t, path) => {
const linkCache = new Map()
const statCache = new Map()
const opt = {
noDirRecurse: true,
linkCache,
statCache,
}
const out = []
const parser = new Parser({
onentry: readEntry => {
const p = new WriteEntry.Tar(readEntry, opt)
p.on('data', d => out.push(d))
},
})
parser.on('end', () => check(out, t))
parser.end(data)
}
t.test('.', t => runTest(t, '.'))
t.test('./', t => runTest(t, './'))
t.end()
})
t.test('myuid set by getuid() if available, otherwise 0', t => {
const { getuid } = process
process.getuid = null
const noUid = new WriteEntry(__filename)
t.equal(noUid.myuid, 0, 'set to zero if no getuid function')
process.getuid = () => 123456789
const hasUid = new WriteEntry(__filename)
t.equal(hasUid.myuid, 123456789, 'set to process.getuid()')
process.getuid = getuid
t.end()
})