@notifiles/sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/index.modern.cjs +856 -0
- package/dist/index.modern.cjs.map +1 -0
- package/dist/index.modern.modern.js +690 -0
- package/dist/index.modern.modern.js.map +1 -0
- package/package.json +152 -0
- package/src/cloud/add/index.js +38 -0
- package/src/cloud/add/index.test.js +38 -0
- package/src/cloud/add/lib/validate.js +16 -0
- package/src/cloud/index.js +3 -0
- package/src/cloud/list/index.js +18 -0
- package/src/cloud/list/index.test.js +13 -0
- package/src/email/build copy/lib/perform/email.js +52 -0
- package/src/index.js +3 -0
- package/src/lib/adaptSettings.js +12 -0
- package/src/lib/cloudLibrary/bunny/index.js +2 -0
- package/src/lib/cloudLibrary/bunny/isValid.js +32 -0
- package/src/lib/cloudLibrary/bunny/upload.js +35 -0
- package/src/lib/cloudLibrary/index.js +20 -0
- package/src/lib/cloudLibrary/minio/index.js +4 -0
- package/src/lib/cloudLibrary/minio/isValid.js +33 -0
- package/src/lib/cloudLibrary/minio/remove.js +58 -0
- package/src/lib/cloudLibrary/minio/upload.js +61 -0
- package/src/lib/cloudLibrary/minio/uploadFolder.js +26 -0
- package/src/lib/entries/getAtPath.js +105 -0
- package/src/lib/entries/isPathEntry.js +29 -0
- package/src/lib/entries.js +144 -0
- package/src/lib/fs/checkFileExists.js +6 -0
- package/src/lib/fs/directoryFilesRecursive.js +83 -0
- package/src/lib/fs/ensureDirectoryExists.js +10 -0
- package/src/lib/fs/getFileCallerURL.js +12 -0
- package/src/lib/fs/importFileAsText.js +15 -0
- package/src/lib/fs/importJSONAsync.js +16 -0
- package/src/lib/fs/importYAMLAsync.js +14 -0
- package/src/lib/remark/hastToHtml.js +6 -0
- package/src/lib/remark/htmlToHast.js +6 -0
- package/src/lib/remark/htmlToMarkdown copy.js +12 -0
- package/src/lib/remark/htmlToMarkdown.js +23 -0
- package/src/lib/remark/htmlToMdast.js +13 -0
- package/src/lib/remark/htmlToMdast_.js +21 -0
- package/src/lib/remark/htmlToMdast_3.js +21 -0
- package/src/lib/remark/markdownToHTML.js +22 -0
- package/src/lib/remark/markdownToLexer.js +19 -0
- package/src/lib/remark/mdastToHTML.js +8 -0
- package/src/lib/remark/mdastToMarkdown.js +24 -0
- package/src/lib/remark/mdastToString.js +12 -0
- package/src/project/index.js +4 -0
- package/src/project/isProject/index.js +26 -0
- package/src/project/isProject/index.test.js +13 -0
- package/src/project/isProject/sync.js +18 -0
- package/src/project/lib/activity/createFileIfNeeded.js +33 -0
- package/src/project/lib/activity/defaultContent.json +5 -0
- package/src/project/lib/activity/updateToFile.js +32 -0
- package/src/project/lib/manifest/createFileIfNeeded.js +44 -0
- package/src/project/lib/manifest/read.js +21 -0
- package/src/project/lib/manifest/update.js +36 -0
- package/src/project/lib/manifest/updateToFile.js +22 -0
- package/src/project/new/index.js +2 -0
- package/src/project/new/plain.js +49 -0
- package/src/project/new/plain.test.js +38 -0
- package/src/template/build/entry.js +37 -0
- package/src/template/build/index.js +2 -0
- package/src/template/build/lib/email/index.js +100 -0
- package/src/template/build/lib/email/translate.js +16 -0
- package/src/template/build/lib/textmessage/index.js +44 -0
- package/src/template/build/lib/textmessage/translate.js +25 -0
- package/src/template/build/path.js +18 -0
- package/src/template/build/path.test.js +29 -0
- package/src/template/cloudify/entry.js +20 -0
- package/src/template/cloudify/index.js +2 -0
- package/src/template/cloudify/lib/email/attachments/addAttachment.js +24 -0
- package/src/template/cloudify/lib/email/attachments/index.js +137 -0
- package/src/template/cloudify/lib/email/attachments/treatLocalFile.js +13 -0
- package/src/template/cloudify/lib/email/attachments/treatRemoteFile.js +26 -0
- package/src/template/cloudify/lib/email/image/index.js +90 -0
- package/src/template/cloudify/lib/email/image/treatLocalFile.js +13 -0
- package/src/template/cloudify/lib/email/image/treatRemoteFile.js +26 -0
- package/src/template/cloudify/lib/email/index.js +77 -0
- package/src/template/cloudify/lib/remove.js +14 -0
- package/src/template/cloudify/lib/textMessage.js +9 -0
- package/src/template/cloudify/lib/upload.js +14 -0
- package/src/template/cloudify/path.js +20 -0
- package/src/template/cloudify/path.test.js +24 -0
- package/src/template/consolidate/entry.js +18 -0
- package/src/template/consolidate/index.js +2 -0
- package/src/template/consolidate/lib/email.js +63 -0
- package/src/template/consolidate/lib/image/index.js +35 -0
- package/src/template/consolidate/lib/image/treatLocalFile.js +14 -0
- package/src/template/consolidate/lib/image/treatRemoteFile.js +25 -0
- package/src/template/consolidate/lib/textMessage.js +5 -0
- package/src/template/consolidate/path.js +18 -0
- package/src/template/consolidate/path.test.js +14 -0
- package/src/template/format/entry.js +57 -0
- package/src/template/format/index.js +2 -0
- package/src/template/format/path.js +18 -0
- package/src/template/format/path.test.js +29 -0
- package/src/template/index.js +8 -0
- package/src/template/lib/activity/createFileIfNeeded.js +33 -0
- package/src/template/lib/activity/defaultContent.json +4 -0
- package/src/template/lib/activity/get.js +20 -0
- package/src/template/lib/activity/updateToFile.js +33 -0
- package/src/template/lib/manifest/createFileIfNeeded.js +41 -0
- package/src/template/lib/manifest/read.js +22 -0
- package/src/template/lib/manifest/update.js +18 -0
- package/src/template/lib/manifest/updateToFile.js +22 -0
- package/src/template/new/index.js +66 -0
- package/src/template/new/index.test.js +19 -0
- package/src/template/optimize/entry.js +18 -0
- package/src/template/optimize/index.js +2 -0
- package/src/template/optimize/lib/email.js +58 -0
- package/src/template/optimize/lib/image/index.js +40 -0
- package/src/template/optimize/lib/textMessage.js +8 -0
- package/src/template/optimize/path.js +18 -0
- package/src/template/optimize/path.test.js +16 -0
- package/src/template/sync/entry.js +18 -0
- package/src/template/sync/index.js +2 -0
- package/src/template/sync/lib/email.js +86 -0
- package/src/template/sync/lib/textMessage.js +80 -0
- package/src/template/sync/lib/upload.js +14 -0
- package/src/template/sync/path.js +18 -0
- package/src/template/sync/path.test.js +29 -0
- package/src/template/update/index.js +1 -0
- package/src/template/update/path.js +41 -0
- package/src/template/update/path.test.js +46 -0
- package/src/template/version/entry.js +10 -0
- package/src/template/version/index.js +2 -0
- package/src/template/version/lib/perform.js +74 -0
- package/src/template/version/lib/reset.js +16 -0
- package/src/template/version/lib/updatePost.js +16 -0
- package/src/template/version/path.js +20 -0
- package/src/template/version/path.test.js +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.modern.modern.js","sources":["../src/commands/build/generator/prompt/validators/nonEmpty.js","../src/commands/build/generator/prompt/validators/index.js","../src/commands/build/generator/prompt/ask.js","../src/commands/build/generator/prompt/promptModule.js","../src/commands/build/generator/prompt/index.js","../src/commands/build/generator/template.js","../src/lib/getFileCallerURL.js","../src/commands/build/generator/fs.js","../src/commands/build/generator/ui.js","../src/commands/build/generator/mergeOptions.js","../src/commands/build/generator/index.js","../src/commands/build/buildCommand.js","../src/lib/formatOptionForYargs.js","../src/commands/build/index.js","../src/commands/index.js","../src/lib/checkFileExists.js","../src/lib/directoryFilesRecursive.js","../src/loadOptions/index.js","../src/launch.js"],"sourcesContent":["\nexport default async ({ input, params }) => {\n return input && input.length > 0\n}\n","import nonEmpty from \"./nonEmpty.js\"\n\nexport default a => {\n switch (a.type) {\n default:\n case 'nonEmpty': {\n return nonEmpty\n }\n }\n}\n","import getValidators from './validators/index.js'\nimport Bluebird from \"bluebird\"\nimport chalk from \"chalk\"\n\nexport default async (props) => {\n const {\n payload,\n question,\n generator,\n promptModule,\n promptType } = props\n\n let {\n name,\n message,\n defaultValue,\n validators = [{ type: 'nonEmpty' }] } = question\n\n if (!name) {\n return\n }\n\n let value = payload[name]\n if (!value && question.alias) {\n value = payload[question.alias]\n }\n const valueIsDefined = !(value === null || value === undefined)\n if (valueIsDefined) {\n generator.print.log(`${chalk.green('✓')} ${chalk.bold(message ? message : name)} ${chalk.italic(value)}`)\n return\n }\n\n const isQuick = payload['quick'] || payload['q']\n if (isQuick && valueIsDefined) {\n generator.print.log(`${chalk.green('✓')} ${chalk.bold(message ? message : name)} ${chalk.italic(value)}`)\n return\n }\n\n if (isQuick && !(defaultValue === null || defaultValue === undefined)) {\n payload[name] = defaultValue\n generator.print.log(`${chalk.green('✓')} ${chalk.bold(message ? message : name)} ${chalk.italic(payload[name])}`)\n return\n }\n\n payload[name] = (await promptModule.prompt({\n ...props.question,\n type: promptType,\n name,\n message,\n default: value ? value : defaultValue,\n validate: async input => {\n let isValid = true\n await Bluebird.Promise.mapSeries(\n validators,\n async validator => {\n\n const validate = getValidators(validator)\n if (validate) {\n const _i = await validate({ input, ...validator })\n if (!_i) {\n isValid = false\n }\n return\n }\n\n if (validate.regex) {\n const f = new RegExp(validate.regex, 'g')\n // isValid = validator.regex.test(input)\n isValid = f.test(input)\n }\n })\n if (props.question.validate) {\n isValid = props.question.validate(input)\n }\n return isValid\n }\n }))[name]\n\n return payload[name]\n}\n","import inquirer from 'inquirer'\nexport default (id) => {\n switch (id) {\n default:\n case 'inquirer':\n return inquirer\n }\n}\n","import ask from './ask.js'\nimport Bluebird from \"bluebird\"\nimport _promptModule from './promptModule.js'\n\nimport inquirerPromptAutocomplete from 'inquirer-autocomplete-prompt'\nimport inquirerFileTreeSelection from 'inquirer-file-tree-selection-prompt'\nimport inquirerParseJsonFile from 'inquirer-parse-json-file'\n\nexport default ({ generator }) => {\n\n const prompt = {\n ask: async (value) => {\n const questions = Array.isArray(value) ? value : [value]\n const result = {}\n await Bluebird.Promise.mapSeries(\n questions,\n async question => {\n let fullQuestion = {\n ...question\n }\n const items = generator.options.filter(a => a.name === question.name)\n if (items && items.length) {\n fullQuestion = {\n ...items[0],\n ...fullQuestion\n }\n }\n const { type: promptType = 'input',\n module: _f\n } = fullQuestion.prompt ? fullQuestion.prompt : {}\n\n let promptModule = _f ? _f : _promptModule()\n if (typeof promptModule === 'string') {\n promptModule = _promptModule(_f)\n }\n\n const v = await ask({\n question: fullQuestion,\n payload: generator.payload,\n generator,\n promptModule,\n promptType\n })\n\n result[question.name] = v\n return v\n })\n return result\n },\n confirm: async () => {\n\n },\n registerPrompt: (promptModule, key, module) => {\n promptModule.registerPrompt(key, module)\n }\n }\n\n const promptModule = _promptModule()\n prompt.registerPrompt(promptModule, 'autocomplete', inquirerPromptAutocomplete)\n prompt.registerPrompt(promptModule, 'file-tree-selection', inquirerFileTreeSelection)\n prompt.registerPrompt(promptModule, 'json-file', inquirerParseJsonFile)\n\n return prompt\n}\n\n","import ejs from 'ejs'\n\nexport default ({ generator }) => {\n return {\n render: (text, data) => {\n return ejs.render(text, data)\n },\n }\n}\n\n","export default () => {\n const error = new Error()\n const stack = error.stack?.split('\\n')\n const data = stack[3]\n const filePathPattern = new RegExp(`(file:[/]{2}.+[^:0-9]):{1}[0-9]+:{1}[0-9]+`)\n const result = filePathPattern.exec(data)\n let filePath = ''\n if (result && (result.length > 1)) {\n filePath = result[1]\n }\n return filePath\n}\n","import jetpack from 'fs-jetpack'\nimport fs from 'fs'\nimport getFileCallerURL from '../../../lib/getFileCallerURL.js'\nimport _path from 'path'\n\nexport default ({ generator }) => {\n\n return {\n ...jetpack,\n copy: async ({ source, destination, useRelativeCall = false }) => {\n return fs.promises.cp(source, destination)\n },\n copyTpl: async (source, destination, data) => {\n const entry = await fs.promises.readFile(source)\n const result = ejs.render(entry, data)\n await fs.promises.writeFile(destination, result)\n },\n copyFraction: async ({ source, destination, data, useRelativeCall = true }) => {\n let _source = source\n if (useRelativeCall) {\n let sou = getFileCallerURL()\n sou = _path.dirname(sou)\n sou = sou.replace('file://', '')\n _source = `${sou}/template/${_source}`\n }\n\n const re = await jetpack.copyAsync(_source, destination, { overwrite: true })\n return re\n // return fs.promises.copyFile(_source, destination)\n },\n }\n}\n\n","import chalk from \"chalk\"\n\nexport default ({ generator }) => {\n return {\n drawSectionHeader: ({ title, subTitle, type = 'text' }) => {\n switch (type) {\n case 'h1': {\n generator.print.log(`\\n`)\n generator.print.log(chalk.white.bgRed.bold(`${title}`))\n if (subTitle) {\n generator.print.log(chalk.italic(`${subTitle}\\n`))\n }\n generator.print.log(`----`)\n generator.print.log(``)\n } break\n case 'h2': {\n generator.print.log(`\\n`)\n generator.print.log(chalk.white.bgGreen.bold(`${title}`))\n if (subTitle) {\n generator.print.log(chalk.italic(`${subTitle}\\n`))\n }\n } break\n default: {\n generator.print.log(chalk.blue.bold(`\\n${title}`))\n if (subTitle) {\n generator.print.log(chalk.italic(`${subTitle}\\n`))\n }\n } break\n }\n\n\n },\n }\n}\n\n","\nimport _ from 'underscore'\nimport lodash from 'lodash'\n\nexport default ({ handlerOptions = [], generator }) => {\n\n generator.options = handlerOptions.map(option => {\n switch (option.scope) {\n case 'private': {\n return option\n }\n default: break\n }\n\n const i = _.findWhere(generator.libraryOptions,\n { name: option.name })\n\n if (!i) {\n return option\n }\n\n let result = { ...option }\n lodash.merge(\n result,\n i,\n )\n return result\n })\n}\n","import prompt from './prompt/index.js'\nimport template from './template.js'\nimport fs from './fs.js'\nimport cp from 'child_process'\nimport ui from './ui.js'\nimport mergeOptions from './mergeOptions.js'\n\nexport default ({ payload, options = [] }) => {\n\n const generator = {\n payload,\n print: console,\n libraryOptions: options,\n options: []\n }\n\n generator.mergeOptions = (op) => mergeOptions({ handlerOptions: op, generator })\n\n generator.ui = ui({ generator })\n generator.prompt = prompt({ generator })\n generator.template = template({ generator })\n generator.fs = fs({ generator })\n generator.spawn = async (command, args, options) => {\n return new Promise(resolve => {\n const result = cp.spawn(command, args, options)\n result.on('close', () => {\n resolve()\n })\n })\n }\n\n return generator\n}\n","\nexport default async ({\n path,\n generator,\n payload,\n fileName }) => {\n const data = (await import(path)).default\n const { name = '',\n description = '',\n // options = {},\n handler,\n example } = data\n\n const command = {\n command: name,\n desc: description,\n builder: {},\n handler: (argv,) => {\n data.handler({ generator, payload, argv })\n }\n }\n\n return {\n command,\n data: {\n ...data,\n options: (data.options && data.options.length) ? data.options : []\n }\n }\n}\n","\nexport default ({ option, yargs }) => {\n const { name, description, message, type = 'string', global = false, alias, defaultValue } = option\n\n yargs.option(name, {\n desc: description ? description : message,\n type,\n global,\n alias,\n default: defaultValue\n })\n}\n","import jetpack from 'fs-jetpack'\nimport fs from 'fs'\nimport buildCommand from './buildCommand.js'\nimport formatOptionForYargs from '../../lib/formatOptionForYargs.js'\n\nconst operation = async ({ path, generator, yargs, root = false, payload }) => {\n const candidates = await jetpack.listAsync(path)\n if (!candidates || !candidates.length) {\n return\n }\n\n const commands = []\n let index = null\n\n let subCommands = []\n\n await Promise.all(candidates.map(async item => {\n const __path = `${path}/${item}`\n const stat = await fs.promises.stat(__path)\n if (!stat || !stat.isDirectory()) {\n return null\n }\n\n const subCommand = await operation({ path: __path, generator, payload, yargs })\n subCommands.push(subCommand)\n }))\n\n await Promise.all(candidates.map(async item => {\n const __path = `${path}/${item}`\n const stat = await fs.promises.stat(__path)\n if (!stat || stat.isDirectory()) {\n return null\n }\n\n const { data: commandData, command } = await buildCommand({ path: __path, generator, fileName: item, payload })\n\n if (item === 'index.js') {\n return\n }\n\n command.builder = yargs => {\n fixOptions({ generator, commandOptions: commandData.options, yargs })\n if (commandData.example) {\n yargs.example(commandData.example)\n }\n }\n if (commandData.usage) {\n }\n commands.push(command)\n\n }))\n\n await Promise.all(candidates.map(async item => {\n const __path = `${path}/${item}`\n const stat = await fs.promises.stat(__path)\n if (!stat || stat.isDirectory()) {\n return null\n }\n\n if (item !== 'index.js') {\n return\n }\n\n const { data: commandData, command } = await buildCommand({ path: __path, generator, fileName: item, payload })\n\n if (!root) {\n command.builder = yargs => {\n fixOptions({ generator, commandOptions: commandData.options, yargs })\n // commandData.options.forEach(option => formatOptionForYargs({ option, yargs }))\n if (commandData.example) {\n yargs.example(commandData.example)\n }\n commands.forEach(subCommand => {\n yargs.command(subCommand)\n })\n subCommands.forEach(subCommand => {\n yargs.command(subCommand.index)\n })\n }\n }\n else {\n subCommands.forEach(subCommand => {\n yargs.command(subCommand.index)\n })\n }\n\n\n index = command\n }))\n\n return { index, commands }\n}\n\nexport default operation\n\n\n\nimport parseArgv from 'tiny-parse-argv'\nconst fixOptions = ({ generator, commandOptions, yargs }) => {\n let nativeArgv = parseArgv(process.argv)\n delete nativeArgv[\"--\"]\n delete nativeArgv[\"_\"]\n Object.keys(nativeArgv).forEach(n => {\n generator.payload[n] = nativeArgv[n]\n })\n\n const _options = (commandOptions && commandOptions.length)\n ? commandOptions\n : []\n const options = _options.map(option => {\n const value = nativeArgv[option.name]\n return {\n ...option,\n value\n }\n })\n generator.mergeOptions(options)\n generator.options.forEach(option => formatOptionForYargs({ option, yargs }))\n}\n","import buildGenerator from './build/generator/index.js'\nimport buildDir from './build/index.js'\n\nexport default async ({ path, yargs, options }) => {\n\n const commandsPath = `${path}/commands`\n const payload = {}\n const generator = buildGenerator({ payload, options, yargs })\n const { index, commands } = await buildDir({ path: commandsPath, generator, yargs, root: true, payload })\n commands.forEach(command => {\n yargs.command(command)\n })\n\n yargs.argv\n return commands\n}\n","import fs from 'fs'\nexport default async (file) => {\n return fs.promises.access(file, fs.constants.F_OK)\n .then(() => true)\n .catch(() => false)\n}","import checkFileExists from './checkFileExists.js'\nimport fs from 'fs'\nimport _path from 'path'\nimport _ from 'underscore'\n//https://www.npmjs.com/package/directory-import\n\n\nconst perform = async ({ path,\n includeMeta = false,\n excludes = ['spec.js'],\n includeExtensions = ['.js', '.ts', '.json']\n}) => {\n try {\n if (!(await checkFileExists(path))) {\n return null\n }\n\n const items = await fs.promises.readdir(path)\n\n if (!items || !items.length) {\n return null\n }\n\n let results = (await Promise.all(items.map(async item => {\n\n\n const __path = _path.join(path, item)\n\n const _stat = await fs.promises.stat(__path)\n if (!_stat) {\n return null\n }\n\n const isDir = _stat.isDirectory()\n if (isDir) {\n return perform({ path: __path })\n }\n\n if (!(await checkFileExists(__path))) {\n return null\n }\n\n if (item.includes('spec.js')) {\n return null\n }\n const extension = getExtension(item)\n if (!includeExtensions.includes(extension)) {\n return null\n }\n\n if (includeMeta) {\n const racine = getFileRaw(__path)\n const _module = await import(__path)\n const md = `${racine}.md`\n let documentation = null\n if ((await checkFileExists(md))) {\n documentation = await fs.promises.readFile(md, 'utf8')\n }\n\n return [{\n module: _module,\n path: __path,\n documentation\n }]\n } else {\n return [(await import(__path))]\n }\n }))).filter(a => a)\n\n results = _.flatten(results)\n return results\n }\n catch (e) {\n console.error(e)\n return null\n }\n}\n\nconst getExtension = str => str.slice(str.lastIndexOf(\".\"))\nconst getFileRaw = str => str.split('.').slice(0, -1).join('.')\n\n\nexport default perform\n","import directoryFilesRecursive from '../lib/directoryFilesRecursive.js'\n\nexport default async ({ path, config, }) => {\n const optionsPath = `${path}/options`\n let files = await directoryFilesRecursive({\n path: optionsPath,\n includeMeta: false\n })\n files = files ? files.map(f => f.default) : []\n return files\n}\n","// https://medium.com/netscape/a-guide-to-create-a-nodejs-command-line-package-c2166ad0452e\n// https://www.reddit.com/r/node/comments/12uak6h/npx_not_running_correctly/\n// https://docs.npmjs.com/cli/v9/configuring-npm/package-json#bin\n// https://github.com/yargs/yargs/issues/1844#issuecomment-998966393\n// https://github.com/yargs/yargs/issues/225#issuecomment-699540088\n// https://github.com/lirantal/nodejs-cli-apps-best-practices\n\n// https://stackoverflow.com/a/69503617\n/*\nchmod +x ./dist/app.cjs\nyarn link\nservable\n*/\n\nimport _yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport fs from 'fs';\nimport registerCommands from './commands/index.js';\nimport _path from 'path';\nimport getFileCallerURL from './lib/getFileCallerURL.js';\nimport loadOptions from './loadOptions/index.js';\n\n\nexport default async ({ path, npmPackage, config } = {}) => {\n\n // import options from './options.js';\n let __actualPath = path\n if (!__actualPath) {\n const ce = getFileCallerURL()\n __actualPath = _path.dirname(ce)\n __actualPath = __actualPath.replace('file://', '')\n }\n\n\n let __actualNpmPackage = npmPackage\n if (!__actualNpmPackage) {\n const __d = _path.resolve(__actualPath, '../package.json')\n if (fs.existsSync(__d)) {\n __actualNpmPackage = JSON.parse(fs.readFileSync(__d).toString())\n }\n }\n if (!__actualNpmPackage) {\n __actualNpmPackage = { version: \"0.0.0\" }\n }\n\n let __actualConfig = config\n if (!__actualConfig) {\n const __d = _path.resolve(__actualPath, '../cli.config.json')\n if (fs.existsSync(__d)) {\n __actualConfig = JSON.parse(fs.readFileSync(__d).toString())\n }\n }\n if (!__actualConfig) {\n __actualConfig = {}\n }\n //https://github.com/yargs/yargs/issues/569\n\n\n\n const yargs = _yargs(hideBin(process.argv))\n\n\n yargs\n // .options(options)\n .usage('Usage: servable <command>')\n .demandCommand(1)\n .wrap(Math.min(yargs.terminalWidth(), 160))\n .help('help')\n .alias('help', 'h')\n .version(__actualNpmPackage.version)\n .alias('version', 'v')\n .hide('help')\n .hide('version')\n .epilog('Made by Servable.')\n\n const options = await loadOptions({ path: __actualPath, config: __actualConfig })\n await registerCommands({ path: __actualPath, yargs, config: __actualConfig, options })\n\n}\n\n\n"],"names":["input","params","length","a","type","nonEmpty","props","payload","question","generator","promptModule","promptType","name","message","defaultValue","validators","value","alias","valueIsDefined","undefined","print","log","chalk","green","bold","italic","isQuick","prompt","_extends","default","validate","isValid","Bluebird","Promise","mapSeries","validator","getValidators","_i","regex","f","RegExp","test","id","inquirer","ask","questions","Array","isArray","result","fullQuestion","items","options","filter","module","_f","_promptModule","v","confirm","registerPrompt","key","inquirerPromptAutocomplete","inquirerFileTreeSelection","inquirerParseJsonFile","render","text","data","ejs","_error$stack","error","Error","stack","split","filePathPattern","exec","filePath","jetpack","copy","source","destination","useRelativeCall","fs","promises","cp","copyTpl","entry","readFile","writeFile","copyFraction","_source","sou","getFileCallerURL","_path","dirname","replace","re","copyAsync","overwrite","drawSectionHeader","title","subTitle","white","bgRed","bgGreen","blue","handlerOptions","map","option","scope","i","_","findWhere","libraryOptions","lodash","merge","console","mergeOptions","op","ui","template","spawn","command","args","resolve","on","path","fileName","description","handler","example","desc","builder","argv","yargs","global","operation","root","candidates","listAsync","commands","index","subCommands","all","item","__path","stat","isDirectory","subCommand","push","commandData","buildCommand","fixOptions","commandOptions","forEach","nativeArgv","parseArgv","process","Object","keys","n","_options","formatOptionForYargs","commandsPath","buildGenerator","buildDir","file","access","constants","F_OK","then","catch","perform","includeMeta","excludes","includeExtensions","checkFileExists","readdir","results","join","_stat","isDir","includes","extension","getExtension","racine","getFileRaw","_module","md","documentation","flatten","e","str","slice","lastIndexOf","config","optionsPath","files","directoryFilesRecursive","npmPackage","__actualPath","ce","__actualNpmPackage","__d","existsSync","JSON","parse","readFileSync","toString","version","__actualConfig","_yargs","hideBin","usage","demandCommand","wrap","Math","min","terminalWidth","help","hide","epilog","loadOptions","registerCommands"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@notifiles/sdk",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "adoucoure",
|
|
8
|
+
"email": "yelounak@gmail.com"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"main": "src/index.js",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "microbundle",
|
|
14
|
+
"dev": "microbundle watch --no-compress --format modern,cjs",
|
|
15
|
+
"test_": "echo \"Error: no test specified\" && exit 1",
|
|
16
|
+
"semantic-release": "semantic-release",
|
|
17
|
+
"acp": "git add . && npm run commit && git push",
|
|
18
|
+
"commit": "git-cz",
|
|
19
|
+
"size": "size-limit",
|
|
20
|
+
"analyze": "size-limit --why",
|
|
21
|
+
"start": "microbundle-crl watch --no-compress --format modern,cjs",
|
|
22
|
+
"prepare_": "run-s build",
|
|
23
|
+
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
24
|
+
"test:build": "run-s build",
|
|
25
|
+
"test:lint": "eslint ."
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"src"
|
|
30
|
+
],
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=10"
|
|
33
|
+
},
|
|
34
|
+
"_engineStrict": false,
|
|
35
|
+
"config": {
|
|
36
|
+
"commitizen": {
|
|
37
|
+
"path": "./node_modules/cz-conventional-changelog"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public"
|
|
42
|
+
},
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "https://github.com/notifiles/sdk"
|
|
46
|
+
},
|
|
47
|
+
"prettier": {
|
|
48
|
+
"printWidth": 80,
|
|
49
|
+
"semi": true,
|
|
50
|
+
"singleQuote": true,
|
|
51
|
+
"trailingComma": "es5"
|
|
52
|
+
},
|
|
53
|
+
"size-limit": [
|
|
54
|
+
{
|
|
55
|
+
"path": "dist/index.js",
|
|
56
|
+
"limit": "600 KB"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"path": "dist/index.modern.js",
|
|
60
|
+
"limit": "600 KB"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"path": "dist/index.umd.js",
|
|
64
|
+
"limit": "600 KB"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"keywords": [],
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"@microflash/remark-figure-caption": "^2.0.2",
|
|
70
|
+
"@stdlib/string-replace": "^0.2.1",
|
|
71
|
+
"axios": "^1.6.1",
|
|
72
|
+
"base64-image-mime": "^1.0.2",
|
|
73
|
+
"dev-to-js": "^0.1.2",
|
|
74
|
+
"devto-nodejs-sdk": "^1.0.7",
|
|
75
|
+
"dotenv": "^16.0.1",
|
|
76
|
+
"ejs": "^3.1.9",
|
|
77
|
+
"execa": "^9.1.0",
|
|
78
|
+
"fast-glob": "^3.3.2",
|
|
79
|
+
"fs-jetpack": "^5.1.0",
|
|
80
|
+
"fs-tree-tool": "^0.0.4",
|
|
81
|
+
"fuzzy": "^0.1.3",
|
|
82
|
+
"hast-util-to-html": "^9.0.1",
|
|
83
|
+
"hast-util-to-mdast": "^10.1.0",
|
|
84
|
+
"image-downloader": "^4.3.0",
|
|
85
|
+
"image-to-base64": "^2.2.0",
|
|
86
|
+
"is-local": "^0.1.0",
|
|
87
|
+
"is-relative": "^1.0.0",
|
|
88
|
+
"js-sha256": "^0.11.0",
|
|
89
|
+
"lodash": "^4.17.21",
|
|
90
|
+
"markdown-it-image-figures": "^2.1.1",
|
|
91
|
+
"marked": "^12.0.2",
|
|
92
|
+
"mdast-util-to-hast": "^13.1.0",
|
|
93
|
+
"mdast-util-to-markdown": "^2.1.0",
|
|
94
|
+
"mdast-util-to-string": "^4.0.0",
|
|
95
|
+
"mdimg": "^1.0.0",
|
|
96
|
+
"mdx-to-md": "^0.3.2",
|
|
97
|
+
"mermaid-svg": "^0.0.1",
|
|
98
|
+
"mimetype": "^0.0.8",
|
|
99
|
+
"minio": "^7.1.4",
|
|
100
|
+
"nanoid": "^5.0.7",
|
|
101
|
+
"node-bunny-storage": "^2.2.0",
|
|
102
|
+
"patch-package": "^8.0.0",
|
|
103
|
+
"rehype-parse": "^9.0.0",
|
|
104
|
+
"rehype-remark": "^10.0.0",
|
|
105
|
+
"rehype-stringify": "^10.0.0",
|
|
106
|
+
"remark-gfm": "^4.0.0",
|
|
107
|
+
"remark-parse": "^11.0.0",
|
|
108
|
+
"remark-preset-lint-consistent": "^6.0.0",
|
|
109
|
+
"remark-preset-lint-recommended": "^7.0.0",
|
|
110
|
+
"remark-rehype": "^11.1.0",
|
|
111
|
+
"remark-stringify": "^11.0.0",
|
|
112
|
+
"sharp": "^0.33.4",
|
|
113
|
+
"slug": "^9.1.0",
|
|
114
|
+
"strip-markdown": "^6.0.0",
|
|
115
|
+
"tiny-parse-argv": "^2.4.0",
|
|
116
|
+
"twitter": "^1.7.1",
|
|
117
|
+
"underscore": "^1.13.6",
|
|
118
|
+
"unified": "^11.0.4",
|
|
119
|
+
"yaml": "^2.4.2"
|
|
120
|
+
},
|
|
121
|
+
"devDependencies": {
|
|
122
|
+
"@semantic-release/git": "^10.0.1",
|
|
123
|
+
"@semantic-release/gitlab": "^12.0.6",
|
|
124
|
+
"@semantic-release/npm": "^11.0.0",
|
|
125
|
+
"@size-limit/preset-small-lib": "^4.10.2",
|
|
126
|
+
"@types/jest": "^29.5.12",
|
|
127
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
128
|
+
"eslint": "^6.8.0",
|
|
129
|
+
"eslint-config-prettier": "^6.7.0",
|
|
130
|
+
"eslint-config-standard": "^14.1.0",
|
|
131
|
+
"eslint-config-standard-react": "^9.2.0",
|
|
132
|
+
"eslint-plugin-import": "^2.18.2",
|
|
133
|
+
"eslint-plugin-node": "^11.0.0",
|
|
134
|
+
"eslint-plugin-prettier": "^3.1.1",
|
|
135
|
+
"eslint-plugin-promise": "^4.2.1",
|
|
136
|
+
"eslint-plugin-react": "^7.17.0",
|
|
137
|
+
"eslint-plugin-standard": "^4.0.1",
|
|
138
|
+
"husky": "^6.0.0",
|
|
139
|
+
"javascript-obfuscator": "^4.0.0",
|
|
140
|
+
"jest": "^29.7.0",
|
|
141
|
+
"microbundle": "^0.15.1",
|
|
142
|
+
"npm-run-all": "^4.1.5",
|
|
143
|
+
"prettier": "^2.0.4",
|
|
144
|
+
"semantic-release": "^22",
|
|
145
|
+
"size-limit": "^4.10.2"
|
|
146
|
+
},
|
|
147
|
+
"next": {
|
|
148
|
+
"react-email": "^2.1.3",
|
|
149
|
+
"@react-email/components": "0.0.18",
|
|
150
|
+
"@react-email/render": "^0.0.14"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import adaptSettings from '../../lib/adaptSettings.js'
|
|
2
|
+
import update from '../../project/lib/manifest/update.js'
|
|
3
|
+
import validate from './lib/validate.js'
|
|
4
|
+
|
|
5
|
+
export default async ({
|
|
6
|
+
path,
|
|
7
|
+
cloud,
|
|
8
|
+
settings = {}
|
|
9
|
+
}) => {
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
adaptSettings({ settings })
|
|
13
|
+
const { isValid, error } = await validate({ cloud, settings })
|
|
14
|
+
if (!isValid) {
|
|
15
|
+
return { isValid, error }
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const clouds = [cloud]
|
|
19
|
+
|
|
20
|
+
await update({
|
|
21
|
+
path,
|
|
22
|
+
data: {
|
|
23
|
+
clouds: clouds.map(cloud => {
|
|
24
|
+
const a = {
|
|
25
|
+
...cloud,
|
|
26
|
+
}
|
|
27
|
+
delete a.auth
|
|
28
|
+
return a
|
|
29
|
+
}),
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
return { isValid: true, }
|
|
34
|
+
} catch (e) {
|
|
35
|
+
// console.error(e)
|
|
36
|
+
return { isValid: true, error: e }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
describe('project', () => {
|
|
4
|
+
it.skip('adds a minio platform', async () => {
|
|
5
|
+
const fsPath = (await import('path')).default
|
|
6
|
+
let path = `${fsPath.resolve(process.env.TEST_MOCK_FOLDER_ROOT)}/${process.env.TEST_MOCK_FOLDER_NEW_NAME}`
|
|
7
|
+
const operation = (await import('./index.js')).default
|
|
8
|
+
const result = await operation({
|
|
9
|
+
path,
|
|
10
|
+
cloud: {
|
|
11
|
+
id: "minio",
|
|
12
|
+
auth: {
|
|
13
|
+
endPoint: process.env.TEST_MINIO_ENDPOINT,
|
|
14
|
+
accessKey: process.env.TEST_MINIO_ACCESS_KEY,
|
|
15
|
+
secretKey: process.env.TEST_MINIO_SECRET,
|
|
16
|
+
bucketName: process.env.TEST_MINIO_BUCKET_NAME
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
})
|
|
20
|
+
expect(result.isValid).toBeTruthy()
|
|
21
|
+
})
|
|
22
|
+
it.skip('adds a bunny platform', async () => {
|
|
23
|
+
const fsPath = (await import('path')).default
|
|
24
|
+
let path = `${fsPath.resolve(process.env.TEST_MOCK_FOLDER_ROOT)}/${process.env.TEST_MOCK_FOLDER_NEW_NAME}`
|
|
25
|
+
const operation = (await import('./index.js')).default
|
|
26
|
+
const result = await operation({
|
|
27
|
+
path,
|
|
28
|
+
cloud: {
|
|
29
|
+
id: "bunny",
|
|
30
|
+
auth: {
|
|
31
|
+
accessKey: process.env.TEST_BUNNY_ACCESS_KEY,
|
|
32
|
+
storageZoneName: process.env.TEST_BUNNY_STORAGE_ZONE_NAME,
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
expect(result.isValid).toBeTruthy()
|
|
37
|
+
})
|
|
38
|
+
})
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
export default async ({ cloud, settings }) => {
|
|
3
|
+
const {
|
|
4
|
+
id,
|
|
5
|
+
auth } = cloud
|
|
6
|
+
|
|
7
|
+
const cloudLibrary = settings.cloudLibrary({ id })
|
|
8
|
+
if (!cloudLibrary) {
|
|
9
|
+
return {
|
|
10
|
+
isValid: false,
|
|
11
|
+
error: new Error('Cloud not supported.')
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return cloudLibrary.isValid({ auth })
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import read from '../../project/lib/manifest/read.js'
|
|
2
|
+
|
|
3
|
+
export default async ({
|
|
4
|
+
path,
|
|
5
|
+
}) => {
|
|
6
|
+
try {
|
|
7
|
+
const existing = await read({ path })
|
|
8
|
+
if (!existing) {
|
|
9
|
+
return null
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const { clouds } = existing
|
|
13
|
+
return clouds
|
|
14
|
+
} catch (e) {
|
|
15
|
+
console.error(e)
|
|
16
|
+
}
|
|
17
|
+
return false
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
describe.skip('project', () => {
|
|
4
|
+
it('lists platforms', async () => {
|
|
5
|
+
const fsPath = (await import('path')).default
|
|
6
|
+
let path = `${fsPath.resolve(process.env.TEST_MOCK_FOLDER_ROOT)}/${process.env.TEST_MOCK_FOLDER_NEW_NAME}`
|
|
7
|
+
const operation = (await import('./index.js')).default
|
|
8
|
+
const result = await operation({
|
|
9
|
+
path,
|
|
10
|
+
})
|
|
11
|
+
expect(result).toBeTruthy()
|
|
12
|
+
})
|
|
13
|
+
})
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import htmlToMdast from '../../../../lib/remark/htmlToMdast_.js'
|
|
2
|
+
import mdastToMarkdown from '../../../../lib/remark/mdastToMarkdown.js'
|
|
3
|
+
import reset from '../reset.js'
|
|
4
|
+
import { render } from '@react-email/render'
|
|
5
|
+
|
|
6
|
+
export default async (props) => {
|
|
7
|
+
|
|
8
|
+
const { entry } = props
|
|
9
|
+
const { path, email } = entry
|
|
10
|
+
const { default: Template, } = email
|
|
11
|
+
await reset({ path })
|
|
12
|
+
|
|
13
|
+
let html = render(<Template />, {
|
|
14
|
+
pretty: true,
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
const text = render(<Template />, {
|
|
18
|
+
plainText: true,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
const child = await htmlToMdast({ data: html })
|
|
22
|
+
const mdast = await perform({
|
|
23
|
+
child,
|
|
24
|
+
path
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
let md = await mdastToMarkdown({ mdast })
|
|
28
|
+
|
|
29
|
+
// await updatePost({
|
|
30
|
+
// path,
|
|
31
|
+
// md,
|
|
32
|
+
// html
|
|
33
|
+
// })
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
entry: {
|
|
37
|
+
...entry,
|
|
38
|
+
email: {
|
|
39
|
+
text,
|
|
40
|
+
html,
|
|
41
|
+
mdast,
|
|
42
|
+
md
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const perform = async (props) => {
|
|
50
|
+
const { child, path } = props
|
|
51
|
+
return child
|
|
52
|
+
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import BunnyCDNStorage from 'node-bunny-storage'
|
|
2
|
+
|
|
3
|
+
export default async ({
|
|
4
|
+
auth,
|
|
5
|
+
}) => {
|
|
6
|
+
|
|
7
|
+
try {
|
|
8
|
+
const {
|
|
9
|
+
accessKey,
|
|
10
|
+
storageZoneName
|
|
11
|
+
} = auth
|
|
12
|
+
|
|
13
|
+
const bunny = new BunnyCDNStorage({
|
|
14
|
+
accessKey: accessKey,
|
|
15
|
+
storageZoneName: storageZoneName
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
const items = await bunny.listFiles({
|
|
19
|
+
remoteDirectory: '/',
|
|
20
|
+
recursive: false
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
isValid: true,
|
|
25
|
+
}
|
|
26
|
+
} catch (e) {
|
|
27
|
+
return {
|
|
28
|
+
isValid: false,
|
|
29
|
+
error: e
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import BunnyCDNStorage from 'node-bunny-storage'
|
|
2
|
+
|
|
3
|
+
export default async ({
|
|
4
|
+
sourceUrl,
|
|
5
|
+
filename,
|
|
6
|
+
auth,
|
|
7
|
+
// contentType = 'image/png'
|
|
8
|
+
}) => {
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
const {
|
|
12
|
+
accessKey,
|
|
13
|
+
storageZoneName,
|
|
14
|
+
pullZone
|
|
15
|
+
} = auth
|
|
16
|
+
|
|
17
|
+
const bunny = new BunnyCDNStorage({
|
|
18
|
+
accessKey: accessKey,
|
|
19
|
+
storageZoneName: storageZoneName
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const result = await bunny.uploadFile({
|
|
23
|
+
localFilePath: sourceUrl,
|
|
24
|
+
// remoteDirectory: 'default'
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const url = `https://${pullZone}.b-cdn.net/${filename}`
|
|
29
|
+
return { url }
|
|
30
|
+
|
|
31
|
+
} catch (e) {
|
|
32
|
+
console.error(e)
|
|
33
|
+
}
|
|
34
|
+
return null
|
|
35
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as minio from './minio/index.js'
|
|
2
|
+
import * as bunny from './bunny/index.js'
|
|
3
|
+
|
|
4
|
+
export default ({
|
|
5
|
+
id,
|
|
6
|
+
} = {}) => {
|
|
7
|
+
|
|
8
|
+
switch (id) {
|
|
9
|
+
case 'minio': {
|
|
10
|
+
return minio
|
|
11
|
+
}
|
|
12
|
+
case 'bunny': {
|
|
13
|
+
return bunny
|
|
14
|
+
}
|
|
15
|
+
default:
|
|
16
|
+
break
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return null
|
|
20
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Minio from 'minio'
|
|
2
|
+
|
|
3
|
+
export default async ({
|
|
4
|
+
auth,
|
|
5
|
+
}) => {
|
|
6
|
+
|
|
7
|
+
try {
|
|
8
|
+
const {
|
|
9
|
+
endPoint,
|
|
10
|
+
accessKey,
|
|
11
|
+
secretKey,
|
|
12
|
+
bucketName
|
|
13
|
+
} = auth
|
|
14
|
+
|
|
15
|
+
const minioClient = new Minio.Client({
|
|
16
|
+
endPoint,
|
|
17
|
+
accessKey,
|
|
18
|
+
secretKey,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
const exists = await minioClient.bucketExists(bucketName)
|
|
22
|
+
return {
|
|
23
|
+
isValid: exists,
|
|
24
|
+
}
|
|
25
|
+
} catch (e) {
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
isValid: false,
|
|
29
|
+
error: e
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return false
|
|
33
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as Minio from 'minio'
|
|
2
|
+
|
|
3
|
+
export default async ({
|
|
4
|
+
sourceUrl,
|
|
5
|
+
filename,
|
|
6
|
+
auth,
|
|
7
|
+
// contentType = 'image/png'
|
|
8
|
+
}) => {
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
const {
|
|
12
|
+
endPoint,
|
|
13
|
+
accessKey,
|
|
14
|
+
secretKey,
|
|
15
|
+
bucketName
|
|
16
|
+
} = auth
|
|
17
|
+
|
|
18
|
+
const minioClient = new Minio.Client({
|
|
19
|
+
endPoint,
|
|
20
|
+
// port,
|
|
21
|
+
// useSSL,
|
|
22
|
+
accessKey,
|
|
23
|
+
secretKey,
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
const exists = await minioClient.bucketExists(bucketName)
|
|
27
|
+
if (!exists) {
|
|
28
|
+
return null
|
|
29
|
+
// await minioClient.makeBucket(bucketName, 'us-east-1')
|
|
30
|
+
// console.log('Bucket ' + bucketName + ' created in "us-east-1".')
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const metaData = {
|
|
34
|
+
// 'Content-Type': contentType,
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const minioResult = await new Promise((resolve, reject) => {
|
|
38
|
+
minioClient.removeObject(
|
|
39
|
+
bucketName,
|
|
40
|
+
filename,
|
|
41
|
+
{},
|
|
42
|
+
(error, objInfo) => {
|
|
43
|
+
if (error) {
|
|
44
|
+
reject(error)
|
|
45
|
+
return
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
resolve(objInfo)
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
return { success: true }
|
|
53
|
+
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.error(e)
|
|
56
|
+
}
|
|
57
|
+
return null
|
|
58
|
+
}
|