media: esm port 1/3
This commit is contained in:
parent
48239801ce
commit
580b134428
File diff suppressed because one or more lines are too long
5
packages/media/commands/audio.d.ts
vendored
5
packages/media/commands/audio.d.ts
vendored
@ -1,3 +1,2 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
5
packages/media/commands/convert.d.ts
vendored
5
packages/media/commands/convert.d.ts
vendored
@ -1,3 +1,2 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
3
packages/media/commands/pdf2jpg.d.ts
vendored
3
packages/media/commands/pdf2jpg.d.ts
vendored
@ -1,2 +1 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
5
packages/media/commands/resize.d.ts
vendored
5
packages/media/commands/resize.d.ts
vendored
@ -1,3 +1,2 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
3
packages/media/commands/svg2jpg.d.ts
vendored
3
packages/media/commands/svg2jpg.d.ts
vendored
@ -1,2 +1 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
5
packages/media/commands/video.d.ts
vendored
5
packages/media/commands/video.d.ts
vendored
@ -1,3 +1,2 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
5
packages/media/commands/watermark.d.ts
vendored
5
packages/media/commands/watermark.d.ts
vendored
@ -1,3 +1,2 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = exports.defaultOptions = void 0;
|
||||
const osr_commons_1 = require("@plastichub/osr-commons");
|
||||
const commons_1 = require("@polymech/commons");
|
||||
const index_1 = require("../index");
|
||||
const images_1 = require("../lib/media/images");
|
||||
const _cli_1 = require("../_cli");
|
||||
@ -62,7 +62,7 @@ const register = (cli) => {
|
||||
return cli.command('watermark', 'Remove watermark : FILE|GLOB', options, async (argv) => {
|
||||
(0, _cli_1.defaults)();
|
||||
const options = (0, _cli_1.sanitize)(argv);
|
||||
const config = (0, osr_commons_1.CONFIG_DEFAULT)();
|
||||
const config = (0, commons_1.CONFIG_DEFAULT)();
|
||||
if (!config.novita) {
|
||||
index_1.logger.error("Novita key not found");
|
||||
return;
|
||||
@ -72,4 +72,4 @@ const register = (cli) => {
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRzL3dhdGVybWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBd0Q7QUFFeEQsb0NBQWlDO0FBQ2pDLGdEQUU0QjtBQUU1QixrQ0FHZ0I7QUFNVCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDekIsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNmLFFBQVEsRUFBRSxrQkFBa0I7S0FDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDakIsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLHdCQUF3QjtRQUNsQyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNqQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUNyQixRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDcEIsUUFBUSxFQUFFLDRCQUE0QjtRQUN0QyxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixRQUFRLEVBQUUsaUNBQWlDO1FBQzNDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDZixRQUFRLEVBQUUsU0FBUztRQUNuQixJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWxEWSxRQUFBLGNBQWMsa0JBa0QxQjtBQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUE7QUFFbkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFhLEVBQUUsRUFBRTtJQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLDhCQUE4QixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBbUIsRUFBRSxFQUFFO1FBQ3JHLElBQUEsZUFBUSxHQUFFLENBQUE7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFBLGVBQVEsRUFBQyxJQUFJLENBQWEsQ0FBQTtRQUMxQyxNQUFNLE1BQU0sR0FBUSxJQUFBLDRCQUFjLEdBQUUsQ0FBQTtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNsQixjQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDckMsT0FBTTtTQUNQO1FBQ0QsT0FBTyxDQUFDLEtBQUssSUFBSSxjQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDdEUsT0FBTyxJQUFBLGtCQUFTLEVBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzFELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBWlksUUFBQSxRQUFRLFlBWXBCIn0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRzL3dhdGVybWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBa0Q7QUFFbEQsb0NBQWlDO0FBQ2pDLGdEQUU0QjtBQUU1QixrQ0FHZ0I7QUFNVCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDekIsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNmLFFBQVEsRUFBRSxrQkFBa0I7S0FDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDakIsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLHdCQUF3QjtRQUNsQyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNqQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUNyQixRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDcEIsUUFBUSxFQUFFLDRCQUE0QjtRQUN0QyxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixRQUFRLEVBQUUsaUNBQWlDO1FBQzNDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDZixRQUFRLEVBQUUsU0FBUztRQUNuQixJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWxEWSxRQUFBLGNBQWMsa0JBa0QxQjtBQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUE7QUFFbkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFhLEVBQUUsRUFBRTtJQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLDhCQUE4QixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBbUIsRUFBRSxFQUFFO1FBQ3JHLElBQUEsZUFBUSxHQUFFLENBQUE7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFBLGVBQVEsRUFBQyxJQUFJLENBQWEsQ0FBQTtRQUMxQyxNQUFNLE1BQU0sR0FBUSxJQUFBLHdCQUFjLEdBQUUsQ0FBQTtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNsQixjQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDckMsT0FBTTtTQUNQO1FBQ0QsT0FBTyxDQUFDLEtBQUssSUFBSSxjQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDdEUsT0FBTyxJQUFBLGtCQUFTLEVBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzFELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBWlksUUFBQSxRQUFRLFlBWXBCIn0=
|
||||
@ -1,9 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ERR_PERM_RETRY_MAX = exports.ERR_PERM_RETRY_DELAY = exports.PACKAGE_NAME = exports.MODULE_NAME = exports.GIT_REPO = void 0;
|
||||
exports.GIT_REPO = 'https://git.osr-plastic.org/osr-plastic/';
|
||||
exports.MODULE_NAME = `OSR-MEDIA`;
|
||||
exports.PACKAGE_NAME = 'osr-media';
|
||||
exports.ERR_PERM_RETRY_DELAY = 500;
|
||||
exports.ERR_PERM_RETRY_MAX = 5;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQTtBQUNyRCxRQUFBLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDMUIsUUFBQSxZQUFZLEdBQUcsV0FBVyxDQUFDO0FBRTNCLFFBQUEsb0JBQW9CLEdBQUcsR0FBRyxDQUFBO0FBQzFCLFFBQUEsa0JBQWtCLEdBQUcsQ0FBQyxDQUFBIn0=
|
||||
@ -1,4 +1,4 @@
|
||||
import { IConvertVideoOptions, IResizeOptions } from './types';
|
||||
import { IConvertVideoOptions, IResizeOptions } from './types.js';
|
||||
export declare const defaults: () => void;
|
||||
export declare const sanitize: (argv: any) => IResizeOptions;
|
||||
export declare const sanitizeVideo: (argv: any) => IConvertVideoOptions;
|
||||
139
packages/media/dist-in/_cli.js
Normal file
139
packages/media/dist-in/_cli.js
Normal file
File diff suppressed because one or more lines are too long
2
packages/media/dist-in/commands/audio.d.ts
vendored
Normal file
2
packages/media/dist-in/commands/audio.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
36
packages/media/dist-in/commands/audio.js
Normal file
36
packages/media/dist-in/commands/audio.js
Normal file
@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = exports.defaultOptions = void 0;
|
||||
const __1 = require("../");
|
||||
const convert_1 = require("../lib/media/audio/convert");
|
||||
const _cli_1 = require("../_cli");
|
||||
const defaultOptions = (yargs) => {
|
||||
return yargs.option('src', {
|
||||
describe: 'FILE|FOLDER|GLOB',
|
||||
demandOption: true
|
||||
}).option('dst', {
|
||||
describe: 'FILE|FOLDER|GLOB'
|
||||
}).option('debug', {
|
||||
default: false,
|
||||
describe: 'Enable internal debug messages',
|
||||
type: 'boolean'
|
||||
}).option('alt', {
|
||||
default: false,
|
||||
describe: 'Use alternate tokenizer, & instead of $',
|
||||
type: 'boolean'
|
||||
});
|
||||
};
|
||||
exports.defaultOptions = defaultOptions;
|
||||
let options = (yargs) => (0, exports.defaultOptions)(yargs);
|
||||
const register = (cli) => {
|
||||
return cli.command('video <verb>', 'Convert video', options, (argv) => {
|
||||
(0, _cli_1.defaults)();
|
||||
const options = (0, _cli_1.sanitizeVideo)(argv);
|
||||
__1.logger.info("options " + argv.dst, options);
|
||||
if (argv.verb = 'convert') {
|
||||
return (0, convert_1.convert)(options);
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvYXVkaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkJBQTRCO0FBQzVCLHdEQUFvRDtBQUVwRCxrQ0FBaUQ7QUFHMUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRTtJQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsWUFBWSxFQUFFLElBQUk7S0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDYixRQUFRLEVBQUUsa0JBQWtCO0tBQy9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQTtBQWZZLFFBQUEsY0FBYyxrQkFlMUI7QUFFRCxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsSUFBQSxzQkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFBO0FBRWpELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYSxFQUFFLEVBQUU7SUFDdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBbUIsRUFBRSxFQUFFO1FBQ2pGLElBQUEsZUFBUSxHQUFFLENBQUE7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUF5QixDQUFBO1FBQzNELFVBQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDM0MsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsRUFBRTtZQUN2QixPQUFPLElBQUEsaUJBQU8sRUFBQyxPQUFPLENBQUMsQ0FBQTtTQUMxQjtJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBVFksUUFBQSxRQUFRLFlBU3BCIn0=
|
||||
2
packages/media/dist-in/commands/convert.d.ts
vendored
Normal file
2
packages/media/dist-in/commands/convert.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
42
packages/media/dist-in/commands/convert.js
Normal file
42
packages/media/dist-in/commands/convert.js
Normal file
@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = exports.defaultOptions = void 0;
|
||||
const __1 = require("../");
|
||||
const images_1 = require("../lib/media/images");
|
||||
const _cli_1 = require("../_cli");
|
||||
const defaultOptions = (yargs) => {
|
||||
return yargs.option('src', {
|
||||
describe: 'FILE|FOLDER|GLOB',
|
||||
demandOption: true
|
||||
}).option('dst', {
|
||||
describe: 'FILE|FOLDER|GLOB'
|
||||
}).option('debug', {
|
||||
default: false,
|
||||
describe: 'Enable internal debug messages',
|
||||
type: 'boolean'
|
||||
}).option('alt', {
|
||||
default: false,
|
||||
describe: 'Use alternate tokenizer, & instead of $',
|
||||
type: 'boolean'
|
||||
}).option('dry', {
|
||||
default: false,
|
||||
describe: 'Run without conversion',
|
||||
type: 'boolean'
|
||||
}).option('verbose', {
|
||||
default: false,
|
||||
describe: 'Show internal messages',
|
||||
type: 'boolean'
|
||||
});
|
||||
};
|
||||
exports.defaultOptions = defaultOptions;
|
||||
let options = (yargs) => (0, exports.defaultOptions)(yargs);
|
||||
const register = (cli) => {
|
||||
return cli.command('convert', 'Convert files', options, (argv) => {
|
||||
(0, _cli_1.defaults)();
|
||||
const options = (0, _cli_1.sanitizeVideo)(argv);
|
||||
options.debug && __1.logger.info("options " + argv.dst, options);
|
||||
return (0, images_1.convert)(options);
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9jb252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJCQUE0QjtBQUU1QixnREFFNEI7QUFFNUIsa0NBSWdCO0FBT1QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRTtJQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsWUFBWSxFQUFFLElBQUk7S0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDYixRQUFRLEVBQUUsa0JBQWtCO0tBQy9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ2pCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLHdCQUF3QjtRQUNsQyxJQUFJLEVBQUUsU0FBUztLQUNsQixDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUF2QlksUUFBQSxjQUFjLGtCQXVCMUI7QUFFRCxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsSUFBQSxzQkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFBO0FBRWpELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYSxFQUFFLEVBQUU7SUFDdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBbUIsRUFBRSxFQUFFO1FBQzVFLElBQUEsZUFBUSxHQUFFLENBQUE7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFhLENBQUE7UUFDL0MsT0FBTyxDQUFDLEtBQUssSUFBSSxVQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzVELE9BQU8sSUFBQSxnQkFBTyxFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBUFksUUFBQSxRQUFRLFlBT3BCIn0=
|
||||
1
packages/media/dist-in/commands/pdf2jpg.d.ts
vendored
Normal file
1
packages/media/dist-in/commands/pdf2jpg.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
76
packages/media/dist-in/commands/pdf2jpg.js
Normal file
76
packages/media/dist-in/commands/pdf2jpg.js
Normal file
@ -0,0 +1,76 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = void 0;
|
||||
const __1 = require("../");
|
||||
const path = __importStar(require("path"));
|
||||
const index_1 = require("../lib/process/index");
|
||||
const pMap = __importStar(require("p-map"));
|
||||
const fg = require('fast-glob');
|
||||
const defaultOptions = (yargs) => {
|
||||
return yargs.option('input', {
|
||||
default: './',
|
||||
describe: 'The sources'
|
||||
}).option('debug', {
|
||||
default: 'false',
|
||||
describe: 'Enable internal debug message'
|
||||
});
|
||||
};
|
||||
let options = (yargs) => defaultOptions(yargs);
|
||||
async function convertFiles(files) {
|
||||
return pMap(files, (file) => {
|
||||
const inParts = path.parse(file);
|
||||
// magick convert leg.pdf -quality 100 -density 250 -trim -flatten -resize 200% -sharpen 0x1.0 leg.jpg
|
||||
const promise = index_1.Helper.run(inParts.dir, 'convert', [
|
||||
`"${inParts.base}[0]"`,
|
||||
'-quality 80',
|
||||
'-density 250',
|
||||
'-trim',
|
||||
'-flatten',
|
||||
'-sharpen 0x1.0',
|
||||
`"${inParts.name}.jpg"`
|
||||
]);
|
||||
return promise;
|
||||
}, { concurrency: 1 });
|
||||
}
|
||||
// node ./build/main.js pdf2jpg --input=../drawings
|
||||
const register = (cli) => {
|
||||
return cli.command('pdf2jpg', '', options, async (argv) => {
|
||||
if (argv.help) {
|
||||
return;
|
||||
}
|
||||
const src = path.resolve('' + argv.input);
|
||||
if (argv.debug) {
|
||||
__1.logger.debug(`Begin convert PDF files${src}`);
|
||||
}
|
||||
const files = fg.sync('*.pdf|*.PDF', { dot: true, cwd: src, absolute: true });
|
||||
await convertFiles(files);
|
||||
if (argv.debug) {
|
||||
__1.logger.debug(`Converted ${files.length} files`);
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmMmpwZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wZGYyanBnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkJBQTRCO0FBQzVCLDJDQUE0QjtBQUM1QixnREFBNkM7QUFDN0MsNENBQTZCO0FBRTdCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUUvQixNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDekIsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsYUFBYTtLQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNmLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSwrQkFBK0I7S0FDNUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDO0FBRUYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV6RCxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQUs7SUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxzR0FBc0c7UUFDdEcsTUFBTSxPQUFPLEdBQUcsY0FBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFDakQ7WUFDSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLE1BQU07WUFDdEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxPQUFPO1lBQ1AsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixJQUFJLE9BQU8sQ0FBQyxJQUFJLE9BQU87U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQyxFQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELG1EQUFtRDtBQUM1QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWEsRUFBRSxFQUFFO0lBQ3RDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBbUIsRUFBRSxFQUFFO1FBQ3JFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osVUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRDtRQUNELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLFVBQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBYlksUUFBQSxRQUFRLFlBYXBCIn0=
|
||||
3
packages/media/dist-in/commands/resize.d.ts
vendored
Normal file
3
packages/media/dist-in/commands/resize.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
import * as CLI from 'yargs';
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
64
packages/media/dist-in/commands/resize.js
Normal file
64
packages/media/dist-in/commands/resize.js
Normal file
@ -0,0 +1,64 @@
|
||||
import { logger } from '../index.js';
|
||||
import { resize } from '../lib/media/images/resize.js';
|
||||
import { sanitize, defaults } from '../_cli.js';
|
||||
export const defaultOptions = (yargs) => {
|
||||
return yargs.option('src', {
|
||||
describe: 'FILE|FOLDER|GLOB',
|
||||
demandOption: true
|
||||
}).option('dst', {
|
||||
describe: 'FILE|FOLDER|GLOB'
|
||||
}).option('debug', {
|
||||
default: false,
|
||||
describe: 'Enable internal debug messages',
|
||||
type: 'boolean'
|
||||
}).option('alt', {
|
||||
default: false,
|
||||
describe: 'Use alternate tokenizer, & instead of $',
|
||||
type: 'boolean'
|
||||
}).option('dry', {
|
||||
default: false,
|
||||
describe: 'Run without conversion',
|
||||
type: 'boolean'
|
||||
}).option('verbose', {
|
||||
default: false,
|
||||
describe: 'Show internal messages',
|
||||
type: 'boolean'
|
||||
}).option('percent', {
|
||||
default: false,
|
||||
describe: 'Resize image with percent',
|
||||
type: 'number'
|
||||
}).option('width', {
|
||||
describe: 'Resize image with',
|
||||
type: 'number'
|
||||
}).option('height', {
|
||||
describe: 'Resize image height',
|
||||
type: 'number'
|
||||
}).option('minHeight', {
|
||||
describe: 'Resize image minimum height',
|
||||
type: 'number'
|
||||
}).option('minWidth', {
|
||||
describe: 'Resize image minimum width',
|
||||
type: 'number'
|
||||
}).option('minSize', {
|
||||
describe: 'Resize image size (bytes)',
|
||||
type: 'number'
|
||||
}).option('percent', {
|
||||
describe: 'Resize image in percent (width)',
|
||||
type: 'number'
|
||||
}).option('logLevel', {
|
||||
describe: 'Log level : warn, info, debug, error',
|
||||
type: 'string',
|
||||
default: 'info'
|
||||
});
|
||||
};
|
||||
let options = (yargs) => defaultOptions(yargs);
|
||||
export const register = (cli) => {
|
||||
return cli.command('resize', 'Resizes files', options, async (argv) => {
|
||||
defaults();
|
||||
const options = sanitize(argv);
|
||||
logger.settings.minLevel = options.logLevel;
|
||||
logger.info("options " + argv.dst, options);
|
||||
await resize(options);
|
||||
});
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3Jlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sRUFDSCxNQUFNLEVBQ1QsTUFBTSwrQkFBK0IsQ0FBQTtBQUV0QyxPQUFPLEVBQ0gsUUFBUSxFQUNSLFFBQVEsRUFDWCxNQUFNLFlBQVksQ0FBQTtBQU1uQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRTtJQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsWUFBWSxFQUFFLElBQUk7S0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDYixRQUFRLEVBQUUsa0JBQWtCO0tBQy9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ2pCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLHdCQUF3QjtRQUNsQyxJQUFJLEVBQUUsU0FBUztLQUNsQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDZixRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLElBQUksRUFBRSxRQUFRO0tBQ2pCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsSUFBSSxFQUFFLFFBQVE7S0FDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDbkIsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxJQUFJLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUNsQixRQUFRLEVBQUUsNEJBQTRCO1FBQ3RDLElBQUksRUFBRSxRQUFRO0tBQ2pCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ2pCLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDakIsUUFBUSxFQUFFLGlDQUFpQztRQUMzQyxJQUFJLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUNsQixRQUFRLEVBQUUsc0NBQXNDO1FBQ2hELElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLE1BQU07S0FDbEIsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBRUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUV4RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFhLEVBQUUsRUFBRTtJQUN0QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQW1CLEVBQUUsRUFBRTtRQUNqRixRQUFRLEVBQUUsQ0FBQTtRQUNWLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQWEsQ0FBQTtRQUMxQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBZSxDQUFBO1FBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDM0MsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUEifQ==
|
||||
1
packages/media/dist-in/commands/svg2jpg.d.ts
vendored
Normal file
1
packages/media/dist-in/commands/svg2jpg.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
72
packages/media/dist-in/commands/svg2jpg.js
Normal file
72
packages/media/dist-in/commands/svg2jpg.js
Normal file
@ -0,0 +1,72 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = void 0;
|
||||
const debug_1 = require("@plastichub/core/debug");
|
||||
const path = __importStar(require("path"));
|
||||
const index_1 = require("../lib/process/index");
|
||||
const bluebird = __importStar(require("bluebird"));
|
||||
const fg = require('fast-glob');
|
||||
const defaultOptions = (yargs) => {
|
||||
return yargs.option('input', {
|
||||
default: './',
|
||||
describe: 'The sources'
|
||||
}).option('debug', {
|
||||
default: 'false',
|
||||
describe: 'Enable internal debug message'
|
||||
});
|
||||
};
|
||||
let options = (yargs) => defaultOptions(yargs);
|
||||
async function convertFiles(files) {
|
||||
return bluebird.mapSeries(files, (file) => {
|
||||
const inParts = path.parse(file);
|
||||
const promise = index_1.Helper.run(inParts.dir, 'convert', [
|
||||
`"${inParts.base}"`,
|
||||
'-quality 40',
|
||||
'-sharpen 0x1.0',
|
||||
`"${inParts.name}.jpg"`
|
||||
]);
|
||||
return promise;
|
||||
});
|
||||
}
|
||||
//node ./build/main.js svg2jpg --input=../tests/svg/
|
||||
const register = (cli) => {
|
||||
return cli.command('svg2jpg', '', options, async (argv) => {
|
||||
if (argv.help) {
|
||||
return;
|
||||
}
|
||||
const src = path.resolve('' + argv.input);
|
||||
const files = fg.sync('*.svg|*.SVG', { dot: true, cwd: src, absolute: true });
|
||||
if (argv.debug) {
|
||||
(0, debug_1.debug)(`Begin convert SVG files at ${src} ${files}`);
|
||||
}
|
||||
await convertFiles(files);
|
||||
if (argv.debug) {
|
||||
(0, debug_1.debug)(`Converted ${files.length} files`);
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnMmpwZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9zdmcyanBnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esa0RBQThDO0FBQzlDLDJDQUE2QjtBQUM3QixnREFBOEM7QUFDOUMsbURBQXFDO0FBRXJDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVoQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDekIsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsYUFBYTtLQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNmLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSwrQkFBK0I7S0FDNUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDO0FBRUYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV6RCxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQUs7SUFDN0IsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsY0FBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFDakQ7WUFDSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEdBQUc7WUFDbkIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixJQUFJLE9BQU8sQ0FBQyxJQUFJLE9BQU87U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0Qsb0RBQW9EO0FBRTdDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYSxFQUFFLEVBQUU7SUFDdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFtQixFQUFFLEVBQUU7UUFDckUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFBLGFBQUssRUFBQyw4QkFBOEIsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDdkQ7UUFDRCxNQUFNLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFBLGFBQUssRUFBQyxhQUFhLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFiVyxRQUFBLFFBQVEsWUFhbkIifQ==
|
||||
2
packages/media/dist-in/commands/video.d.ts
vendored
Normal file
2
packages/media/dist-in/commands/video.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
39
packages/media/dist-in/commands/video.js
Normal file
39
packages/media/dist-in/commands/video.js
Normal file
@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = exports.defaultOptions = void 0;
|
||||
const __1 = require("../");
|
||||
const video_1 = require("../lib/media/video");
|
||||
const _cli_1 = require("../_cli");
|
||||
const defaultOptions = (yargs) => {
|
||||
return yargs.option('src', {
|
||||
describe: 'FILE|FOLDER|GLOB',
|
||||
demandOption: true
|
||||
}).option('dst', {
|
||||
describe: 'FILE|FOLDER|GLOB'
|
||||
}).option('debug', {
|
||||
default: false,
|
||||
describe: 'Enable internal debug messages',
|
||||
type: 'boolean'
|
||||
}).option('alt', {
|
||||
default: false,
|
||||
describe: 'Use alternate tokenizer, & instead of $',
|
||||
type: 'boolean'
|
||||
});
|
||||
};
|
||||
exports.defaultOptions = defaultOptions;
|
||||
let options = (yargs) => (0, exports.defaultOptions)(yargs);
|
||||
const register = (cli) => {
|
||||
return cli.command('video <verb>', 'Convert video', options, async (argv) => {
|
||||
(0, _cli_1.defaults)();
|
||||
const options = (0, _cli_1.sanitizeVideo)(argv);
|
||||
__1.logger.info("options " + argv.dst, options);
|
||||
if (options.verb == 'convert') {
|
||||
return (0, video_1.convert)(options);
|
||||
}
|
||||
if (options.verb == 'merge') {
|
||||
return (0, video_1.merge)(options);
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdmlkZW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkJBQTRCO0FBQzVCLDhDQUFtRDtBQUNuRCxrQ0FBaUQ7QUFHMUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRTtJQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsWUFBWSxFQUFFLElBQUk7S0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDYixRQUFRLEVBQUUsa0JBQWtCO0tBQy9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2xCLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQTtBQWZZLFFBQUEsY0FBYyxrQkFlMUI7QUFFRCxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsSUFBQSxzQkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFBO0FBRWpELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYSxFQUFFLEVBQUU7SUFDdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFtQixFQUFFLEVBQUU7UUFDdkYsSUFBQSxlQUFRLEdBQUUsQ0FBQTtRQUNWLE1BQU0sT0FBTyxHQUFHLElBQUEsb0JBQWEsRUFBQyxJQUFJLENBQXlCLENBQUE7UUFDM0QsVUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUMzQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzNCLE9BQU8sSUFBQSxlQUFPLEVBQUMsT0FBTyxDQUFDLENBQUE7U0FDMUI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFO1lBQ3pCLE9BQU8sSUFBQSxhQUFLLEVBQUMsT0FBTyxDQUFRLENBQUE7U0FDL0I7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQTtBQVpZLFFBQUEsUUFBUSxZQVlwQiJ9
|
||||
2
packages/media/dist-in/commands/watermark.d.ts
vendored
Normal file
2
packages/media/dist-in/commands/watermark.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
export declare const defaultOptions: (yargs: CLI.Argv) => any;
|
||||
export declare const register: (cli: CLI.Argv) => any;
|
||||
75
packages/media/dist-in/commands/watermark.js
Normal file
75
packages/media/dist-in/commands/watermark.js
Normal file
@ -0,0 +1,75 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = exports.defaultOptions = void 0;
|
||||
const commons_1 = require("@polymech/commons");
|
||||
const index_1 = require("../index");
|
||||
const images_1 = require("../lib/media/images");
|
||||
const _cli_1 = require("../_cli");
|
||||
const defaultOptions = (yargs) => {
|
||||
return yargs.option('src', {
|
||||
describe: 'FILE|FOLDER|GLOB',
|
||||
demandOption: true
|
||||
}).option('dst', {
|
||||
describe: 'FILE|FOLDER|GLOB'
|
||||
}).option('debug', {
|
||||
default: false,
|
||||
describe: 'Enable internal debug messages',
|
||||
type: 'boolean'
|
||||
}).option('alt', {
|
||||
default: false,
|
||||
describe: 'Use alternate tokenizer, & instead of $',
|
||||
type: 'boolean'
|
||||
}).option('dry', {
|
||||
default: false,
|
||||
describe: 'Run without conversion',
|
||||
type: 'boolean'
|
||||
}).option('verbose', {
|
||||
default: false,
|
||||
describe: 'Show internal messages',
|
||||
type: 'boolean'
|
||||
}).option('percent', {
|
||||
default: false,
|
||||
describe: 'Resize image with percent',
|
||||
type: 'number'
|
||||
}).option('width', {
|
||||
default: false,
|
||||
describe: 'Resize image with',
|
||||
type: 'number'
|
||||
}).option('height', {
|
||||
default: false,
|
||||
describe: 'Resize image height',
|
||||
type: 'number'
|
||||
}).option('minHeight', {
|
||||
describe: 'Resize image minimum height',
|
||||
type: 'number'
|
||||
}).option('minWidth', {
|
||||
describe: 'Resize image minimum width',
|
||||
type: 'number'
|
||||
}).option('minSize', {
|
||||
describe: 'Resize image size (bytes)',
|
||||
type: 'number'
|
||||
}).option('percent', {
|
||||
describe: 'Resize image in percent (width)',
|
||||
type: 'number'
|
||||
}).option('key', {
|
||||
describe: 'API Key',
|
||||
type: 'string'
|
||||
});
|
||||
};
|
||||
exports.defaultOptions = defaultOptions;
|
||||
const options = (yargs) => (0, exports.defaultOptions)(yargs);
|
||||
const register = (cli) => {
|
||||
return cli.command('watermark', 'Remove watermark : FILE|GLOB', options, async (argv) => {
|
||||
(0, _cli_1.defaults)();
|
||||
const options = (0, _cli_1.sanitize)(argv);
|
||||
const config = (0, commons_1.CONFIG_DEFAULT)();
|
||||
if (!config.novita) {
|
||||
index_1.logger.error("Novita key not found");
|
||||
return;
|
||||
}
|
||||
options.debug && index_1.logger.info("Watermark Options " + argv.dst, options);
|
||||
return (0, images_1.watermark)({ ...options, key: config.novita.key });
|
||||
});
|
||||
};
|
||||
exports.register = register;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3dhdGVybWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBa0Q7QUFFbEQsb0NBQWlDO0FBQ2pDLGdEQUU0QjtBQUU1QixrQ0FHZ0I7QUFNVCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDekIsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNmLFFBQVEsRUFBRSxrQkFBa0I7S0FDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDakIsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUseUNBQXlDO1FBQ25ELElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2YsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLHdCQUF3QjtRQUNsQyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNqQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUNyQixRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDcEIsUUFBUSxFQUFFLDRCQUE0QjtRQUN0QyxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixRQUFRLEVBQUUsaUNBQWlDO1FBQzNDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDZixRQUFRLEVBQUUsU0FBUztRQUNuQixJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWxEWSxRQUFBLGNBQWMsa0JBa0QxQjtBQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUE7QUFFbkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFhLEVBQUUsRUFBRTtJQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLDhCQUE4QixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBbUIsRUFBRSxFQUFFO1FBQ3JHLElBQUEsZUFBUSxHQUFFLENBQUE7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFBLGVBQVEsRUFBQyxJQUFJLENBQWEsQ0FBQTtRQUMxQyxNQUFNLE1BQU0sR0FBUSxJQUFBLHdCQUFjLEdBQUUsQ0FBQTtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNsQixjQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDckMsT0FBTTtTQUNQO1FBQ0QsT0FBTyxDQUFDLEtBQUssSUFBSSxjQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDdEUsT0FBTyxJQUFBLGtCQUFTLEVBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzFELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBWlksUUFBQSxRQUFRLFlBWXBCIn0=
|
||||
6
packages/media/dist-in/constants.js
Normal file
6
packages/media/dist-in/constants.js
Normal file
@ -0,0 +1,6 @@
|
||||
export const GIT_REPO = 'https://git.osr-plastic.org/osr-plastic/';
|
||||
export const MODULE_NAME = `OSR-MEDIA`;
|
||||
export const PACKAGE_NAME = 'osr-media';
|
||||
export const ERR_PERM_RETRY_DELAY = 500;
|
||||
export const ERR_PERM_RETRY_MAX = 5;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsMENBQTBDLENBQUE7QUFDbEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTtBQUN2QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUEifQ==
|
||||
4
packages/media/dist-in/index.d.ts
vendored
Normal file
4
packages/media/dist-in/index.d.ts
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
export * from './constants.js';
|
||||
export * from './types.js';
|
||||
import { Logger, ILogObj } from 'tslog';
|
||||
export declare const logger: Logger<ILogObj>;
|
||||
6
packages/media/dist-in/index.js
Normal file
6
packages/media/dist-in/index.js
Normal file
@ -0,0 +1,6 @@
|
||||
export * from './constants.js';
|
||||
export * from './types.js';
|
||||
import { createLogger } from '@polymech/log';
|
||||
import { MODULE_NAME } from './constants.js';
|
||||
export const logger = createLogger(MODULE_NAME);
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFlBQVksQ0FBQTtBQUUxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBK0IsQ0FBQSJ9
|
||||
1
packages/media/dist-in/lib/common/platform.d.ts
vendored
Normal file
1
packages/media/dist-in/lib/common/platform.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
export declare const os: () => "windows" | "osx" | "arm" | "linux";
|
||||
18
packages/media/dist-in/lib/common/platform.js
Normal file
18
packages/media/dist-in/lib/common/platform.js
Normal file
@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.os = void 0;
|
||||
const os_1 = require("os");
|
||||
const os = () => {
|
||||
if ((0, os_1.platform)() === 'win32') {
|
||||
return 'windows';
|
||||
}
|
||||
else if ((0, os_1.platform)() === 'darwin') {
|
||||
return 'osx';
|
||||
}
|
||||
else if ((0, os_1.arch)() === 'arm') {
|
||||
return 'arm';
|
||||
}
|
||||
return 'linux';
|
||||
};
|
||||
exports.os = os;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbW1vbi9wbGF0Zm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBb0M7QUFFN0IsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFO0lBQ3JCLElBQUksSUFBQSxhQUFRLEdBQUUsS0FBSyxPQUFPLEVBQUU7UUFDMUIsT0FBTyxTQUFTLENBQUM7S0FDbEI7U0FBTSxJQUFJLElBQUEsYUFBUSxHQUFFLEtBQUssUUFBUSxFQUFFO1FBQ2xDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7U0FBTSxJQUFJLElBQUEsU0FBSSxHQUFFLEtBQUssS0FBSyxFQUFFO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUE7QUFUWSxRQUFBLEVBQUUsTUFTZCJ9
|
||||
4
packages/media/dist-in/lib/index.d.ts
vendored
Normal file
4
packages/media/dist-in/lib/index.d.ts
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
import { IResizeOptions } from '../types.js';
|
||||
export declare const fileAsBuffer: (path: string) => Buffer<ArrayBufferLike>;
|
||||
export declare const targets: (f: string, options: IResizeOptions) => string[];
|
||||
export declare const targetsNext: (f: string, options: IResizeOptions) => string[];
|
||||
134
packages/media/dist-in/lib/index.js
Normal file
134
packages/media/dist-in/lib/index.js
Normal file
File diff suppressed because one or more lines are too long
13
packages/media/dist-in/lib/media/audio/convert.d.ts
vendored
Normal file
13
packages/media/dist-in/lib/media/audio/convert.d.ts
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
import { IConvertVideoOptions } from '../../../types';
|
||||
export declare const split: (src: string, dst: string, onNode: any, options: {
|
||||
interval: number;
|
||||
}) => Promise<void>;
|
||||
export declare const CONVERTERS: {
|
||||
'.mp3': (src: string, dst: string, onNode: any, options: {
|
||||
interval: number;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
export declare const converter: (file: string) => any;
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IConvertVideoOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IConvertVideoOptions): Promise<any>;
|
||||
export declare const convert: (options: IConvertVideoOptions) => Promise<void>;
|
||||
118
packages/media/dist-in/lib/media/audio/convert.js
Normal file
118
packages/media/dist-in/lib/media/audio/convert.js
Normal file
@ -0,0 +1,118 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.convert = exports._convert = exports.convertFile = exports.converter = exports.CONVERTERS = exports.split = void 0;
|
||||
const path = __importStar(require("path"));
|
||||
const pMap = __importStar(require("p-map"));
|
||||
const commons_1 = require("@polymech/commons");
|
||||
const exists_1 = require("@polymech/fs/exists");
|
||||
const dir_1 = require("@polymech/fs/dir");
|
||||
const lib_1 = require("@polymech/cache/lib");
|
||||
const __1 = require("../../");
|
||||
const __2 = require("../../..");
|
||||
const constants_1 = require("../../../constants");
|
||||
const ffmpeg_1 = require("../ffmpeg");
|
||||
const FfmpegCommand = require('fluent-ffmpeg');
|
||||
const extension = (file) => path.parse(file).ext;
|
||||
const split = async (src, dst, onNode, options) => {
|
||||
try {
|
||||
const metadata = await (0, ffmpeg_1.meta)(src);
|
||||
const duration = metadata.format.duration;
|
||||
if (!duration) {
|
||||
__2.logger.error('Unable to determine duration of the audio file.');
|
||||
return;
|
||||
}
|
||||
let startTime = 0;
|
||||
let segmentIndex = 1;
|
||||
while (startTime < duration) {
|
||||
const outputFile = `${dst}/segment_${segmentIndex}.mp3`;
|
||||
await new Promise((resolve, reject) => {
|
||||
const ff = new FfmpegCommand(src)
|
||||
.setStartTime(startTime)
|
||||
.setDuration(options.interval)
|
||||
.output(outputFile)
|
||||
.on('end', () => {
|
||||
__2.logger.info(`Segment ${segmentIndex} finished.`);
|
||||
resolve();
|
||||
})
|
||||
.on('error', (error) => {
|
||||
__2.logger.error(`Error while processing segment ${segmentIndex}:`, error.message);
|
||||
reject(error);
|
||||
})
|
||||
.run();
|
||||
});
|
||||
startTime += options.interval;
|
||||
segmentIndex++;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
__2.logger.error('Error splitting audio file:', error);
|
||||
}
|
||||
};
|
||||
exports.split = split;
|
||||
exports.CONVERTERS = {
|
||||
'.mp3': exports.split
|
||||
};
|
||||
const converter = (file) => exports.CONVERTERS[extension(file)];
|
||||
exports.converter = converter;
|
||||
const convertFile = async (file, target, onNode = () => { }, options) => {
|
||||
const osr_cache = (0, commons_1.OSR_CACHE)();
|
||||
const ca_options = JSON.parse(JSON.stringify({ ...options, target, skip: null }));
|
||||
const cached = await (0, lib_1.get_cached)(file, ca_options, constants_1.MODULE_NAME);
|
||||
const conv = (0, exports.converter)(target);
|
||||
if (!conv) {
|
||||
__2.logger.error(`No converter found for ${file}`);
|
||||
return;
|
||||
}
|
||||
const dstParts = path.parse(target);
|
||||
if (!(0, exists_1.sync)(dstParts.dir)) {
|
||||
(0, dir_1.sync)(dstParts.dir);
|
||||
}
|
||||
const ret = await conv(file, target, onNode, options);
|
||||
return ret;
|
||||
};
|
||||
exports.convertFile = convertFile;
|
||||
async function _convert(file, targets, onNode = () => { }, options) {
|
||||
return pMap(targets, (target) => {
|
||||
options.verbose && __2.logger.debug(`Convert ${file} to ${target}`);
|
||||
if (options.dry) {
|
||||
return;
|
||||
}
|
||||
return (0, exports.convertFile)(file, target, onNode, options);
|
||||
}, { concurrency: 1 });
|
||||
}
|
||||
exports._convert = _convert;
|
||||
const convert = async (options) => {
|
||||
let reports = [];
|
||||
const onNode = (data) => { reports.push(data); };
|
||||
options.verbose && __2.logger.info(`Convert ${options.srcInfo.FILES.length} files `);
|
||||
await pMap(options.srcInfo.FILES, (f) => {
|
||||
const outputs = (0, __1.targets)(f, options);
|
||||
options.verbose && __2.logger.info(`Convert ${f} to `, outputs);
|
||||
return _convert(f, outputs, onNode, options);
|
||||
}, { concurrency: 1 });
|
||||
};
|
||||
exports.convert = convert;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbWVkaWEvYXVkaW8vY29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE0QjtBQUM1Qiw0Q0FBNkI7QUFDN0IsK0NBQTZDO0FBQzdDLGdEQUFvRDtBQUNwRCwwQ0FBOEM7QUFDOUMsNkNBQWdEO0FBQ2hELDhCQUFnQztBQUNoQyxnQ0FBaUM7QUFDakMsa0RBQWdEO0FBR2hELHNDQUFnQztBQUloQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUE7QUFFOUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFBO0FBRWpELE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLE1BQU0sRUFBRSxPQUE2QixFQUFpQixFQUFFO0lBQzFHLElBQUk7UUFDQSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsYUFBSSxFQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxVQUFNLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7WUFDaEUsT0FBTztTQUNWO1FBRUQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFBO1FBQ2pCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQTtRQUVwQixPQUFPLFNBQVMsR0FBRyxRQUFRLEVBQUU7WUFDekIsTUFBTSxVQUFVLEdBQUcsR0FBRyxHQUFHLFlBQVksWUFBWSxNQUFNLENBQUM7WUFFeEQsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtn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
|
||||
2
packages/media/dist-in/lib/media/ffmpeg.d.ts
vendored
Normal file
2
packages/media/dist-in/lib/media/ffmpeg.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import { FfprobeData } from 'fluent-ffmpeg';
|
||||
export declare const meta: (src: string) => Promise<FfprobeData>;
|
||||
21
packages/media/dist-in/lib/media/ffmpeg.js
Normal file
21
packages/media/dist-in/lib/media/ffmpeg.js
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.meta = void 0;
|
||||
const FfmpegCommand = require('fluent-ffmpeg');
|
||||
const meta = async (src) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const ff = new FfmpegCommand(src);
|
||||
ff.ffprobe(src, (err, metadata) => {
|
||||
if (err) {
|
||||
//logger.error('Error retrieving metadata:', err)
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
//logger.info('Successfully retrieved metadata.');
|
||||
resolve(metadata);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
exports.meta = meta;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmZtcGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9mZm1wZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBRXZDLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQXdCLEVBQUU7SUFDNUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxpREFBaUQ7Z0JBQ2pELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLGtEQUFrRDtnQkFDbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWJVLFFBQUEsSUFBSSxRQWFkIn0=
|
||||
5
packages/media/dist-in/lib/media/images/convert.d.ts
vendored
Normal file
5
packages/media/dist-in/lib/media/images/convert.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../types.js';
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IResizeOptions) => Promise<sharp.OutputInfo>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IOptions): Promise<any[]>;
|
||||
export declare const convert: (options: IOptions) => Promise<void>;
|
||||
44
packages/media/dist-in/lib/media/images/convert.js
Normal file
44
packages/media/dist-in/lib/media/images/convert.js
Normal file
@ -0,0 +1,44 @@
|
||||
import * as path from 'path';
|
||||
import * as bluebird from 'bluebird';
|
||||
import pMap from 'p-map';
|
||||
import sharp from 'sharp';
|
||||
import { logger } from '../../../index.js';
|
||||
import { OSR_CACHE } from '@polymech/commons';
|
||||
import { sync as exists } from "@polymech/fs/exists";
|
||||
import { sync as dir } from "@polymech/fs/dir";
|
||||
import { get_cached } from '@polymech/cache/lib';
|
||||
import { targets } from '../../index.js';
|
||||
import { MODULE_NAME } from '../../../constants.js';
|
||||
export const convertFile = async (file, target, onNode = () => { }, options) => {
|
||||
const osr_cache = OSR_CACHE();
|
||||
const ca_options = JSON.parse(JSON.stringify({ ...options, target, skip: null }));
|
||||
const cached = await get_cached(file, ca_options, MODULE_NAME);
|
||||
let image = sharp(file);
|
||||
const srcParts = path.parse(file);
|
||||
const dstParts = path.parse(target);
|
||||
if (!exists(dstParts.dir)) {
|
||||
dir(dstParts.dir);
|
||||
}
|
||||
let ret = await image.withMetadata().toFile(target);
|
||||
return ret;
|
||||
};
|
||||
export async function _convert(file, targets, onNode = () => { }, options) {
|
||||
return pMap(targets, async (target) => {
|
||||
logger.debug(`Convert ${file} to ${target}`);
|
||||
if (options.dry) {
|
||||
return bluebird.resolve();
|
||||
}
|
||||
return convertFile(file, target, onNode, options);
|
||||
}, { concurrency: 1 });
|
||||
}
|
||||
export const convert = async (options) => {
|
||||
let reports = [];
|
||||
const onNode = (data) => { reports.push(data); };
|
||||
logger.info(`Convert ${options.srcInfo.FILES.length} files `);
|
||||
await pMap(options.srcInfo.FILES, (f) => {
|
||||
const outputs = targets(f, options);
|
||||
options.verbose && logger.info(`Convert ${f} to `, outputs);
|
||||
return _convert(f, outputs, onNode, options);
|
||||
}, { concurrency: 1 });
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbWVkaWEvaW1hZ2VzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFDNUIsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDcEMsT0FBTyxJQUFJLE1BQU0sT0FBTyxDQUFBO0FBQ3hCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM5QyxPQUFPLEVBQ0gsVUFBVSxFQUNiLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsT0FBTyxFQUNILE9BQU8sRUFDVixNQUFNLGdCQUFnQixDQUFBO0FBRXZCLE9BQU8sRUFDSCxXQUFXLEVBQ2QsTUFBTSx1QkFBdUIsQ0FBQTtBQUU5QixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUNoSCxNQUFNLFNBQVMsR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQzlELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkMsSUFBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztRQUN0QixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkQsT0FBTyxHQUFHLENBQUE7QUFDZCxDQUFDLENBQUE7QUFDRCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBaUIsRUFBRSxTQUE4QixHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBaUI7SUFDOUcsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQy9DLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNoQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxTQUFTLENBQUMsQ0FBQTtJQUM3RCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ25DLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDbkMsT0FBTyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDM0QsT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDaEQsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDMUIsQ0FBQyxDQUFBIn0=
|
||||
33
packages/media/dist-in/lib/media/images/index.d.ts
vendored
Normal file
33
packages/media/dist-in/lib/media/images/index.d.ts
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
export * from './resize.js';
|
||||
export * from './convert.js';
|
||||
export * from './watermark.js';
|
||||
import sharp from 'sharp';
|
||||
import { IResizeOptions } from '../../../index.js';
|
||||
export declare const GLOB_BASIC = "png|jpg|tiff|jpeg|webp";
|
||||
export declare const GLOB_MIN = "*.{png,jpg,jpeg,PNG,JPG,JPEG}";
|
||||
export declare const files: (dir: any, glob: any) => any;
|
||||
export declare const getFormats: (src: any, folder: any) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
format: string;
|
||||
}[];
|
||||
export declare const getThumbnailOptions: (src: any, format: any) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
format: any;
|
||||
}[];
|
||||
export declare const thumbnails: (options: IResizeOptions) => Promise<any>;
|
||||
export declare const meta: (file: any) => Promise<sharp.Metadata>;
|
||||
export declare const format: (formats: any, options?: {
|
||||
cache: boolean;
|
||||
png: boolean;
|
||||
}) => Promise<sharp.Metadata[][]>;
|
||||
export declare const getResizePatterns: (product: any, folder: any, percent?: number) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
percent: number;
|
||||
}[];
|
||||
export declare const resize: (patterns: any, options?: {
|
||||
cache: boolean;
|
||||
}) => Promise<void[][]>;
|
||||
export declare const resizeSharp: (patterns: any) => Promise<sharp.Metadata[][]>;
|
||||
142
packages/media/dist-in/lib/media/images/index.js
Normal file
142
packages/media/dist-in/lib/media/images/index.js
Normal file
File diff suppressed because one or more lines are too long
5
packages/media/dist-in/lib/media/images/lib.d.ts
vendored
Normal file
5
packages/media/dist-in/lib/media/images/lib.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import sharp from 'sharp';
|
||||
export declare const fileAsBuffer: (path: string) => Buffer<ArrayBufferLike>;
|
||||
export declare const base64ToBuffer: (b64string: string) => Promise<Buffer<ArrayBuffer>>;
|
||||
export declare const imageToBase64: (imagePath: string) => Promise<string>;
|
||||
export declare const meta: (file: any, image: sharp.Sharp) => Promise<sharp.Metadata | null>;
|
||||
29
packages/media/dist-in/lib/media/images/lib.js
Normal file
29
packages/media/dist-in/lib/media/images/lib.js
Normal file
@ -0,0 +1,29 @@
|
||||
import * as path from 'path';
|
||||
import * as fs from 'fs';
|
||||
import { sync as read } from "@polymech/fs/read";
|
||||
import { logger } from '../../../index.js';
|
||||
export const fileAsBuffer = (path) => read(path, 'buffer') || Buffer.from("-");
|
||||
export const base64ToBuffer = async (b64string) => Buffer.from(b64string, 'base64');
|
||||
export const imageToBase64 = async (imagePath) => {
|
||||
try {
|
||||
const imageBuffer = await fs.promises.readFile(imagePath);
|
||||
const imageBase64 = imageBuffer.toString('base64');
|
||||
const mimeType = path.extname(imagePath).slice(1);
|
||||
const dataUri = `data:image/${mimeType};base64,${imageBase64}`;
|
||||
return dataUri;
|
||||
}
|
||||
catch (error) {
|
||||
throw new Error(`Failed to convert image to base64: ${error}`);
|
||||
}
|
||||
};
|
||||
export const meta = (file, image) => {
|
||||
return new Promise((resolve) => {
|
||||
image.metadata().then((meta) => {
|
||||
resolve(meta);
|
||||
}).catch((e) => {
|
||||
logger.error(`Error creating meta data ${file}`);
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9pbWFnZXMvbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBRXhCLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFFM0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxTQUFpQixFQUFtQixFQUFFO0lBQ3RFLElBQUksQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxjQUFjLFFBQVEsV0FBVyxXQUFXLEVBQUUsQ0FBQztRQUMvRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxLQUFrQixFQUFrQyxFQUFFO0lBQzdFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUMzQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQSJ9
|
||||
5
packages/media/dist-in/lib/media/images/resize.d.ts
vendored
Normal file
5
packages/media/dist-in/lib/media/images/resize.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../index.js';
|
||||
export declare const resizeFile: (source: string, target: string, onNode: (data: sharp.Sharp) => void, options: IResizeOptions) => Promise<sharp.Sharp | undefined>;
|
||||
export declare const _resize: (file: any, targets: string[], onNode: (data: any) => void, options: IOptions) => Promise<(void | sharp.Sharp)[]>;
|
||||
export declare const resize: (options: IResizeOptions) => Promise<any>;
|
||||
148
packages/media/dist-in/lib/media/images/resize.js
Normal file
148
packages/media/dist-in/lib/media/images/resize.js
Normal file
File diff suppressed because one or more lines are too long
2
packages/media/dist-in/lib/media/images/watermark.d.ts
vendored
Normal file
2
packages/media/dist-in/lib/media/images/watermark.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import { IOptions } from '../../../types.js';
|
||||
export declare const watermark: (options: IOptions) => Promise<any>;
|
||||
48
packages/media/dist-in/lib/media/images/watermark.js
Normal file
48
packages/media/dist-in/lib/media/images/watermark.js
Normal file
@ -0,0 +1,48 @@
|
||||
import * as bluebird from 'bluebird';
|
||||
import { Promise as BPromise } from 'bluebird';
|
||||
import { async as write } from "@polymech/fs/write";
|
||||
import { logger } from '../../../index.js';
|
||||
import { imageToBase64, base64ToBuffer } from './lib.js';
|
||||
import { NovitaSDK } from "novita-sdk";
|
||||
import { targets } from '../../index.js';
|
||||
const removeWatermark = async (file, target, onNode = () => { }, options) => {
|
||||
const novitaClient = new NovitaSDK(options.key);
|
||||
const params = {
|
||||
image_file: await imageToBase64(file)
|
||||
//"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD",
|
||||
};
|
||||
try {
|
||||
const wMark = await novitaClient.removeWatermark(params);
|
||||
logger.info(`Watermark removed: ${file} to ${target}`);
|
||||
write(target, base64ToBuffer(wMark.image_file));
|
||||
}
|
||||
catch (error) {
|
||||
logger.error(`Failed to remove watermark: ${error.msg}`);
|
||||
}
|
||||
};
|
||||
const _watermark = async (file, targets, onNode = () => { }, options) => {
|
||||
return BPromise.resolve(targets).map((target) => {
|
||||
options.verbose && logger.debug(`Removing Watermark ${file} to ${target}`);
|
||||
if (options.dry) {
|
||||
return bluebird.resolve();
|
||||
}
|
||||
return removeWatermark(file, target, onNode, options);
|
||||
}, { concurrency: 1 });
|
||||
};
|
||||
export const watermark = async (options) => {
|
||||
// reporting, stub
|
||||
let reports = [];
|
||||
const onNode = (data) => reports.push(data);
|
||||
if (options.srcInfo) {
|
||||
options.verbose && logger.info(`Convert ${options.srcInfo.FILES.length} files`);
|
||||
return await BPromise.resolve(options.srcInfo.FILES).map((f) => {
|
||||
const outputs = targets(f, options);
|
||||
options.verbose && logger.info(`Convert ${f} to `, outputs);
|
||||
return _watermark(f, outputs, onNode, options);
|
||||
}, { concurrency: 1 });
|
||||
}
|
||||
else {
|
||||
options.debug && logger.error(`Invalid source info`);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9pbWFnZXMvd2F0ZXJtYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxRQUFRLE1BQU0sVUFBVSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbkQsT0FBTyxFQUNILE1BQU0sRUFDVCxNQUFNLG1CQUFtQixDQUFBO0FBTzFCLE9BQU8sRUFDSCxhQUFhLEVBQ2IsY0FBYyxFQUNqQixNQUFNLFVBQVUsQ0FBQTtBQUdqQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3RDLE9BQU8sRUFBRyxPQUFPLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV0RCxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUE4QixHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBdUIsRUFBRSxFQUFFO0lBQzdHLE1BQU0sWUFBWSxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvQyxNQUFNLE1BQU0sR0FBRztRQUNYLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDckMsdURBQXVEO0tBQzFELENBQUE7SUFDRCxJQUFJLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdEQsS0FBSyxDQUFDLE1BQU0sRUFBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUErQixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFpQixFQUFFLFNBQThCLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFpQixFQUFFLEVBQUU7SUFDN0csT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDMUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUM3QixDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEtBQUssRUFBRSxPQUFpQixFQUFFLEVBQUU7SUFFakQsa0JBQWtCO0lBQ2xCLElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQTtJQUNyQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNoRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFBO1FBQy9FLE9BQU8sTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUNuQyxPQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUMzRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNsRCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxQixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ3hELENBQUM7QUFDTCxDQUFDLENBQUEifQ==
|
||||
23
packages/media/dist-in/lib/media/video/convert.d.ts
vendored
Normal file
23
packages/media/dist-in/lib/media/video/convert.d.ts
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
import { IConvertVideoOptions } from '../../../types';
|
||||
import { E_AudioCodec, E_Codec, E_Format } from '../video';
|
||||
export declare const frames: (src: any, dst: any, onNode: any, options?: {
|
||||
fps: number;
|
||||
}) => Promise<void>;
|
||||
export declare const CONVERTERS: {
|
||||
'.mp3': (inputPath: string, outputPath: string) => Promise<void>;
|
||||
'.jpg': (src: any, dst: any, onNode: any, options?: {
|
||||
fps: number;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
export declare const converter: (file: string) => any;
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IConvertVideoOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IConvertVideoOptions): Promise<any>;
|
||||
export declare const convert: (options: IConvertVideoOptions) => Promise<void>;
|
||||
export declare const merge: (options: IConvertVideoOptions) => Promise<unknown>;
|
||||
export interface VideoOptions {
|
||||
frameRate?: number;
|
||||
videoCodec?: keyof typeof E_Codec;
|
||||
audioCodec?: keyof typeof E_AudioCodec;
|
||||
format?: keyof typeof E_Format;
|
||||
}
|
||||
export declare const createVideoFromImages: (src: string, target: any, onNode: any, audio: any, { frameRate, videoCodec, audioCodec, format, }: VideoOptions) => Promise<unknown>;
|
||||
153
packages/media/dist-in/lib/media/video/convert.js
Normal file
153
packages/media/dist-in/lib/media/video/convert.js
Normal file
File diff suppressed because one or more lines are too long
133
packages/media/dist-in/lib/media/video/index.d.ts
vendored
Normal file
133
packages/media/dist-in/lib/media/video/index.d.ts
vendored
Normal file
@ -0,0 +1,133 @@
|
||||
import { z } from 'zod';
|
||||
export declare const GLOB_BASIC = "png|jpg|tiff|jpeg|webp";
|
||||
export * from './resize';
|
||||
export * from './convert';
|
||||
export declare const E_Format: {
|
||||
readonly MP4: "mp4";
|
||||
readonly MKV: "mkv";
|
||||
readonly MOV: "mov";
|
||||
readonly AVI: "avi";
|
||||
readonly FLV: "flv";
|
||||
readonly WMV: "wmv";
|
||||
readonly WEBM: "webm";
|
||||
readonly MP3: "mp3";
|
||||
readonly OGG: "ogg";
|
||||
readonly WAV: "wav";
|
||||
};
|
||||
export declare const E_LogLevel: {
|
||||
readonly QUIET: "quiet";
|
||||
readonly PANIC: "panic";
|
||||
readonly FATAL: "fatal";
|
||||
readonly ERROR: "error";
|
||||
readonly WARNING: "warning";
|
||||
readonly INFO: "info";
|
||||
readonly VERBOSE: "verbose";
|
||||
readonly DEBUG: "debug";
|
||||
readonly TRACE: "trace";
|
||||
};
|
||||
export declare const E_AudioCodec: {
|
||||
readonly AAC: "aac";
|
||||
readonly MP3: "mp3";
|
||||
readonly VORBIS: "vorbis";
|
||||
readonly FLAC: "flac";
|
||||
readonly OPUS: "opus";
|
||||
readonly WAV: "wav";
|
||||
};
|
||||
export declare const E_Codec: {
|
||||
readonly LIBX264: "libx264";
|
||||
readonly LIBX265: "libx265";
|
||||
readonly LIBVP9: "libvpx-vp9";
|
||||
readonly LIBAOM: "libaom-av1";
|
||||
readonly LIBTHEORA: "libtheora";
|
||||
readonly MPEG2VIDEO: "mpeg2video";
|
||||
readonly COPY: "copy";
|
||||
};
|
||||
declare const ffmpegOptionsSchema: z.ZodObject<{
|
||||
input: z.ZodString;
|
||||
output: z.ZodString;
|
||||
codec: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly LIBX264: "libx264";
|
||||
readonly LIBX265: "libx265";
|
||||
readonly LIBVP9: "libvpx-vp9";
|
||||
readonly LIBAOM: "libaom-av1";
|
||||
readonly LIBTHEORA: "libtheora";
|
||||
readonly MPEG2VIDEO: "mpeg2video";
|
||||
readonly COPY: "copy";
|
||||
}>>>;
|
||||
bitrate: z.ZodOptional<z.ZodString>;
|
||||
framerate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
||||
resolution: z.ZodOptional<z.ZodString>;
|
||||
audioCodec: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly AAC: "aac";
|
||||
readonly MP3: "mp3";
|
||||
readonly VORBIS: "vorbis";
|
||||
readonly FLAC: "flac";
|
||||
readonly OPUS: "opus";
|
||||
readonly WAV: "wav";
|
||||
}>>>;
|
||||
audioBitrate: z.ZodOptional<z.ZodString>;
|
||||
audioChannels: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
||||
preset: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
||||
crf: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
||||
format: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly MP4: "mp4";
|
||||
readonly MKV: "mkv";
|
||||
readonly MOV: "mov";
|
||||
readonly AVI: "avi";
|
||||
readonly FLV: "flv";
|
||||
readonly WMV: "wmv";
|
||||
readonly WEBM: "webm";
|
||||
readonly MP3: "mp3";
|
||||
readonly OGG: "ogg";
|
||||
readonly WAV: "wav";
|
||||
}>>>;
|
||||
startTime: z.ZodOptional<z.ZodString>;
|
||||
duration: z.ZodOptional<z.ZodString>;
|
||||
overwrite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
||||
loglevel: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly QUIET: "quiet";
|
||||
readonly PANIC: "panic";
|
||||
readonly FATAL: "fatal";
|
||||
readonly ERROR: "error";
|
||||
readonly WARNING: "warning";
|
||||
readonly INFO: "info";
|
||||
readonly VERBOSE: "verbose";
|
||||
readonly DEBUG: "debug";
|
||||
readonly TRACE: "trace";
|
||||
}>>>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
audioCodec?: "aac" | "mp3" | "vorbis" | "flac" | "opus" | "wav";
|
||||
format?: "mp3" | "wav" | "mp4" | "mkv" | "mov" | "avi" | "flv" | "wmv" | "webm" | "ogg";
|
||||
input?: string;
|
||||
output?: string;
|
||||
codec?: "libx264" | "libx265" | "libvpx-vp9" | "libaom-av1" | "libtheora" | "mpeg2video" | "copy";
|
||||
bitrate?: string;
|
||||
framerate?: number;
|
||||
resolution?: string;
|
||||
audioBitrate?: string;
|
||||
audioChannels?: number;
|
||||
preset?: string;
|
||||
crf?: number;
|
||||
startTime?: string;
|
||||
duration?: string;
|
||||
overwrite?: boolean;
|
||||
loglevel?: "debug" | "verbose" | "error" | "quiet" | "panic" | "fatal" | "warning" | "info" | "trace";
|
||||
}, {
|
||||
audioCodec?: "aac" | "mp3" | "vorbis" | "flac" | "opus" | "wav";
|
||||
format?: "mp3" | "wav" | "mp4" | "mkv" | "mov" | "avi" | "flv" | "wmv" | "webm" | "ogg";
|
||||
input?: string;
|
||||
output?: string;
|
||||
codec?: "libx264" | "libx265" | "libvpx-vp9" | "libaom-av1" | "libtheora" | "mpeg2video" | "copy";
|
||||
bitrate?: string;
|
||||
framerate?: number;
|
||||
resolution?: string;
|
||||
audioBitrate?: string;
|
||||
audioChannels?: number;
|
||||
preset?: string;
|
||||
crf?: number;
|
||||
startTime?: string;
|
||||
duration?: string;
|
||||
overwrite?: boolean;
|
||||
loglevel?: "debug" | "verbose" | "error" | "quiet" | "panic" | "fatal" | "warning" | "info" | "trace";
|
||||
}>;
|
||||
export type FFmpegOptions = z.infer<typeof ffmpegOptionsSchema>;
|
||||
85
packages/media/dist-in/lib/media/video/index.js
Normal file
85
packages/media/dist-in/lib/media/video/index.js
Normal file
@ -0,0 +1,85 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.E_Codec = exports.E_AudioCodec = exports.E_LogLevel = exports.E_Format = exports.GLOB_BASIC = void 0;
|
||||
const zod_1 = require("zod");
|
||||
const FfmpegCommand = require('fluent-ffmpeg');
|
||||
exports.GLOB_BASIC = 'png|jpg|tiff|jpeg|webp';
|
||||
__exportStar(require("./resize"), exports);
|
||||
__exportStar(require("./convert"), exports);
|
||||
exports.E_Format = {
|
||||
MP4: 'mp4',
|
||||
MKV: 'mkv',
|
||||
MOV: 'mov',
|
||||
AVI: 'avi',
|
||||
FLV: 'flv',
|
||||
WMV: 'wmv',
|
||||
WEBM: 'webm',
|
||||
MP3: 'mp3',
|
||||
OGG: 'ogg',
|
||||
WAV: 'wav'
|
||||
};
|
||||
exports.E_LogLevel = {
|
||||
QUIET: 'quiet',
|
||||
PANIC: 'panic',
|
||||
FATAL: 'fatal',
|
||||
ERROR: 'error',
|
||||
WARNING: 'warning',
|
||||
INFO: 'info',
|
||||
VERBOSE: 'verbose',
|
||||
DEBUG: 'debug',
|
||||
TRACE: 'trace'
|
||||
};
|
||||
exports.E_AudioCodec = {
|
||||
AAC: 'aac',
|
||||
MP3: 'mp3',
|
||||
VORBIS: 'vorbis',
|
||||
FLAC: 'flac',
|
||||
OPUS: 'opus',
|
||||
WAV: 'wav'
|
||||
};
|
||||
exports.E_Codec = {
|
||||
LIBX264: 'libx264',
|
||||
LIBX265: 'libx265',
|
||||
LIBVP9: 'libvpx-vp9',
|
||||
LIBAOM: 'libaom-av1',
|
||||
LIBTHEORA: 'libtheora',
|
||||
MPEG2VIDEO: 'mpeg2video',
|
||||
COPY: 'copy'
|
||||
};
|
||||
const formatEnum = zod_1.z.nativeEnum(exports.E_Format);
|
||||
const loglevelEnum = zod_1.z.nativeEnum(exports.E_LogLevel);
|
||||
const audioCodecEnum = zod_1.z.nativeEnum(exports.E_AudioCodec);
|
||||
const codecEnum = zod_1.z.nativeEnum(exports.E_Codec);
|
||||
const ffmpegOptionsSchema = zod_1.z.object({
|
||||
input: zod_1.z.string().describe("Path to the input file"),
|
||||
output: zod_1.z.string().describe("Path to the output file"),
|
||||
codec: codecEnum.optional().describe("Codec to be used for encoding (e.g., 'libx264', 'aac')").default(exports.E_Codec.LIBX264),
|
||||
bitrate: zod_1.z.string().optional().describe("Bitrate for encoding (e.g., '500k', '2M')"),
|
||||
framerate: zod_1.z.number().optional().describe("Frames per second (e.g., 30, 60)").default(30),
|
||||
resolution: zod_1.z.string().optional().describe("Resolution of the output (e.g., '1920x1080', '1280x720')"),
|
||||
audioCodec: audioCodecEnum.optional().describe("Audio codec to be used for encoding (e.g., 'aac', 'mp3')").default(exports.E_AudioCodec.AAC),
|
||||
audioBitrate: zod_1.z.string().optional().describe("Bitrate for audio encoding (e.g., '128k', '256k')"),
|
||||
audioChannels: zod_1.z.number().optional().describe("Number of audio channels (e.g., 1 for mono, 2 for stereo)").default(2),
|
||||
preset: zod_1.z.string().optional().describe("Encoding preset to use for balancing speed and quality (e.g., 'ultrafast', 'medium', 'slow')").default('medium'),
|
||||
crf: zod_1.z.number().optional().describe("Constant Rate Factor for controlling quality (lower values mean higher quality, range: 0-51)").default(23),
|
||||
format: formatEnum.optional().describe("Container format for output file (e.g., 'mp4', 'mkv', 'mov')").default(exports.E_Format.MP4),
|
||||
startTime: zod_1.z.string().optional().describe("Start time of the input file (e.g., '00:01:30' for 1 minute 30 seconds)"),
|
||||
duration: zod_1.z.string().optional().describe("Duration of the output (e.g., '00:05:00' for 5 minutes)"),
|
||||
overwrite: zod_1.z.boolean().optional().describe("Whether to overwrite the output file if it already exists").default(false),
|
||||
loglevel: loglevelEnum.optional().describe("Logging level for ffmpeg output").default(exports.E_LogLevel.INFO),
|
||||
});
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21lZGlhL3ZpZGVvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNkJBQXVCO0FBRXZCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUVqQyxRQUFBLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQTtBQUNsRCwyQ0FBd0I7QUFDeEIsNENBQXlCO0FBRVosUUFBQSxRQUFRLEdBQUc7SUFDcEIsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7Q0FDRixDQUFDO0FBRUUsUUFBQSxVQUFVLEdBQUc7SUFDeEIsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFDO0FBRUUsUUFBQSxZQUFZLEdBQUc7SUFDMUIsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztDQUNGLENBQUM7QUFFRSxRQUFBLE9BQU8sR0FBRztJQUNyQixPQUFPLEVBQUUsU0FBUztJQUNs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
|
||||
6
packages/media/dist-in/lib/media/video/resize.d.ts
vendored
Normal file
6
packages/media/dist-in/lib/media/video/resize.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
import * as sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../types';
|
||||
export declare const meta: (file: any, image: sharp.Sharp) => Promise<sharp.Metadata>;
|
||||
export declare const resizeFile: (file: any, target: any, onNode: (data: any) => void, options: IResizeOptions) => Promise<sharp.Sharp>;
|
||||
export declare const _resize: (file: any, targets: string[], onNode: (data: any) => void, options: IOptions) => Promise<any>;
|
||||
export declare const resize: (options: IOptions) => Promise<void>;
|
||||
183
packages/media/dist-in/lib/media/video/resize.js
Normal file
183
packages/media/dist-in/lib/media/video/resize.js
Normal file
File diff suppressed because one or more lines are too long
18
packages/media/dist-in/lib/process/index.d.ts
vendored
Normal file
18
packages/media/dist-in/lib/process/index.d.ts
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
export declare enum STATUS {
|
||||
OK = 0,
|
||||
ERROR = 1,
|
||||
PENDING = 2
|
||||
}
|
||||
export declare class Process {
|
||||
binary: string;
|
||||
cwd: string;
|
||||
args: string;
|
||||
constructor(options?: any);
|
||||
optionsToString(options: any): string;
|
||||
optionsToArray(options: any): string[];
|
||||
exec(command: string, options?: any, args?: any[]): Promise<any>;
|
||||
}
|
||||
export declare class Helper {
|
||||
static run(cwd: any, command: string, gitArgs: string[]): Promise<any>;
|
||||
static runBin(cwd: any, bin: any, command: string, gitArgs: string[]): Promise<any>;
|
||||
}
|
||||
149
packages/media/dist-in/lib/process/index.js
Normal file
149
packages/media/dist-in/lib/process/index.js
Normal file
File diff suppressed because one or more lines are too long
23
packages/media/dist-in/main.js
Normal file
23
packages/media/dist-in/main.js
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env node
|
||||
import { defaults } from './_cli.js';
|
||||
defaults();
|
||||
import * as cli from 'yargs';
|
||||
import { register as registerResize } from './commands/resize.js';
|
||||
registerResize(cli);
|
||||
/*
|
||||
import { register as registerPDF2JPG } from './commands/pdf2jpg'; registerPDF2JPG(cli)
|
||||
import { register as registerSVG2JPG } from './commands/svg2jpg'; registerSVG2JPG(cli)
|
||||
import { register as registerConvert } from './commands/convert'; registerConvert(cli)
|
||||
import { register as registerAudio } from './commands/audio'; registerAudio(cli)
|
||||
import { register as registerVideo } from './commands/video'; registerVideo(cli)
|
||||
import { register as registerWatermark } from './commands/watermark'; registerWatermark(cli)
|
||||
*/
|
||||
const argv = cli.argv;
|
||||
if (argv.h || argv.help) {
|
||||
cli.showHelp();
|
||||
process.exit();
|
||||
}
|
||||
else if (argv.v || argv.version) {
|
||||
process.exit();
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQUMsUUFBUSxFQUFFLENBQUE7QUFFaEQsT0FBTyxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUE7QUFLNUIsT0FBTyxFQUFFLFFBQVEsSUFBSSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUN0Rjs7Ozs7OztFQU9FO0FBRUYsTUFBTSxJQUFJLEdBQVEsR0FBRyxDQUFDLElBQUksQ0FBQztBQUUzQixJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNmLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNuQixDQUFDO0tBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDbkIsQ0FBQyJ9
|
||||
@ -1,4 +1,4 @@
|
||||
import { PATH_INFO } from '@plastichub/osr-commons';
|
||||
import { PATH_INFO } from '@polymech/commons';
|
||||
import * as sharp from 'sharp';
|
||||
export type IOptions = {
|
||||
alt?: boolean;
|
||||
2
packages/media/dist-in/types.js
Normal file
2
packages/media/dist-in/types.js
Normal file
@ -0,0 +1,2 @@
|
||||
export {};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
||||
5
packages/media/index.d.ts
vendored
5
packages/media/index.d.ts
vendored
@ -1,5 +0,0 @@
|
||||
export * from './constants';
|
||||
export * from './types';
|
||||
export declare const logger: any;
|
||||
import { IObjectLiteral } from "@plastichub/core";
|
||||
export declare const substitute: (alt: boolean, template: string, vars: IObjectLiteral) => any;
|
||||
@ -1,26 +0,0 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.substitute = exports.logger = void 0;
|
||||
__exportStar(require("./constants"), exports);
|
||||
__exportStar(require("./types"), exports);
|
||||
const debug_1 = require("@plastichub/core/debug");
|
||||
const constants_1 = require("./constants");
|
||||
exports.logger = (0, debug_1.logger)(constants_1.MODULE_NAME);
|
||||
const strings_1 = require("@plastichub/core/strings");
|
||||
const substitute = (alt, template, vars) => alt ? (0, strings_1.substituteAlt)(template, vars) : (0, strings_1.substitute)(template, vars);
|
||||
exports.substitute = substitute;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBMkI7QUFDM0IsMENBQXVCO0FBQ3ZCLGtEQUEwRDtBQUUxRCwyQ0FBeUM7QUFDNUIsUUFBQSxNQUFNLEdBQUcsSUFBQSxjQUFPLEVBQUMsdUJBQVcsQ0FBQyxDQUFBO0FBRTFDLHNEQUFxRztBQUc5RixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVksRUFBRSxRQUFnQixFQUFFLElBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBQSx1QkFBYyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxvQkFBVyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUF6SSxRQUFBLFVBQVUsY0FBK0gifQ==
|
||||
2
packages/media/lib/common/platform.d.ts
vendored
2
packages/media/lib/common/platform.d.ts
vendored
@ -1 +1 @@
|
||||
export declare const os: () => "windows" | "osx" | "arm" | "linux";
|
||||
export declare const os: () => "linux" | "windows" | "osx" | "arm";
|
||||
|
||||
9
packages/media/lib/index.d.ts
vendored
9
packages/media/lib/index.d.ts
vendored
@ -1,4 +1,5 @@
|
||||
import { IResizeOptions } from '../types';
|
||||
export declare const fileAsBuffer: (path: string) => any;
|
||||
export declare const targets: (f: string, options: IResizeOptions) => string[];
|
||||
export declare const targetsNext: (f: string, options: IResizeOptions) => string[];
|
||||
/// <reference types="node" />
|
||||
import { IResizeOptions } from '../types';
|
||||
export declare const fileAsBuffer: (path: string) => Buffer;
|
||||
export declare const targets: (f: string, options: IResizeOptions) => string[];
|
||||
export declare const targetsNext: (f: string, options: IResizeOptions) => string[];
|
||||
|
||||
File diff suppressed because one or more lines are too long
26
packages/media/lib/media/audio/convert.d.ts
vendored
26
packages/media/lib/media/audio/convert.d.ts
vendored
@ -1,13 +1,13 @@
|
||||
import { IConvertVideoOptions } from '../../../types';
|
||||
export declare const split: (src: string, dst: string, onNode: any, options: {
|
||||
interval: number;
|
||||
}) => Promise<void>;
|
||||
export declare const CONVERTERS: {
|
||||
'.mp3': (src: string, dst: string, onNode: any, options: {
|
||||
interval: number;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
export declare const converter: (file: string) => any;
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IConvertVideoOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IConvertVideoOptions): Promise<any>;
|
||||
export declare const convert: (options: IConvertVideoOptions) => Promise<void>;
|
||||
import { IConvertVideoOptions } from '../../../types';
|
||||
export declare const split: (src: string, dst: string, onNode: any, options: {
|
||||
interval: number;
|
||||
}) => Promise<void>;
|
||||
export declare const CONVERTERS: {
|
||||
'.mp3': (src: string, dst: string, onNode: any, options: {
|
||||
interval: number;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
export declare const converter: (file: string) => any;
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IConvertVideoOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IConvertVideoOptions): Promise<any[]>;
|
||||
export declare const convert: (options: IConvertVideoOptions) => Promise<void>;
|
||||
|
||||
@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.convert = exports._convert = exports.convertFile = exports.converter = exports.CONVERTERS = exports.split = void 0;
|
||||
const path = require("path");
|
||||
const pMap = require("p-map");
|
||||
const osr_commons_1 = require("@plastichub/osr-commons");
|
||||
const exists_1 = require("@plastichub/fs/exists");
|
||||
const dir_1 = require("@plastichub/fs/dir");
|
||||
const lib_1 = require("@plastichub/osr-cache/lib");
|
||||
const commons_1 = require("@polymech/commons");
|
||||
const exists_1 = require("@polymech/fs/exists");
|
||||
const dir_1 = require("@polymech/fs/dir");
|
||||
const lib_1 = require("@polymech/cache/lib");
|
||||
const __1 = require("../../");
|
||||
const __2 = require("../../..");
|
||||
const constants_1 = require("../../../constants");
|
||||
@ -55,7 +55,7 @@ exports.CONVERTERS = {
|
||||
const converter = (file) => exports.CONVERTERS[extension(file)];
|
||||
exports.converter = converter;
|
||||
const convertFile = async (file, target, onNode = () => { }, options) => {
|
||||
const osr_cache = (0, osr_commons_1.OSR_CACHE)();
|
||||
const osr_cache = (0, commons_1.OSR_CACHE)();
|
||||
const ca_options = JSON.parse(JSON.stringify({ ...options, target, skip: null }));
|
||||
const cached = await (0, lib_1.get_cached)(file, ca_options, constants_1.MODULE_NAME);
|
||||
const conv = (0, exports.converter)(target);
|
||||
@ -92,4 +92,4 @@ const convert = async (options) => {
|
||||
}, { concurrency: 1 });
|
||||
};
|
||||
exports.convert = convert;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWVkaWEvYXVkaW8vY29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNEI7QUFDNUIsOEJBQTZCO0FBQzdCLHlEQUFtRDtBQUNuRCxrREFBc0Q7QUFDdEQsNENBQWdEO0FBQ2hELG1EQUFzRDtBQUN0RCw4QkFBZ0M7QUFDaEMsZ0NBQWlDO0FBQ2pDLGtEQUFnRDtBQUdoRCxzQ0FBZ0M7QUFJaEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBRTlDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQTtBQUVqRCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBNkIsRUFBaUIsRUFBRTtJQUMxRyxJQUFJO1FBQ0EsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLGFBQUksRUFBQyxHQUFHLENBQUMsQ0FBQTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUN6QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsVUFBTSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ2hFLE9BQU87U0FDVjtRQUVELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQTtRQUNqQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUE7UUFFcEIsT0FBTyxTQUFTLEdBQUcsUUFBUSxFQUFFO1lBQ3pCLE1BQU0sVUFBVSxHQUFHLEdBQUcsR0FBRyxZQUFZLFlBQVksTUFBTSxDQUFDO1lBRXhELE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFHLElBQUks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
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWVkaWEvYXVkaW8vY29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNEI7QUFDNUIsOEJBQTZCO0FBQzdCLCtDQUE2QztBQUM3QyxnREFBb0Q7QUFDcEQsMENBQThDO0FBQzlDLDZDQUFnRDtBQUNoRCw4QkFBZ0M7QUFDaEMsZ0NBQWlDO0FBQ2pDLGtEQUFnRDtBQUdoRCxzQ0FBZ0M7QUFJaEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBRTlDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQTtBQUVqRCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBNkIsRUFBaUIsRUFBRTtJQUMxRyxJQUFJO1FBQ0EsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLGFBQUksRUFBQyxHQUFHLENBQUMsQ0FBQTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUN6QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsVUFBTSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ2hFLE9BQU87U0FDVjtRQUVELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQTtRQUNqQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUE7UUFFcEIsT0FBTyxTQUFTLEdBQUcsUUFBUSxFQUFFO1lBQ3pCLE1BQU0sVUFBVSxHQUFHLEdBQUcsR0FBRyxZQUFZLFlBQVksTUFBTSxDQUFDO1lBRXhELE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFHLElBQUks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
|
||||
4
packages/media/lib/media/ffmpeg.d.ts
vendored
4
packages/media/lib/media/ffmpeg.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
import { FfprobeData } from 'fluent-ffmpeg';
|
||||
export declare const meta: (src: string) => Promise<FfprobeData>;
|
||||
import { FfprobeData } from 'fluent-ffmpeg';
|
||||
export declare const meta: (src: string) => Promise<FfprobeData>;
|
||||
|
||||
9
packages/media/lib/media/images/convert.d.ts
vendored
9
packages/media/lib/media/images/convert.d.ts
vendored
@ -1,4 +1,5 @@
|
||||
import { IOptions, IResizeOptions } from '../../../types';
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IResizeOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IOptions): Promise<any>;
|
||||
export declare const convert: (options: IOptions) => Promise<void>;
|
||||
import * as sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../types';
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IResizeOptions) => Promise<sharp.OutputInfo>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IOptions): Promise<any[]>;
|
||||
export declare const convert: (options: IOptions) => Promise<void>;
|
||||
|
||||
@ -6,14 +6,14 @@ const bluebird = require("bluebird");
|
||||
const pMap = require("p-map");
|
||||
const sharp = require("sharp");
|
||||
const index_1 = require("../../../index");
|
||||
const osr_commons_1 = require("@plastichub/osr-commons");
|
||||
const exists_1 = require("@plastichub/fs/exists");
|
||||
const dir_1 = require("@plastichub/fs/dir");
|
||||
const lib_1 = require("@plastichub/osr-cache/lib");
|
||||
const commons_1 = require("@polymech/commons");
|
||||
const exists_1 = require("@polymech/fs/exists");
|
||||
const dir_1 = require("@polymech/fs/dir");
|
||||
const lib_1 = require("@polymech/cache/lib");
|
||||
const __1 = require("../../");
|
||||
const constants_1 = require("../../../constants");
|
||||
const convertFile = async (file, target, onNode = () => { }, options) => {
|
||||
const osr_cache = (0, osr_commons_1.OSR_CACHE)();
|
||||
const osr_cache = (0, commons_1.OSR_CACHE)();
|
||||
const ca_options = JSON.parse(JSON.stringify({ ...options, target, skip: null }));
|
||||
const cached = await (0, lib_1.get_cached)(file, ca_options, constants_1.MODULE_NAME);
|
||||
let image = sharp(file);
|
||||
@ -47,4 +47,4 @@ const convert = async (options) => {
|
||||
}, { concurrency: 1 });
|
||||
};
|
||||
exports.convert = convert;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWVkaWEvaW1hZ2VzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTRCO0FBQzVCLHFDQUFvQztBQUNwQyw4QkFBNkI7QUFDN0IsK0JBQThCO0FBQzlCLDBDQUF1QztBQUV2Qyx5REFBbUQ7QUFDbkQsa0RBQXNEO0FBQ3RELDRDQUFnRDtBQUNoRCxtREFFa0M7QUFFbEMsOEJBRWU7QUFFZixrREFFMkI7QUFFcEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUNoSCxNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFTLEdBQUUsQ0FBQTtJQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsZ0JBQVUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLHVCQUFXLENBQUMsQ0FBQTtJQUM5RCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25DLElBQUcsQ0FBQyxJQUFBLGFBQU0sRUFBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUM7UUFDckIsSUFBQSxVQUFHLEVBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQ3BCO0lBQ0QsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25ELE9BQU8sR0FBRyxDQUFBO0FBQ2QsQ0FBQyxDQUFBO0FBWlksUUFBQSxXQUFXLGVBWXZCO0FBQ00sS0FBSyxVQUFVLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBaUIsRUFBRSxTQUE4QixHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBaUI7SUFDOUcsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsQyxjQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7UUFDRCxPQUFPLElBQUEsbUJBQVcsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBUkQsNEJBUUM7QUFFTSxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQy9DLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNoQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUMvQyxjQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxTQUFTLENBQUMsQ0FBQTtJQUM3RCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBTyxFQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNuQyxPQUFPLENBQUMsT0FBTyxJQUFJLGNBQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUMzRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNoRCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMxQixDQUFDLENBQUE7QUFUWSxRQUFBLE9BQU8sV0FTbkIifQ==
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWVkaWEvaW1hZ2VzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTRCO0FBQzVCLHFDQUFvQztBQUNwQyw4QkFBNkI7QUFDN0IsK0JBQThCO0FBQzlCLDBDQUF1QztBQUV2QywrQ0FBNkM7QUFDN0MsZ0RBQW9EO0FBQ3BELDBDQUE4QztBQUM5Qyw2Q0FFNEI7QUFFNUIsOEJBRWU7QUFFZixrREFFMkI7QUFFcEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUNoSCxNQUFNLFNBQVMsR0FBRyxJQUFBLG1CQUFTLEdBQUUsQ0FBQTtJQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsZ0JBQVUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLHVCQUFXLENBQUMsQ0FBQTtJQUM5RCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25DLElBQUcsQ0FBQyxJQUFBLGFBQU0sRUFBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUM7UUFDckIsSUFBQSxVQUFHLEVBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQ3BCO0lBQ0QsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25ELE9BQU8sR0FBRyxDQUFBO0FBQ2QsQ0FBQyxDQUFBO0FBWlksUUFBQSxXQUFXLGVBWXZCO0FBQ00sS0FBSyxVQUFVLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBaUIsRUFBRSxTQUE4QixHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBaUI7SUFDOUcsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsQyxjQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7UUFDRCxPQUFPLElBQUEsbUJBQVcsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBUkQsNEJBUUM7QUFFTSxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBQy9DLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNoQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQTtJQUMvQyxjQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxTQUFTLENBQUMsQ0FBQTtJQUM3RCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBTyxFQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNuQyxPQUFPLENBQUMsT0FBTyxJQUFJLGNBQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUMzRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNoRCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMxQixDQUFDLENBQUE7QUFUWSxRQUFBLE9BQU8sV0FTbkIifQ==
|
||||
65
packages/media/lib/media/images/index.d.ts
vendored
65
packages/media/lib/media/images/index.d.ts
vendored
@ -1,32 +1,33 @@
|
||||
export * from './resize';
|
||||
export * from './convert';
|
||||
export * from './watermark';
|
||||
import { IResizeOptions } from '../../..';
|
||||
export declare const GLOB_BASIC = "png|jpg|tiff|jpeg|webp";
|
||||
export declare const GLOB_MIN = "*.{png,jpg,jpeg,PNG,JPG,JPEG}";
|
||||
export declare const files: (dir: any, glob: any) => any;
|
||||
export declare const getFormats: (src: any, folder: any) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
format: string;
|
||||
}[];
|
||||
export declare const getThumbnailOptions: (src: any, format: any) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
format: any;
|
||||
}[];
|
||||
export declare const thumbnails: (options: IResizeOptions) => Promise<any>;
|
||||
export declare const meta: (file: any) => Promise<any>;
|
||||
export declare const format: (formats: any, options?: {
|
||||
cache: boolean;
|
||||
png: boolean;
|
||||
}) => Promise<any>;
|
||||
export declare const getResizePatterns: (product: any, folder: any, percent?: number) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
percent: number;
|
||||
}[];
|
||||
export declare const resize: (patterns: any, options?: {
|
||||
cache: boolean;
|
||||
}) => Promise<any>;
|
||||
export declare const resizeSharp: (patterns: any) => Promise<any>;
|
||||
export * from './resize';
|
||||
export * from './convert';
|
||||
export * from './watermark';
|
||||
import * as sharp from 'sharp';
|
||||
import { IResizeOptions } from '../../..';
|
||||
export declare const GLOB_BASIC = "png|jpg|tiff|jpeg|webp";
|
||||
export declare const GLOB_MIN = "*.{png,jpg,jpeg,PNG,JPG,JPEG}";
|
||||
export declare const files: (dir: any, glob: any) => any;
|
||||
export declare const getFormats: (src: any, folder: any) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
format: string;
|
||||
}[];
|
||||
export declare const getThumbnailOptions: (src: any, format: any) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
format: any;
|
||||
}[];
|
||||
export declare const thumbnails: (options: IResizeOptions) => Promise<any>;
|
||||
export declare const meta: (file: any) => Promise<sharp.Metadata>;
|
||||
export declare const format: (formats: any, options?: {
|
||||
cache: boolean;
|
||||
png: boolean;
|
||||
}) => Promise<sharp.Metadata[][]>;
|
||||
export declare const getResizePatterns: (product: any, folder: any, percent?: number) => {
|
||||
src: string;
|
||||
dist: string;
|
||||
percent: number;
|
||||
}[];
|
||||
export declare const resize: (patterns: any, options?: {
|
||||
cache: boolean;
|
||||
}) => Promise<void[][]>;
|
||||
export declare const resizeSharp: (patterns: any) => Promise<sharp.Metadata[][]>;
|
||||
|
||||
File diff suppressed because one or more lines are too long
11
packages/media/lib/media/images/lib.d.ts
vendored
11
packages/media/lib/media/images/lib.d.ts
vendored
@ -1,5 +1,6 @@
|
||||
import * as sharp from 'sharp';
|
||||
export declare const fileAsBuffer: (path: string) => any;
|
||||
export declare const base64ToBuffer: (b64string: string) => Promise<any>;
|
||||
export declare const imageToBase64: (imagePath: string) => Promise<string>;
|
||||
export declare const meta: (file: any, image: sharp.Sharp) => Promise<sharp.Metadata | null>;
|
||||
/// <reference types="node" />
|
||||
import * as sharp from 'sharp';
|
||||
export declare const fileAsBuffer: (path: string) => Buffer;
|
||||
export declare const base64ToBuffer: (b64string: string) => Promise<Buffer>;
|
||||
export declare const imageToBase64: (imagePath: string) => Promise<string>;
|
||||
export declare const meta: (file: any, image: sharp.Sharp) => Promise<sharp.Metadata | null>;
|
||||
|
||||
@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.meta = exports.imageToBase64 = exports.base64ToBuffer = exports.fileAsBuffer = void 0;
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const read_1 = require("@plastichub/fs/read");
|
||||
const fs_1 = require("@polymech/fs");
|
||||
const __1 = require("../../..");
|
||||
const fileAsBuffer = (path) => (0, read_1.sync)(path, 'buffer') || Buffer.from("-");
|
||||
const fileAsBuffer = (path) => (0, fs_1.sync)(path, 'buffer') || Buffer.from("-");
|
||||
exports.fileAsBuffer = fileAsBuffer;
|
||||
const base64ToBuffer = async (b64string) => Buffer.from(b64string, 'base64');
|
||||
exports.base64ToBuffer = base64ToBuffer;
|
||||
@ -33,4 +33,4 @@ const meta = (file, image) => {
|
||||
});
|
||||
};
|
||||
exports.meta = meta;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9pbWFnZXMvbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE0QjtBQUM1Qix5QkFBd0I7QUFFeEIsOENBQWtEO0FBQ2xELGdDQUFpQztBQUUxQixNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBQSxXQUFJLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFBbkYsUUFBQSxZQUFZLGdCQUF1RTtBQUV6RixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFBOUUsUUFBQSxjQUFjLGtCQUFnRTtBQUVwRixNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsU0FBaUIsRUFBbUIsRUFBRTtJQUN0RSxJQUFJO1FBQ0EsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLGNBQWMsUUFBUSxXQUFXLFdBQVcsRUFBRSxDQUFDO1FBQy9ELE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ2xFO0FBQ0wsQ0FBQyxDQUFBO0FBVlksUUFBQSxhQUFhLGlCQVV6QjtBQUVNLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQWtCLEVBQWtDLEVBQUU7SUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWCxVQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBVFksUUFBQSxJQUFJLFFBU2hCIn0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9pbWFnZXMvbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE0QjtBQUM1Qix5QkFBd0I7QUFFeEIscUNBQTJDO0FBQzNDLGdDQUFpQztBQUUxQixNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBQSxTQUFJLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFBbkYsUUFBQSxZQUFZLGdCQUF1RTtBQUV6RixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFBOUUsUUFBQSxjQUFjLGtCQUFnRTtBQUVwRixNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsU0FBaUIsRUFBbUIsRUFBRTtJQUN0RSxJQUFJO1FBQ0EsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLGNBQWMsUUFBUSxXQUFXLFdBQVcsRUFBRSxDQUFDO1FBQy9ELE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ2xFO0FBQ0wsQ0FBQyxDQUFBO0FBVlksUUFBQSxhQUFhLGlCQVV6QjtBQUVNLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQWtCLEVBQWtDLEVBQUU7SUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWCxVQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBVFksUUFBQSxJQUFJLFFBU2hCIn0=
|
||||
10
packages/media/lib/media/images/resize.d.ts
vendored
10
packages/media/lib/media/images/resize.d.ts
vendored
@ -1,5 +1,5 @@
|
||||
import * as sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../index';
|
||||
export declare const resizeFile: (source: string, target: string, onNode: (data: sharp.Sharp) => void, options: IResizeOptions) => Promise<sharp.Sharp | undefined>;
|
||||
export declare const _resize: (file: any, targets: string[], onNode: (data: any) => void, options: IOptions) => Promise<any>;
|
||||
export declare const resize: (options: IResizeOptions) => Promise<any>;
|
||||
import * as sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../index';
|
||||
export declare const resizeFile: (source: string, target: string, onNode: (data: sharp.Sharp) => void, options: IResizeOptions) => Promise<sharp.Sharp | undefined>;
|
||||
export declare const _resize: (file: any, targets: string[], onNode: (data: any) => void, options: IOptions) => Promise<(void | sharp.Sharp)[]>;
|
||||
export declare const resize: (options: IResizeOptions) => Promise<any>;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
import { IOptions } from '../../../types';
|
||||
export declare const watermark: (options: IOptions) => Promise<any>;
|
||||
import { IOptions } from '../../../types';
|
||||
export declare const watermark: (options: IOptions) => Promise<any>;
|
||||
|
||||
@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.watermark = void 0;
|
||||
const bluebird = require("bluebird");
|
||||
const bluebird_1 = require("bluebird");
|
||||
const write_1 = require("@plastichub/fs/write");
|
||||
const write_1 = require("@polymech/fs/write");
|
||||
const index_1 = require("../../../index");
|
||||
const lib_1 = require("./lib");
|
||||
const novita_sdk_1 = require("novita-sdk");
|
||||
@ -49,4 +49,4 @@ const watermark = async (options) => {
|
||||
}
|
||||
};
|
||||
exports.watermark = watermark;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9pbWFnZXMvd2F0ZXJtYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHFDQUFvQztBQUNwQyx1Q0FBOEM7QUFLOUMsZ0RBQXFEO0FBS3JELDBDQUV1QjtBQU92QiwrQkFHYztBQU1kLDJDQUFzQztBQUN0Qyw4QkFBOEM7QUFFOUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUM3RyxNQUFNLFlBQVksR0FBRyxJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sTUFBTSxHQUFHO1FBQ1gsVUFBVSxFQUFFLE1BQU0sSUFBQSxtQkFBYSxFQUFDLElBQUksQ0FBQztRQUNyQyx1REFBdUQ7S0FDMUQsQ0FBQTtJQUNELElBQUk7UUFDQSxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEQsY0FBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdEQsSUFBQSxhQUFLLEVBQUMsTUFBTSxFQUFDLElBQUEsb0JBQWMsRUFBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtLQUNqRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ1osY0FBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7S0FDM0Q7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQWlCLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUM3RyxPQUFPLGtCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxPQUFPLElBQUksY0FBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDMUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDNUI7UUFDRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMxQixDQUFDLENBQUE7QUFFTSxNQUFNLFNBQVMsR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBRWpELGtCQUFrQjtJQUNsQixJQUFJLE9BQU8sR0FBUSxFQUFFLENBQUE7SUFDckIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxPQUFPLElBQUksY0FBTSxDQUFDLElBQUksQ0FBQyxXQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUE7UUFDL0UsT0FBTyxNQUFNLGtCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBQSxXQUFPLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ25DLE9BQU8sQ0FBQyxPQUFPLElBQUksY0FBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzNELE9BQU8sVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ2xELENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3pCO1NBQU07UUFDSCxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtLQUN2RDtBQUNMLENBQUMsQ0FBQTtBQWZZLFFBQUEsU0FBUyxhQWVyQiJ9
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZWRpYS9pbWFnZXMvd2F0ZXJtYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHFDQUFvQztBQUNwQyx1Q0FBOEM7QUFLOUMsOENBQW1EO0FBS25ELDBDQUV1QjtBQU92QiwrQkFHYztBQU1kLDJDQUFzQztBQUN0Qyw4QkFBOEM7QUFFOUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUM3RyxNQUFNLFlBQVksR0FBRyxJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sTUFBTSxHQUFHO1FBQ1gsVUFBVSxFQUFFLE1BQU0sSUFBQSxtQkFBYSxFQUFDLElBQUksQ0FBQztRQUNyQyx1REFBdUQ7S0FDMUQsQ0FBQTtJQUNELElBQUk7UUFDQSxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEQsY0FBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdEQsSUFBQSxhQUFLLEVBQUMsTUFBTSxFQUFDLElBQUEsb0JBQWMsRUFBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtLQUNqRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ1osY0FBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7S0FDM0Q7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQWlCLEVBQUUsU0FBOEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUM3RyxPQUFPLGtCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxPQUFPLElBQUksY0FBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDMUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDNUI7UUFDRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMxQixDQUFDLENBQUE7QUFFTSxNQUFNLFNBQVMsR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBRSxFQUFFO0lBRWpELGtCQUFrQjtJQUNsQixJQUFJLE9BQU8sR0FBUSxFQUFFLENBQUE7SUFDckIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxPQUFPLElBQUksY0FBTSxDQUFDLElBQUksQ0FBQyxXQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUE7UUFDL0UsT0FBTyxNQUFNLGtCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBQSxXQUFPLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ25DLE9BQU8sQ0FBQyxPQUFPLElBQUksY0FBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzNELE9BQU8sVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ2xELENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0tBQ3pCO1NBQU07UUFDSCxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtLQUN2RDtBQUNMLENBQUMsQ0FBQTtBQWZZLFFBQUEsU0FBUyxhQWVyQiJ9
|
||||
46
packages/media/lib/media/video/convert.d.ts
vendored
46
packages/media/lib/media/video/convert.d.ts
vendored
@ -1,23 +1,23 @@
|
||||
import { IConvertVideoOptions } from '../../../types';
|
||||
import { E_AudioCodec, E_Codec, E_Format } from '../video';
|
||||
export declare const frames: (src: any, dst: any, onNode: any, options?: {
|
||||
fps: number;
|
||||
}) => Promise<void>;
|
||||
export declare const CONVERTERS: {
|
||||
'.mp3': (inputPath: string, outputPath: string) => Promise<void>;
|
||||
'.jpg': (src: any, dst: any, onNode: any, options?: {
|
||||
fps: number;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
export declare const converter: (file: string) => any;
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IConvertVideoOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IConvertVideoOptions): Promise<any>;
|
||||
export declare const convert: (options: IConvertVideoOptions) => Promise<void>;
|
||||
export declare const merge: (options: IConvertVideoOptions) => Promise<unknown>;
|
||||
export interface VideoOptions {
|
||||
frameRate?: number;
|
||||
videoCodec?: keyof typeof E_Codec;
|
||||
audioCodec?: keyof typeof E_AudioCodec;
|
||||
format?: keyof typeof E_Format;
|
||||
}
|
||||
export declare const createVideoFromImages: (src: string, target: any, onNode: any, audio: any, { frameRate, videoCodec, audioCodec, format, }: VideoOptions) => Promise<unknown>;
|
||||
import { IConvertVideoOptions } from '../../../types';
|
||||
import { E_AudioCodec, E_Codec, E_Format } from '../video';
|
||||
export declare const frames: (src: any, dst: any, onNode: any, options?: {
|
||||
fps: number;
|
||||
}) => Promise<void>;
|
||||
export declare const CONVERTERS: {
|
||||
'.mp3': (inputPath: string, outputPath: string) => Promise<void>;
|
||||
'.jpg': (src: any, dst: any, onNode: any, options?: {
|
||||
fps: number;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
export declare const converter: (file: string) => any;
|
||||
export declare const convertFile: (file: any, target: any, onNode: (data: any) => void, options: IConvertVideoOptions) => Promise<any>;
|
||||
export declare function _convert(file: any, targets: string[], onNode: (data: any) => void, options: IConvertVideoOptions): Promise<any[]>;
|
||||
export declare const convert: (options: IConvertVideoOptions) => Promise<void>;
|
||||
export declare const merge: (options: IConvertVideoOptions) => Promise<unknown>;
|
||||
export interface VideoOptions {
|
||||
frameRate?: number;
|
||||
videoCodec?: keyof typeof E_Codec;
|
||||
audioCodec?: keyof typeof E_AudioCodec;
|
||||
format?: keyof typeof E_Format;
|
||||
}
|
||||
export declare const createVideoFromImages: (src: string, target: any, onNode: any, audio: any, { frameRate, videoCodec, audioCodec, format, }: VideoOptions) => Promise<unknown>;
|
||||
|
||||
File diff suppressed because one or more lines are too long
179
packages/media/lib/media/video/index.d.ts
vendored
179
packages/media/lib/media/video/index.d.ts
vendored
@ -1,46 +1,133 @@
|
||||
import { z } from 'zod';
|
||||
export declare const GLOB_BASIC = "png|jpg|tiff|jpeg|webp";
|
||||
export * from './resize';
|
||||
export * from './convert';
|
||||
export declare const E_Format: {
|
||||
readonly MP4: "mp4";
|
||||
readonly MKV: "mkv";
|
||||
readonly MOV: "mov";
|
||||
readonly AVI: "avi";
|
||||
readonly FLV: "flv";
|
||||
readonly WMV: "wmv";
|
||||
readonly WEBM: "webm";
|
||||
readonly MP3: "mp3";
|
||||
readonly OGG: "ogg";
|
||||
readonly WAV: "wav";
|
||||
};
|
||||
export declare const E_LogLevel: {
|
||||
readonly QUIET: "quiet";
|
||||
readonly PANIC: "panic";
|
||||
readonly FATAL: "fatal";
|
||||
readonly ERROR: "error";
|
||||
readonly WARNING: "warning";
|
||||
readonly INFO: "info";
|
||||
readonly VERBOSE: "verbose";
|
||||
readonly DEBUG: "debug";
|
||||
readonly TRACE: "trace";
|
||||
};
|
||||
export declare const E_AudioCodec: {
|
||||
readonly AAC: "aac";
|
||||
readonly MP3: "mp3";
|
||||
readonly VORBIS: "vorbis";
|
||||
readonly FLAC: "flac";
|
||||
readonly OPUS: "opus";
|
||||
readonly WAV: "wav";
|
||||
};
|
||||
export declare const E_Codec: {
|
||||
readonly LIBX264: "libx264";
|
||||
readonly LIBX265: "libx265";
|
||||
readonly LIBVP9: "libvpx-vp9";
|
||||
readonly LIBAOM: "libaom-av1";
|
||||
readonly LIBTHEORA: "libtheora";
|
||||
readonly MPEG2VIDEO: "mpeg2video";
|
||||
readonly COPY: "copy";
|
||||
};
|
||||
declare const ffmpegOptionsSchema: any;
|
||||
export type FFmpegOptions = z.infer<typeof ffmpegOptionsSchema>;
|
||||
import { z } from 'zod';
|
||||
export declare const GLOB_BASIC = "png|jpg|tiff|jpeg|webp";
|
||||
export * from './resize';
|
||||
export * from './convert';
|
||||
export declare const E_Format: {
|
||||
readonly MP4: "mp4";
|
||||
readonly MKV: "mkv";
|
||||
readonly MOV: "mov";
|
||||
readonly AVI: "avi";
|
||||
readonly FLV: "flv";
|
||||
readonly WMV: "wmv";
|
||||
readonly WEBM: "webm";
|
||||
readonly MP3: "mp3";
|
||||
readonly OGG: "ogg";
|
||||
readonly WAV: "wav";
|
||||
};
|
||||
export declare const E_LogLevel: {
|
||||
readonly QUIET: "quiet";
|
||||
readonly PANIC: "panic";
|
||||
readonly FATAL: "fatal";
|
||||
readonly ERROR: "error";
|
||||
readonly WARNING: "warning";
|
||||
readonly INFO: "info";
|
||||
readonly VERBOSE: "verbose";
|
||||
readonly DEBUG: "debug";
|
||||
readonly TRACE: "trace";
|
||||
};
|
||||
export declare const E_AudioCodec: {
|
||||
readonly AAC: "aac";
|
||||
readonly MP3: "mp3";
|
||||
readonly VORBIS: "vorbis";
|
||||
readonly FLAC: "flac";
|
||||
readonly OPUS: "opus";
|
||||
readonly WAV: "wav";
|
||||
};
|
||||
export declare const E_Codec: {
|
||||
readonly LIBX264: "libx264";
|
||||
readonly LIBX265: "libx265";
|
||||
readonly LIBVP9: "libvpx-vp9";
|
||||
readonly LIBAOM: "libaom-av1";
|
||||
readonly LIBTHEORA: "libtheora";
|
||||
readonly MPEG2VIDEO: "mpeg2video";
|
||||
readonly COPY: "copy";
|
||||
};
|
||||
declare const ffmpegOptionsSchema: z.ZodObject<{
|
||||
input: z.ZodString;
|
||||
output: z.ZodString;
|
||||
codec: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly LIBX264: "libx264";
|
||||
readonly LIBX265: "libx265";
|
||||
readonly LIBVP9: "libvpx-vp9";
|
||||
readonly LIBAOM: "libaom-av1";
|
||||
readonly LIBTHEORA: "libtheora";
|
||||
readonly MPEG2VIDEO: "mpeg2video";
|
||||
readonly COPY: "copy";
|
||||
}>>>;
|
||||
bitrate: z.ZodOptional<z.ZodString>;
|
||||
framerate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
||||
resolution: z.ZodOptional<z.ZodString>;
|
||||
audioCodec: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly AAC: "aac";
|
||||
readonly MP3: "mp3";
|
||||
readonly VORBIS: "vorbis";
|
||||
readonly FLAC: "flac";
|
||||
readonly OPUS: "opus";
|
||||
readonly WAV: "wav";
|
||||
}>>>;
|
||||
audioBitrate: z.ZodOptional<z.ZodString>;
|
||||
audioChannels: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
||||
preset: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
||||
crf: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
||||
format: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly MP4: "mp4";
|
||||
readonly MKV: "mkv";
|
||||
readonly MOV: "mov";
|
||||
readonly AVI: "avi";
|
||||
readonly FLV: "flv";
|
||||
readonly WMV: "wmv";
|
||||
readonly WEBM: "webm";
|
||||
readonly MP3: "mp3";
|
||||
readonly OGG: "ogg";
|
||||
readonly WAV: "wav";
|
||||
}>>>;
|
||||
startTime: z.ZodOptional<z.ZodString>;
|
||||
duration: z.ZodOptional<z.ZodString>;
|
||||
overwrite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
||||
loglevel: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<{
|
||||
readonly QUIET: "quiet";
|
||||
readonly PANIC: "panic";
|
||||
readonly FATAL: "fatal";
|
||||
readonly ERROR: "error";
|
||||
readonly WARNING: "warning";
|
||||
readonly INFO: "info";
|
||||
readonly VERBOSE: "verbose";
|
||||
readonly DEBUG: "debug";
|
||||
readonly TRACE: "trace";
|
||||
}>>>;
|
||||
}, "strip", z.ZodTypeAny, {
|
||||
input?: string;
|
||||
format?: "mp3" | "wav" | "mp4" | "mkv" | "mov" | "avi" | "flv" | "wmv" | "webm" | "ogg";
|
||||
preset?: string;
|
||||
duration?: string;
|
||||
output?: string;
|
||||
audioCodec?: "aac" | "mp3" | "vorbis" | "flac" | "opus" | "wav";
|
||||
codec?: "copy" | "libx264" | "libx265" | "libvpx-vp9" | "libaom-av1" | "libtheora" | "mpeg2video";
|
||||
bitrate?: string;
|
||||
framerate?: number;
|
||||
resolution?: string;
|
||||
audioBitrate?: string;
|
||||
audioChannels?: number;
|
||||
crf?: number;
|
||||
startTime?: string;
|
||||
overwrite?: boolean;
|
||||
loglevel?: "error" | "warning" | "info" | "debug" | "verbose" | "quiet" | "panic" | "fatal" | "trace";
|
||||
}, {
|
||||
input?: string;
|
||||
format?: "mp3" | "wav" | "mp4" | "mkv" | "mov" | "avi" | "flv" | "wmv" | "webm" | "ogg";
|
||||
preset?: string;
|
||||
duration?: string;
|
||||
output?: string;
|
||||
audioCodec?: "aac" | "mp3" | "vorbis" | "flac" | "opus" | "wav";
|
||||
codec?: "copy" | "libx264" | "libx265" | "libvpx-vp9" | "libaom-av1" | "libtheora" | "mpeg2video";
|
||||
bitrate?: string;
|
||||
framerate?: number;
|
||||
resolution?: string;
|
||||
audioBitrate?: string;
|
||||
audioChannels?: number;
|
||||
crf?: number;
|
||||
startTime?: string;
|
||||
overwrite?: boolean;
|
||||
loglevel?: "error" | "warning" | "info" | "debug" | "verbose" | "quiet" | "panic" | "fatal" | "trace";
|
||||
}>;
|
||||
export type FFmpegOptions = z.infer<typeof ffmpegOptionsSchema>;
|
||||
|
||||
12
packages/media/lib/media/video/resize.d.ts
vendored
12
packages/media/lib/media/video/resize.d.ts
vendored
@ -1,6 +1,6 @@
|
||||
import * as sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../types';
|
||||
export declare const meta: (file: any, image: sharp.Sharp) => Promise<sharp.Metadata>;
|
||||
export declare const resizeFile: (file: any, target: any, onNode: (data: any) => void, options: IResizeOptions) => Promise<sharp.Sharp>;
|
||||
export declare const _resize: (file: any, targets: string[], onNode: (data: any) => void, options: IOptions) => Promise<any>;
|
||||
export declare const resize: (options: IOptions) => Promise<void>;
|
||||
import * as sharp from 'sharp';
|
||||
import { IOptions, IResizeOptions } from '../../../types';
|
||||
export declare const meta: (file: any, image: sharp.Sharp) => Promise<sharp.Metadata>;
|
||||
export declare const resizeFile: (file: any, target: any, onNode: (data: any) => void, options: IResizeOptions) => Promise<sharp.Sharp>;
|
||||
export declare const _resize: (file: any, targets: string[], onNode: (data: any) => void, options: IOptions) => Promise<any>;
|
||||
export declare const resize: (options: IOptions) => Promise<void>;
|
||||
|
||||
File diff suppressed because one or more lines are too long
36
packages/media/lib/process/index.d.ts
vendored
36
packages/media/lib/process/index.d.ts
vendored
@ -1,18 +1,18 @@
|
||||
export declare enum STATUS {
|
||||
OK = 0,
|
||||
ERROR = 1,
|
||||
PENDING = 2
|
||||
}
|
||||
export declare class Process {
|
||||
binary: string;
|
||||
cwd: string;
|
||||
args: string;
|
||||
constructor(options?: any);
|
||||
optionsToString(options: any): string;
|
||||
optionsToArray(options: any): string[];
|
||||
exec(command: string, options?: any, args?: any[]): Promise<any>;
|
||||
}
|
||||
export declare class Helper {
|
||||
static run(cwd: any, command: string, gitArgs: string[]): Promise<any>;
|
||||
static runBin(cwd: any, bin: any, command: string, gitArgs: string[]): Promise<any>;
|
||||
}
|
||||
export declare enum STATUS {
|
||||
OK = 0,
|
||||
ERROR = 1,
|
||||
PENDING = 2
|
||||
}
|
||||
export declare class Process {
|
||||
binary: string;
|
||||
cwd: string;
|
||||
args: string;
|
||||
constructor(options?: any);
|
||||
optionsToString(options: any): string;
|
||||
optionsToArray(options: any): string[];
|
||||
exec(command: string, options?: any, args?: any[]): Promise<any>;
|
||||
}
|
||||
export declare class Helper {
|
||||
static run(cwd: any, command: string, gitArgs: string[]): Promise<any>;
|
||||
static runBin(cwd: any, bin: any, command: string, gitArgs: string[]): Promise<any>;
|
||||
}
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const _cli_1 = require("./_cli");
|
||||
(0, _cli_1.defaults)();
|
||||
const cli = require("yargs");
|
||||
const pdf2jpg_1 = require("./commands/pdf2jpg");
|
||||
(0, pdf2jpg_1.register)(cli);
|
||||
const svg2jpg_1 = require("./commands/svg2jpg");
|
||||
(0, svg2jpg_1.register)(cli);
|
||||
const resize_1 = require("./commands/resize");
|
||||
(0, resize_1.register)(cli);
|
||||
const convert_1 = require("./commands/convert");
|
||||
(0, convert_1.register)(cli);
|
||||
const audio_1 = require("./commands/audio");
|
||||
(0, audio_1.register)(cli);
|
||||
const video_1 = require("./commands/video");
|
||||
(0, video_1.register)(cli);
|
||||
const watermark_1 = require("./commands/watermark");
|
||||
(0, watermark_1.register)(cli);
|
||||
const argv = cli.argv;
|
||||
if (argv.h || argv.help) {
|
||||
cli.showHelp();
|
||||
process.exit();
|
||||
}
|
||||
else if (argv.v || argv.version) {
|
||||
process.exit();
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlDQUFrQztBQUFDLElBQUEsZUFBUSxHQUFFLENBQUE7QUFFN0MsNkJBQTRCO0FBRTVCLGdEQUFpRTtBQUFDLElBQUEsa0JBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQTtBQUN0RixnREFBaUU7QUFBQyxJQUFBLGtCQUFlLEVBQUMsR0FBRyxDQUFDLENBQUE7QUFDdEYsOENBQStEO0FBQUMsSUFBQSxpQkFBYyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ25GLGdEQUFpRTtBQUFDLElBQUEsa0JBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQTtBQUN0Riw0Q0FBNkQ7QUFBQyxJQUFBLGdCQUFhLEVBQUMsR0FBRyxDQUFDLENBQUE7QUFDaEYsNENBQTZEO0FBQUMsSUFBQSxnQkFBYSxFQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2hGLG9EQUFxRTtBQUFDLElBQUEsb0JBQWlCLEVBQUMsR0FBRyxDQUFDLENBQUE7QUFFNUYsTUFBTSxJQUFJLEdBQVEsR0FBRyxDQUFDLElBQUksQ0FBQztBQUUzQixJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtJQUNyQixHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDZixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Q0FDbEI7S0FBTSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtJQUMvQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Q0FDbEIifQ==
|
||||
6042
packages/media/package-lock.json
generated
6042
packages/media/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,32 +1,37 @@
|
||||
{
|
||||
"name": "@plastichub/osr-media",
|
||||
"version": "0.2.7",
|
||||
"name": "@polymech/media",
|
||||
"version": "0.3.0",
|
||||
"typings": "index.d.ts",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"bin": {
|
||||
"osr-media": "main.js"
|
||||
"pm-media": "main.js"
|
||||
},
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": "./dist-in/index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@plastichub/core": "^0.2.6",
|
||||
"@plastichub/fs": "^0.13.39",
|
||||
"@plastichub/osr-cache": "^0.4.6",
|
||||
"@plastichub/osr-commons": "^0.5.3",
|
||||
"@polymech/cache": "file:../cache",
|
||||
"@polymech/commons": "file:../commons",
|
||||
"@polymech/core": "file:../core",
|
||||
"@polymech/fs": "file:../fs",
|
||||
"@polymech/log": "file:../log",
|
||||
"@types/fluent-ffmpeg": "^2.1.27",
|
||||
"@types/node": "^24.0.10",
|
||||
"bluebird": "^3.7.2",
|
||||
"fluent-ffmpeg": "^2.1.3",
|
||||
"js-beautify": "^1.14.6",
|
||||
"novita-sdk": "^1.0.37",
|
||||
"p-map": "^4.0.0",
|
||||
"p-throttle": "^v4.1.1",
|
||||
"sharp": "^0.33.5",
|
||||
"typescript": "^4.9.5",
|
||||
"yargs": "^17.7.2",
|
||||
"zod": "^3.23.8"
|
||||
"p-map": "^7.0.3",
|
||||
"sharp": "^0.34.2",
|
||||
"tslog": "^4.9.3",
|
||||
"typescript": "^5.8.3",
|
||||
"yargs": "^18.0.0",
|
||||
"zod": "^3.25.74"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.18.63",
|
||||
"@types/showdown": "^2.0.6"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
1
packages/media/ref/pdf-to-images/.gitignore
vendored
Normal file
1
packages/media/ref/pdf-to-images/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
./tests/out
|
||||
21
packages/media/ref/pdf-to-images/.vscode/launch.json
vendored
Normal file
21
packages/media/ref/pdf-to-images/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Program",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"program": "${workspaceFolder}\\dist\\index.js",
|
||||
"preLaunchTask": "tsc: build - tsconfig.json",
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
155
packages/media/ref/pdf-to-images/README.md
Normal file
155
packages/media/ref/pdf-to-images/README.md
Normal file
@ -0,0 +1,155 @@
|
||||
# @polymech/pdf
|
||||
|
||||
## Installation
|
||||
|
||||
1. **Clone the repository (optional):**
|
||||
```bash
|
||||
git clone <repository-url> # Replace with your repository URL
|
||||
cd <directory-name> # e.g., cd pdf
|
||||
```
|
||||
|
||||
2. **Install dependencies:**
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. **Build the project:**
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
## CLI Usage
|
||||
|
||||
When running from within the cloned project directory after building:
|
||||
|
||||
```bash
|
||||
npm start -- convert [options]
|
||||
# or directly execute the built script
|
||||
node dist/index.js convert [options]
|
||||
```
|
||||
|
||||
*(Note: If you publish this package and install it elsewhere, you might execute it differently, potentially using `npx @polymech/pdf convert ...` if a `bin` entry is added to `package.json`)*
|
||||
|
||||
Available command: `convert` - Convert PDF to images
|
||||
|
||||
### Options for `convert` command:
|
||||
|
||||
* `-i, --input <string>`: Input PDF file (required)
|
||||
* `-o, --output <string>`: Output directory prefix for images (required)
|
||||
* `--dpi <number>`: DPI for output images (default: 300)
|
||||
* `--format <string>`: Output image format (choices: 'png', 'jpg', default: 'png')
|
||||
* `-s, --startPage <number>`: First page to convert (1-based)
|
||||
* `-e, --endPage <number>`: Last page to convert (1-based, inclusive)
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
node dist/index.js convert -i mydocument.pdf -o output/image
|
||||
```
|
||||
|
||||
This will generate images like `output/image_1.png`, `output/image_2.png`, etc.
|
||||
|
||||
Another example (using JPG format and 150 DPI):
|
||||
|
||||
```bash
|
||||
node dist/index.js convert -i report.pdf -o images/report_page --format jpg --dpi 150
|
||||
```
|
||||
|
||||
This generates `images/report_page_1.jpg`, `images/report_page_2.jpg`, etc.
|
||||
|
||||
Example specifying a page range (pages 3 to 5):
|
||||
|
||||
```bash
|
||||
node dist/index.js convert -i long_doc.pdf -o pages/doc_pg --startPage 3 --endPage 5
|
||||
```
|
||||
|
||||
This generates `pages/doc_pg_3.png`, `pages/doc_pg_4.png`, `pages/doc_pg_5.png`.
|
||||
|
||||
## API Usage
|
||||
|
||||
```typescript
|
||||
import { convertPdfToImages, ImageFormat, PdfToImageOptions } from './dist/lib/pdf'; // Adjust path based on your project structure
|
||||
import { readFile } from 'node:fs/promises';
|
||||
|
||||
async function example() {
|
||||
try {
|
||||
const pdfBuffer = await readFile('mydocument.pdf');
|
||||
|
||||
const options: PdfToImageOptions = {
|
||||
outputPathPrefix: 'output/image',
|
||||
dpi: 300,
|
||||
format: 'png'
|
||||
};
|
||||
|
||||
const outputFilePaths = await convertPdfToImages(pdfBuffer, options);
|
||||
console.log('Generated images:', outputFilePaths);
|
||||
} catch (error) {
|
||||
console.error('Error:', error);
|
||||
}
|
||||
}
|
||||
|
||||
example();
|
||||
```
|
||||
|
||||
Example using JPG format:
|
||||
|
||||
```typescript
|
||||
import { convertPdfToImages, PdfToImageOptions } from './dist/lib/pdf'; // Adjust path
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { Logger } from 'tslog'; // Assuming you want logging
|
||||
|
||||
async function exampleJpg() {
|
||||
const logger = new Logger();
|
||||
try {
|
||||
const pdfBuffer = await readFile('report.pdf');
|
||||
const options: PdfToImageOptions = {
|
||||
outputPathPrefix: 'images/report_page',
|
||||
dpi: 150,
|
||||
format: 'jpg',
|
||||
};
|
||||
const outputFilePaths = await convertPdfToImages(pdfBuffer, options);
|
||||
logger.info('Generated JPG images:', outputFilePaths);
|
||||
} catch (error) {
|
||||
logger.error('Error generating JPGs:', error);
|
||||
}
|
||||
}
|
||||
|
||||
exampleJpg();
|
||||
```
|
||||
|
||||
Example with specific page range:
|
||||
|
||||
```typescript
|
||||
import { convertPdfToImages, PdfToImageOptions } from './dist/lib/pdf'; // Adjust path
|
||||
import { readFile } from 'node:fs/promises';
|
||||
|
||||
async function examplePageRange() {
|
||||
try {
|
||||
const pdfBuffer = await readFile('long_doc.pdf');
|
||||
const options: PdfToImageOptions = {
|
||||
outputPathPrefix: 'pages/doc_pg',
|
||||
dpi: 200,
|
||||
format: 'png',
|
||||
startPage: 3,
|
||||
endPage: 5
|
||||
};
|
||||
const outputFilePaths = await convertPdfToImages(pdfBuffer, options);
|
||||
console.log('Generated specific pages:', outputFilePaths);
|
||||
} catch (error) {
|
||||
console.error('Error generating page range:', error);
|
||||
}
|
||||
}
|
||||
|
||||
examplePageRange();
|
||||
```
|
||||
|
||||
### Exports
|
||||
|
||||
* `convertPdfToImages(pdfData: Buffer, options: PdfToImageOptions): Promise<string[]>`: Converts a PDF buffer to images.
|
||||
* `ImageFormat`: Type alias for `'png' | 'jpg'`.
|
||||
* `PdfToImageOptions`: Interface for conversion options (`outputPathPrefix`, `dpi`, `format`, optional `startPage`, optional `endPage`, optional `logger`).
|
||||
|
||||
|
||||
### References
|
||||
|
||||
- https://github.com/opendatalab/PDF-Extract-Kit/tree/main/project/pdf2markdown (Using Yolo)
|
||||
30
packages/media/ref/pdf-to-images/dist/commands/convert.js
vendored
Normal file
30
packages/media/ref/pdf-to-images/dist/commands/convert.js
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
import { Logger } from 'tslog';
|
||||
import { ConvertCommandSchema } from '../types.js';
|
||||
import { existsSync } from 'node:fs';
|
||||
import * as z from 'zod';
|
||||
import { runConversion } from '../lib/convert.js';
|
||||
export const command = 'convert';
|
||||
export const desc = 'Convert PDF to images';
|
||||
export async function handler(argv) {
|
||||
const logger = new Logger();
|
||||
try {
|
||||
const config = ConvertCommandSchema.parse(argv);
|
||||
if (!existsSync(config.input)) {
|
||||
throw new Error(`Input file ${config.input} does not exist`);
|
||||
}
|
||||
logger.info("Calling conversion library function...");
|
||||
const outputFiles = await runConversion(config, logger);
|
||||
logger.info(`Conversion completed successfully`);
|
||||
logger.info(`Generated ${outputFiles.length} images`);
|
||||
}
|
||||
catch (error) {
|
||||
if (error instanceof z.ZodError) {
|
||||
logger.error('Invalid arguments:', error.flatten());
|
||||
}
|
||||
else {
|
||||
const message = error instanceof Error ? error.message : String(error);
|
||||
logger.error('Error during conversion command:', message, error);
|
||||
}
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
5
packages/media/ref/pdf-to-images/dist/constants.js
vendored
Normal file
5
packages/media/ref/pdf-to-images/dist/constants.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Default output path template when no output is specified.
|
||||
* Variables: ${SRC_DIR}, ${SRC_NAME}, ${PAGE}, ${FORMAT}
|
||||
*/
|
||||
export const DEFAULT_OUTPUT_TEMPLATE = "${SRC_DIR}/${SRC_NAME}_${PAGE}.${FORMAT}";
|
||||
16
packages/media/ref/pdf-to-images/dist/index.js
vendored
Normal file
16
packages/media/ref/pdf-to-images/dist/index.js
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
import yargs from 'yargs';
|
||||
import { hideBin } from 'yargs/helpers';
|
||||
import * as convertCommand from './commands/convert.js';
|
||||
import { ConvertCommandArgsSchema } from './types.js';
|
||||
import { toYargs } from '@polymech/commons';
|
||||
const commandModule = {
|
||||
command: convertCommand.command,
|
||||
describe: convertCommand.desc,
|
||||
builder: (yargs) => toYargs(yargs, ConvertCommandArgsSchema),
|
||||
handler: convertCommand.handler
|
||||
};
|
||||
yargs(hideBin(process.argv))
|
||||
.command(commandModule)
|
||||
.demandCommand(1, 'You need to specify a command')
|
||||
.help()
|
||||
.parse();
|
||||
118
packages/media/ref/pdf-to-images/dist/lib/convert.js
vendored
Normal file
118
packages/media/ref/pdf-to-images/dist/lib/convert.js
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
import { statSync } from "node:fs";
|
||||
import { sep, resolve as pathResolve, parse as pathParse, relative as pathRelative } from "node:path";
|
||||
import { readFile } from "node:fs/promises";
|
||||
import { DEFAULT_ROOTS, DEFAULT_VARS, pathInfoEx } from "@polymech/commons";
|
||||
import { convertPdfToImages } from "./pdf.js";
|
||||
import { DEFAULT_OUTPUT_TEMPLATE } from "../constants.js";
|
||||
/**
|
||||
* Runs the PDF to images conversion process.
|
||||
* Generates variables, determines output path, reads PDF, and calls the conversion engine.
|
||||
* @param config - The conversion configuration options (inferred from Zod schema).
|
||||
* @param logger - The logger instance to use for logging.
|
||||
* @returns A promise that resolves with an array of generated image file paths.
|
||||
*/
|
||||
export async function runConversion(config, logger) {
|
||||
const inputPath = pathResolve(config.input);
|
||||
let srcInfo = {};
|
||||
try {
|
||||
srcInfo = pathInfoEx(inputPath);
|
||||
const parsed = pathParse(inputPath);
|
||||
srcInfo = {
|
||||
...srcInfo,
|
||||
SRC_DIR: parsed.dir,
|
||||
SRC_NAME: parsed.name,
|
||||
SRC_EXT: parsed.ext,
|
||||
};
|
||||
}
|
||||
catch (e) {
|
||||
logger.warn("pathInfoEx not found or failed, using basic path.parse");
|
||||
}
|
||||
let baseVariables = {
|
||||
...DEFAULT_ROOTS,
|
||||
...DEFAULT_VARS({}),
|
||||
...srcInfo,
|
||||
DPI: config.dpi,
|
||||
FORMAT: config.format,
|
||||
};
|
||||
if (baseVariables.ROOT && baseVariables.SRC_DIR) {
|
||||
baseVariables.SRC_REL = pathRelative(baseVariables.ROOT, baseVariables.SRC_DIR);
|
||||
}
|
||||
const srcName = baseVariables.SRC_NAME || '';
|
||||
const dashed = srcName.split('-');
|
||||
if (dashed.length > 1) {
|
||||
for (let i = 0; i < dashed.length; i++) {
|
||||
baseVariables[`SRC_NAME-${i}`] = dashed[i];
|
||||
}
|
||||
}
|
||||
const dotted = srcName.split('.');
|
||||
if (dotted.length > 1) {
|
||||
for (let i = 0; i < dotted.length; i++) {
|
||||
baseVariables[`SRC_NAME.${i}`] = dotted[i];
|
||||
}
|
||||
}
|
||||
const underscored = srcName.split('_');
|
||||
if (underscored.length > 1) {
|
||||
for (let i = 0; i < underscored.length; i++) {
|
||||
baseVariables[`SRC_NAME_${i}`] = underscored[i];
|
||||
}
|
||||
}
|
||||
// Process var-* arguments directly from config object passed in
|
||||
const cliVars = Object.keys(config).filter(k => k.startsWith('var-')).reduce((acc, k) => {
|
||||
acc[k.replace('var-', '').toUpperCase()] = config[k];
|
||||
return acc;
|
||||
}, {});
|
||||
// Uppercase base variable keys
|
||||
baseVariables = Object.keys(baseVariables).reduce((acc, key) => {
|
||||
acc[key.toUpperCase()] = baseVariables[key];
|
||||
return acc;
|
||||
}, {});
|
||||
baseVariables = { ...baseVariables, ...cliVars };
|
||||
let outputPathTemplate;
|
||||
let isExplicitDir = false;
|
||||
if (config.output) {
|
||||
const outputPath = pathResolve(config.output);
|
||||
try {
|
||||
const stats = statSync(outputPath);
|
||||
if (stats.isDirectory()) {
|
||||
isExplicitDir = true;
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
if (config.output.endsWith(sep) || config.output.endsWith("/")) {
|
||||
isExplicitDir = true;
|
||||
}
|
||||
else {
|
||||
isExplicitDir = false;
|
||||
}
|
||||
}
|
||||
if (isExplicitDir) {
|
||||
baseVariables["OUT_DIR"] = outputPath;
|
||||
outputPathTemplate = "${OUT_DIR}/${SRC_NAME}_${PAGE}.${FORMAT}";
|
||||
logger.info(`Output directory specified: ${outputPath}`);
|
||||
}
|
||||
else {
|
||||
outputPathTemplate = config.output;
|
||||
logger.info(`Using output path pattern: ${outputPathTemplate}`);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Use default pattern directly from constant
|
||||
outputPathTemplate = DEFAULT_OUTPUT_TEMPLATE;
|
||||
logger.info(`Using default output path pattern: ${outputPathTemplate}`);
|
||||
}
|
||||
// --- Read PDF and Call Conversion (moved from commands/convert.ts) ---
|
||||
logger.info(`Reading PDF: ${config.input}`);
|
||||
const pdfData = await readFile(config.input);
|
||||
logger.info(`Starting conversion process...`);
|
||||
const outputFiles = await convertPdfToImages(pdfData, {
|
||||
baseVariables,
|
||||
outputPathTemplate,
|
||||
dpi: config.dpi,
|
||||
format: config.format,
|
||||
scale: config.scale,
|
||||
startPage: config.startPage,
|
||||
endPage: config.endPage,
|
||||
logger
|
||||
});
|
||||
return outputFiles;
|
||||
}
|
||||
77
packages/media/ref/pdf-to-images/dist/lib/pdf.js
vendored
Normal file
77
packages/media/ref/pdf-to-images/dist/lib/pdf.js
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
import * as mupdf from 'mupdf';
|
||||
import { Logger } from 'tslog';
|
||||
import { dirname } from 'node:path';
|
||||
import { resolveVariables } from '@polymech/commons';
|
||||
import { sync as mkdir } from '@polymech/fs/dir';
|
||||
import { writeFileSync } from 'node:fs';
|
||||
import { Buffer } from 'node:buffer';
|
||||
// Helper function to convert object-like image data to Buffer
|
||||
function imageDataObjectToBuffer(imageDataObject) {
|
||||
const keys = Object.keys(imageDataObject).map(Number).sort((a, b) => a - b);
|
||||
const bufferLength = keys.length > 0 ? keys[keys.length - 1] + 1 : 0; // Determine length based on max index + 1
|
||||
const buffer = Buffer.allocUnsafe(bufferLength); // Use allocUnsafe for performance if overwriting all bytes
|
||||
for (const key in imageDataObject) {
|
||||
if (Object.prototype.hasOwnProperty.call(imageDataObject, key)) {
|
||||
const index = parseInt(key, 10);
|
||||
if (!isNaN(index) && index >= 0 && index < bufferLength) {
|
||||
buffer[index] = imageDataObject[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
export async function convertPdfToImages(pdfData, options) {
|
||||
const logger = options.logger || new Logger();
|
||||
const outputFiles = [];
|
||||
try {
|
||||
const doc = mupdf.Document.openDocument(pdfData, 'pdf');
|
||||
const pageCount = doc.countPages();
|
||||
// Validate and determine page range (adjusting for 0-based index)
|
||||
const start = (options.startPage ?? 1) - 1;
|
||||
const end = (options.endPage ?? pageCount) - 1;
|
||||
if (start < 0 || start >= pageCount) {
|
||||
throw new Error(`startPage (${options.startPage}) is out of valid range (1-${pageCount})`);
|
||||
}
|
||||
if (end < 0 || end >= pageCount) {
|
||||
throw new Error(`endPage (${options.endPage}) is out of valid range (1-${pageCount})`);
|
||||
}
|
||||
if (start > end) {
|
||||
// This should also be caught by Zod schema, but good to double-check
|
||||
throw new Error(`startPage (${options.startPage}) cannot be greater than endPage (${options.endPage})`);
|
||||
}
|
||||
const numPagesToProcess = end - start + 1;
|
||||
logger.info(`Processing pages ${start + 1} to ${end + 1} (${numPagesToProcess} pages) of ${pageCount} total`);
|
||||
// Determine the scaling matrix
|
||||
const scaleValue = options.scale ?? 2;
|
||||
const matrix = scaleValue === 1 ? mupdf.Matrix.identity : mupdf.Matrix.scale(scaleValue, scaleValue);
|
||||
logger.info(`Using scale factor: ${scaleValue}`);
|
||||
for (let i = start; i <= end; i++) {
|
||||
const pageNumber = i + 1; // User-facing page number (1-based)
|
||||
// Create page-specific variables
|
||||
const pageVariables = {
|
||||
...options.baseVariables,
|
||||
PAGE: pageNumber.toString()
|
||||
};
|
||||
// Resolve the output path using the template and page-specific variables
|
||||
const outputPath = await resolveVariables(options.outputPathTemplate, false, pageVariables);
|
||||
const page = doc.loadPage(i);
|
||||
// Use the scaling matrix here
|
||||
const pixmap = page.toPixmap(matrix, mupdf.ColorSpace.DeviceRGB, false);
|
||||
// Note: DPI is implicitly handled by the scaling factor now.
|
||||
// The pixmap dimensions will be scaled * scaleFactor.
|
||||
// We might want to remove the explicit DPI option later if it's confusing.
|
||||
const imageData = options.format === 'png'
|
||||
? pixmap.asPNG()
|
||||
: pixmap.asJPEG(60, false);
|
||||
mkdir(dirname(outputPath));
|
||||
writeFileSync(outputPath, imageDataObjectToBuffer(imageData));
|
||||
outputFiles.push(outputPath);
|
||||
logger.info(`Converted page ${pageNumber} to ${outputPath}`);
|
||||
}
|
||||
return outputFiles;
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error converting PDF to images:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
40
packages/media/ref/pdf-to-images/dist/types.js
vendored
Normal file
40
packages/media/ref/pdf-to-images/dist/types.js
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
import { z } from 'zod';
|
||||
// Define the base shape for arguments
|
||||
export const ConvertCommandArgsSchema = z.object({
|
||||
input: z.string().describe('Path to the input PDF file'),
|
||||
output: z.string().describe('Output path template (e.g., output/page_{PAGE}.png)').optional(),
|
||||
dpi: z.number().int().positive().default(300).describe('Resolution for the output images'),
|
||||
scale: z.number().positive().default(2).describe('Scaling factor to apply before rendering (e.g., 2 for 2x size)').optional(),
|
||||
format: z.enum(['png', 'jpg']).default('png').describe('Output image format'),
|
||||
startPage: z.number().int().positive().describe('First page to convert (1-based index)').optional(),
|
||||
endPage: z.number().int().positive().describe('Last page to convert (1-based index)').optional()
|
||||
});
|
||||
// Add refinements, transformations, and catchall for final validation/parsing
|
||||
export const ConvertCommandSchema = ConvertCommandArgsSchema
|
||||
.catchall(z.any()) // Allow var-* and other properties
|
||||
.transform((data) => {
|
||||
// Explicitly pick known fields + extras (var-*)
|
||||
const known = {
|
||||
input: data.input,
|
||||
output: data.output,
|
||||
dpi: data.dpi,
|
||||
format: data.format,
|
||||
startPage: data.startPage,
|
||||
endPage: data.endPage,
|
||||
scale: data.scale,
|
||||
};
|
||||
// Keep only extra properties (like var-*)
|
||||
const extras = Object.keys(data)
|
||||
.filter(key => !['input', 'output', 'dpi', 'format', 'startPage', 'endPage', 'scale', '_', '$0'].includes(key))
|
||||
.reduce((acc, key) => { acc[key] = data[key]; return acc; }, {});
|
||||
return { ...known, ...extras };
|
||||
})
|
||||
.refine((data) => {
|
||||
if (data.startPage !== undefined && data.endPage !== undefined) {
|
||||
return data.startPage <= data.endPage;
|
||||
}
|
||||
return true;
|
||||
}, {
|
||||
message: "startPage must be less than or equal to endPage",
|
||||
path: ["startPage"],
|
||||
});
|
||||
1823
packages/media/ref/pdf-to-images/package-lock.json
generated
Normal file
1823
packages/media/ref/pdf-to-images/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
43
packages/media/ref/pdf-to-images/package.json
Normal file
43
packages/media/ref/pdf-to-images/package.json
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
"name": "@polymech/pdf",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "dist/index.js",
|
||||
"bin": {
|
||||
"pdf-to-images": "dist/index.js"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "tsc -p . --watch",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js",
|
||||
"test:pdf": "node dist/index.js convert --input tests/e5dc.pdf --output tests/out/e5dc/ --startPage 3 --endPage 5",
|
||||
"test:basic": "vitest run",
|
||||
"test:variables": "vitest run tests/cli/variables.test.ts"
|
||||
},
|
||||
"keywords": [
|
||||
"pdf",
|
||||
"images",
|
||||
"convert",
|
||||
"pdf-to-images"
|
||||
],
|
||||
"author": "Polymech",
|
||||
"license": "ISC",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@polymech/commons": "file:../../../commons",
|
||||
"@polymech/fs": "file:../../../fs",
|
||||
"@types/yargs": "^17.0.33",
|
||||
"init": "^0.1.2",
|
||||
"mupdf": "^1.3.3",
|
||||
"p-map": "^7.0.3",
|
||||
"tslog": "^4.9.3",
|
||||
"typescript": "^5.8.2",
|
||||
"vitest": "^3.1.1",
|
||||
"xlsx": "^0.18.5",
|
||||
"yargs": "^17.7.2",
|
||||
"zod": "^3.24.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.13.10"
|
||||
}
|
||||
}
|
||||
97
packages/media/ref/pdf-to-images/parser/markdown/README.md
Normal file
97
packages/media/ref/pdf-to-images/parser/markdown/README.md
Normal file
@ -0,0 +1,97 @@
|
||||
# PDF to Markdown Integration
|
||||
|
||||
This directory contains the necessary setup and guidance for integrating the `pdf2markdown` tool from the [opendatalab/PDF-Extract-Kit](https://github.com/opendatalab/PDF-Extract-Kit/tree/main/project/pdf2markdown) repository.
|
||||
|
||||
## Setup Instructions
|
||||
|
||||
1. **Clone the Repository:** Clone the `PDF-Extract-Kit` repository into a suitable location (e.g., a `vendor` directory or similar within this project, or manage it as a git submodule).
|
||||
|
||||
```bash
|
||||
# Example: Cloning into a vendor directory
|
||||
git clone https://github.com/opendatalab/PDF-Extract-Kit.git ../../vendor/PDF-Extract-Kit
|
||||
# Or using a submodule
|
||||
# git submodule add https://github.com/opendatalab/PDF-Extract-Kit.git vendor/PDF-Extract-Kit
|
||||
```
|
||||
|
||||
2. **Install Python Dependencies:** The `pdf2markdown` tool relies on several Python libraries. You need to have Python installed (check the repository for specific version requirements, likely Python 3.x). Set up a virtual environment and install the required packages. Navigate to the cloned repository directory. While the repository doesn't seem to have a top-level `requirements.txt`, you might need to install dependencies based on the components used (YOLOv8, UniMERNet, StructEqTable, PaddleOCR). You may need to piece together the requirements from the individual components or look for specific setup instructions within the `PDF-Extract-Kit` documentation if available.
|
||||
|
||||
```bash
|
||||
# Navigate to the cloned repo (adjust path as needed)
|
||||
cd ../../vendor/PDF-Extract-Kit
|
||||
|
||||
# Create a virtual environment (recommended)
|
||||
python -m venv venv
|
||||
source venv/bin/activate # On Windows use `venv\Scripts\activate`
|
||||
|
||||
# Install common dependencies (this is a guess, refer to PDF-Extract-Kit docs for specifics)
|
||||
# You'll likely need libraries for YOLO, OCR (PaddleOCR), etc.
|
||||
# pip install -r requirements.txt # Look for requirements files in subdirectories if they exist
|
||||
|
||||
# Example: Install PaddleOCR (check their docs for CPU/GPU versions)
|
||||
# pip install paddlepaddle paddleocr
|
||||
|
||||
# You will need to research and install the specific dependencies for YOLOv8,
|
||||
# UniMERNet, and StructEqTable as used by this project.
|
||||
```
|
||||
|
||||
3. **Configuration:** The tool uses a YAML configuration file (`project/pdf2markdown/configs/pdf2markdown.yaml`). You might need to adjust paths or settings within this file, especially if models need to be downloaded or paths to resources are specific to your environment.
|
||||
|
||||
## Usage from TypeScript CLI
|
||||
|
||||
You can execute the Python script from your TypeScript code using Node.js's `child_process` module.
|
||||
|
||||
```typescript
|
||||
import { exec } from 'child_process';
|
||||
import path from 'path';
|
||||
|
||||
async function convertPdfToMarkdown(pdfFilePath: string, outputMarkdownPath: string): Promise<void> {
|
||||
// Adjust these paths based on where you cloned the repo and the location of this script
|
||||
const repoRoot = path.resolve(__dirname, '../../vendor/PDF-Extract-Kit'); // Example path
|
||||
const scriptPath = path.join(repoRoot, 'project/pdf2markdown/scripts/run_project.py');
|
||||
const configPath = path.join(repoRoot, 'project/pdf2markdown/configs/pdf2markdown.yaml');
|
||||
const pythonExecutable = path.join(repoRoot, 'venv/bin/python'); // Or venv\Scripts\python.exe on Windows, or just 'python' if in PATH
|
||||
|
||||
// Construct the command
|
||||
// IMPORTANT: You'll need to modify the run_project.py script or its config
|
||||
// to accept input PDF path and output MD path as arguments, or handle
|
||||
// input/output in a way that suits your CLI (e.g., reading config, environment variables).
|
||||
// The current script seems to rely solely on the config file.
|
||||
// For now, let's assume you modify the config file or the script handles it.
|
||||
// You might need to dynamically update the config file before running.
|
||||
|
||||
// Placeholder command - needs refinement based on how run_project.py handles I/O
|
||||
const command = `${pythonExecutable} ${scriptPath} --config ${configPath} --input ${pdfFilePath} --output ${outputMarkdownPath}`; // Hypothetical arguments
|
||||
|
||||
console.log(`Executing: ${command}`);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
exec(command, (error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(`Error executing pdf2markdown: ${error.message}`);
|
||||
console.error(`Stderr: ${stderr}`);
|
||||
reject(error);
|
||||
return;
|
||||
}
|
||||
console.log(`Stdout: ${stdout}`);
|
||||
console.warn(`Stderr: ${stderr}`); // Log stderr even on success, as it might contain warnings
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Example usage in your CLI command:
|
||||
// const inputPdf = 'path/to/your/input.pdf';
|
||||
// const outputMd = 'path/to/your/output.md';
|
||||
// convertPdfToMarkdown(inputPdf, outputMd)
|
||||
// .then(() => console.log('PDF converted to Markdown successfully.'))
|
||||
// .catch(err => console.error('Conversion failed:', err));
|
||||
|
||||
```
|
||||
|
||||
## Important Considerations
|
||||
|
||||
* **Dependency Management:** Managing Python dependencies within a TypeScript project can be complex. Consider using Docker to encapsulate the Python environment or ensuring clear setup steps for developers.
|
||||
* **Script Modification:** The provided `run_project.py` script seems tailored to use its YAML config file directly. You will likely need to modify this Python script (or the way it's called) to accept input PDF file paths and desired output Markdown file paths as command-line arguments for seamless integration into your CLI.
|
||||
* **Error Handling:** Robust error handling is crucial. The Python script might fail for various reasons (invalid PDF, missing dependencies, model errors). Ensure your TypeScript wrapper handles errors from the child process gracefully.
|
||||
* **Performance:** Executing a Python process involves overhead. For high-throughput scenarios, explore potential optimizations or alternative libraries.
|
||||
* **Model Downloads:** The underlying models (YOLO, etc.) might require downloading large files during the first run or setup. Account for this in your setup instructions and potentially during the first execution from your CLI.
|
||||
353
packages/media/ref/pdf-to-images/ref/sw-convert.ts
Normal file
353
packages/media/ref/pdf-to-images/ref/sw-convert.ts
Normal file
@ -0,0 +1,353 @@
|
||||
import * as path from 'path'
|
||||
import pMap from 'p-map'
|
||||
import pkg from 'which';
|
||||
const { sync: which } = pkg;
|
||||
import { resolve, OSR_CACHE } from '@polymech/commons'
|
||||
import { dirname,equalFiles, swProcMessage } from './sw-util.js'
|
||||
import { reportCSV } from '../report/csv.js'
|
||||
import { logger, substitute } from '../index.js'
|
||||
import { removeEmpty } from '../lib/index.js'
|
||||
import { SolidworkOptions } from '../types.js'
|
||||
import { Helper } from '../lib/process/index.js'
|
||||
|
||||
import { sync as exists } from "@polymech/fs/exists"
|
||||
import { sync as read } from "@polymech/fs/read"
|
||||
import { sync as write } from "@polymech/fs/write"
|
||||
import { sync as dir } from "@polymech/fs/dir"
|
||||
|
||||
import { sync as rm } from "@polymech/fs/remove"
|
||||
import { deepClone as clone } from "@polymech/core/objects"
|
||||
|
||||
import { swRayTraceRenderQuality_e, IAssembly, IAssemblyData } from './sw-types.js'
|
||||
import { get_cached, get_path_cached, get_cache_key, set_cached } from '@polymech/cache'
|
||||
|
||||
import {
|
||||
MODULE_NAME,
|
||||
MSG_FAILED_TO_LOAD
|
||||
} from '../constants.js'
|
||||
|
||||
import { closeAppByName, fileAsBuffer, getSWBin, removeEmptyValues } from './sw-util.js'
|
||||
|
||||
export const convertFile = async (
|
||||
src,
|
||||
target,
|
||||
view: string,
|
||||
onNode: (data) => void = () => { },
|
||||
options: SolidworkOptions,
|
||||
configuration: string) => {
|
||||
configuration = options.configuration || configuration
|
||||
options.close && closeAppByName('SLDWORKS')
|
||||
const osr_cache = OSR_CACHE()
|
||||
let cache_key_obj: any = {
|
||||
sw: options.sw,
|
||||
src,
|
||||
target,
|
||||
configuration
|
||||
}
|
||||
if (target.endsWith('.jpg')) {
|
||||
cache_key_obj =
|
||||
{
|
||||
...cache_key_obj,
|
||||
quality: options.quality,
|
||||
width: options.width,
|
||||
height: options.height,
|
||||
renderer: options.renderer
|
||||
}
|
||||
}
|
||||
if (target.endsWith('.xlsx')) {
|
||||
cache_key_obj = {
|
||||
...cache_key_obj,
|
||||
"bom-config": options['bom-config'],
|
||||
"bom-detail": options['bom-detail'],
|
||||
"bom-template": options['bom-template'],
|
||||
"bom-type": options['bom-type'],
|
||||
"bom-images": options['bom-images'],
|
||||
}
|
||||
}
|
||||
const ca_options = JSON.parse(JSON.stringify(removeEmpty(cache_key_obj)))
|
||||
let cached = await get_cached(src, ca_options, MODULE_NAME)
|
||||
const cachedPath = await get_path_cached(src, ca_options, MODULE_NAME)
|
||||
if (!exists(target)) {
|
||||
cached = null;
|
||||
}
|
||||
if (osr_cache && cached && cachedPath && options.cache == true) {
|
||||
if (!exists(target) || !equalFiles(target, cachedPath)) {
|
||||
write(target, Buffer.from(cached))
|
||||
}
|
||||
logger.debug(`[${MODULE_NAME}] Skipping conversion of ${src} to ${target}`)
|
||||
await onNode({ src, target, options })
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
const parts = path.parse(target)
|
||||
const source_parts = path.parse(src)
|
||||
let exe = '' + options.script
|
||||
let cwd = getSWBin(options.sw)
|
||||
let _target = '' + target
|
||||
let onPost = null
|
||||
|
||||
// SW Photoview wont render correctly in hidden mode
|
||||
if (parts.ext === '.jpg' && source_parts.ext.toLowerCase() === '.sldasm' && options.renderer.toLowerCase() === ' ') {
|
||||
logger.debug(`[${MODULE_NAME}] Converting ${src} to ${target} : - Photoview: - ` + options.hidden)
|
||||
options.hidden = "false"
|
||||
}
|
||||
let args = [
|
||||
`--source="${src}"`,
|
||||
`--target="${target}"`,
|
||||
`--configuration="${configuration}"`,
|
||||
`--view="*${view}"`,
|
||||
`--hidden=` + options.hidden || "true",
|
||||
`--width=` + options.width,
|
||||
`--height=` + options.height,
|
||||
`--swv=` + options.swv,
|
||||
`--renderer=` + options.renderer.toLowerCase() || "solidworks",
|
||||
`--quality=${options.quality || swRayTraceRenderQuality_e.swRenderQuality_Good}`
|
||||
]
|
||||
|
||||
if (options.save) args.push(`--save`)
|
||||
if (options.pack) args.push(`--pack`)
|
||||
if (options.rebuild) args.push(`--rebuild`)
|
||||
if (options.light) args.push(`--light`)
|
||||
if (options.write) args.push(`--write`)
|
||||
|
||||
if (parts.ext === '.json' && source_parts.ext.toLowerCase() === '.sldasm') {
|
||||
exe = 'model-reader.exe'
|
||||
args = [
|
||||
`--source="${path.resolve(src)}"`,
|
||||
`--target="${_target}"`
|
||||
]
|
||||
onPost = () => {
|
||||
try {
|
||||
let props = read(_target, 'json') as any[];
|
||||
if (!props) {
|
||||
logger.error('Error reading model file ', src)
|
||||
return false
|
||||
}
|
||||
props = props.map(removeEmpty)
|
||||
write(_target, props)
|
||||
return true
|
||||
} catch (e) {
|
||||
logger.error(`Error executing model-reader::onPost for ${src} to ${_target}`)
|
||||
write(_target, {})
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
if (parts.base.endsWith('-configs.json') && source_parts.ext.toLowerCase() === '.sldasm') {
|
||||
exe = 'getconfigs.exe'
|
||||
args = [
|
||||
`--source="${path.resolve(src)}"`,
|
||||
`--target="${path.resolve(_target)}"`
|
||||
]
|
||||
onPost = () => {
|
||||
try {
|
||||
let props = read(_target, 'json') as any[];
|
||||
if (!props) {
|
||||
logger.error('Error reading configurations file ', src)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
} catch (e) {
|
||||
logger.error(`Error executing get::onPost for ${src} to ${_target}`)
|
||||
write(_target, {})
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
if (parts.ext === '.html') {
|
||||
exe = 'ExportHTML.exe'
|
||||
if (!configuration || configuration === 'Default') {
|
||||
args = [
|
||||
`"${src}"`,
|
||||
`"${target}"`,
|
||||
]
|
||||
} else if (configuration) {
|
||||
//EDrawings Control doesnt support configurations directly, we need a configuration specific edrawings file exported instead
|
||||
const eDrawingsFile = src.toLowerCase().replace('.sldasm', `-${configuration}.EASM`)
|
||||
if (!exists(eDrawingsFile)) {
|
||||
logger.error(`Configuration specific edrawing file ${eDrawingsFile} doesnt exists`)
|
||||
return Promise.resolve()
|
||||
}
|
||||
args = [
|
||||
`"${eDrawingsFile}"`,
|
||||
`"${target}"`,
|
||||
`${configuration}`
|
||||
]
|
||||
}
|
||||
}
|
||||
if (parts.ext === '.xlsx') {
|
||||
exe = 'bom.exe';
|
||||
args = [
|
||||
`"${src}"`,
|
||||
`"${target}"`,
|
||||
`--configuration ${options['bom-config']}`,
|
||||
`--type ${options['bom-type']}`,
|
||||
`--detail ${options['bom-detail']}`
|
||||
]
|
||||
|
||||
options['bom-images'] && args.push('--images')
|
||||
options['bom-template'] && args.push(`--template ${options['bom-template']}`)
|
||||
|
||||
if (!options.cache && exists(target)) {
|
||||
rm(target);
|
||||
}
|
||||
}
|
||||
if (source_parts.ext === '.drawio') {
|
||||
exe = 'draw.io.exe';
|
||||
try {
|
||||
cwd = path.parse(which(exe)).dir;
|
||||
} catch (e) {
|
||||
logger.error(`Cant find ${exe}`);
|
||||
return Promise.resolve();
|
||||
}
|
||||
args = [
|
||||
`"${src}"`,
|
||||
'-x',
|
||||
`-f ${parts.ext.replace('.', '')}`,
|
||||
`${options.args}`
|
||||
]
|
||||
}
|
||||
const bin = path.resolve(`${cwd}/${exe}`)
|
||||
if (!exists(bin)) {
|
||||
logger.error(`${bin} doesnt exists in ${cwd}`)
|
||||
logger.error('__dirname:' + dirname())
|
||||
logger.error('options.sw ' + options.sw)
|
||||
return
|
||||
}
|
||||
const ret = await Helper.run(cwd, exe, args, options.debug)
|
||||
ret.messages = [...new Set(ret.messages)]
|
||||
const failed = !!ret.messages.find((m: string) => m.includes(MSG_FAILED_TO_LOAD))
|
||||
ret.messages = ret.messages.map((m: string) => swProcMessage(m)).filter(x => x != null).map(x => x.message)
|
||||
const info = {
|
||||
...ret,
|
||||
src,
|
||||
target,
|
||||
failed: failed,
|
||||
options
|
||||
}
|
||||
|
||||
await onNode(info)
|
||||
onPost && onPost()
|
||||
if (info.failed) {
|
||||
rm(_target)
|
||||
return ret
|
||||
}
|
||||
osr_cache && options.cache == true && await set_cached(src, ca_options, MODULE_NAME, fileAsBuffer(_target))
|
||||
options.close && closeAppByName('SLDWORKS')
|
||||
return ret
|
||||
}
|
||||
export async function convertFiles(file, targets: string[], view, onNode: (data: any) => void = () => { }, options: SolidworkOptions) {
|
||||
if (options.dry) {
|
||||
logger.info(`Dry run convert ${file} to `, targets.map((t) => { `\n\t${t}` }).join(',\n'))
|
||||
return Promise.resolve()
|
||||
}
|
||||
return pMap(targets, (target: any) => {
|
||||
return convertFile(file, target.target, view, onNode, options, target.configuration);
|
||||
}, { concurrency: 1 })
|
||||
}
|
||||
export const report = (data, dst: string) => {
|
||||
|
||||
let report: any = null;
|
||||
if (dst.endsWith('.md')) {
|
||||
//report = reportMarkdown(data)
|
||||
}
|
||||
|
||||
if (dst.endsWith('.csv')) {
|
||||
report = reportCSV(data)
|
||||
}
|
||||
|
||||
logger.info(`Write report to ${dst}`)
|
||||
report = write(dst, data)
|
||||
|
||||
return report;
|
||||
}
|
||||
export const targets = (file: string, options: SolidworkOptions) => {
|
||||
const srcParts = path.parse(file)
|
||||
const variables = clone(options.variables)
|
||||
const targets = []
|
||||
|
||||
let configurations: any = { "Default": null }
|
||||
if (options.configuration && options.configuration !== 'Default') {
|
||||
configurations[options.configuration] = null
|
||||
delete configurations["Default"]
|
||||
}
|
||||
for (const conf in configurations) {
|
||||
if (options.dstInfo.IS_GLOB) {
|
||||
options.dstInfo.GLOB_EXTENSIONS.forEach((e) => {
|
||||
variables.SRC_NAME = srcParts.name
|
||||
variables.SRC_DIR = srcParts.dir
|
||||
variables.CONFIGURATION = conf
|
||||
let targetPath = substitute(options.variables.DST_PATH, options.alt, variables)
|
||||
targetPath = path.resolve(targetPath.replace(options.variables.DST_FILE_EXT, '') + e)
|
||||
const parts = path.parse(targetPath)
|
||||
if (srcParts.ext === parts.ext) {
|
||||
return
|
||||
}
|
||||
if (!exists(parts.dir)) {
|
||||
try {
|
||||
dir(parts.dir)
|
||||
} catch (e) {
|
||||
if (options.debug) {
|
||||
logger.error(`Error creating target path ${parts.dir} for ${targetPath}`);
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
targets.push({
|
||||
target: targetPath,
|
||||
configuration: conf
|
||||
})
|
||||
})
|
||||
} else {
|
||||
variables.SRC_NAME = srcParts.name
|
||||
variables.SRC_DIR = srcParts.dir
|
||||
variables.CONFIGURATION = conf
|
||||
let targetPath = substitute(options.variables.DST_PATH, options.alt, variables)
|
||||
if (!exists(targetPath)) {
|
||||
try {
|
||||
dir(targetPath)
|
||||
} catch (e) {
|
||||
if (options.debug) {
|
||||
logger.error(`Error creating target path ${targetPath}`)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
targets.push({
|
||||
target: targetPath,
|
||||
configuration: conf
|
||||
})
|
||||
}
|
||||
}
|
||||
return targets
|
||||
}
|
||||
export async function convert(options: SolidworkOptions) {
|
||||
logger.setSettings({ minLevel: options.logLevel as any || 'warn' })
|
||||
let reports = []
|
||||
const onNode = options.onNode || ((data) => reports.push(data))
|
||||
if (options.srcInfo.FILES.length === 0) {
|
||||
logger.warn(`No files found to convert : `, options.src)
|
||||
return
|
||||
}
|
||||
//skip orphan / temporary files
|
||||
options.srcInfo.FILES = options.srcInfo.FILES.filter((f) => {
|
||||
return f.includes('~$') === false
|
||||
})
|
||||
|
||||
const ret = await pMap(options.srcInfo.FILES, async (f) => {
|
||||
const outputs = targets(f, options)
|
||||
logger.info(`Convert ${f} to ${outputs.map(t => t.target).join(',')}`)
|
||||
return convertFiles(f, outputs, options.view, onNode, options)
|
||||
}, { concurrency: 1 })
|
||||
|
||||
if (options.report) {
|
||||
const reportOutFile: string = path.resolve(resolve(options.report, false, {
|
||||
dst: options.srcInfo.DIR,
|
||||
...options.variables,
|
||||
CONFIGURATION: options.configuration || ''
|
||||
}))
|
||||
logger.debug(`Write report to ${reportOutFile}`)
|
||||
report(reports, reportOutFile)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user