@codedrifters/utils 0.0.1 → 0.0.3

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/README.md CHANGED
@@ -209,42 +209,49 @@ function configureDeployment(stage: AwsStageType) {
209
209
  - `AWS_STAGE_TYPE.STAGE` - Staging environment
210
210
  - `AWS_STAGE_TYPE.PROD` - Production environment
211
211
 
212
- #### `AWS_ENVIRONMENT_TYPE` and `AwsEnvironmentType`
212
+ #### `DEPLOYMENT_TARGET_ROLE` and `DeploymentTargetRoleType`
213
213
 
214
- Constants and types for environment classification (primary, secondary).
214
+ Constants and types for deployment target role (primary vs secondary region).
215
215
 
216
216
  ```typescript
217
- import { AWS_ENVIRONMENT_TYPE, AwsEnvironmentType } from '@codedrifters/utils/lib/aws/aws-types';
217
+ import { DEPLOYMENT_TARGET_ROLE, DeploymentTargetRoleType } from '@codedrifters/utils/lib/aws/aws-types';
218
218
 
219
219
  // Use the constant
220
- const env = AWS_ENVIRONMENT_TYPE.PRIMARY; // "primary"
221
- const replicaEnv = AWS_ENVIRONMENT_TYPE.SECONDARY; // "secondary"
220
+ const role = DEPLOYMENT_TARGET_ROLE.PRIMARY; // "primary"
221
+ const replicaRole = DEPLOYMENT_TARGET_ROLE.SECONDARY; // "secondary"
222
222
 
223
223
  // Use the type
224
- function configureRegion(env: AwsEnvironmentType) {
225
- // env can be "primary" or "secondary"
224
+ function configureRegion(role: DeploymentTargetRoleType) {
225
+ // role can be "primary" or "secondary"
226
226
  }
227
227
  ```
228
228
 
229
229
  **Available Values:**
230
- - `AWS_ENVIRONMENT_TYPE.PRIMARY` - Primary region/environment
231
- - `AWS_ENVIRONMENT_TYPE.SECONDARY` - Secondary/replica region/environment
230
+ - `DEPLOYMENT_TARGET_ROLE.PRIMARY` - Primary deployment target (account/region)
231
+ - `DEPLOYMENT_TARGET_ROLE.SECONDARY` - Secondary/replica deployment target
232
232
 
233
233
  **Example Usage:**
234
234
 
235
235
  ```typescript
236
- import { AWS_STAGE_TYPE, AWS_ENVIRONMENT_TYPE } from '@codedrifters/utils/lib/aws/aws-types';
236
+ import { AWS_STAGE_TYPE, DEPLOYMENT_TARGET_ROLE } from '@codedrifters/utils/lib/aws/aws-types';
237
237
  import { AwsDeploymentTarget } from '@codedrifters/configulator';
238
238
 
239
- // Configure a deployment target
239
+ // Configure a deployment target (preferred: deploymentTargetRole)
240
240
  new AwsDeploymentTarget(project, {
241
241
  account: '123456789012',
242
242
  region: 'us-east-1',
243
243
  awsStageType: AWS_STAGE_TYPE.PROD,
244
- awsEnvironmentType: AWS_ENVIRONMENT_TYPE.PRIMARY,
244
+ deploymentTargetRole: DEPLOYMENT_TARGET_ROLE.PRIMARY,
245
245
  });
246
246
  ```
247
247
 
248
+ #### `AWS_ENVIRONMENT_TYPE` and `AwsEnvironmentType` (deprecated)
249
+
250
+ **Deprecated.** Use `DEPLOYMENT_TARGET_ROLE` and `DeploymentTargetRoleType` instead. These names are maintained for backward compatibility.
251
+
252
+ - `AWS_ENVIRONMENT_TYPE` - Same as `DEPLOYMENT_TARGET_ROLE` (PRIMARY, SECONDARY)
253
+ - `AwsEnvironmentType` - Same as `DeploymentTargetRoleType`
254
+
248
255
  ## API Reference
249
256
 
250
257
  ### Exports
@@ -262,8 +269,10 @@ The package exports the following utility functions:
262
269
  **AWS Types:**
263
270
  - `AWS_STAGE_TYPE` - Constants for deployment stages (DEV, STAGE, PROD)
264
271
  - `AwsStageType` - Type for deployment stage values
265
- - `AWS_ENVIRONMENT_TYPE` - Constants for environment types (PRIMARY, SECONDARY)
266
- - `AwsEnvironmentType` - Type for environment type values
272
+ - `DEPLOYMENT_TARGET_ROLE` - Constants for deployment target role (PRIMARY, SECONDARY)
273
+ - `DeploymentTargetRoleType` - Type for deployment target role values
274
+ - `AWS_ENVIRONMENT_TYPE` - (Deprecated) Use `DEPLOYMENT_TARGET_ROLE` instead
275
+ - `AwsEnvironmentType` - (Deprecated) Use `DeploymentTargetRoleType` instead
267
276
 
268
277
  ### Import Paths
269
278
 
@@ -22,9 +22,29 @@ export declare const AWS_STAGE_TYPE: {
22
22
  */
23
23
  export type AwsStageType = (typeof AWS_STAGE_TYPE)[keyof typeof AWS_STAGE_TYPE];
24
24
  /**
25
- * Environment Types
25
+ * Deployment target role: whether an (account, region) is the primary or
26
+ * secondary deployment target (e.g. primary vs replica region).
27
+ */
28
+ export declare const DEPLOYMENT_TARGET_ROLE: {
29
+ /**
30
+ * Account and region that represents the primary region for this service.
31
+ * For example, the base DynamoDB Region for global tables.
32
+ */
33
+ readonly PRIMARY: "primary";
34
+ /**
35
+ * Account and region that represents a secondary region for this service.
36
+ * For example, a replica region for a global DynamoDB table.
37
+ */
38
+ readonly SECONDARY: "secondary";
39
+ };
40
+ /**
41
+ * Type for deployment target role values.
42
+ */
43
+ export type DeploymentTargetRoleType = (typeof DEPLOYMENT_TARGET_ROLE)[keyof typeof DEPLOYMENT_TARGET_ROLE];
44
+ /**
45
+ * Environment types (primary/secondary).
26
46
  *
27
- * Is this a primary of secondary region / environment?
47
+ * @deprecated Use {@link DEPLOYMENT_TARGET_ROLE} instead. This constant is maintained for backward compatibility.
28
48
  */
29
49
  export declare const AWS_ENVIRONMENT_TYPE: {
30
50
  /**
@@ -39,6 +59,8 @@ export declare const AWS_ENVIRONMENT_TYPE: {
39
59
  readonly SECONDARY: "secondary";
40
60
  };
41
61
  /**
42
- * Above const as a type.
62
+ * Type for environment type values.
63
+ *
64
+ * @deprecated Use {@link DeploymentTargetRoleType} instead. This type is maintained for backward compatibility.
43
65
  */
44
- export type AwsEnvironmentType = (typeof AWS_ENVIRONMENT_TYPE)[keyof typeof AWS_ENVIRONMENT_TYPE];
66
+ export type AwsEnvironmentType = DeploymentTargetRoleType;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AWS_ENVIRONMENT_TYPE = exports.AWS_STAGE_TYPE = void 0;
3
+ exports.AWS_ENVIRONMENT_TYPE = exports.DEPLOYMENT_TARGET_ROLE = exports.AWS_STAGE_TYPE = void 0;
4
4
  /**
5
5
  * Stage Types
6
6
  *
@@ -21,11 +21,10 @@ exports.AWS_STAGE_TYPE = {
21
21
  PROD: "prod",
22
22
  };
23
23
  /**
24
- * Environment Types
25
- *
26
- * Is this a primary of secondary region / environment?
24
+ * Deployment target role: whether an (account, region) is the primary or
25
+ * secondary deployment target (e.g. primary vs replica region).
27
26
  */
28
- exports.AWS_ENVIRONMENT_TYPE = {
27
+ exports.DEPLOYMENT_TARGET_ROLE = {
29
28
  /**
30
29
  * Account and region that represents the primary region for this service.
31
30
  * For example, the base DynamoDB Region for global tables.
@@ -37,4 +36,10 @@ exports.AWS_ENVIRONMENT_TYPE = {
37
36
  */
38
37
  SECONDARY: "secondary",
39
38
  };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFHO0lBQzVCOztPQUVHO0lBQ0gsR0FBRyxFQUFFLEtBQUs7SUFFVjs7T0FFRztJQUNILEtBQUssRUFBRSxPQUFPO0lBRWQ7O09BRUc7SUFDSCxJQUFJLEVBQUUsTUFBTTtDQUNKLENBQUM7QUFPWDs7OztHQUlHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRztJQUNsQzs7O09BR0c7SUFDSCxPQUFPLEVBQUUsU0FBUztJQUNsQjs7O09BR0c7SUFDSCxTQUFTLEVBQUUsV0FBVztDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YWdlIFR5cGVzXG4gKlxuICogV2hhdCBzdGFnZSBvZiBkZXBsb3ltZW50IGlzIHRoaXM/IERldiwgc3RhZ2luZywgb3IgcHJvZD9cbiAqL1xuZXhwb3J0IGNvbnN0IEFXU19TVEFHRV9UWVBFID0ge1xuICAvKipcbiAgICogRGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQsIHR5cGljYWxseSB1c2VkIGZvciB0ZXN0aW5nIGFuZCBkZXZlbG9wbWVudC5cbiAgICovXG4gIERFVjogXCJkZXZcIixcblxuICAvKipcbiAgICogU3RhZ2luZyBlbnZpcm9ubWVudCwgdXNlZCBmb3IgcHJlLXByb2R1Y3Rpb24gdGVzdGluZy5cbiAgICovXG4gIFNUQUdFOiBcInN0YWdlXCIsXG5cbiAgLyoqXG4gICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQsIHVzZWQgZm9yIGxpdmUgZGVwbG95bWVudHMuXG4gICAqL1xuICBQUk9EOiBcInByb2RcIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQWJvdmUgY29uc3QgYXMgYSB0eXBlLlxuICovXG5leHBvcnQgdHlwZSBBd3NTdGFnZVR5cGUgPSAodHlwZW9mIEFXU19TVEFHRV9UWVBFKVtrZXlvZiB0eXBlb2YgQVdTX1NUQUdFX1RZUEVdO1xuXG4vKipcbiAqIEVudmlyb25tZW50IFR5cGVzXG4gKlxuICogSXMgdGhpcyBhIHByaW1hcnkgb2Ygc2Vjb25kYXJ5IHJlZ2lvbiAvIGVudmlyb25tZW50P1xuICovXG5leHBvcnQgY29uc3QgQVdTX0VOVklST05NRU5UX1RZUEUgPSB7XG4gIC8qKlxuICAgKiBBY2NvdW50IGFuZCByZWdpb24gdGhhdCByZXByZXNlbnRzIHRoZSBwcmltYXJ5IHJlZ2lvbiBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIGJhc2UgRHluYW1vREIgUmVnaW9uIGZvciBnbG9iYWwgdGFibGVzLlxuICAgKi9cbiAgUFJJTUFSWTogXCJwcmltYXJ5XCIsXG4gIC8qKlxuICAgKiBBY2NvdW50IGFuZCByZWdpb24gdGhhdCByZXByZXNlbnRzIGEgc2Vjb25kYXJ5IHJlZ2lvbiBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKiBGb3IgZXhhbXBsZSwgYSByZXBsaWNhIHJlZ2lvbiBmb3IgYSBnbG9iYWwgRHluYW1vREIgdGFibGUuXG4gICAqL1xuICBTRUNPTkRBUlk6IFwic2Vjb25kYXJ5XCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFib3ZlIGNvbnN0IGFzIGEgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXdzRW52aXJvbm1lbnRUeXBlID1cbiAgKHR5cGVvZiBBV1NfRU5WSVJPTk1FTlRfVFlQRSlba2V5b2YgdHlwZW9mIEFXU19FTlZJUk9OTUVOVF9UWVBFXTtcbiJdfQ==
39
+ /**
40
+ * Environment types (primary/secondary).
41
+ *
42
+ * @deprecated Use {@link DEPLOYMENT_TARGET_ROLE} instead. This constant is maintained for backward compatibility.
43
+ */
44
+ exports.AWS_ENVIRONMENT_TYPE = exports.DEPLOYMENT_TARGET_ROLE;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFHO0lBQzVCOztPQUVHO0lBQ0gsR0FBRyxFQUFFLEtBQUs7SUFFVjs7T0FFRztJQUNILEtBQUssRUFBRSxPQUFPO0lBRWQ7O09BRUc7SUFDSCxJQUFJLEVBQUUsTUFBTTtDQUNKLENBQUM7QUFPWDs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDOzs7T0FHRztJQUNILE9BQU8sRUFBRSxTQUFTO0lBQ2xCOzs7T0FHRztJQUNILFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQVFYOzs7O0dBSUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLDhCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFnZSBUeXBlc1xuICpcbiAqIFdoYXQgc3RhZ2Ugb2YgZGVwbG95bWVudCBpcyB0aGlzPyBEZXYsIHN0YWdpbmcsIG9yIHByb2Q/XG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU1RBR0VfVFlQRSA9IHtcbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50LCB0eXBpY2FsbHkgdXNlZCBmb3IgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQuXG4gICAqL1xuICBERVY6IFwiZGV2XCIsXG5cbiAgLyoqXG4gICAqIFN0YWdpbmcgZW52aXJvbm1lbnQsIHVzZWQgZm9yIHByZS1wcm9kdWN0aW9uIHRlc3RpbmcuXG4gICAqL1xuICBTVEFHRTogXCJzdGFnZVwiLFxuXG4gIC8qKlxuICAgKiBQcm9kdWN0aW9uIGVudmlyb25tZW50LCB1c2VkIGZvciBsaXZlIGRlcGxveW1lbnRzLlxuICAgKi9cbiAgUFJPRDogXCJwcm9kXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFib3ZlIGNvbnN0IGFzIGEgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXdzU3RhZ2VUeXBlID0gKHR5cGVvZiBBV1NfU1RBR0VfVFlQRSlba2V5b2YgdHlwZW9mIEFXU19TVEFHRV9UWVBFXTtcblxuLyoqXG4gKiBEZXBsb3ltZW50IHRhcmdldCByb2xlOiB3aGV0aGVyIGFuIChhY2NvdW50LCByZWdpb24pIGlzIHRoZSBwcmltYXJ5IG9yXG4gKiBzZWNvbmRhcnkgZGVwbG95bWVudCB0YXJnZXQgKGUuZy4gcHJpbWFyeSB2cyByZXBsaWNhIHJlZ2lvbikuXG4gKi9cbmV4cG9ydCBjb25zdCBERVBMT1lNRU5UX1RBUkdFVF9ST0xFID0ge1xuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyB0aGUgcHJpbWFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBiYXNlIER5bmFtb0RCIFJlZ2lvbiBmb3IgZ2xvYmFsIHRhYmxlcy5cbiAgICovXG4gIFBSSU1BUlk6IFwicHJpbWFyeVwiLFxuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyBhIHNlY29uZGFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcmVwbGljYSByZWdpb24gZm9yIGEgZ2xvYmFsIER5bmFtb0RCIHRhYmxlLlxuICAgKi9cbiAgU0VDT05EQVJZOiBcInNlY29uZGFyeVwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBUeXBlIGZvciBkZXBsb3ltZW50IHRhcmdldCByb2xlIHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGVwbG95bWVudFRhcmdldFJvbGVUeXBlID1cbiAgKHR5cGVvZiBERVBMT1lNRU5UX1RBUkdFVF9ST0xFKVtrZXlvZiB0eXBlb2YgREVQTE9ZTUVOVF9UQVJHRVRfUk9MRV07XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdHlwZXMgKHByaW1hcnkvc2Vjb25kYXJ5KS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIERFUExPWU1FTlRfVEFSR0VUX1JPTEV9IGluc3RlYWQuIFRoaXMgY29uc3RhbnQgaXMgbWFpbnRhaW5lZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFXU19FTlZJUk9OTUVOVF9UWVBFID0gREVQTE9ZTUVOVF9UQVJHRVRfUk9MRTtcblxuLyoqXG4gKiBUeXBlIGZvciBlbnZpcm9ubWVudCB0eXBlIHZhbHVlcy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIERlcGxveW1lbnRUYXJnZXRSb2xlVHlwZX0gaW5zdGVhZC4gVGhpcyB0eXBlIGlzIG1haW50YWluZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c0Vudmlyb25tZW50VHlwZSA9IERlcGxveW1lbnRUYXJnZXRSb2xlVHlwZTtcbiJdfQ==
package/package.json CHANGED
@@ -10,10 +10,10 @@
10
10
  "organization": true
11
11
  },
12
12
  "devDependencies": {
13
- "@swc/core": "^1.15.7",
13
+ "@swc/core": "^1.15.11",
14
14
  "@swc/jest": "^0.2.39",
15
15
  "@types/jest": "^30.0.0",
16
- "@types/node": "^24.10.1",
16
+ "@types/node": "^24.10.13",
17
17
  "@typescript-eslint/eslint-plugin": "^8",
18
18
  "@typescript-eslint/parser": "^8",
19
19
  "commit-and-tag-version": "^12",
@@ -21,15 +21,15 @@
21
21
  "eslint-config-prettier": "^10.1.8",
22
22
  "eslint-import-resolver-typescript": "^4.4.4",
23
23
  "eslint-plugin-import": "^2.32.0",
24
- "eslint-plugin-prettier": "^5.5.4",
24
+ "eslint-plugin-prettier": "^5.5.5",
25
25
  "jest": "^30.2.0",
26
26
  "jest-junit": "^16",
27
- "prettier": "^3.6.2",
27
+ "prettier": "^3.8.1",
28
28
  "typescript": "^5.9.3"
29
29
  },
30
30
  "main": "lib/index.js",
31
31
  "license": "MIT",
32
- "version": "0.0.1",
32
+ "version": "0.0.3",
33
33
  "types": "lib/index.d.ts",
34
34
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
35
35
  "scripts": {