@doctorus/common 0.0.0 → 0.0.1

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/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export declare class Hello {
2
2
  sayHello(): string;
3
3
  }
4
+ export * from "./ssm";
package/lib/index.js CHANGED
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.Hello = void 0;
4
18
  class Hello {
@@ -7,4 +21,6 @@ class Hello {
7
21
  }
8
22
  }
9
23
  exports.Hello = Hello;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxLQUFLO0lBQ1QsUUFBUTtRQUNiLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQUpELHNCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEhlbGxvIHtcbiAgcHVibGljIHNheUhlbGxvKCkge1xuICAgIHJldHVybiBcImhlbGxvLCB3b3JsZCFcIjtcbiAgfVxufSJdfQ==
24
+ // Export SSM module
25
+ __exportStar(require("./ssm"), exports);
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFhLEtBQUs7SUFDVCxRQUFRO1FBQ2IsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBSkQsc0JBSUM7QUFFRCxvQkFBb0I7QUFDcEIsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEhlbGxvIHtcbiAgcHVibGljIHNheUhlbGxvKCkge1xuICAgIHJldHVybiBcImhlbGxvLCB3b3JsZCFcIjtcbiAgfVxufVxuXG4vLyBFeHBvcnQgU1NNIG1vZHVsZVxuZXhwb3J0ICogZnJvbSBcIi4vc3NtXCI7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { SSM_PARAM_KEY } from "./keys";
2
+ export { buildSSMPath, buildSSMPathWithPrefix, extractEnvFromPath, extractKeyFromPath, isEnvAgnostic, } from "./utils";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEnvAgnostic = exports.extractKeyFromPath = exports.extractEnvFromPath = exports.buildSSMPathWithPrefix = exports.buildSSMPath = exports.SSM_PARAM_KEY = void 0;
4
+ var keys_1 = require("./keys");
5
+ Object.defineProperty(exports, "SSM_PARAM_KEY", { enumerable: true, get: function () { return keys_1.SSM_PARAM_KEY; } });
6
+ var utils_1 = require("./utils");
7
+ Object.defineProperty(exports, "buildSSMPath", { enumerable: true, get: function () { return utils_1.buildSSMPath; } });
8
+ Object.defineProperty(exports, "buildSSMPathWithPrefix", { enumerable: true, get: function () { return utils_1.buildSSMPathWithPrefix; } });
9
+ Object.defineProperty(exports, "extractEnvFromPath", { enumerable: true, get: function () { return utils_1.extractEnvFromPath; } });
10
+ Object.defineProperty(exports, "extractKeyFromPath", { enumerable: true, get: function () { return utils_1.extractKeyFromPath; } });
11
+ Object.defineProperty(exports, "isEnvAgnostic", { enumerable: true, get: function () { return utils_1.isEnvAgnostic; } });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3NtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUF1QztBQUE5QixxR0FBQSxhQUFhLE9BQUE7QUFDdEIsaUNBTWlCO0FBTGYscUdBQUEsWUFBWSxPQUFBO0FBQ1osK0dBQUEsc0JBQXNCLE9BQUE7QUFDdEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsc0dBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU1NNX1BBUkFNX0tFWSB9IGZyb20gXCIuL2tleXNcIjtcbmV4cG9ydCB7XG4gIGJ1aWxkU1NNUGF0aCxcbiAgYnVpbGRTU01QYXRoV2l0aFByZWZpeCxcbiAgZXh0cmFjdEVudkZyb21QYXRoLFxuICBleHRyYWN0S2V5RnJvbVBhdGgsXG4gIGlzRW52QWdub3N0aWMsXG59IGZyb20gXCIuL3V0aWxzXCI7XG4iXX0=
@@ -0,0 +1,27 @@
1
+ /**
2
+ * SSM Parameter Store keys used across AWS stacks
3
+ */
4
+ export declare enum SSM_PARAM_KEY {
5
+ COGNITO_USER_POOL_ID = "user-pool-id",
6
+ COGNITO_USER_POOL_WEB_CLIENT_ID = "user-pool-web-client-id",
7
+ COGNITO_OAUTH_DOMAIN = "oauth-domain",
8
+ RUM_GUEST_ROLE_ARN = "rum-guest-rome-arn",
9
+ RUM_IDENTITY_POOL_ID = "rum-identity-pool-id",
10
+ RUM_APP_ID = "rum-app-id",
11
+ GRAPHQL_HTTP_URL = "graphql-http-url",
12
+ GRAPHQL_WS_URL = "graphql-ws-url",
13
+ GRAPHQL_HOST = "graphql-host",
14
+ GRAPHQL_API_ID = "graphql-api-id",
15
+ MEDICAL_ASSETS_AWS_CLOUDFRONT_PRIVATE_KEY = "medical-assets-dist-private-key",
16
+ MEDICAL_ASSETS_AWS_CLOUDFRONT_KEY_ID = "medical-assets-dist-public-key-id",
17
+ MEDICAL_ASSETS_BUCKET_NAME = "medical-assets-bucket-name",
18
+ PUBLIC_ASSETS_BUCKET_NAME = "public-assets-bucket-name",
19
+ DB_USER = "db-user",
20
+ DB_PASSWORD = "db-password",
21
+ MEDICAL_ASSETS_DISTRIBUTION_DOMAIN_NAME = "medical-assets-dist-domain-name",
22
+ BASE_HOST = "base-host",
23
+ EMAIL_FROM_ADDRESS = "email-from-address",
24
+ EVENT_API_REAL_TIME_DNS = "event-api-real-time-dns",
25
+ EVENT_API_HTTP_DNS = "event-api-http-dns",
26
+ NOTIFIED_EVENT_ACTIONS = "notified-event-actions"
27
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SSM_PARAM_KEY = void 0;
4
+ /**
5
+ * SSM Parameter Store keys used across AWS stacks
6
+ */
7
+ var SSM_PARAM_KEY;
8
+ (function (SSM_PARAM_KEY) {
9
+ SSM_PARAM_KEY["COGNITO_USER_POOL_ID"] = "user-pool-id";
10
+ SSM_PARAM_KEY["COGNITO_USER_POOL_WEB_CLIENT_ID"] = "user-pool-web-client-id";
11
+ SSM_PARAM_KEY["COGNITO_OAUTH_DOMAIN"] = "oauth-domain";
12
+ SSM_PARAM_KEY["RUM_GUEST_ROLE_ARN"] = "rum-guest-rome-arn";
13
+ SSM_PARAM_KEY["RUM_IDENTITY_POOL_ID"] = "rum-identity-pool-id";
14
+ SSM_PARAM_KEY["RUM_APP_ID"] = "rum-app-id";
15
+ SSM_PARAM_KEY["GRAPHQL_HTTP_URL"] = "graphql-http-url";
16
+ SSM_PARAM_KEY["GRAPHQL_WS_URL"] = "graphql-ws-url";
17
+ SSM_PARAM_KEY["GRAPHQL_HOST"] = "graphql-host";
18
+ SSM_PARAM_KEY["GRAPHQL_API_ID"] = "graphql-api-id";
19
+ SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_PRIVATE_KEY"] = "medical-assets-dist-private-key";
20
+ SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_KEY_ID"] = "medical-assets-dist-public-key-id";
21
+ SSM_PARAM_KEY["MEDICAL_ASSETS_BUCKET_NAME"] = "medical-assets-bucket-name";
22
+ SSM_PARAM_KEY["PUBLIC_ASSETS_BUCKET_NAME"] = "public-assets-bucket-name";
23
+ SSM_PARAM_KEY["DB_USER"] = "db-user";
24
+ SSM_PARAM_KEY["DB_PASSWORD"] = "db-password";
25
+ SSM_PARAM_KEY["MEDICAL_ASSETS_DISTRIBUTION_DOMAIN_NAME"] = "medical-assets-dist-domain-name";
26
+ SSM_PARAM_KEY["BASE_HOST"] = "base-host";
27
+ SSM_PARAM_KEY["EMAIL_FROM_ADDRESS"] = "email-from-address";
28
+ SSM_PARAM_KEY["EVENT_API_REAL_TIME_DNS"] = "event-api-real-time-dns";
29
+ SSM_PARAM_KEY["EVENT_API_HTTP_DNS"] = "event-api-http-dns";
30
+ SSM_PARAM_KEY["NOTIFIED_EVENT_ACTIONS"] = "notified-event-actions";
31
+ })(SSM_PARAM_KEY || (exports.SSM_PARAM_KEY = SSM_PARAM_KEY = {}));
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zc20va2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksYUF1Qlg7QUF2QkQsV0FBWSxhQUFhO0lBQ3ZCLHNEQUFxQyxDQUFBO0lBQ3JDLDRFQUEyRCxDQUFBO0lBQzNELHNEQUFxQyxDQUFBO0lBQ3JDLDBEQUF5QyxDQUFBO0lBQ3pDLDhEQUE2QyxDQUFBO0lBQzdDLDBDQUF5QixDQUFBO0lBQ3pCLHNEQUFxQyxDQUFBO0lBQ3JDLGtEQUFpQyxDQUFBO0lBQ2pDLDhDQUE2QixDQUFBO0lBQzdCLGtEQUFpQyxDQUFBO0lBQ2pDLDhGQUE2RSxDQUFBO0lBQzdFLDJGQUEwRSxDQUFBO0lBQzFFLDBFQUF5RCxDQUFBO0lBQ3pELHdFQUF1RCxDQUFBO0lBQ3ZELG9DQUFtQixDQUFBO0lBQ25CLDRDQUEyQixDQUFBO0lBQzNCLDRGQUEyRSxDQUFBO0lBQzNFLHdDQUF1QixDQUFBO0lBQ3ZCLDBEQUF5QyxDQUFBO0lBQ3pDLG9FQUFtRCxDQUFBO0lBQ25ELDBEQUF5QyxDQUFBO0lBQ3pDLGtFQUFpRCxDQUFBO0FBQ25ELENBQUMsRUF2QlcsYUFBYSw2QkFBYixhQUFhLFFBdUJ4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU1NNIFBhcmFtZXRlciBTdG9yZSBrZXlzIHVzZWQgYWNyb3NzIEFXUyBzdGFja3NcbiAqL1xuZXhwb3J0IGVudW0gU1NNX1BBUkFNX0tFWSB7XG4gIENPR05JVE9fVVNFUl9QT09MX0lEID0gXCJ1c2VyLXBvb2wtaWRcIixcbiAgQ09HTklUT19VU0VSX1BPT0xfV0VCX0NMSUVOVF9JRCA9IFwidXNlci1wb29sLXdlYi1jbGllbnQtaWRcIixcbiAgQ09HTklUT19PQVVUSF9ET01BSU4gPSBcIm9hdXRoLWRvbWFpblwiLFxuICBSVU1fR1VFU1RfUk9MRV9BUk4gPSBcInJ1bS1ndWVzdC1yb21lLWFyblwiLFxuICBSVU1fSURFTlRJVFlfUE9PTF9JRCA9IFwicnVtLWlkZW50aXR5LXBvb2wtaWRcIixcbiAgUlVNX0FQUF9JRCA9IFwicnVtLWFwcC1pZFwiLFxuICBHUkFQSFFMX0hUVFBfVVJMID0gXCJncmFwaHFsLWh0dHAtdXJsXCIsXG4gIEdSQVBIUUxfV1NfVVJMID0gXCJncmFwaHFsLXdzLXVybFwiLFxuICBHUkFQSFFMX0hPU1QgPSBcImdyYXBocWwtaG9zdFwiLFxuICBHUkFQSFFMX0FQSV9JRCA9IFwiZ3JhcGhxbC1hcGktaWRcIixcbiAgTUVESUNBTF9BU1NFVFNfQVdTX0NMT1VERlJPTlRfUFJJVkFURV9LRVkgPSBcIm1lZGljYWwtYXNzZXRzLWRpc3QtcHJpdmF0ZS1rZXlcIixcbiAgTUVESUNBTF9BU1NFVFNfQVdTX0NMT1VERlJPTlRfS0VZX0lEID0gXCJtZWRpY2FsLWFzc2V0cy1kaXN0LXB1YmxpYy1rZXktaWRcIixcbiAgTUVESUNBTF9BU1NFVFNfQlVDS0VUX05BTUUgPSBcIm1lZGljYWwtYXNzZXRzLWJ1Y2tldC1uYW1lXCIsXG4gIFBVQkxJQ19BU1NFVFNfQlVDS0VUX05BTUUgPSBcInB1YmxpYy1hc3NldHMtYnVja2V0LW5hbWVcIixcbiAgREJfVVNFUiA9IFwiZGItdXNlclwiLFxuICBEQl9QQVNTV09SRCA9IFwiZGItcGFzc3dvcmRcIixcbiAgTUVESUNBTF9BU1NFVFNfRElTVFJJQlVUSU9OX0RPTUFJTl9OQU1FID0gXCJtZWRpY2FsLWFzc2V0cy1kaXN0LWRvbWFpbi1uYW1lXCIsXG4gIEJBU0VfSE9TVCA9IFwiYmFzZS1ob3N0XCIsXG4gIEVNQUlMX0ZST01fQUREUkVTUyA9IFwiZW1haWwtZnJvbS1hZGRyZXNzXCIsXG4gIEVWRU5UX0FQSV9SRUFMX1RJTUVfRE5TID0gXCJldmVudC1hcGktcmVhbC10aW1lLWRuc1wiLFxuICBFVkVOVF9BUElfSFRUUF9ETlMgPSBcImV2ZW50LWFwaS1odHRwLWRuc1wiLFxuICBOT1RJRklFRF9FVkVOVF9BQ1RJT05TID0gXCJub3RpZmllZC1ldmVudC1hY3Rpb25zXCIsXG59XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { SSM_PARAM_KEY } from "./keys";
2
+ /**
3
+ * Build SSM parameter path with optional environment prefix
4
+ * @param env - Environment name (e.g., 'dev', 'staging', 'prod'), or null for env-agnostic parameters
5
+ * @param key - SSM parameter key
6
+ * @returns Full SSM parameter path
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * buildSSMPath('prod', SSM_PARAM_KEY.COGNITO_USER_POOL_ID)
11
+ * // Returns: '/prod/user-pool-id'
12
+ *
13
+ * buildSSMPath(null, SSM_PARAM_KEY.DB_USER)
14
+ * // Returns: '/db-user' (env-agnostic)
15
+ * ```
16
+ */
17
+ export declare function buildSSMPath(env: string | null, key: SSM_PARAM_KEY): string;
18
+ /**
19
+ * Build SSM parameter path with custom prefix
20
+ * @param prefix - Custom prefix (e.g., '/myapp/prod')
21
+ * @param key - SSM parameter key
22
+ * @returns Full SSM parameter path
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * buildSSMPathWithPrefix('/myapp/prod', SSM_PARAM_KEY.DB_USER)
27
+ * // Returns: '/myapp/prod/db-user'
28
+ * ```
29
+ */
30
+ export declare function buildSSMPathWithPrefix(prefix: string, key: SSM_PARAM_KEY): string;
31
+ /**
32
+ * Extract environment from SSM parameter path
33
+ * @param path - SSM parameter path
34
+ * @returns Environment name or null if env-agnostic or not found
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * extractEnvFromPath('/prod/user-pool-id')
39
+ * // Returns: 'prod'
40
+ *
41
+ * extractEnvFromPath('/db-user')
42
+ * // Returns: null (env-agnostic parameter)
43
+ * ```
44
+ */
45
+ export declare function extractEnvFromPath(path: string): string | null;
46
+ /**
47
+ * Parse SSM parameter path to extract key
48
+ * @param path - SSM parameter path
49
+ * @returns SSM parameter key or null if not found
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * extractKeyFromPath('/prod/user-pool-id')
54
+ * // Returns: SSM_PARAM_KEY.COGNITO_USER_POOL_ID
55
+ *
56
+ * extractKeyFromPath('/db-user')
57
+ * // Returns: SSM_PARAM_KEY.DB_USER (env-agnostic)
58
+ * ```
59
+ */
60
+ export declare function extractKeyFromPath(path: string): SSM_PARAM_KEY | null;
61
+ /**
62
+ * Check if an SSM parameter path is environment-agnostic
63
+ * @param path - SSM parameter path
64
+ * @returns true if the path is env-agnostic (no environment prefix)
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * isEnvAgnostic('/db-user')
69
+ * // Returns: true
70
+ *
71
+ * isEnvAgnostic('/prod/user-pool-id')
72
+ * // Returns: false
73
+ * ```
74
+ */
75
+ export declare function isEnvAgnostic(path: string): boolean;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSSMPath = buildSSMPath;
4
+ exports.buildSSMPathWithPrefix = buildSSMPathWithPrefix;
5
+ exports.extractEnvFromPath = extractEnvFromPath;
6
+ exports.extractKeyFromPath = extractKeyFromPath;
7
+ exports.isEnvAgnostic = isEnvAgnostic;
8
+ const keys_1 = require("./keys");
9
+ /**
10
+ * Build SSM parameter path with optional environment prefix
11
+ * @param env - Environment name (e.g., 'dev', 'staging', 'prod'), or null for env-agnostic parameters
12
+ * @param key - SSM parameter key
13
+ * @returns Full SSM parameter path
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * buildSSMPath('prod', SSM_PARAM_KEY.COGNITO_USER_POOL_ID)
18
+ * // Returns: '/prod/user-pool-id'
19
+ *
20
+ * buildSSMPath(null, SSM_PARAM_KEY.DB_USER)
21
+ * // Returns: '/db-user' (env-agnostic)
22
+ * ```
23
+ */
24
+ function buildSSMPath(env, key) {
25
+ return env ? `/${env}/${key}` : `/${key}`;
26
+ }
27
+ /**
28
+ * Build SSM parameter path with custom prefix
29
+ * @param prefix - Custom prefix (e.g., '/myapp/prod')
30
+ * @param key - SSM parameter key
31
+ * @returns Full SSM parameter path
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * buildSSMPathWithPrefix('/myapp/prod', SSM_PARAM_KEY.DB_USER)
36
+ * // Returns: '/myapp/prod/db-user'
37
+ * ```
38
+ */
39
+ function buildSSMPathWithPrefix(prefix, key) {
40
+ const normalizedPrefix = prefix.endsWith("/") ? prefix.slice(0, -1) : prefix;
41
+ const normalizedKey = key.startsWith("/") ? key : `/${key}`;
42
+ return `${normalizedPrefix}${normalizedKey}`;
43
+ }
44
+ /**
45
+ * Extract environment from SSM parameter path
46
+ * @param path - SSM parameter path
47
+ * @returns Environment name or null if env-agnostic or not found
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * extractEnvFromPath('/prod/user-pool-id')
52
+ * // Returns: 'prod'
53
+ *
54
+ * extractEnvFromPath('/db-user')
55
+ * // Returns: null (env-agnostic parameter)
56
+ * ```
57
+ */
58
+ function extractEnvFromPath(path) {
59
+ const match = path.match(/^\/([^/]+)\//);
60
+ return match ? match[1] : null;
61
+ }
62
+ /**
63
+ * Parse SSM parameter path to extract key
64
+ * @param path - SSM parameter path
65
+ * @returns SSM parameter key or null if not found
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * extractKeyFromPath('/prod/user-pool-id')
70
+ * // Returns: SSM_PARAM_KEY.COGNITO_USER_POOL_ID
71
+ *
72
+ * extractKeyFromPath('/db-user')
73
+ * // Returns: SSM_PARAM_KEY.DB_USER (env-agnostic)
74
+ * ```
75
+ */
76
+ function extractKeyFromPath(path) {
77
+ const parts = path.split("/");
78
+ const keyValue = parts[parts.length - 1];
79
+ // Check if the key value matches any enum value
80
+ const enumValues = Object.values(keys_1.SSM_PARAM_KEY);
81
+ if (enumValues.includes(keyValue)) {
82
+ return keyValue;
83
+ }
84
+ return null;
85
+ }
86
+ /**
87
+ * Check if an SSM parameter path is environment-agnostic
88
+ * @param path - SSM parameter path
89
+ * @returns true if the path is env-agnostic (no environment prefix)
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * isEnvAgnostic('/db-user')
94
+ * // Returns: true
95
+ *
96
+ * isEnvAgnostic('/prod/user-pool-id')
97
+ * // Returns: false
98
+ * ```
99
+ */
100
+ function isEnvAgnostic(path) {
101
+ // Env-agnostic paths have format: /key (only 2 parts when split by /)
102
+ const parts = path.split("/").filter((p) => p.length > 0);
103
+ return parts.length === 1;
104
+ }
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3NtL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLG9DQUVDO0FBY0Qsd0RBT0M7QUFnQkQsZ0RBR0M7QUFnQkQsZ0RBV0M7QUFnQkQsc0NBSUM7QUExR0QsaUNBQXVDO0FBRXZDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEdBQWtCLEVBQUUsR0FBa0I7SUFDakUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLHNCQUFzQixDQUNwQyxNQUFjLEVBQ2QsR0FBa0I7SUFFbEIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0UsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVELE9BQU8sR0FBRyxnQkFBZ0IsR0FBRyxhQUFhLEVBQUUsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLElBQVk7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDakMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxJQUFZO0lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFekMsZ0RBQWdEO0lBQ2hELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQWEsQ0FBYSxDQUFDO0lBQzVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sUUFBeUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLHNFQUFzRTtJQUN0RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTU01fUEFSQU1fS0VZIH0gZnJvbSBcIi4va2V5c1wiO1xuXG4vKipcbiAqIEJ1aWxkIFNTTSBwYXJhbWV0ZXIgcGF0aCB3aXRoIG9wdGlvbmFsIGVudmlyb25tZW50IHByZWZpeFxuICogQHBhcmFtIGVudiAtIEVudmlyb25tZW50IG5hbWUgKGUuZy4sICdkZXYnLCAnc3RhZ2luZycsICdwcm9kJyksIG9yIG51bGwgZm9yIGVudi1hZ25vc3RpYyBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0ga2V5IC0gU1NNIHBhcmFtZXRlciBrZXlcbiAqIEByZXR1cm5zIEZ1bGwgU1NNIHBhcmFtZXRlciBwYXRoXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBidWlsZFNTTVBhdGgoJ3Byb2QnLCBTU01fUEFSQU1fS0VZLkNPR05JVE9fVVNFUl9QT09MX0lEKVxuICogLy8gUmV0dXJuczogJy9wcm9kL3VzZXItcG9vbC1pZCdcbiAqXG4gKiBidWlsZFNTTVBhdGgobnVsbCwgU1NNX1BBUkFNX0tFWS5EQl9VU0VSKVxuICogLy8gUmV0dXJuczogJy9kYi11c2VyJyAoZW52LWFnbm9zdGljKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNTTVBhdGgoZW52OiBzdHJpbmcgfCBudWxsLCBrZXk6IFNTTV9QQVJBTV9LRVkpOiBzdHJpbmcge1xuICByZXR1cm4gZW52ID8gYC8ke2Vudn0vJHtrZXl9YCA6IGAvJHtrZXl9YDtcbn1cblxuLyoqXG4gKiBCdWlsZCBTU00gcGFyYW1ldGVyIHBhdGggd2l0aCBjdXN0b20gcHJlZml4XG4gKiBAcGFyYW0gcHJlZml4IC0gQ3VzdG9tIHByZWZpeCAoZS5nLiwgJy9teWFwcC9wcm9kJylcbiAqIEBwYXJhbSBrZXkgLSBTU00gcGFyYW1ldGVyIGtleVxuICogQHJldHVybnMgRnVsbCBTU00gcGFyYW1ldGVyIHBhdGhcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGJ1aWxkU1NNUGF0aFdpdGhQcmVmaXgoJy9teWFwcC9wcm9kJywgU1NNX1BBUkFNX0tFWS5EQl9VU0VSKVxuICogLy8gUmV0dXJuczogJy9teWFwcC9wcm9kL2RiLXVzZXInXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU1NNUGF0aFdpdGhQcmVmaXgoXG4gIHByZWZpeDogc3RyaW5nLFxuICBrZXk6IFNTTV9QQVJBTV9LRVksXG4pOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkUHJlZml4ID0gcHJlZml4LmVuZHNXaXRoKFwiL1wiKSA/IHByZWZpeC5zbGljZSgwLCAtMSkgOiBwcmVmaXg7XG4gIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBrZXkuc3RhcnRzV2l0aChcIi9cIikgPyBrZXkgOiBgLyR7a2V5fWA7XG4gIHJldHVybiBgJHtub3JtYWxpemVkUHJlZml4fSR7bm9ybWFsaXplZEtleX1gO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgZW52aXJvbm1lbnQgZnJvbSBTU00gcGFyYW1ldGVyIHBhdGhcbiAqIEBwYXJhbSBwYXRoIC0gU1NNIHBhcmFtZXRlciBwYXRoXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudCBuYW1lIG9yIG51bGwgaWYgZW52LWFnbm9zdGljIG9yIG5vdCBmb3VuZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogZXh0cmFjdEVudkZyb21QYXRoKCcvcHJvZC91c2VyLXBvb2wtaWQnKVxuICogLy8gUmV0dXJuczogJ3Byb2QnXG4gKlxuICogZXh0cmFjdEVudkZyb21QYXRoKCcvZGItdXNlcicpXG4gKiAvLyBSZXR1cm5zOiBudWxsIChlbnYtYWdub3N0aWMgcGFyYW1ldGVyKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RW52RnJvbVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IG1hdGNoID0gcGF0aC5tYXRjaCgvXlxcLyhbXi9dKylcXC8vKTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlIFNTTSBwYXJhbWV0ZXIgcGF0aCB0byBleHRyYWN0IGtleVxuICogQHBhcmFtIHBhdGggLSBTU00gcGFyYW1ldGVyIHBhdGhcbiAqIEByZXR1cm5zIFNTTSBwYXJhbWV0ZXIga2V5IG9yIG51bGwgaWYgbm90IGZvdW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBleHRyYWN0S2V5RnJvbVBhdGgoJy9wcm9kL3VzZXItcG9vbC1pZCcpXG4gKiAvLyBSZXR1cm5zOiBTU01fUEFSQU1fS0VZLkNPR05JVE9fVVNFUl9QT09MX0lEXG4gKlxuICogZXh0cmFjdEtleUZyb21QYXRoKCcvZGItdXNlcicpXG4gKiAvLyBSZXR1cm5zOiBTU01fUEFSQU1fS0VZLkRCX1VTRVIgKGVudi1hZ25vc3RpYylcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEtleUZyb21QYXRoKHBhdGg6IHN0cmluZyk6IFNTTV9QQVJBTV9LRVkgfCBudWxsIHtcbiAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgY29uc3Qga2V5VmFsdWUgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcblxuICAvLyBDaGVjayBpZiB0aGUga2V5IHZhbHVlIG1hdGNoZXMgYW55IGVudW0gdmFsdWVcbiAgY29uc3QgZW51bVZhbHVlcyA9IE9iamVjdC52YWx1ZXMoU1NNX1BBUkFNX0tFWSkgYXMgc3RyaW5nW107XG4gIGlmIChlbnVtVmFsdWVzLmluY2x1ZGVzKGtleVZhbHVlKSkge1xuICAgIHJldHVybiBrZXlWYWx1ZSBhcyBTU01fUEFSQU1fS0VZO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gU1NNIHBhcmFtZXRlciBwYXRoIGlzIGVudmlyb25tZW50LWFnbm9zdGljXG4gKiBAcGFyYW0gcGF0aCAtIFNTTSBwYXJhbWV0ZXIgcGF0aFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBlbnYtYWdub3N0aWMgKG5vIGVudmlyb25tZW50IHByZWZpeClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGlzRW52QWdub3N0aWMoJy9kYi11c2VyJylcbiAqIC8vIFJldHVybnM6IHRydWVcbiAqXG4gKiBpc0VudkFnbm9zdGljKCcvcHJvZC91c2VyLXBvb2wtaWQnKVxuICogLy8gUmV0dXJuczogZmFsc2VcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnZBZ25vc3RpYyhwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gRW52LWFnbm9zdGljIHBhdGhzIGhhdmUgZm9ybWF0OiAva2V5IChvbmx5IDIgcGFydHMgd2hlbiBzcGxpdCBieSAvKVxuICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoXCIvXCIpLmZpbHRlcigocCkgPT4gcC5sZW5ndGggPiAwKTtcbiAgcmV0dXJuIHBhcnRzLmxlbmd0aCA9PT0gMTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "publishConfig": {
31
31
  "access": "public"
32
32
  },
33
- "version": "0.0.0",
33
+ "version": "0.0.1",
34
34
  "jest": {
35
35
  "coverageProvider": "v8",
36
36
  "testMatch": [