@spinajs/fs 2.0.180 → 2.0.181

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.
Files changed (73) hide show
  1. package/lib/cjs/cli/rm.d.ts +11 -11
  2. package/lib/cjs/cli/rm.js +28 -28
  3. package/lib/cjs/cli/rm.js.map +1 -1
  4. package/lib/cjs/cli/stat.d.ts +10 -10
  5. package/lib/cjs/cli/stat.js +26 -26
  6. package/lib/cjs/cli/stat.js.map +1 -1
  7. package/lib/cjs/config/fs.d.ts +33 -16
  8. package/lib/cjs/config/fs.d.ts.map +1 -1
  9. package/lib/cjs/config/fs.js +50 -36
  10. package/lib/cjs/config/fs.js.map +1 -1
  11. package/lib/cjs/decorators.d.ts +7 -7
  12. package/lib/cjs/decorators.js +23 -23
  13. package/lib/cjs/file-hasher.d.ts +12 -8
  14. package/lib/cjs/file-hasher.d.ts.map +1 -1
  15. package/lib/cjs/file-hasher.js +51 -42
  16. package/lib/cjs/file-hasher.js.map +1 -1
  17. package/lib/cjs/file-info.d.ts +10 -10
  18. package/lib/cjs/file-info.js +124 -124
  19. package/lib/cjs/file-info.js.map +1 -1
  20. package/lib/cjs/index.d.ts +10 -10
  21. package/lib/cjs/index.d.ts.map +1 -1
  22. package/lib/cjs/index.js +72 -71
  23. package/lib/cjs/index.js.map +1 -1
  24. package/lib/cjs/interfaces.d.ts +180 -157
  25. package/lib/cjs/interfaces.d.ts.map +1 -1
  26. package/lib/cjs/interfaces.js +44 -33
  27. package/lib/cjs/interfaces.js.map +1 -1
  28. package/lib/cjs/local-provider.d.ts +96 -100
  29. package/lib/cjs/local-provider.d.ts.map +1 -1
  30. package/lib/cjs/local-provider.js +321 -278
  31. package/lib/cjs/local-provider.js.map +1 -1
  32. package/lib/cjs/local-temp-provider.d.ts +18 -18
  33. package/lib/cjs/local-temp-provider.d.ts.map +1 -1
  34. package/lib/cjs/local-temp-provider.js +59 -54
  35. package/lib/cjs/local-temp-provider.js.map +1 -1
  36. package/lib/mjs/cli/rm.d.ts +11 -11
  37. package/lib/mjs/cli/rm.js +25 -25
  38. package/lib/mjs/cli/rm.js.map +1 -1
  39. package/lib/mjs/cli/stat.d.ts +10 -10
  40. package/lib/mjs/cli/stat.js +23 -23
  41. package/lib/mjs/cli/stat.js.map +1 -1
  42. package/lib/mjs/config/fs.d.ts +33 -16
  43. package/lib/mjs/config/fs.d.ts.map +1 -1
  44. package/lib/mjs/config/fs.js +48 -34
  45. package/lib/mjs/config/fs.js.map +1 -1
  46. package/lib/mjs/decorators.d.ts +7 -7
  47. package/lib/mjs/decorators.js +19 -19
  48. package/lib/mjs/file-hasher.d.ts +12 -8
  49. package/lib/mjs/file-hasher.d.ts.map +1 -1
  50. package/lib/mjs/file-hasher.js +45 -36
  51. package/lib/mjs/file-hasher.js.map +1 -1
  52. package/lib/mjs/file-info.d.ts +10 -10
  53. package/lib/mjs/file-info.js +121 -121
  54. package/lib/mjs/file-info.js.map +1 -1
  55. package/lib/mjs/index.d.ts +10 -10
  56. package/lib/mjs/index.d.ts.map +1 -1
  57. package/lib/mjs/index.js +55 -54
  58. package/lib/mjs/index.js.map +1 -1
  59. package/lib/mjs/interfaces.d.ts +180 -157
  60. package/lib/mjs/interfaces.d.ts.map +1 -1
  61. package/lib/mjs/interfaces.js +38 -27
  62. package/lib/mjs/interfaces.js.map +1 -1
  63. package/lib/mjs/local-provider.d.ts +96 -100
  64. package/lib/mjs/local-provider.d.ts.map +1 -1
  65. package/lib/mjs/local-provider.js +315 -272
  66. package/lib/mjs/local-provider.js.map +1 -1
  67. package/lib/mjs/local-temp-provider.d.ts +18 -18
  68. package/lib/mjs/local-temp-provider.d.ts.map +1 -1
  69. package/lib/mjs/local-temp-provider.js +56 -51
  70. package/lib/mjs/local-temp-provider.js.map +1 -1
  71. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  72. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  73. package/package.json +6 -2
@@ -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
- constructor() {
17
- super();
18
- this.HashAlgo = crypto.createHash('sha256');
19
- }
20
- async hash(pathToFile) {
21
- if (!fs.existsSync(pathToFile)) {
22
- throw new IOFail(`File ${pathToFile} not exists`);
23
- }
24
- return new Promise((resolve, reject) => {
25
- fs.createReadStream(pathToFile)
26
- .on('data', (data) => this.HashAlgo.update(data))
27
- .on('end', () => resolve(this.HashAlgo.digest('hex')))
28
- .on('error', (err) => reject(err));
29
- });
30
- }
31
- };
32
- DefaultFileHasher = __decorate([
33
- Injectable(FileHasher),
34
- __metadata("design:paramtypes", [])
35
- ], DefaultFileHasher);
36
- export { DefaultFileHasher };
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;AACzC,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;AAGtC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAG/C;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9C,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;AArBY,iBAAiB;IAD7B,UAAU,CAAC,UAAU,CAAC;;GACV,iBAAiB,CAqB7B;SArBY,iBAAiB"}
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"}
@@ -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
@@ -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
@@ -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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"}
@@ -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
@@ -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;CAyCzB"}
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
- DI.once('di.resolved.Configuration', (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.register((_container, name) => {
46
- const provider = DI.get('__file_provider_instance_' + name);
47
- return provider;
48
- }).as('__file_provider__');
49
- }
50
- };
51
- FsBootsrapper = __decorate([
52
- Injectable(Bootstrapper)
53
- ], FsBootsrapper);
54
- export { FsBootsrapper };
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
@@ -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,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,SAAqB,EAAE,EAAE;YAC7D,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;YACzE,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;QACH,CAAC,CAAC,CAAC;QAEH,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;AA1CY,aAAa;IADzB,UAAU,CAAC,YAAY,CAAC;GACZ,aAAa,CA0CzB;SA1CY,aAAa"}
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"}