@orion-js/env 3.11.8 → 4.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.cjs +9544 -0
  2. package/dist/index.d.ts +39 -0
  3. package/dist/index.js +9518 -0
  4. package/package.json +23 -16
  5. package/LICENSE +0 -21
  6. package/jest.config.js +0 -8
  7. package/lib/cli/add/encryptValue.d.ts +0 -2
  8. package/lib/cli/add/encryptValue.js +0 -8
  9. package/lib/cli/add/getConfig.d.ts +0 -2
  10. package/lib/cli/add/getConfig.js +0 -16
  11. package/lib/cli/add/getParams.d.ts +0 -5
  12. package/lib/cli/add/getParams.js +0 -26
  13. package/lib/cli/add/index.d.ts +0 -3
  14. package/lib/cli/add/index.js +0 -38
  15. package/lib/cli/index.d.ts +0 -2
  16. package/lib/cli/index.js +0 -43
  17. package/lib/cli/init/index.d.ts +0 -3
  18. package/lib/cli/init/index.js +0 -29
  19. package/lib/cli/read/index.d.ts +0 -5
  20. package/lib/cli/read/index.js +0 -21
  21. package/lib/crypto/index.d.ts +0 -13
  22. package/lib/crypto/index.js +0 -37
  23. package/lib/crypto/index.test.d.ts +0 -1
  24. package/lib/crypto/index.test.js +0 -30
  25. package/lib/crypto/tweetnacl.d.ts +0 -3
  26. package/lib/crypto/tweetnacl.js +0 -31
  27. package/lib/environment/getDts.d.ts +0 -4
  28. package/lib/environment/getDts.js +0 -32
  29. package/lib/environment/getVariables.d.ts +0 -17
  30. package/lib/environment/getVariables.js +0 -58
  31. package/lib/environment/index.d.ts +0 -8
  32. package/lib/environment/index.js +0 -35
  33. package/lib/environment/index.test.d.ts +0 -1
  34. package/lib/environment/index.test.js +0 -136
  35. package/lib/environment/load.d.ts +0 -6
  36. package/lib/environment/load.js +0 -33
  37. package/lib/files/index.d.ts +0 -3
  38. package/lib/files/index.js +0 -27
  39. package/lib/index.d.ts +0 -2
  40. package/lib/index.js +0 -14
  41. package/lib/internalGetEnv.d.ts +0 -1
  42. package/lib/internalGetEnv.js +0 -14
  43. package/tsconfig.json +0 -20
