@agnostack/env 1.0.0 → 1.0.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [1.0.2](https://github.com/agnostack/env/compare/v1.0.1...v1.0.2) (2025-01-14)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * initial working version? ([3a52ee1](https://github.com/agnostack/env/commit/3a52ee1f31326c3d51b6af74a4198a3554119781))
7
+ * initial working version? ([f8624b0](https://github.com/agnostack/env/commit/f8624b07b89b17c1f737d5f1e3b7bdf73b0ed3ff))
8
+
9
+ ## [1.0.1](https://github.com/agnostack/env/compare/v1.0.0...v1.0.1) (2025-01-14)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * initial working version? ([6643eb4](https://github.com/agnostack/env/commit/6643eb4b58755dab192b5f0b59e6be3efbb3c7ad))
15
+
1
16
  # 1.0.0 (2025-01-14)
2
17
 
3
18
 
package/dist/utils.d.ts CHANGED
@@ -1 +1,20 @@
1
- export const FOO: "bar";
1
+ export namespace ENV_PREFIX {
2
+ let NEXT: string;
3
+ let VITE: string;
4
+ let GATSBY: string;
5
+ let DEFAULT: string;
6
+ }
7
+ export const ENV_PREFIXES: string[];
8
+ export function cleanPublicEnv(_env: any, keyValidator?: (envKey: any) => boolean): {};
9
+ export function parseEnvData(_env?: NodeJS.ProcessEnv): {
10
+ nextEnv: {};
11
+ publicEnv: {};
12
+ env: {
13
+ ENVIRONMENT: string;
14
+ TZ?: string;
15
+ };
16
+ params: {};
17
+ stringifiedEnv: {};
18
+ args: any[];
19
+ };
20
+ export function getPublicEnvValue(publicEnv: any, key: any): any;
package/dist/utils.js CHANGED
@@ -1,5 +1,116 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FOO = void 0;
4
- exports.FOO = 'bar';
14
+ exports.getPublicEnvValue = exports.parseEnvData = exports.cleanPublicEnv = exports.ENV_PREFIXES = exports.ENV_PREFIX = void 0;
15
+ exports.ENV_PREFIX = {
16
+ NEXT: 'NEXT_PUBLIC_',
17
+ VITE: 'VITE_PUBLIC_',
18
+ GATSBY: 'GATSBY_',
19
+ DEFAULT: 'PUBLIC_',
20
+ };
21
+ exports.ENV_PREFIXES = Object.values(exports.ENV_PREFIX);
22
+ // HMMM: what if 'string' is an object?
23
+ const ensureStringOnly = (string) => (
24
+ // eslint-disable-next-line eqeqeq
25
+ (string != undefined) ? `${string}` : '');
26
+ const stringNotEmptyOnly = (stringable) => {
27
+ const string = ensureStringOnly(stringable);
28
+ return ((string.length > 0) && !['null', 'undefined'].includes(string));
29
+ };
30
+ const stringEmptyOnly = (stringable) => (!stringNotEmptyOnly(stringable));
31
+ const isCapitalized = (string) => (/^[A-Z_]+$/.test(ensureStringOnly(string)));
32
+ const nextKeyValidator = (envKey) => (
33
+ // NOTE: not allowed by NEXT: https://nextjs.org/docs/messages/env-key-not-allowed
34
+ !(envKey.startsWith('__') || envKey.startsWith('NODE_')));
35
+ const publicKeyValidator = (envKey) => (exports.ENV_PREFIXES.some((envPrefix) => envKey === null || envKey === void 0 ? void 0 : envKey.startsWith(envPrefix)) ||
36
+ ['NODE_ENV', 'PORT', 'ENVIRONMENT', 'DEBUG', 'SCOPES', 'SHOPIFY_API_SCOPES'].includes(envKey));
37
+ const paramKeyValidator = (envKey) => (publicKeyValidator(envKey) || (nextKeyValidator(envKey) &&
38
+ !isCapitalized(envKey) &&
39
+ !envKey.startsWith('npm_')));
40
+ // TODO: move to processBatch???
41
+ const stringifyEnv = (_env) => (Object.entries(_env !== null && _env !== void 0 ? _env : {}).reduce((__env, [key, val]) => (Object.assign(Object.assign({}, __env), {
42
+ // NOTE: DefinePlugin requires stringified
43
+ [key]: JSON.stringify(val) })), {}));
44
+ // TODO: move to processBatch???
45
+ const cleanEnv = (_env, keyValidator = nextKeyValidator) => (Object.entries(_env !== null && _env !== void 0 ? _env : []).reduce((__env, [key, val]) => (Object.assign(Object.assign({}, __env), keyValidator(key) && {
46
+ [key]: val,
47
+ })), {}));
48
+ const cleanPublicEnv = (_env, keyValidator = publicKeyValidator) => (cleanEnv(_env, keyValidator));
49
+ exports.cleanPublicEnv = cleanPublicEnv;
50
+ const cleanParams = (_env, keyValidator = paramKeyValidator) => (cleanEnv(_env, keyValidator));
51
+ const parseEnvData = (_env = process.env) => {
52
+ const { ENVIRONMENT, NODE_ENV } = _env;
53
+ const _environment = [ENVIRONMENT, NODE_ENV, 'development'].find((value) => stringNotEmptyOnly(value));
54
+ const mergedEnv = Object.assign(Object.assign({}, _env), { ENVIRONMENT: _environment });
55
+ const _a = process.argv.reduce(({ args: _args, params: _params, }, data) => {
56
+ var _a, _b;
57
+ const [_param, value] = (_a = data === null || data === void 0 ? void 0 : data.split('=')) !== null && _a !== void 0 ? _a : [];
58
+ const param = (_b = _param === null || _param === void 0 ? void 0 : _param.replace) === null || _b === void 0 ? void 0 : _b.call(_param, '--', '');
59
+ if (stringNotEmptyOnly(param)) {
60
+ return {
61
+ args: _args,
62
+ params: _params,
63
+ };
64
+ }
65
+ return {
66
+ args: [
67
+ ..._args,
68
+ ...!value ? [param] : []
69
+ ],
70
+ params: Object.assign(Object.assign({}, _params), stringNotEmptyOnly(value) && {
71
+ [param]: value,
72
+ }),
73
+ };
74
+ }, {
75
+ args: [],
76
+ params: mergedEnv,
77
+ }), { params } = _a, output = __rest(_a, ["params"]);
78
+ const nextEnv = cleanEnv(mergedEnv);
79
+ const publicEnv = (0, exports.cleanPublicEnv)(mergedEnv);
80
+ return Object.assign(Object.assign({}, output), { nextEnv,
81
+ publicEnv, env: mergedEnv, params: cleanParams(params), stringifiedEnv: stringifyEnv(publicEnv) });
82
+ };
83
+ exports.parseEnvData = parseEnvData;
84
+ const getPublicEnvValue = (publicEnv, key) => {
85
+ let envValue;
86
+ if (stringEmptyOnly(key) || !publicEnv) {
87
+ return envValue;
88
+ }
89
+ if (stringNotEmptyOnly(publicEnv === null || publicEnv === void 0 ? void 0 : publicEnv[key])) {
90
+ return publicEnv[key];
91
+ }
92
+ let baseKey = key;
93
+ // NOTE: intentionally using for/of loop instead of map so we can break to exit quickly soon as matched
94
+ // eslint-disable-next-line no-restricted-syntax
95
+ for (const envPrefix of exports.ENV_PREFIXES) {
96
+ if (key.startsWith(envPrefix)) {
97
+ const trimmedKey = key.slice(envPrefix.length);
98
+ if (stringNotEmptyOnly(trimmedKey)) {
99
+ baseKey = trimmedKey;
100
+ break;
101
+ }
102
+ }
103
+ }
104
+ const matchableEnvKeys = exports.ENV_PREFIXES.map((envPrefix) => `${envPrefix}${baseKey}`);
105
+ // NOTE: intentionally using for/of loop instead of map so we can break to exit quickly soon as matched
106
+ // eslint-disable-next-line no-restricted-syntax
107
+ for (const matchableEnvKey of matchableEnvKeys) {
108
+ envValue = publicEnv[matchableEnvKey];
109
+ if (stringNotEmptyOnly(envValue)) {
110
+ break;
111
+ }
112
+ }
113
+ return envValue;
114
+ };
115
+ exports.getPublicEnvValue = getPublicEnvValue;
5
116
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,KAAK,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agnostack/env",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "author": "agnoStack Dev <developers@agnostack.com> (https://agnostack.com)",
5
5
  "owner": "agnoStack",
6
6
  "description": "Please contact agnoStack via info@agnostack.com for any questions",
@@ -51,8 +51,8 @@
51
51
  "@types/jest": "26.0.24",
52
52
  "@types/react": "17.0.2",
53
53
  "@types/react-dom": "17.0.2",
54
- "@typescript-eslint/eslint-plugin": "5.36.1",
55
- "@typescript-eslint/parser": "5.36.1",
54
+ "@typescript-eslint/eslint-plugin": "6.3.0",
55
+ "@typescript-eslint/parser": "6.3.0",
56
56
  "chai": "4.3.10",
57
57
  "chai-as-promised": "7.1.1",
58
58
  "chalk": "4.1.2",