@spinajs/fs 2.0.180 → 2.0.182
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/cli/rm.d.ts +11 -11
- package/lib/cjs/cli/rm.js +28 -28
- package/lib/cjs/cli/rm.js.map +1 -1
- package/lib/cjs/cli/stat.d.ts +10 -10
- package/lib/cjs/cli/stat.js +26 -26
- package/lib/cjs/cli/stat.js.map +1 -1
- package/lib/cjs/config/fs.d.ts +33 -16
- package/lib/cjs/config/fs.d.ts.map +1 -1
- package/lib/cjs/config/fs.js +50 -36
- package/lib/cjs/config/fs.js.map +1 -1
- package/lib/cjs/decorators.d.ts +7 -7
- package/lib/cjs/decorators.js +23 -23
- package/lib/cjs/file-hasher.d.ts +12 -8
- package/lib/cjs/file-hasher.d.ts.map +1 -1
- package/lib/cjs/file-hasher.js +51 -42
- package/lib/cjs/file-hasher.js.map +1 -1
- package/lib/cjs/file-info.d.ts +10 -10
- package/lib/cjs/file-info.js +124 -124
- package/lib/cjs/file-info.js.map +1 -1
- package/lib/cjs/index.d.ts +10 -10
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +72 -71
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +180 -157
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +44 -33
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/local-provider.d.ts +96 -100
- package/lib/cjs/local-provider.d.ts.map +1 -1
- package/lib/cjs/local-provider.js +321 -278
- package/lib/cjs/local-provider.js.map +1 -1
- package/lib/cjs/local-temp-provider.d.ts +18 -18
- package/lib/cjs/local-temp-provider.d.ts.map +1 -1
- package/lib/cjs/local-temp-provider.js +59 -54
- package/lib/cjs/local-temp-provider.js.map +1 -1
- package/lib/mjs/cli/rm.d.ts +11 -11
- package/lib/mjs/cli/rm.js +25 -25
- package/lib/mjs/cli/rm.js.map +1 -1
- package/lib/mjs/cli/stat.d.ts +10 -10
- package/lib/mjs/cli/stat.js +23 -23
- package/lib/mjs/cli/stat.js.map +1 -1
- package/lib/mjs/config/fs.d.ts +33 -16
- package/lib/mjs/config/fs.d.ts.map +1 -1
- package/lib/mjs/config/fs.js +48 -34
- package/lib/mjs/config/fs.js.map +1 -1
- package/lib/mjs/decorators.d.ts +7 -7
- package/lib/mjs/decorators.js +19 -19
- package/lib/mjs/file-hasher.d.ts +12 -8
- package/lib/mjs/file-hasher.d.ts.map +1 -1
- package/lib/mjs/file-hasher.js +45 -36
- package/lib/mjs/file-hasher.js.map +1 -1
- package/lib/mjs/file-info.d.ts +10 -10
- package/lib/mjs/file-info.js +121 -121
- package/lib/mjs/file-info.js.map +1 -1
- package/lib/mjs/index.d.ts +10 -10
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +55 -54
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +180 -157
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +38 -27
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/local-provider.d.ts +96 -100
- package/lib/mjs/local-provider.d.ts.map +1 -1
- package/lib/mjs/local-provider.js +315 -272
- package/lib/mjs/local-provider.js.map +1 -1
- package/lib/mjs/local-temp-provider.d.ts +18 -18
- package/lib/mjs/local-temp-provider.d.ts.map +1 -1
- package/lib/mjs/local-temp-provider.js +56 -51
- package/lib/mjs/local-temp-provider.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +6 -2
package/lib/mjs/file-hasher.js
CHANGED
|
@@ -1,37 +1,46 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { Injectable } from '@spinajs/di';
|
|
11
|
-
import crypto from 'crypto';
|
|
12
|
-
import fs from 'node:fs';
|
|
13
|
-
import { IOFail } from '@spinajs/exceptions';
|
|
14
|
-
import { FileHasher } from './interfaces.js';
|
|
15
|
-
let DefaultFileHasher = class DefaultFileHasher extends FileHasher {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Injectable, PerInstanceCheck } from '@spinajs/di';
|
|
11
|
+
import crypto from 'crypto';
|
|
12
|
+
import fs from 'node:fs';
|
|
13
|
+
import { IOFail } from '@spinajs/exceptions';
|
|
14
|
+
import { FileHasher } from './interfaces.js';
|
|
15
|
+
let DefaultFileHasher = class DefaultFileHasher extends FileHasher {
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
__checkInstance__(creationOptions) {
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
19
|
+
return this.Alghoritm === creationOptions[0].alghoritm;
|
|
20
|
+
}
|
|
21
|
+
constructor(Alghoritm, HashOptions) {
|
|
22
|
+
super();
|
|
23
|
+
this.Alghoritm = Alghoritm;
|
|
24
|
+
this.HashOptions = HashOptions;
|
|
25
|
+
this.Alghoritm = this.Alghoritm || 'sha256';
|
|
26
|
+
this.HashAlgo = crypto.createHash(this.Alghoritm, this.HashOptions);
|
|
27
|
+
}
|
|
28
|
+
async hash(pathToFile) {
|
|
29
|
+
if (!fs.existsSync(pathToFile)) {
|
|
30
|
+
throw new IOFail(`File ${pathToFile} not exists`);
|
|
31
|
+
}
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
fs.createReadStream(pathToFile)
|
|
34
|
+
.on('data', (data) => this.HashAlgo.update(data))
|
|
35
|
+
.on('end', () => resolve(this.HashAlgo.digest('hex')))
|
|
36
|
+
.on('error', (err) => reject(err));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
DefaultFileHasher = __decorate([
|
|
41
|
+
Injectable(FileHasher),
|
|
42
|
+
PerInstanceCheck(),
|
|
43
|
+
__metadata("design:paramtypes", [String, Object])
|
|
44
|
+
], DefaultFileHasher);
|
|
45
|
+
export { DefaultFileHasher };
|
|
37
46
|
//# sourceMappingURL=file-hasher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-hasher.js","sourceRoot":"","sources":["../../src/file-hasher.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"file-hasher.js","sourceRoot":"","sources":["../../src/file-hasher.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAItC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAC/C,8DAA8D;IACvD,iBAAiB,CAAC,eAAoB;QAC3C,sEAAsE;QACtE,OAAO,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAMD,YAAoB,SAAkB,EAAS,WAAgC;QAC7E,KAAK,EAAE,CAAC;QADU,cAAS,GAAT,SAAS,CAAS;QAAS,gBAAW,GAAX,WAAW,CAAqB;QAG7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB;QAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC9B,MAAM,IAAI,MAAM,CAAC,QAAQ,UAAU,aAAa,CAAC,CAAC;SACnD;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC;iBAC5B,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAChD,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBACrD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA9BY,iBAAiB;IAF7B,UAAU,CAAC,UAAU,CAAC;IACtB,gBAAgB,EAAE;;GACN,iBAAiB,CA8B7B"}
|
package/lib/mjs/file-info.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Log } from '@spinajs/log';
|
|
2
|
-
import { FileInfoService, IFileInfo } from './interfaces.js';
|
|
3
|
-
export declare class DefaultFileInfo extends FileInfoService {
|
|
4
|
-
protected Log: Log;
|
|
5
|
-
getInfo(pathToFile: string): Promise<IFileInfo>;
|
|
6
|
-
protected spawnExifProcess(file: string): Promise<string>;
|
|
7
|
-
protected getMetadata(file: string): Promise<{
|
|
8
|
-
[key: string]: string | number;
|
|
9
|
-
}>;
|
|
10
|
-
}
|
|
1
|
+
import { Log } from '@spinajs/log';
|
|
2
|
+
import { FileInfoService, IFileInfo } from './interfaces.js';
|
|
3
|
+
export declare class DefaultFileInfo extends FileInfoService {
|
|
4
|
+
protected Log: Log;
|
|
5
|
+
getInfo(pathToFile: string): Promise<IFileInfo>;
|
|
6
|
+
protected spawnExifProcess(file: string): Promise<string>;
|
|
7
|
+
protected getMetadata(file: string): Promise<{
|
|
8
|
+
[key: string]: string | number;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=file-info.d.ts.map
|
package/lib/mjs/file-info.js
CHANGED
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { spawn } from "node:child_process";
|
|
11
|
-
import { Injectable } from '@spinajs/di';
|
|
12
|
-
import { Log, Logger } from '@spinajs/log';
|
|
13
|
-
import { IOFail } from '@spinajs/exceptions';
|
|
14
|
-
import { existsSync } from 'fs';
|
|
15
|
-
import { FileInfoService } from './interfaces.js';
|
|
16
|
-
import { DateTime } from "luxon";
|
|
17
|
-
const EXIFTOOL_MAPPINGS = {
|
|
18
|
-
audioChannels: "AudioChannels",
|
|
19
|
-
imageHeight: 'Height',
|
|
20
|
-
imageWidth: 'Width',
|
|
21
|
-
duration: 'Duration',
|
|
22
|
-
playDuration: 'Duration',
|
|
23
|
-
frameCount: 'FrameCount',
|
|
24
|
-
frameRate: 'FrameRate',
|
|
25
|
-
videoFrameRate: 'FrameRate',
|
|
26
|
-
maxBitrate: 'Bitrate',
|
|
27
|
-
maxDataRate: 'Bitrate',
|
|
28
|
-
avgBitrate: 'Bitrate',
|
|
29
|
-
compressorID: 'Codec',
|
|
30
|
-
fileSize: ["FileSize", (val) => (parseInt(val))],
|
|
31
|
-
'fileAccessDate/Time': ["AccessDate", (val) => { return DateTime.fromFormat(val, "yyyy:MM:dd HH:mm:ssZZ"); }],
|
|
32
|
-
'fileCreationDate/Time': ["CreationDate", (val) => { return DateTime.fromFormat(val, "yyyy:MM:dd HH:mm:ssZZ"); }],
|
|
33
|
-
'fileModificationDate/Time': ["ModificationDate", (val) => { return DateTime.fromFormat(val, "yyyy:MM:dd HH:mm:ssZZ"); }],
|
|
34
|
-
mimeType: "MimeType",
|
|
35
|
-
mimeEncoding: "Encoding",
|
|
36
|
-
wordCount: "WordCount",
|
|
37
|
-
lineCount: "LineCount"
|
|
38
|
-
};
|
|
39
|
-
function _fInfoInit() {
|
|
40
|
-
return {
|
|
41
|
-
FileSize: null,
|
|
42
|
-
Height: null,
|
|
43
|
-
Width: null,
|
|
44
|
-
Duration: null,
|
|
45
|
-
FrameCount: null,
|
|
46
|
-
FrameRate: null,
|
|
47
|
-
Bitrate: null,
|
|
48
|
-
Codec: null,
|
|
49
|
-
Raw: null
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
let DefaultFileInfo = class DefaultFileInfo extends FileInfoService {
|
|
53
|
-
async getInfo(pathToFile) {
|
|
54
|
-
if (!existsSync(pathToFile)) {
|
|
55
|
-
throw new IOFail(`Path ${pathToFile} not exists`);
|
|
56
|
-
}
|
|
57
|
-
const fInfo = _fInfoInit();
|
|
58
|
-
const metadata = await this.getMetadata(pathToFile);
|
|
59
|
-
fInfo.Raw = metadata;
|
|
60
|
-
for (const key in EXIFTOOL_MAPPINGS) {
|
|
61
|
-
if (metadata[key]) {
|
|
62
|
-
const mKey = EXIFTOOL_MAPPINGS[key];
|
|
63
|
-
if (Array.isArray(mKey)) {
|
|
64
|
-
fInfo[mKey[0]] = mKey[1](metadata[key]);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
fInfo[EXIFTOOL_MAPPINGS[key]] = metadata[key];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return fInfo;
|
|
72
|
-
}
|
|
73
|
-
async spawnExifProcess(file) {
|
|
74
|
-
return new Promise((resolve, reject) => {
|
|
75
|
-
const process = spawn("exiftool", [file, "-n"]);
|
|
76
|
-
let stdOutBuffer = "";
|
|
77
|
-
let stdErrBuffer = "";
|
|
78
|
-
process.on("error", (err) => (reject(err)));
|
|
79
|
-
process.on("close", () => (stdErrBuffer ? reject(stdErrBuffer) : resolve(stdOutBuffer)));
|
|
80
|
-
process.stdout.on("data", (data) => (stdOutBuffer += data.toString("utf-8")));
|
|
81
|
-
process.stderr.on("data", (data) => (stdErrBuffer += data.toString("utf-8")));
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
async getMetadata(file) {
|
|
85
|
-
const raw = await this.spawnExifProcess(file);
|
|
86
|
-
// Split the response into lines.
|
|
87
|
-
const response = raw.split("\n");
|
|
88
|
-
//For each line of the response extract the meta data into a nice associative array
|
|
89
|
-
const metaData = {};
|
|
90
|
-
response.forEach(function (responseLine) {
|
|
91
|
-
var pieces = responseLine.split(": ");
|
|
92
|
-
//Is this a line with a meta data pair on it?
|
|
93
|
-
if (pieces.length == 2) {
|
|
94
|
-
//Turn the plain text data key into a camel case key.
|
|
95
|
-
var key = pieces[0].trim().split(' ').map(function (tokenInKey, tokenNumber) {
|
|
96
|
-
if (tokenNumber === 0)
|
|
97
|
-
return tokenInKey.toLowerCase();
|
|
98
|
-
else
|
|
99
|
-
return tokenInKey[0].toUpperCase() + tokenInKey.slice(1);
|
|
100
|
-
}).join('');
|
|
101
|
-
//Trim the value associated with the key to make it nice.
|
|
102
|
-
var value = pieces[1].trim();
|
|
103
|
-
if (+value === +value) {
|
|
104
|
-
metaData[key] = parseFloat(value);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
metaData[key] = value;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
return metaData;
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
__decorate([
|
|
115
|
-
Logger('fs'),
|
|
116
|
-
__metadata("design:type", Log)
|
|
117
|
-
], DefaultFileInfo.prototype, "Log", void 0);
|
|
118
|
-
DefaultFileInfo = __decorate([
|
|
119
|
-
Injectable(FileInfoService)
|
|
120
|
-
], DefaultFileInfo);
|
|
121
|
-
export { DefaultFileInfo };
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { spawn } from "node:child_process";
|
|
11
|
+
import { Injectable } from '@spinajs/di';
|
|
12
|
+
import { Log, Logger } from '@spinajs/log';
|
|
13
|
+
import { IOFail } from '@spinajs/exceptions';
|
|
14
|
+
import { existsSync } from 'fs';
|
|
15
|
+
import { FileInfoService } from './interfaces.js';
|
|
16
|
+
import { DateTime } from "luxon";
|
|
17
|
+
const EXIFTOOL_MAPPINGS = {
|
|
18
|
+
audioChannels: "AudioChannels",
|
|
19
|
+
imageHeight: 'Height',
|
|
20
|
+
imageWidth: 'Width',
|
|
21
|
+
duration: 'Duration',
|
|
22
|
+
playDuration: 'Duration',
|
|
23
|
+
frameCount: 'FrameCount',
|
|
24
|
+
frameRate: 'FrameRate',
|
|
25
|
+
videoFrameRate: 'FrameRate',
|
|
26
|
+
maxBitrate: 'Bitrate',
|
|
27
|
+
maxDataRate: 'Bitrate',
|
|
28
|
+
avgBitrate: 'Bitrate',
|
|
29
|
+
compressorID: 'Codec',
|
|
30
|
+
fileSize: ["FileSize", (val) => (parseInt(val))],
|
|
31
|
+
'fileAccessDate/Time': ["AccessDate", (val) => { return DateTime.fromFormat(val, "yyyy:MM:dd HH:mm:ssZZ"); }],
|
|
32
|
+
'fileCreationDate/Time': ["CreationDate", (val) => { return DateTime.fromFormat(val, "yyyy:MM:dd HH:mm:ssZZ"); }],
|
|
33
|
+
'fileModificationDate/Time': ["ModificationDate", (val) => { return DateTime.fromFormat(val, "yyyy:MM:dd HH:mm:ssZZ"); }],
|
|
34
|
+
mimeType: "MimeType",
|
|
35
|
+
mimeEncoding: "Encoding",
|
|
36
|
+
wordCount: "WordCount",
|
|
37
|
+
lineCount: "LineCount"
|
|
38
|
+
};
|
|
39
|
+
function _fInfoInit() {
|
|
40
|
+
return {
|
|
41
|
+
FileSize: null,
|
|
42
|
+
Height: null,
|
|
43
|
+
Width: null,
|
|
44
|
+
Duration: null,
|
|
45
|
+
FrameCount: null,
|
|
46
|
+
FrameRate: null,
|
|
47
|
+
Bitrate: null,
|
|
48
|
+
Codec: null,
|
|
49
|
+
Raw: null
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
let DefaultFileInfo = class DefaultFileInfo extends FileInfoService {
|
|
53
|
+
async getInfo(pathToFile) {
|
|
54
|
+
if (!existsSync(pathToFile)) {
|
|
55
|
+
throw new IOFail(`Path ${pathToFile} not exists`);
|
|
56
|
+
}
|
|
57
|
+
const fInfo = _fInfoInit();
|
|
58
|
+
const metadata = await this.getMetadata(pathToFile);
|
|
59
|
+
fInfo.Raw = metadata;
|
|
60
|
+
for (const key in EXIFTOOL_MAPPINGS) {
|
|
61
|
+
if (metadata[key]) {
|
|
62
|
+
const mKey = EXIFTOOL_MAPPINGS[key];
|
|
63
|
+
if (Array.isArray(mKey)) {
|
|
64
|
+
fInfo[mKey[0]] = mKey[1](metadata[key]);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
fInfo[EXIFTOOL_MAPPINGS[key]] = metadata[key];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return fInfo;
|
|
72
|
+
}
|
|
73
|
+
async spawnExifProcess(file) {
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
const process = spawn("exiftool", [file, "-n"]);
|
|
76
|
+
let stdOutBuffer = "";
|
|
77
|
+
let stdErrBuffer = "";
|
|
78
|
+
process.on("error", (err) => (reject(err)));
|
|
79
|
+
process.on("close", () => (stdErrBuffer ? reject(stdErrBuffer) : resolve(stdOutBuffer)));
|
|
80
|
+
process.stdout.on("data", (data) => (stdOutBuffer += data.toString("utf-8")));
|
|
81
|
+
process.stderr.on("data", (data) => (stdErrBuffer += data.toString("utf-8")));
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async getMetadata(file) {
|
|
85
|
+
const raw = await this.spawnExifProcess(file);
|
|
86
|
+
// Split the response into lines.
|
|
87
|
+
const response = raw.split("\n");
|
|
88
|
+
//For each line of the response extract the meta data into a nice associative array
|
|
89
|
+
const metaData = {};
|
|
90
|
+
response.forEach(function (responseLine) {
|
|
91
|
+
var pieces = responseLine.split(": ");
|
|
92
|
+
//Is this a line with a meta data pair on it?
|
|
93
|
+
if (pieces.length == 2) {
|
|
94
|
+
//Turn the plain text data key into a camel case key.
|
|
95
|
+
var key = pieces[0].trim().split(' ').map(function (tokenInKey, tokenNumber) {
|
|
96
|
+
if (tokenNumber === 0)
|
|
97
|
+
return tokenInKey.toLowerCase();
|
|
98
|
+
else
|
|
99
|
+
return tokenInKey[0].toUpperCase() + tokenInKey.slice(1);
|
|
100
|
+
}).join('');
|
|
101
|
+
//Trim the value associated with the key to make it nice.
|
|
102
|
+
var value = pieces[1].trim();
|
|
103
|
+
if (+value === +value) {
|
|
104
|
+
metaData[key] = parseFloat(value);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
metaData[key] = value;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
return metaData;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
__decorate([
|
|
115
|
+
Logger('fs'),
|
|
116
|
+
__metadata("design:type", Log)
|
|
117
|
+
], DefaultFileInfo.prototype, "Log", void 0);
|
|
118
|
+
DefaultFileInfo = __decorate([
|
|
119
|
+
Injectable(FileInfoService)
|
|
120
|
+
], DefaultFileInfo);
|
|
121
|
+
export { DefaultFileInfo };
|
|
122
122
|
//# sourceMappingURL=file-info.js.map
|
package/lib/mjs/file-info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-info.js","sourceRoot":"","sources":["../../src/file-info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-info.js","sourceRoot":"","sources":["../../src/file-info.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Bootstrapper } from '@spinajs/di';
|
|
2
|
-
export * from './interfaces.js';
|
|
3
|
-
export * from './local-provider.js';
|
|
4
|
-
export * from './local-temp-provider.js';
|
|
5
|
-
export * from './decorators.js';
|
|
6
|
-
export * from './file-hasher.js';
|
|
7
|
-
export * from './file-info.js';
|
|
8
|
-
export declare class FsBootsrapper extends Bootstrapper {
|
|
9
|
-
bootstrap(): void;
|
|
10
|
-
}
|
|
1
|
+
import { Bootstrapper } from '@spinajs/di';
|
|
2
|
+
export * from './interfaces.js';
|
|
3
|
+
export * from './local-provider.js';
|
|
4
|
+
export * from './local-temp-provider.js';
|
|
5
|
+
export * from './decorators.js';
|
|
6
|
+
export * from './file-hasher.js';
|
|
7
|
+
export * from './file-info.js';
|
|
8
|
+
export declare class FsBootsrapper extends Bootstrapper {
|
|
9
|
+
bootstrap(): void;
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AAGvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAE/B,qBACa,aAAc,SAAQ,YAAY;IACtC,SAAS,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AAGvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAE/B,qBACa,aAAc,SAAQ,YAAY;IACtC,SAAS,IAAI,IAAI;CA6CzB"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -1,55 +1,56 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { Configuration, InvalidConfiguration } from '@spinajs/configuration';
|
|
8
|
-
import { ResolveException } from '@spinajs/di';
|
|
9
|
-
import { Injectable, Bootstrapper, DI } from '@spinajs/di';
|
|
10
|
-
import { fs } from './interfaces.js';
|
|
11
|
-
export * from './interfaces.js';
|
|
12
|
-
export * from './local-provider.js';
|
|
13
|
-
export * from './local-temp-provider.js';
|
|
14
|
-
export * from './decorators.js';
|
|
15
|
-
export * from './file-hasher.js';
|
|
16
|
-
export * from './file-info.js';
|
|
17
|
-
let FsBootsrapper = class FsBootsrapper extends Bootstrapper {
|
|
18
|
-
bootstrap() {
|
|
19
|
-
|
|
20
|
-
const cfg = container.get(Configuration).get('fs');
|
|
21
|
-
const defaultProvider = cfg.defaultProvider;
|
|
22
|
-
if (!defaultProvider) {
|
|
23
|
-
throw new InvalidConfiguration('fs default provider is not set. Please set default file provider ');
|
|
24
|
-
}
|
|
25
|
-
const providers = new Map();
|
|
26
|
-
// collapse provider config
|
|
27
|
-
// when name is the same, addes last is created
|
|
28
|
-
// eg fs-temp can have default config from package
|
|
29
|
-
// but is overriden in application
|
|
30
|
-
cfg.providers.forEach((x) => {
|
|
31
|
-
providers.set(x.name, x);
|
|
32
|
-
});
|
|
33
|
-
const rProviders = DI.RootContainer.Registry.getTypes(fs);
|
|
34
|
-
const list = Array.from(providers, ([name, value]) => ({ name, value }));
|
|
35
|
-
for (const cProvider of list) {
|
|
36
|
-
const type = rProviders.find((x) => x.name === cProvider.value.service);
|
|
37
|
-
if (!type) {
|
|
38
|
-
throw new ResolveException(`Type ${cProvider.value.service} not registered, make sure all fs providers are registered`);
|
|
39
|
-
}
|
|
40
|
-
DI.resolve(type, [cProvider.value]).then((result) => {
|
|
41
|
-
DI.register(result).asValue('__file_provider_instance_' + cProvider.value.name);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
DI.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Configuration, InvalidConfiguration } from '@spinajs/configuration';
|
|
8
|
+
import { ResolveException } from '@spinajs/di';
|
|
9
|
+
import { Injectable, Bootstrapper, DI } from '@spinajs/di';
|
|
10
|
+
import { fs } from './interfaces.js';
|
|
11
|
+
export * from './interfaces.js';
|
|
12
|
+
export * from './local-provider.js';
|
|
13
|
+
export * from './local-temp-provider.js';
|
|
14
|
+
export * from './decorators.js';
|
|
15
|
+
export * from './file-hasher.js';
|
|
16
|
+
export * from './file-info.js';
|
|
17
|
+
let FsBootsrapper = class FsBootsrapper extends Bootstrapper {
|
|
18
|
+
bootstrap() {
|
|
19
|
+
const listener = (container) => {
|
|
20
|
+
const cfg = container.get(Configuration).get('fs');
|
|
21
|
+
const defaultProvider = cfg.defaultProvider;
|
|
22
|
+
if (!defaultProvider) {
|
|
23
|
+
throw new InvalidConfiguration('fs default provider is not set. Please set default file provider ');
|
|
24
|
+
}
|
|
25
|
+
const providers = new Map();
|
|
26
|
+
// collapse provider config
|
|
27
|
+
// when name is the same, addes last is created
|
|
28
|
+
// eg fs-temp can have default config from package
|
|
29
|
+
// but is overriden in application
|
|
30
|
+
cfg.providers.forEach((x) => {
|
|
31
|
+
providers.set(x.name, x);
|
|
32
|
+
});
|
|
33
|
+
const rProviders = DI.RootContainer.Registry.getTypes(fs);
|
|
34
|
+
const list = Array.from(providers, ([name, value]) => ({ name, value }));
|
|
35
|
+
for (const cProvider of list) {
|
|
36
|
+
const type = rProviders.find((x) => x.name === cProvider.value.service);
|
|
37
|
+
if (!type) {
|
|
38
|
+
throw new ResolveException(`Type ${cProvider.value.service} not registered, make sure all fs providers are registered`);
|
|
39
|
+
}
|
|
40
|
+
DI.resolve(type, [cProvider.value]).then((result) => {
|
|
41
|
+
DI.register(result).asValue('__file_provider_instance_' + cProvider.value.name);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
DI.once('di.resolved.Configuration', listener);
|
|
46
|
+
DI.register((_container, name) => {
|
|
47
|
+
const provider = DI.get('__file_provider_instance_' + name);
|
|
48
|
+
return provider;
|
|
49
|
+
}).as('__file_provider__');
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
FsBootsrapper = __decorate([
|
|
53
|
+
Injectable(Bootstrapper)
|
|
54
|
+
], FsBootsrapper);
|
|
55
|
+
export { FsBootsrapper };
|
|
55
56
|
//# sourceMappingURL=index.js.map
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,EAAE,EAA4C,MAAM,iBAAiB,CAAC;AAE/E,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAGxB,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IACtC,SAAS;QACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,EAAE,EAA4C,MAAM,iBAAiB,CAAC;AAE/E,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAGxB,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IACtC,SAAS;QACd,MAAM,QAAQ,GAAG,CAAC,SAAqB,EAAE,EAAE;YACzC,MAAM,GAAG,GAAqB,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;YAEvF,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;YAE5C,IAAI,CAAC,eAAe,EAAE;gBACpB,MAAM,IAAI,oBAAoB,CAAC,mEAAmE,CAAC,CAAC;aACrG;YAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;YAC5D,2BAA2B;YAC3B,+CAA+C;YAC/C,kDAAkD;YAClD,kCAAkC;YAClC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAEzE,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE;gBAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE7E,IAAI,CAAC,IAAI,EAAE;oBACT,MAAM,IAAI,gBAAgB,CACxB,QAAQ,SAAS,CAAC,KAAK,CAAC,OAAO,4DAA4D,CAC5F,CAAC;iBACH;gBAED,EAAE,CAAC,OAAO,CAAK,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAU,EAAE,EAAE;oBAC1D,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClF,CAAC,CAAC,CAAC;aACJ;QAEH,CAAC,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAE/C,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAsB,EAAE,IAAa,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAK,2BAA2B,GAAG,IAAI,CAAC,CAAC;YAChE,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AA9CY,aAAa;IADzB,UAAU,CAAC,YAAY,CAAC;GACZ,aAAa,CA8CzB"}
|