New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

exiftool-vendored

Package Overview
Dependencies
Maintainers
1
Versions
252
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

exiftool-vendored - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

4

lib/datetime.spec.js
"use strict";
const _dt = require('./datetime');
const chai_1 = require('chai');
const _dt = require("./datetime");
const chai_1 = require("chai");
const chai = require('chai');

@@ -5,0 +5,0 @@ const chaiAsPromised = require('chai-as-promised');

"use strict";
const cp = require('child_process');
const fs = require('fs');
const process = require('process');
const deferred_1 = require('./deferred');
const exiftool_1 = require('./exiftool');
const cp = require("child_process");
const fs = require("fs");
const process = require("process");
const deferred_1 = require("./deferred");
const exiftool_1 = require("./exiftool");
const isWin32 = process.platform === 'win32';

@@ -8,0 +8,0 @@ const exiftoolPath = require(`exiftool-vendored.${isWin32 ? 'exe' : 'pl'}`);

"use strict";
const exiftool_process_1 = require('./exiftool_process');
const chai_1 = require('chai');
const exiftool_process_1 = require("./exiftool_process");
const chai_1 = require("chai");
const chai = require('chai');

@@ -5,0 +5,0 @@ const chaiAsPromised = require('chai-as-promised');

@@ -1,2 +0,1 @@

/// <reference types="node" />
import { Tags } from './tags';

@@ -3,0 +2,0 @@ import { Task } from './task';

"use strict";
const tags_task_1 = require('./tags_task');
const version_task_1 = require('./version_task');
const exiftool_process_1 = require('./exiftool_process');
var datetime_1 = require('./datetime');
const tags_task_1 = require("./tags_task");
const version_task_1 = require("./version_task");
const exiftool_process_1 = require("./exiftool_process");
var datetime_1 = require("./datetime");
exports.ExifDate = datetime_1.ExifDate;

@@ -10,3 +10,3 @@ exports.ExifTime = datetime_1.ExifTime;

exports.ExifTimeZoneOffset = datetime_1.ExifTimeZoneOffset;
const process = require('process');
const process = require("process");
/**

@@ -13,0 +13,0 @@ * Assign your custom logger to this instance.

"use strict";
const exiftool_1 = require('./exiftool');
const chai_1 = require('chai');
const _path = require('path');
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments)).next());
});
};
const exiftool_1 = require("./exiftool");
const chai_1 = require("chai");
const _path = require("path");
const chai = require('chai');

@@ -17,3 +25,3 @@ const chaiAsPromised = require('chai-as-promised');

it('returns the correct version', () => {
return chai_1.expect(exiftool.version()).to.become('10.33');
return chai_1.expect(exiftool.version()).to.become('10.36');
});

@@ -56,2 +64,5 @@ it('returns expected results for a given file', () => {

});
it('sets "Error" for unsupported file types', () => __awaiter(this, void 0, void 0, function* () {
return chai_1.expect((yield exiftool.read(__filename)).Error).to.match(/Unknown file type/i);
}));
it('ends with multiple procs', () => {

@@ -58,0 +69,0 @@ const promises = [exiftool.read(img), exiftool.read(img)];

"use strict";
const _dt = require('./datetime');
const task_1 = require('./task');
const _path = require('path');
const _dt = require("./datetime");
const task_1 = require("./task");
const _path = require("path");
class TagsTask extends task_1.Task {

@@ -6,0 +6,0 @@ constructor(SourceFile, args) {

"use strict";
const tags_task_1 = require('./tags_task');
const chai_1 = require('chai');
const tags_task_1 = require("./tags_task");
const chai_1 = require("chai");
const chai = require('chai');

@@ -5,0 +5,0 @@ const chaiAsPromised = require('chai-as-promised');

"use strict";
const deferred_1 = require('./deferred');
const deferred_1 = require("./deferred");
/**

@@ -4,0 +4,0 @@ * Emodies both a command (`args`), and a handler for the resulting output

"use strict";
const io_1 = require('./io');
const io_1 = require("./io");
/**

@@ -4,0 +4,0 @@ * If the vendored ExifTool version is different from

"use strict";
const checksums_1 = require('./checksums');
const io = require('./io');
const _path = require('path');
const _url = require('url');
const xmldom = require('xmldom');
const checksums_1 = require("./checksums");
const io = require("./io");
const _path = require("path");
const _url = require("url");
const xmldom = require("xmldom");
const xpath = require('xpath');

@@ -15,2 +15,3 @@ class Enclosure {

} // tslint:disable-line
// tslint:disable-line
static parsedPath(url) {

@@ -17,0 +18,0 @@ const parsedUrlPathname = _url.parse(url).pathname;

"use strict";
const _fs = require('fs');
const _crypto = require('crypto');
const _zlib = require('zlib');
const rimraf = require('rimraf');
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments)).next());
});
};
const _fs = require("fs");
const _crypto = require("crypto");
const _zlib = require("zlib");
const rimraf = require("rimraf");
const tar = require('tar-fs');

@@ -156,7 +164,8 @@ const https = require('https');

function editPackageJson(packageJson, f) {
return readFile(packageJson)
.then((json) => {
return __awaiter(this, void 0, void 0, function* () {
const json = yield readFile(packageJson);
const pkg = JSON.parse(json);
f(pkg);
writeFile(packageJson, JSON.stringify(pkg, null, 2) + '\n');
yield writeFile(packageJson, JSON.stringify(pkg, null, 2) + '\n');
return undefined;
});

@@ -163,0 +172,0 @@ }

"use strict";
const datetime_1 = require('../datetime');
const exiftool_1 = require('../exiftool');
const tags_task_1 = require('../tags_task');
const exiftool_process_1 = require('../exiftool_process');
const process = require('process');
const _fs = require('fs');
const _path = require('path');
const datetime_1 = require("../datetime");
const exiftool_1 = require("../exiftool");
const tags_task_1 = require("../tags_task");
const exiftool_process_1 = require("../exiftool_process");
const process = require("process");
const _fs = require("fs");
const _path = require("path");
// ☠☠ THIS IS PRETTY GRISLY CODE. SCROLL DOWN AT YOUR OWN PERIL ☠☠

@@ -180,2 +180,4 @@ const globule = require('globule');

tagWriter.write(' errors: string[]\n');
tagWriter.write(' /** "Unknown file type" */\n');
tagWriter.write(' Error: string\n');
tagWriter.write(' SourceFile: string\n');

