dotsec 2.0.0-alpha.0 → 4.0.0-alpha.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/dist/cli/index.js +134 -8
- package/dist/cli/index.js.map +1 -7
- package/dist/cli/index.mjs +134 -8
- package/dist/cli/index.mjs.map +1 -7
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -7
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -7
- package/package.json +4 -7
- package/src/templates/dotsec.config.ts +1 -13
- package/dist/index.d.ts +0 -148
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts", "../src/utils/prompts.ts", "../src/utils/fromEnv.ts", "../src/utils/logging.ts"],
|
|
4
|
-
"sourcesContent": ["export type {\n\tDotsecEncryptionEngine,\n\tDotsecEncryptionEngineFactory,\n\tDotsecEncryptionEngineFactoryProps,\n\tFromEnv,\n\tDotsecPlugin,\n\tDotsecPluginModule,\n\tMeh,\n\tDotsecConfig,\n} from \"./types\";\nexport { promptExecute } from \"./utils/prompts\";\nexport { resolveFromEnv } from \"./utils/fromEnv\";\n\n// import dotsec from \"./dotsec\";\n// export default dotsec;\n\nexport { Table, emphasis, strong, writeLine } from \"./utils/logging\";\n", "import prompts from \"prompts\";\n\nexport const promptConfirm = async ({\n\tpredicate,\n\tskip,\n\tmessage,\n}: {\n\tpredicate?: (...args: unknown[]) => Promise<boolean> | boolean;\n\tskip?: boolean;\n\tmessage: string;\n}): Promise<boolean> => {\n\tif (skip === true) {\n\t\treturn true;\n\t} else {\n\t\tconst result = predicate ? await predicate() : true;\n\t\tif (result) {\n\t\t\tconst confirmResult = await prompts({\n\t\t\t\ttype: \"confirm\",\n\t\t\t\tname: \"confirm\",\n\t\t\t\tmessage: () => {\n\t\t\t\t\treturn message;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (confirmResult.confirm === true) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const promptExecute = async ({\n\tskip,\n\tmessage,\n\texecute,\n}: {\n\tskip?: boolean;\n\tmessage: string;\n\texecute: () => unknown | Promise<unknown>;\n}) => {\n\tlet shouldExecute = false;\n\tif (skip) {\n\t\tshouldExecute = true;\n\t} else {\n\t\tconst promptResponse = await prompts({\n\t\t\ttype: \"confirm\",\n\t\t\tname: \"confirm\",\n\t\t\tmessage,\n\t\t});\n\n\t\tif (promptResponse.confirm === true) {\n\t\t\tshouldExecute = true;\n\t\t}\n\t}\n\n\tif (shouldExecute) {\n\t\tawait execute();\n\t}\n};\n", "import { expand } from \"dotenv-expand\";\n\nexport const resolveFromEnv = (options: {\n\tfromEnvValue?: string;\n\tenv: NodeJS.ProcessEnv;\n\tvariables: Record<string, string>;\n}) => {\n\tconst { fromEnvValue, env, variables } = options;\n\n\tif (!fromEnvValue) {\n\t\treturn \"\";\n\t}\n\n\treturn (\n\t\texpand({\n\t\t\tignoreProcessEnv: true,\n\t\t\tparsed: {\n\t\t\t\t// add standard env variables\n\t\t\t\t...(env as Record<string, string>),\n\t\t\t\t// add custom env variables, either from .env or .sec, (or empty object if none)\n\t\t\t\t...variables,\n\t\t\t\tRESOLVED: fromEnvValue || \"\",\n\t\t\t},\n\t\t}) as { parsed?: { RESOLVED?: string } }\n\t).parsed?.RESOLVED;\n};\n", "import chalk from \"chalk\"\nimport Table = require(\"cli-table\")\nexport { Table }\n\nlet _logger: Pick<Console, \"info\" | \"error\" | \"table\">\nexport const getLogger = () => {\n\tif (!_logger) {\n\t\t_logger = console\n\t}\n\n\treturn _logger\n}\nexport const writeLine = (str: string) => {\n\tprocess.stdout.write(str)\n}\nexport const emphasis = (str: string): string => chalk.yellowBright(str)\nexport const strong = (str: string): string => chalk.yellow.bold(str)\n\nexport const clientLogger = {\n\tdebug(content: object) {\n\t\tconsole.log(content)\n\t},\n\tinfo(content: object) {\n\t\tconsole.log(content)\n\t},\n\twarn(content: object) {\n\t\tconsole.log(content)\n\t},\n\terror(content: object) {\n\t\tconsole.error(content)\n\t},\n}\n"],
|
|
5
|
-
"mappings": "s6BAAA,8GCAA,MAAoB,sBAgCb,GAAM,GAAgB,MAAO,CACnC,OACA,UACA,aAKK,CACL,GAAI,GAAgB,GACpB,AAAI,IASC,AANmB,MAAM,cAAQ,CACpC,KAAM,UACN,KAAM,UACN,aAGkB,UAAY,KAC9B,GAAgB,IAId,GACH,KAAM,MCzDR,MAAuB,4BAEV,EAAiB,AAAC,GAIzB,CANN,MAOC,GAAM,CAAE,eAAc,MAAK,aAAc,EAEzC,MAAK,GAKJ,gBAAO,CACN,iBAAkB,GAClB,OAAQ,SAEH,GAED,GAJI,CAKP,SAAU,GAAgB,OAG3B,SAVD,cAUS,SAdF,ICVT,MAAkB,oBACX,EAAQ,QAAQ,aAWhB,GAAM,GAAY,AAAC,GAAgB,CACzC,QAAQ,OAAO,MAAM,IAET,EAAW,AAAC,GAAwB,UAAM,aAAa,GACvD,EAAS,AAAC,GAAwB,UAAM,OAAO,KAAK",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/utils/prompts.ts","../src/utils/fromEnv.ts","../src/lib/io.ts","../src/utils/logging.ts"],"sourcesContent":["export type {\n\tDotsecEncryptionEngine,\n\tDotsecEncryptionEngineFactory,\n\tDotsecEncryptionEngineFactoryProps,\n\tFromEnv,\n\tDotsecPluginUserConfigWithNamespace,\n\tDotsecPluginModule,\n\tDotsecPluginModuleBuilder,\n\tMeh,\n\tDotsecPluginModuleBuilderConfig,\n\tDotsecConfig,\n} from \"./types\";\nexport { promptExecute } from \"./utils/prompts\";\nexport { resolveFromEnv } from \"./utils/fromEnv\";\nexport {\n\tpromptOverwriteIfFileExists,\n\treadContentsFromFile,\n\twriteContentsToFile,\n} from \"./lib/io\";\n// import dotsec from \"./dotsec\";\n// export default dotsec;\n\nexport { Table, emphasis, strong, writeLine } from \"./utils/logging\";\n","import prompts from \"prompts\";\n\nexport const promptConfirm = async ({\n\tpredicate,\n\tskip,\n\tmessage,\n}: {\n\tpredicate?: (...args: unknown[]) => Promise<boolean> | boolean;\n\tskip?: boolean;\n\tmessage: string;\n}): Promise<boolean> => {\n\tif (skip === true) {\n\t\treturn true;\n\t} else {\n\t\tconst result = predicate ? await predicate() : true;\n\t\tif (result) {\n\t\t\tconst confirmResult = await prompts({\n\t\t\t\ttype: \"confirm\",\n\t\t\t\tname: \"confirm\",\n\t\t\t\tmessage: () => {\n\t\t\t\t\treturn message;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (confirmResult.confirm === true) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const promptExecute = async ({\n\tskip,\n\tmessage,\n\texecute,\n}: {\n\tskip?: boolean;\n\tmessage: string;\n\texecute: () => unknown | Promise<unknown>;\n}) => {\n\tlet shouldExecute = false;\n\tif (skip) {\n\t\tshouldExecute = true;\n\t} else {\n\t\tconst promptResponse = await prompts({\n\t\t\ttype: \"confirm\",\n\t\t\tname: \"confirm\",\n\t\t\tmessage,\n\t\t});\n\n\t\tif (promptResponse.confirm === true) {\n\t\t\tshouldExecute = true;\n\t\t}\n\t}\n\n\tif (shouldExecute) {\n\t\tawait execute();\n\t}\n};\n","import { expand } from \"dotenv-expand\";\n\nexport const resolveFromEnv = (options: {\n\tfromEnvValue?: string;\n\tenv: NodeJS.ProcessEnv;\n\tvariables: Record<string, string>;\n}) => {\n\tconst { fromEnvValue, env, variables } = options;\n\n\tif (!fromEnvValue) {\n\t\treturn \"\";\n\t}\n\n\treturn (\n\t\texpand({\n\t\t\tignoreProcessEnv: true,\n\t\t\tparsed: {\n\t\t\t\t// add standard env variables\n\t\t\t\t...(env as Record<string, string>),\n\t\t\t\t// add custom env variables, either from .env or .sec, (or empty object if none)\n\t\t\t\t...variables,\n\t\t\t\tRESOLVED: fromEnvValue || \"\",\n\t\t\t},\n\t\t}) as { parsed?: { RESOLVED?: string } }\n\t).parsed?.RESOLVED;\n};\n","import fs, { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport prompts from \"prompts\";\n\nexport const readContentsFromFile = async (\n\tfilePath: string,\n): Promise<string> => {\n\treturn await fs.readFile(filePath, \"utf-8\");\n};\n\nexport const writeContentsToFile = async (\n\tfilePath: string,\n\tcontents: string,\n): Promise<void> => {\n\treturn await fs.writeFile(filePath, contents, \"utf-8\");\n};\n\nexport const fileExists = async (source: string): Promise<boolean> => {\n\ttry {\n\t\tawait stat(source);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const promptOverwriteIfFileExists = async ({\n\tfilePath,\n\tskip,\n}: {\n\tfilePath: string;\n\tskip?: boolean;\n}) => {\n\tlet overwriteResponse: prompts.Answers<\"overwrite\"> | undefined;\n\n\tif ((await fileExists(filePath)) && skip !== true) {\n\t\toverwriteResponse = await prompts({\n\t\t\ttype: \"confirm\",\n\t\t\tname: \"overwrite\",\n\t\t\tmessage: () => {\n\t\t\t\treturn `Overwrite './${path.relative(process.cwd(), filePath)}' ?`;\n\t\t\t},\n\t\t});\n\t} else {\n\t\toverwriteResponse = undefined;\n\t}\n\treturn overwriteResponse;\n};\n","import chalk from \"chalk\";\nimport Table from \"cli-table\";\nexport { Table };\n\nlet _logger: Pick<Console, \"info\" | \"error\" | \"table\">;\nexport const getLogger = () => {\n\tif (!_logger) {\n\t\t_logger = console;\n\t}\n\n\treturn _logger;\n};\nexport const writeLine = (str: string) => {\n\tprocess.stdout.write(str);\n};\nexport const emphasis = (str: string): string => chalk.yellowBright(str);\nexport const strong = (str: string): string => chalk.yellow.bold(str);\n\nexport const clientLogger = {\n\tdebug(content: object) {\n\t\tconsole.log(content);\n\t},\n\tinfo(content: object) {\n\t\tconsole.log(content);\n\t},\n\twarn(content: object) {\n\t\tconsole.log(content);\n\t},\n\terror(content: object) {\n\t\tconsole.error(content);\n\t},\n};\n"],"mappings":"6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,QAAA,aAAAC,EAAA,kBAAAC,EAAA,gCAAAC,EAAA,yBAAAC,EAAA,mBAAAC,EAAA,WAAAC,EAAA,wBAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAX,GCAA,IAAAY,EAAoB,sBAgCb,IAAMC,EAAgB,MAAO,CACnC,KAAAC,EACA,QAAAC,EACA,QAAAC,CACD,IAIM,CACL,IAAIC,EAAgB,IAChBH,IAGoB,QAAM,EAAAI,SAAQ,CACpC,KAAM,UACN,KAAM,UACN,QAAAH,CACD,CAAC,GAEkB,UAAY,MAC9BE,EAAgB,IAIdA,GACH,MAAMD,EAAQ,CAEhB,EC3DA,IAAAG,EAAuB,yBAEVC,EAAkBC,GAIzB,CACL,GAAM,CAAE,aAAAC,EAAc,IAAAC,EAAK,UAAAC,CAAU,EAAIH,EAEzC,OAAKC,KAKJ,UAAO,CACN,iBAAkB,GAClB,OAAQ,CAEP,GAAIC,EAEJ,GAAGC,EACH,SAAUF,GAAgB,EAC3B,CACD,CAAC,EACA,QAAQ,SAdF,EAeT,ECzBA,IAAAG,EAAyB,0BACzBC,EAAiB,mBACjBC,EAAoB,sBAEPC,EAAuB,MACnCC,GAEO,MAAM,EAAAC,QAAG,SAASD,EAAU,OAAO,EAG9BE,EAAsB,MAClCF,EACAG,IAEO,MAAM,EAAAF,QAAG,UAAUD,EAAUG,EAAU,OAAO,EAGzCC,EAAa,MAAOC,GAAqC,CACrE,GAAI,CACH,eAAM,QAAKA,CAAM,EACV,EACR,MAAE,CACD,MAAO,EACR,CACD,EAEaC,EAA8B,MAAO,CACjD,SAAAN,EACA,KAAAO,CACD,IAGM,CACL,IAAIC,EAEJ,OAAK,MAAMJ,EAAWJ,CAAQ,GAAMO,IAAS,GAC5CC,EAAoB,QAAM,EAAAC,SAAQ,CACjC,KAAM,UACN,KAAM,YACN,QAAS,IACD,gBAAgB,EAAAC,QAAK,SAAS,QAAQ,IAAI,EAAGV,CAAQ,MAE9D,CAAC,EAEDQ,EAAoB,OAEdA,CACR,EC/CA,IAAAG,EAAkB,oBAClBC,EAAkB,wBAWX,IAAMC,EAAaC,GAAgB,CACzC,QAAQ,OAAO,MAAMA,CAAG,CACzB,EACaC,EAAYD,GAAwB,EAAAE,QAAM,aAAaF,CAAG,EAC1DG,EAAUH,GAAwB,EAAAE,QAAM,OAAO,KAAKF,CAAG","names":["src_exports","__export","Table","emphasis","promptExecute","promptOverwriteIfFileExists","readContentsFromFile","resolveFromEnv","strong","writeContentsToFile","writeLine","__toCommonJS","import_prompts","promptExecute","skip","message","execute","shouldExecute","prompts","import_dotenv_expand","resolveFromEnv","options","fromEnvValue","env","variables","import_promises","import_node_path","import_prompts","readContentsFromFile","filePath","fs","writeContentsToFile","contents","fileExists","source","promptOverwriteIfFileExists","skip","overwriteResponse","prompts","path","import_chalk","import_cli_table","writeLine","str","emphasis","chalk","strong"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import i from"prompts";var a=async({skip:e,message:r,execute:o})=>{let t=!1;(e||(await i({type:"confirm",name:"confirm",message:r})).confirm===!0)&&(t=!0),t&&await o()};import{expand as c}from"dotenv-expand";var p=e=>{let{fromEnvValue:r,env:o,variables:t}=e;return r?c({ignoreProcessEnv:!0,parsed:{...o,...t,RESOLVED:r||""}}).parsed?.RESOLVED:""};import n,{stat as l}from"node:fs/promises";import m from"node:path";import u from"prompts";var f=async e=>await n.readFile(e,"utf-8"),g=async(e,r)=>await n.writeFile(e,r,"utf-8"),w=async e=>{try{return await l(e),!0}catch{return!1}},x=async({filePath:e,skip:r})=>{let o;return await w(e)&&r!==!0?o=await u({type:"confirm",name:"overwrite",message:()=>`Overwrite './${m.relative(process.cwd(),e)}' ?`}):o=void 0,o};import s from"chalk";import d from"cli-table";var E=e=>{process.stdout.write(e)},v=e=>s.yellowBright(e),y=e=>s.yellow.bold(e);export{d as Table,v as emphasis,a as promptExecute,x as promptOverwriteIfFileExists,f as readContentsFromFile,p as resolveFromEnv,y as strong,g as writeContentsToFile,E as writeLine};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/utils/prompts.ts", "../src/utils/fromEnv.ts", "../src/utils/logging.ts"],
|
|
4
|
-
"sourcesContent": ["import prompts from \"prompts\";\n\nexport const promptConfirm = async ({\n\tpredicate,\n\tskip,\n\tmessage,\n}: {\n\tpredicate?: (...args: unknown[]) => Promise<boolean> | boolean;\n\tskip?: boolean;\n\tmessage: string;\n}): Promise<boolean> => {\n\tif (skip === true) {\n\t\treturn true;\n\t} else {\n\t\tconst result = predicate ? await predicate() : true;\n\t\tif (result) {\n\t\t\tconst confirmResult = await prompts({\n\t\t\t\ttype: \"confirm\",\n\t\t\t\tname: \"confirm\",\n\t\t\t\tmessage: () => {\n\t\t\t\t\treturn message;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (confirmResult.confirm === true) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const promptExecute = async ({\n\tskip,\n\tmessage,\n\texecute,\n}: {\n\tskip?: boolean;\n\tmessage: string;\n\texecute: () => unknown | Promise<unknown>;\n}) => {\n\tlet shouldExecute = false;\n\tif (skip) {\n\t\tshouldExecute = true;\n\t} else {\n\t\tconst promptResponse = await prompts({\n\t\t\ttype: \"confirm\",\n\t\t\tname: \"confirm\",\n\t\t\tmessage,\n\t\t});\n\n\t\tif (promptResponse.confirm === true) {\n\t\t\tshouldExecute = true;\n\t\t}\n\t}\n\n\tif (shouldExecute) {\n\t\tawait execute();\n\t}\n};\n", "import { expand } from \"dotenv-expand\";\n\nexport const resolveFromEnv = (options: {\n\tfromEnvValue?: string;\n\tenv: NodeJS.ProcessEnv;\n\tvariables: Record<string, string>;\n}) => {\n\tconst { fromEnvValue, env, variables } = options;\n\n\tif (!fromEnvValue) {\n\t\treturn \"\";\n\t}\n\n\treturn (\n\t\texpand({\n\t\t\tignoreProcessEnv: true,\n\t\t\tparsed: {\n\t\t\t\t// add standard env variables\n\t\t\t\t...(env as Record<string, string>),\n\t\t\t\t// add custom env variables, either from .env or .sec, (or empty object if none)\n\t\t\t\t...variables,\n\t\t\t\tRESOLVED: fromEnvValue || \"\",\n\t\t\t},\n\t\t}) as { parsed?: { RESOLVED?: string } }\n\t).parsed?.RESOLVED;\n};\n", "import chalk from \"chalk\"\nimport Table = require(\"cli-table\")\nexport { Table }\n\nlet _logger: Pick<Console, \"info\" | \"error\" | \"table\">\nexport const getLogger = () => {\n\tif (!_logger) {\n\t\t_logger = console\n\t}\n\n\treturn _logger\n}\nexport const writeLine = (str: string) => {\n\tprocess.stdout.write(str)\n}\nexport const emphasis = (str: string): string => chalk.yellowBright(str)\nexport const strong = (str: string): string => chalk.yellow.bold(str)\n\nexport const clientLogger = {\n\tdebug(content: object) {\n\t\tconsole.log(content)\n\t},\n\tinfo(content: object) {\n\t\tconsole.log(content)\n\t},\n\twarn(content: object) {\n\t\tconsole.log(content)\n\t},\n\terror(content: object) {\n\t\tconsole.error(content)\n\t},\n}\n"],
|
|
5
|
-
"mappings": "8sBAAA,uBAgCO,GAAM,GAAgB,MAAO,CACnC,OACA,UACA,aAKK,CACL,GAAI,GAAgB,GACpB,AAAI,IASC,AANmB,MAAM,GAAQ,CACpC,KAAM,UACN,KAAM,UACN,aAGkB,UAAY,KAC9B,GAAgB,IAId,GACH,KAAM,MCzDR,uCAEO,GAAM,GAAiB,AAAC,GAIzB,CANN,MAOC,GAAM,CAAE,eAAc,MAAK,aAAc,EAEzC,MAAK,GAKJ,KAAO,CACN,iBAAkB,GAClB,OAAQ,SAEH,GAED,GAJI,CAKP,SAAU,GAAgB,OAG3B,SAVD,cAUS,SAdF,ICVT,qBACA,GAAO,GAAQ,EAAQ,aAWhB,GAAM,GAAY,AAAC,GAAgB,CACzC,QAAQ,OAAO,MAAM,IAET,EAAW,AAAC,GAAwB,EAAM,aAAa,GACvD,EAAS,AAAC,GAAwB,EAAM,OAAO,KAAK",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"sources":["../src/utils/prompts.ts","../src/utils/fromEnv.ts","../src/lib/io.ts","../src/utils/logging.ts"],"sourcesContent":["import prompts from \"prompts\";\n\nexport const promptConfirm = async ({\n\tpredicate,\n\tskip,\n\tmessage,\n}: {\n\tpredicate?: (...args: unknown[]) => Promise<boolean> | boolean;\n\tskip?: boolean;\n\tmessage: string;\n}): Promise<boolean> => {\n\tif (skip === true) {\n\t\treturn true;\n\t} else {\n\t\tconst result = predicate ? await predicate() : true;\n\t\tif (result) {\n\t\t\tconst confirmResult = await prompts({\n\t\t\t\ttype: \"confirm\",\n\t\t\t\tname: \"confirm\",\n\t\t\t\tmessage: () => {\n\t\t\t\t\treturn message;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (confirmResult.confirm === true) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const promptExecute = async ({\n\tskip,\n\tmessage,\n\texecute,\n}: {\n\tskip?: boolean;\n\tmessage: string;\n\texecute: () => unknown | Promise<unknown>;\n}) => {\n\tlet shouldExecute = false;\n\tif (skip) {\n\t\tshouldExecute = true;\n\t} else {\n\t\tconst promptResponse = await prompts({\n\t\t\ttype: \"confirm\",\n\t\t\tname: \"confirm\",\n\t\t\tmessage,\n\t\t});\n\n\t\tif (promptResponse.confirm === true) {\n\t\t\tshouldExecute = true;\n\t\t}\n\t}\n\n\tif (shouldExecute) {\n\t\tawait execute();\n\t}\n};\n","import { expand } from \"dotenv-expand\";\n\nexport const resolveFromEnv = (options: {\n\tfromEnvValue?: string;\n\tenv: NodeJS.ProcessEnv;\n\tvariables: Record<string, string>;\n}) => {\n\tconst { fromEnvValue, env, variables } = options;\n\n\tif (!fromEnvValue) {\n\t\treturn \"\";\n\t}\n\n\treturn (\n\t\texpand({\n\t\t\tignoreProcessEnv: true,\n\t\t\tparsed: {\n\t\t\t\t// add standard env variables\n\t\t\t\t...(env as Record<string, string>),\n\t\t\t\t// add custom env variables, either from .env or .sec, (or empty object if none)\n\t\t\t\t...variables,\n\t\t\t\tRESOLVED: fromEnvValue || \"\",\n\t\t\t},\n\t\t}) as { parsed?: { RESOLVED?: string } }\n\t).parsed?.RESOLVED;\n};\n","import fs, { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport prompts from \"prompts\";\n\nexport const readContentsFromFile = async (\n\tfilePath: string,\n): Promise<string> => {\n\treturn await fs.readFile(filePath, \"utf-8\");\n};\n\nexport const writeContentsToFile = async (\n\tfilePath: string,\n\tcontents: string,\n): Promise<void> => {\n\treturn await fs.writeFile(filePath, contents, \"utf-8\");\n};\n\nexport const fileExists = async (source: string): Promise<boolean> => {\n\ttry {\n\t\tawait stat(source);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const promptOverwriteIfFileExists = async ({\n\tfilePath,\n\tskip,\n}: {\n\tfilePath: string;\n\tskip?: boolean;\n}) => {\n\tlet overwriteResponse: prompts.Answers<\"overwrite\"> | undefined;\n\n\tif ((await fileExists(filePath)) && skip !== true) {\n\t\toverwriteResponse = await prompts({\n\t\t\ttype: \"confirm\",\n\t\t\tname: \"overwrite\",\n\t\t\tmessage: () => {\n\t\t\t\treturn `Overwrite './${path.relative(process.cwd(), filePath)}' ?`;\n\t\t\t},\n\t\t});\n\t} else {\n\t\toverwriteResponse = undefined;\n\t}\n\treturn overwriteResponse;\n};\n","import chalk from \"chalk\";\nimport Table from \"cli-table\";\nexport { Table };\n\nlet _logger: Pick<Console, \"info\" | \"error\" | \"table\">;\nexport const getLogger = () => {\n\tif (!_logger) {\n\t\t_logger = console;\n\t}\n\n\treturn _logger;\n};\nexport const writeLine = (str: string) => {\n\tprocess.stdout.write(str);\n};\nexport const emphasis = (str: string): string => chalk.yellowBright(str);\nexport const strong = (str: string): string => chalk.yellow.bold(str);\n\nexport const clientLogger = {\n\tdebug(content: object) {\n\t\tconsole.log(content);\n\t},\n\tinfo(content: object) {\n\t\tconsole.log(content);\n\t},\n\twarn(content: object) {\n\t\tconsole.log(content);\n\t},\n\terror(content: object) {\n\t\tconsole.error(content);\n\t},\n};\n"],"mappings":"AAAA,OAAOA,MAAa,UAgCb,IAAMC,EAAgB,MAAO,CACnC,KAAAC,EACA,QAAAC,EACA,QAAAC,CACD,IAIM,CACL,IAAIC,EAAgB,IAChBH,IAGoB,MAAMI,EAAQ,CACpC,KAAM,UACN,KAAM,UACN,QAAAH,CACD,CAAC,GAEkB,UAAY,MAC9BE,EAAgB,IAIdA,GACH,MAAMD,EAAQ,CAEhB,EC3DA,OAAS,UAAAG,MAAc,gBAEhB,IAAMC,EAAkBC,GAIzB,CACL,GAAM,CAAE,aAAAC,EAAc,IAAAC,EAAK,UAAAC,CAAU,EAAIH,EAEzC,OAAKC,EAKJH,EAAO,CACN,iBAAkB,GAClB,OAAQ,CAEP,GAAII,EAEJ,GAAGC,EACH,SAAUF,GAAgB,EAC3B,CACD,CAAC,EACA,QAAQ,SAdF,EAeT,ECzBA,OAAOG,GAAM,QAAAC,MAAY,mBACzB,OAAOC,MAAU,YACjB,OAAOC,MAAa,UAEb,IAAMC,EAAuB,MACnCC,GAEO,MAAML,EAAG,SAASK,EAAU,OAAO,EAG9BC,EAAsB,MAClCD,EACAE,IAEO,MAAMP,EAAG,UAAUK,EAAUE,EAAU,OAAO,EAGzCC,EAAa,MAAOC,GAAqC,CACrE,GAAI,CACH,aAAMR,EAAKQ,CAAM,EACV,EACR,MAAE,CACD,MAAO,EACR,CACD,EAEaC,EAA8B,MAAO,CACjD,SAAAL,EACA,KAAAM,CACD,IAGM,CACL,IAAIC,EAEJ,OAAK,MAAMJ,EAAWH,CAAQ,GAAMM,IAAS,GAC5CC,EAAoB,MAAMT,EAAQ,CACjC,KAAM,UACN,KAAM,YACN,QAAS,IACD,gBAAgBD,EAAK,SAAS,QAAQ,IAAI,EAAGG,CAAQ,MAE9D,CAAC,EAEDO,EAAoB,OAEdA,CACR,EC/CA,OAAOC,MAAW,QAClB,OAAOC,MAAW,YAWX,IAAMC,EAAaC,GAAgB,CACzC,QAAQ,OAAO,MAAMA,CAAG,CACzB,EACaC,EAAYD,GAAwBE,EAAM,aAAaF,CAAG,EAC1DG,EAAUH,GAAwBE,EAAM,OAAO,KAAKF,CAAG","names":["prompts","promptExecute","skip","message","execute","shouldExecute","prompts","expand","resolveFromEnv","options","fromEnvValue","env","variables","fs","stat","path","prompts","readContentsFromFile","filePath","writeContentsToFile","contents","fileExists","source","promptOverwriteIfFileExists","skip","overwriteResponse","chalk","Table","writeLine","str","emphasis","chalk","strong"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dotsec",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-alpha.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -40,13 +40,10 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/cli-table": "^0.3.1",
|
|
43
|
-
"@types/node": "^18.
|
|
43
|
+
"@types/node": "^18.14.6",
|
|
44
44
|
"@types/prompts": "^2.0.14",
|
|
45
45
|
"@types/yargs-parser": "^21.0.0",
|
|
46
|
-
"tsup": "^
|
|
47
|
-
},
|
|
48
|
-
"peerDependencies": {
|
|
49
|
-
"dotsec": "*"
|
|
46
|
+
"tsup": "^6.6.3"
|
|
50
47
|
},
|
|
51
48
|
"dependencies": {
|
|
52
49
|
"@npmcli/arborist": "^6.1.4",
|
|
@@ -65,5 +62,5 @@
|
|
|
65
62
|
"typescript": "~4.9.3",
|
|
66
63
|
"yargs-parser": "^21.1.1"
|
|
67
64
|
},
|
|
68
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "d3dce43680504a3d4252c884a2ac12b167ae3d74"
|
|
69
66
|
}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
1
|
import type { DotsecConfig } from "dotsec";
|
|
2
2
|
|
|
3
|
-
export const dotsec: DotsecConfig = {
|
|
4
|
-
defaults: {
|
|
5
|
-
plugins: {
|
|
6
|
-
aws: {
|
|
7
|
-
region: "us-east-1",
|
|
8
|
-
kms: {
|
|
9
|
-
keyAlias: "alias/dotsec",
|
|
10
|
-
},
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
push: {},
|
|
15
|
-
};
|
|
3
|
+
export const dotsec: DotsecConfig = {};
|
package/dist/index.d.ts
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import Ajv from 'ajv';
|
|
2
|
-
import { Command } from 'commander';
|
|
3
|
-
export { default as Table } from 'cli-table';
|
|
4
|
-
|
|
5
|
-
type DotsecCliPluginHandler<HandlerArgs extends Record<string, unknown>, HandlerResult, T extends Record<string, unknown> = Record<string, unknown>> = {
|
|
6
|
-
encryptionEngineName?: string;
|
|
7
|
-
triggerOptionValue: string;
|
|
8
|
-
options?: {
|
|
9
|
-
[key in keyof T]: DotsecCliOption;
|
|
10
|
-
};
|
|
11
|
-
requiredOptions?: {
|
|
12
|
-
[key in keyof T]: DotsecCliOption;
|
|
13
|
-
};
|
|
14
|
-
handler: (options: HandlerArgs & T) => Promise<HandlerResult>;
|
|
15
|
-
};
|
|
16
|
-
type DotsecCliPluginEncryptHandler<HandlerPluginArgs extends Record<string, unknown> = Record<string, unknown>> = DotsecCliPluginHandler<{
|
|
17
|
-
plaintext: string;
|
|
18
|
-
}, string, HandlerPluginArgs>;
|
|
19
|
-
type DotsecCliPluginDecryptHandler<HandlerPluginArgs extends Record<string, unknown> = Record<string, unknown>> = DotsecCliPluginHandler<{
|
|
20
|
-
ciphertext: string;
|
|
21
|
-
}, string, HandlerPluginArgs>;
|
|
22
|
-
type DotsecCliPluginRunHandler<HandlerPluginArgs extends Record<string, unknown> = Record<string, unknown>> = DotsecCliPluginHandler<{
|
|
23
|
-
ciphertext: string;
|
|
24
|
-
}, string, HandlerPluginArgs>;
|
|
25
|
-
type DotsecCliPluginPushHandler<HandlerPluginArgs extends Record<string, unknown> = Record<string, unknown>> = DotsecCliPluginHandler<{
|
|
26
|
-
push: Record<string, string>;
|
|
27
|
-
yes?: boolean;
|
|
28
|
-
}, string, HandlerPluginArgs>;
|
|
29
|
-
type DotsecCliOption = [
|
|
30
|
-
flags: string,
|
|
31
|
-
description?: string,
|
|
32
|
-
defaultValue?: string | boolean | string[]
|
|
33
|
-
] | {
|
|
34
|
-
flags: string;
|
|
35
|
-
description?: string;
|
|
36
|
-
defaultValue?: string | boolean | string[];
|
|
37
|
-
fn?: (value: string, previous: unknown) => unknown;
|
|
38
|
-
regexp?: RegExp;
|
|
39
|
-
env?: string;
|
|
40
|
-
};
|
|
41
|
-
type DotsecPluginConfig = {
|
|
42
|
-
module?: string;
|
|
43
|
-
config?: {
|
|
44
|
-
[key: string]: unknown;
|
|
45
|
-
};
|
|
46
|
-
push?: {
|
|
47
|
-
[key: string]: unknown;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
type DotsecPlugins = {
|
|
51
|
-
plugins: DotsecPlugin;
|
|
52
|
-
};
|
|
53
|
-
type Meh<T extends DotsecPluginModuleConfig> = T extends DotsecPluginModuleConfig ? T : never;
|
|
54
|
-
type DotsecPluginModuleConfig = {
|
|
55
|
-
plugin: DotsecPlugin;
|
|
56
|
-
api?: Record<string, unknown>;
|
|
57
|
-
cliHandlersOptions?: {
|
|
58
|
-
encrypt?: Record<string, unknown>;
|
|
59
|
-
decrypt?: Record<string, unknown>;
|
|
60
|
-
run?: Record<string, unknown>;
|
|
61
|
-
push?: Record<string, unknown>;
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
type DotsecPluginModule<T extends DotsecPluginModuleConfig = DotsecPluginModuleConfig> = (options: {
|
|
65
|
-
dotsecConfig: DotsecConfig;
|
|
66
|
-
ajv: Ajv;
|
|
67
|
-
configFile: string;
|
|
68
|
-
}) => Promise<{
|
|
69
|
-
name: keyof T["plugin"] | string;
|
|
70
|
-
encryptionEngineName?: string;
|
|
71
|
-
api?: T["api"] extends Record<string, unknown> ? T["api"] : never;
|
|
72
|
-
addCliCommand?: (options: {
|
|
73
|
-
program: Command;
|
|
74
|
-
}) => Promise<void>;
|
|
75
|
-
cliHandlers?: {
|
|
76
|
-
encrypt?: DotsecCliPluginEncryptHandler<T["cliHandlersOptions"] extends {
|
|
77
|
-
encrypt: Record<string, unknown>;
|
|
78
|
-
} ? T["cliHandlersOptions"]["encrypt"] : Record<string, unknown>>;
|
|
79
|
-
decrypt?: DotsecCliPluginDecryptHandler<T["cliHandlersOptions"] extends {
|
|
80
|
-
decrypt: Record<string, unknown>;
|
|
81
|
-
} ? T["cliHandlersOptions"]["decrypt"] : Record<string, unknown>>;
|
|
82
|
-
run?: DotsecCliPluginRunHandler<T["cliHandlersOptions"] extends {
|
|
83
|
-
run: Record<string, unknown>;
|
|
84
|
-
} ? T["cliHandlersOptions"]["run"] : Record<string, unknown>>;
|
|
85
|
-
push?: DotsecCliPluginPushHandler<T["cliHandlersOptions"] extends {
|
|
86
|
-
push: Record<string, unknown>;
|
|
87
|
-
} ? T["cliHandlersOptions"]["push"] : Record<string, unknown>>;
|
|
88
|
-
};
|
|
89
|
-
}>;
|
|
90
|
-
type DotsecPlugin<T extends {
|
|
91
|
-
[key: string]: DotsecPluginConfig;
|
|
92
|
-
} = {
|
|
93
|
-
[key: string]: DotsecPluginConfig;
|
|
94
|
-
}> = T;
|
|
95
|
-
|
|
96
|
-
type DotsecConfig<T extends DotsecPlugins = DotsecPlugins> = {
|
|
97
|
-
defaults?: {
|
|
98
|
-
encryptionEngine?: keyof T["plugins"] | string;
|
|
99
|
-
plugins?: {
|
|
100
|
-
[PluginKey in keyof T["plugins"]]?: {
|
|
101
|
-
module?: T["plugins"][PluginKey]["module"];
|
|
102
|
-
} & T["plugins"][PluginKey]["config"];
|
|
103
|
-
};
|
|
104
|
-
options?: {
|
|
105
|
-
envFile?: string;
|
|
106
|
-
secFile?: string;
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
push?: {
|
|
110
|
-
[key: string]: {
|
|
111
|
-
[PluginKey in keyof T["plugins"]]?: T["plugins"][PluginKey]["push"];
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
type DotsecEncryptionEngineFactoryProps = {
|
|
117
|
-
verbose?: boolean;
|
|
118
|
-
};
|
|
119
|
-
type DotsecEncryptionEngine<T = Record<string, unknown>> = {
|
|
120
|
-
encrypt(plaintext: string): Promise<string>;
|
|
121
|
-
decrypt(ciphertext: string): Promise<string>;
|
|
122
|
-
} & T;
|
|
123
|
-
type DotsecEncryptionEngineFactory<T = Record<string, unknown>, V extends Record<string, unknown> = Record<string, unknown>> = {
|
|
124
|
-
(options: DotsecEncryptionEngineFactoryProps & T): Promise<DotsecEncryptionEngine<V>>;
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
type FromEnv<T extends string = string> = T | {
|
|
128
|
-
fromEnv: string;
|
|
129
|
-
required?: boolean;
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
declare const promptExecute: ({ skip, message, execute, }: {
|
|
133
|
-
skip?: boolean | undefined;
|
|
134
|
-
message: string;
|
|
135
|
-
execute: () => unknown | Promise<unknown>;
|
|
136
|
-
}) => Promise<void>;
|
|
137
|
-
|
|
138
|
-
declare const resolveFromEnv: (options: {
|
|
139
|
-
fromEnvValue?: string;
|
|
140
|
-
env: NodeJS.ProcessEnv;
|
|
141
|
-
variables: Record<string, string>;
|
|
142
|
-
}) => string | undefined;
|
|
143
|
-
|
|
144
|
-
declare const writeLine: (str: string) => void;
|
|
145
|
-
declare const emphasis: (str: string) => string;
|
|
146
|
-
declare const strong: (str: string) => string;
|
|
147
|
-
|
|
148
|
-
export { DotsecConfig, DotsecEncryptionEngine, DotsecEncryptionEngineFactory, DotsecEncryptionEngineFactoryProps, DotsecPlugin, DotsecPluginModule, FromEnv, Meh, emphasis, promptExecute, resolveFromEnv, strong, writeLine };
|