@@ -1,136 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("../crypto");
4
- const getDts_1 = require("./getDts");
5
- const getVariables_1 = require("./getVariables");
6
- describe('Environment', () => {
7
- beforeEach(() => {
8
- ;
9
- global.__orion_env_final__ = undefined;
10
- jest.resetModules();
11
- });
12
- it('should define all environment variables', async () => {
13
- const secretKey = 'QShwQT1+d5wk/F6FVpT5VmZFXm50aFRt9/LaDbwSEGo=';
14
- const secretValue = 'this_is_secret';
15
- const data = {
16
- version: '1.0',
17
- publicKey: 'quyw/56O1P/BmjlHGfguZD27zKbjOtxNBDOTz+FOYho=',
18
- cleanKeys: {
19
- a_key: 'a_value'
20
- },
21
- encryptedKeys: {
22
- secret1: 'nQCxsZxjVkOABeQSdIhYK7jSMYKUggUm9IWUGLpY3i4=:9gvH5IOhV/q5R4ngUIk2onf5oEZM5dIU89PRZ5TGjnnfcnrwkssLqsACNDmr0m4jQZVo0nBL'
23
- },
24
- readFromSecret: {
25
- SECRET_ENV: ['secret2'],
26
- SECRET2_ENV: ['secret3', 'secret4']
27
- }
28
- };
29
- process.env.SECRET_ENV = JSON.stringify({ secret2: 'this_is_secret' });
30
- process.env.SECRET2_ENV = JSON.stringify({ secret3: '3', secret4: '4' });
31
- process.env.ORION_ENV_SECRET_KEY = secretKey;
32
- const env = (0, getVariables_1.getVariables)(data, secretKey);
33
- expect(env).toEqual({
34
- a_key: 'a_value',
35
- secret1: secretValue,
36
- secret2: 'this_is_secret',
37
- secret3: '3',
38
- secret4: '4'
39
- });
40
- });
41
- it('should thow an error when the secret key is not the one used to encrypt', () => {
42
- const data = {
43
- version: '1.0',
44
- publicKey: 'quyw/56O1P/BmjlHGfguZD27zKbjOtxNBDOTz+FOYho=',
45
- cleanKeys: {},
46
- encryptedKeys: {
47
- secret1: 'nQCxsZxjVkOABeQSdIhYK7jSMYKUggUm9IWUGLpY3i4=:9gvH5IOhV/q5R4ngUIk2onf5oEZM5dIU89PRZ5TGjnnfcnrwkssLqsACNDmr0m4jQZVo0nBL'
48
- }
49
- };
50
- try {
51
- const key = (0, crypto_1.generateKeys)().decryptKey;
52
- (0, getVariables_1.getVariables)(data, key);
53
- }
54
- catch (error) {
55
- expect(error.message).toEqual('Orion encrypted env was passed but process.env.ORION_ENV_SECRET_KEY is not the right key for "secret1"');
56
- }
57
- expect.assertions(1);
58
- });
59
- it('should read the decyrpt key from the secret', () => {
60
- const secretKey = 'QShwQT1+d5wk/F6FVpT5VmZFXm50aFRt9/LaDbwSEGo=';
61
- const secretValue = 'this_is_secret';
62
- const data = {
63
- version: '1.0',
64
- publicKey: 'quyw/56O1P/BmjlHGfguZD27zKbjOtxNBDOTz+FOYho=',
65
- cleanKeys: {
66
- a_key: 'a_value'
67
- },
68
- encryptedKeys: {
69
- secret1: 'nQCxsZxjVkOABeQSdIhYK7jSMYKUggUm9IWUGLpY3i4=:9gvH5IOhV/q5R4ngUIk2onf5oEZM5dIU89PRZ5TGjnnfcnrwkssLqsACNDmr0m4jQZVo0nBL'
70
- },
71
- readFromSecret: {
72
- SECRET_ENV: ['secret2']
73
- }
74
- };
75
- process.env.SECRET_ENV = JSON.stringify({
76
- secret2: 'this_is_secret',
77
- ORION_ENV_SECRET_KEY: secretKey
78
- });
79
- const env = (0, getVariables_1.getVariables)(data, secretKey);
80
- expect(env).toEqual({
81
- a_key: 'a_value',
82
- secret1: secretValue,
83
- secret2: 'this_is_secret'
84
- });
85
- });
86
- it('should log an error when the secret is not a valid JSON, and related secrets undefined', () => {
87
- console.warn = jest.fn();
88
- const secretKey = 'QShwQT1+d5wk/F6FVpT5VmZFXm50aFRt9/LaDbwSEGo=';
89
- const secretValue = 'this_is_secret';
90
- const data = {
91
- version: '1.0',
92
- publicKey: 'quyw/56O1P/BmjlHGfguZD27zKbjOtxNBDOTz+FOYho=',
93
- cleanKeys: {
94
- a_key: 'a_value'
95
- },
96
- encryptedKeys: {
97
- secret1: 'nQCxsZxjVkOABeQSdIhYK7jSMYKUggUm9IWUGLpY3i4=:9gvH5IOhV/q5R4ngUIk2onf5oEZM5dIU89PRZ5TGjnnfcnrwkssLqsACNDmr0m4jQZVo0nBL'
98
- },
99
- readFromSecret: {
100
- SECRET_ENV: ['secret2']
101
- }
102
- };
103
- process.env.SECRET_ENV = 'not a json';
104
- const env = (0, getVariables_1.getVariables)(data, secretKey);
105
- expect(env).toEqual({
106
- a_key: 'a_value',
107
- secret1: secretValue,
108
- secret2: undefined
109
- });
110
- expect(console.warn.mock.calls[0][0].includes('it is not a valid JSON')).toBe(true);
111
- });
112
- it('Dts should return the right types', () => {
113
- const dts = (0, getDts_1.getDts)({
114
- version: '1.0',
115
- publicKey: 'public',
116
- cleanKeys: {
117
- a_key: 'a_value'
118
- },
119
- encryptedKeys: {
120
- secret: 'encrypted'
121
- },
122
- readFromSecret: {
123
- SECRET_ENV: ['secret2', 'secret3']
124
- }
125
- });
126
- expect(dts).toEqual(`declare module '@orion-js/env' {
127
- export const env: {
128
- a_key: string
129
- secret: string
130
- secret2: string
131
- secret3: string
132
- }
133
- }
134
- `);
135
- });
136
- });
@@ -1,6 +0,0 @@
1
- export interface LoadEnvOptions {
2
- secretKey?: string;
3
- envFilePath?: string;
4
- override?: boolean;
5
- }
6
- export declare function loadEnv(passedOptions?: LoadEnvOptions): void;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadEnv = void 0;
4
- const getConfig_1 = require("../cli/add/getConfig");
5
- const getVariables_1 = require("./getVariables");
6
- const defaultOptions = {
7
- secretKey: process.env.ORION_ENV_SECRET_KEY,
8
- envFilePath: process.env.ORION_ENV_FILE_PATH,
9
- override: !!process.env.ORION_ENV_OVERRIDE
10
- };
11
- function loadEnv(passedOptions = {}) {
12
- const options = { ...defaultOptions, ...passedOptions };
13
- const data = (0, getConfig_1.getConfig)(options.envFilePath);
14
- const variables = (0, getVariables_1.getVariables)(data, options.secretKey);
15
- for (const key in variables) {
16
- const variable = variables[key];
17
- if (!Object.prototype.hasOwnProperty.call(process.env, key)) {
18
- process.env[key] = variable;
19
- }
20
- else {
21
- if (options.override) {
22
- process.env[key] = variable;
23
- }
24
- if (options.override) {
25
- console.log(`"${key}" is already defined in \`process.env\` and WAS overwritten`);
26
- }
27
- else {
28
- console.log(`"${key}" is already defined in \`process.env\` and was NOT overwritten`);
29
- }
30
- }
31
- }
32
- }
33
- exports.loadEnv = loadEnv;
@@ -1,3 +0,0 @@
1
- export declare function readFile(filePath: string): string;
2
- export declare function writeFile(path: string, content: string): void;
3
- export declare function ensureDirectory(filePath: any): boolean;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ensureDirectory = exports.writeFile = exports.readFile = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- function readFile(filePath) {
10
- if (!fs_1.default.existsSync(filePath))
11
- return null;
12
- return fs_1.default.readFileSync(filePath).toString();
13
- }
14
- exports.readFile = readFile;
15
- function writeFile(path, content) {
16
- ensureDirectory(path);
17
- fs_1.default.writeFileSync(path, content);
18
- }
19
- exports.writeFile = writeFile;
20
- function ensureDirectory(filePath) {
21
- const dirname = path_1.default.dirname(filePath);
22
- if (fs_1.default.existsSync(dirname))
23
- return true;
24
- ensureDirectory(dirname);
25
- fs_1.default.mkdirSync(dirname);
26
- }
27
- exports.ensureDirectory = ensureDirectory;
package/lib/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './environment';
2
- export * from './internalGetEnv';
package/lib/index.js DELETED
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./environment"), exports);
14
- __exportStar(require("./internalGetEnv"), exports);
@@ -1 +0,0 @@
1
- export declare const internalGetEnv: (orionEnvName: string, processEnvName: string) => string | null;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.internalGetEnv = void 0;
4
- const _1 = require(".");
5
- const internalGetEnv = (orionEnvName, processEnvName) => {
6
- if (_1.env[orionEnvName]) {
7
- return _1.env[orionEnvName];
8
- }
9
- if (process.env[processEnvName]) {
10
- return process.env[processEnvName];
11
- }
12
- return null;
13
- };
14
- exports.internalGetEnv = internalGetEnv;
package/tsconfig.json DELETED
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "strict": false,
4
- "outDir": "./lib",
5
- "rootDir": "./src",
6
- "module": "commonjs",
7
- "target": "es2020",
8
- "moduleResolution": "node",
9
- "lib": ["es2020"],
10
- "declaration": true,
11
-
12
- "esModuleInterop": true,
13
- "skipLibCheck": true,
14
- "forceConsistentCasingInFileNames": true,
15
-
16
- // required for ioc
17
- "experimentalDecorators": true,
18
- "emitDecoratorMetadata": true
19
- }
20
- }