@@ -182,0 +184,0 @@ tagWriter.write('}\n');

"use strict";
const enclosure_1 = require('./enclosure');
const io = require('./io');
const _path = require('path');
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments)).next());
});
};
const enclosure_1 = require("./enclosure");
const io = require("./io");
const _path = require("path");
const globule = require('globule');

@@ -15,3 +23,3 @@ class Update {

verify() {
return io.sha1(this.dlDest, this.enclosure.sha1);
return io.sha1(this.dlDest, this.enclosure.sha1).then(() => undefined);
}

@@ -33,3 +41,3 @@ downloadMaybeAndVerify() {

.then(() => this.unpack())
.then(() => io.updatePackageVersion(this.packageJson, this.version));
.then(() => io.updatePackageVersion(this.packageJson, this.version + '-pre'));
}

@@ -92,3 +100,4 @@ }

function update() {
return enclosure_1.Enclosure.get().then(encs => {
return __awaiter(this, void 0, void 0, function* () {
const encs = yield enclosure_1.Enclosure.get();
const tar = encs.find(enc => enc.path.ext === '.gz');

@@ -98,12 +107,9 @@ const zip = encs.find(enc => enc.path.ext === '.zip');

const dl = _path.join(__dirname, '..', '..', 'dl');
yield io.mkdir(dl, true);
const tarUpdate = new TarUpdate(tar, dl);
yield tarUpdate.update();
const zipUpdate = new ZipUpdate(zip, dl);
const tarUpdate = new TarUpdate(tar, dl);
return io.mkdir(dl, true)
.then(() => Promise.all([
zipUpdate.update(),
tarUpdate.update()
]))
.then(() => {
updatePlatformDependentModules(tarUpdate.version, zipUpdate.version);
});
yield zipUpdate.update();
yield updatePlatformDependentModules(tarUpdate.version, zipUpdate.version);
console.log('👍 now run `git commit` and `np` in the .pl and .exe subdirectories.');
}

@@ -110,0 +116,0 @@ else {

"use strict";
const task_1 = require('./task');
const task_1 = require("./task");
class VersionTask extends task_1.Task {

@@ -4,0 +4,0 @@ constructor() {

{
"name": "exiftool-vendored",
"version": "1.2.0",
"version": "1.3.0",
"description": "Efficient, cross-platform access to ExifTool",

@@ -57,9 +57,9 @@ "main": "./lib/exiftool.js",

"linux": [
"exiftool-vendored.pl@10.33.0"
"exiftool-vendored.pl@10.36.0"
],
"darwin": [
"exiftool-vendored.pl@10.33.0"
"exiftool-vendored.pl@10.36.0"
],
"win32": [
"exiftool-vendored.exe@10.33.0"
"exiftool-vendored.exe@10.36.0"
]

@@ -70,7 +70,7 @@ }

"@types/chai": "^3.4.34",
"@types/chai-as-promised": "0.0.29",
"@types/chai-as-promised": "^0.0.29",
"@types/jsdom": "^2.0.29",
"@types/mocha": "^2.2.33",
"@types/node": "^6.0.48",
"@types/rimraf": "0.0.28",
"@types/rimraf": "^0.0.28",
"@types/xmldom": "^0.1.28",

@@ -81,18 +81,18 @@ "chai": "^3.5.0",

"globule": "^1.1.0",
"mocha": "^3.1.2",
"mocha": "^3.2.0",
"np": "^2.10.1",
"npm-run-all": "^3.1.1",
"npm-run-all": "^3.1.2",
"rimraf": "^2.5.4",
"tar-fs": "^1.14.0",
"tslint": "^3.15.1",
"tslint-config-standard": "^1.5.0",
"tslint-eslint-rules": "^2.1.0",
"typescript": "^2.0.10",
"tslint": "^4.0.2",
"tslint-config-standard": "^2.0.0",
"tslint-eslint-rules": "^3.1.0",
"typescript": "^2.1.4",
"typescript-formatter": "^4.0.1",
"xmldom": "^0.1.22",
"xpath": "0.0.23"
"xmldom": "^0.1.27",
"xpath": "^0.0.23"
},
"dependencies": {
"platform-dependent-modules": "0.0.14"
"platform-dependent-modules": "^0.0.14"
}
}

@@ -103,16 +103,34 @@ # exiftool-vendored

Given those constraints, version numbers follow the following scheme:
Given those constraints, version numbers follow standard SemVer, with the following scheme:
```sh
$API.$UPDATE.$PATCH
API.UPDATE.PATCH
```
* Breaking API changes to this package will increment `API`.
* Any bugfix or new release of ExifTool will increment `UPDATE`.
* Metadata changes or trivial bugfixes will increment `PATCH`.
### `API` is incremented for
Note that the platform dependent modules use the ExifTool version with an optional patch release.
* 💔 Non-backward-compatible API changes
* 🌲 New releases of ExifTool that have externally visible changes
### `UPDATE` is incremented for
* 🌱 New releases of ExifTool with no externally visible changes
* 🐛 Bugfixes
* ✨ Backward-compatible features
### `PATCH` is incremented for
* 📦 Minor packaging changes
* 🐞 Minor bugfixes
## Changelog
### v1.3.0
* 🌱 ExifTool upgraded to v10.36
* ✨ `Tag.Error` exposed for unsupported file types.
### v1.2.0
* It was too easy to miss calling `ExifTool.end()`, which left child ExifTool processes running.
* 🐛 It was too easy to miss calling `ExifTool.end()`, which left child ExifTool processes running.
The constructor to ExifTool now adds a shutdown hook to send all child processes a shutdown signal.

@@ -122,28 +140,28 @@

* Added `toString()` for all date/time types
* ✨ Added `toString()` for all date/time types
### v1.0.0
* Added typings reference in the package.json
* Upgraded vendored exiftool to 10.33
* ✨ Added typings reference in the package.json
* 🌱 Upgraded vendored exiftool to 10.33
### v0.4.0
* Fixed packaging (maintain jsdocs in .d.ts)
* Using [np](https://www.npmjs.com/package/np) for packaging
* 📦 Fixed packaging (maintain jsdocs in .d.ts and added typings reference)
* 📦 Using [np](https://www.npmjs.com/package/np) for packaging
### v0.3.0
* Multithreading support with the `maxProcs` ctor param
* Added tests for reading images with truncated or missing EXIF headers
* Added tests for timezone offset extraction and rendering
* Subsecond resolution from the Google Pixel has 8 significant digits(!!), added support for that.
* ✨ Multithreading support with the `maxProcs` ctor param
* ✨ Added tests for reading images with truncated or missing EXIF headers
* ✨ Added tests for timezone offset extraction and rendering
* ✨ Subsecond resolution from the Google Pixel has 8 significant digits(!!), added support for that.
### v0.2.0
* More rigorous TimeZone extraction from assets, and added the `ExifTimeZoneOffset` to handle the `TimeZone` composite tag
* Added support for millisecond timestamps
* ✨ More rigorous TimeZone extraction from assets, and added the `ExifTimeZoneOffset` to handle the `TimeZone` composite tag
* ✨ Added support for millisecond timestamps
### v0.1.1
Initial Release. Packages ExifTool v10.31.
🌱✨ Initial Release. Packages ExifTool v10.31.

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc