@settlemint/sdk-utils 2.3.2-pr708c218f → 2.3.2-pr74f654b5

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 (89) hide show
  1. package/README.md +51 -7
  2. package/dist/environment.cjs +25 -409
  3. package/dist/environment.d.cts +3 -176
  4. package/dist/environment.d.ts +3 -176
  5. package/dist/environment.js +4 -0
  6. package/dist/filesystem.cjs +39 -123
  7. package/dist/filesystem.d.cts +4 -59
  8. package/dist/filesystem.d.ts +4 -59
  9. package/dist/filesystem.js +5 -0
  10. package/dist/http.cjs +34 -98
  11. package/dist/http.d.cts +4 -55
  12. package/dist/http.d.ts +4 -55
  13. package/dist/http.js +5 -0
  14. package/dist/index.cjs +27 -118
  15. package/dist/index.d.cts +4 -122
  16. package/dist/index.d.ts +4 -122
  17. package/dist/index.js +7 -0
  18. package/dist/json.cjs +83 -0
  19. package/dist/json.cjs.map +1 -0
  20. package/dist/json.d.cts +56 -0
  21. package/dist/json.d.ts +56 -0
  22. package/dist/json.js +80 -0
  23. package/dist/json.js.map +1 -0
  24. package/dist/logging.cjs +34 -141
  25. package/dist/logging.d.cts +4 -70
  26. package/dist/logging.d.ts +4 -70
  27. package/dist/logging.js +5 -0
  28. package/dist/package-manager.cjs +51 -196
  29. package/dist/package-manager.d.cts +7 -114
  30. package/dist/package-manager.d.ts +7 -114
  31. package/dist/package-manager.js +9 -0
  32. package/dist/retry.cjs +69 -0
  33. package/dist/retry.cjs.map +1 -0
  34. package/dist/retry.d.cts +19 -0
  35. package/dist/retry.d.ts +19 -0
  36. package/dist/retry.js +46 -0
  37. package/dist/retry.js.map +1 -0
  38. package/dist/runtime.cjs +38 -42
  39. package/dist/runtime.d.cts +2 -32
  40. package/dist/runtime.d.ts +2 -32
  41. package/dist/runtime.js +3 -0
  42. package/dist/string.cjs +76 -0
  43. package/dist/string.cjs.map +1 -0
  44. package/dist/string.d.cts +58 -0
  45. package/dist/string.d.ts +58 -0
  46. package/dist/string.js +72 -0
  47. package/dist/string.js.map +1 -0
  48. package/dist/terminal.cjs +91 -258
  49. package/dist/terminal.d.cts +11 -219
  50. package/dist/terminal.d.ts +11 -219
  51. package/dist/terminal.js +12 -0
  52. package/dist/url.cjs +25 -0
  53. package/dist/url.cjs.map +1 -0
  54. package/dist/url.d.cts +20 -0
  55. package/dist/url.d.ts +20 -0
  56. package/dist/url.js +24 -0
  57. package/dist/url.js.map +1 -0
  58. package/dist/validation.cjs +89 -186
  59. package/dist/validation.d.cts +7 -243
  60. package/dist/validation.d.ts +7 -243
  61. package/dist/validation.js +8 -0
  62. package/package.json +6 -6
  63. package/dist/environment.cjs.map +0 -1
  64. package/dist/environment.mjs +0 -384
  65. package/dist/environment.mjs.map +0 -1
  66. package/dist/filesystem.cjs.map +0 -1
  67. package/dist/filesystem.mjs +0 -105
  68. package/dist/filesystem.mjs.map +0 -1
  69. package/dist/http.cjs.map +0 -1
  70. package/dist/http.mjs +0 -80
  71. package/dist/http.mjs.map +0 -1
  72. package/dist/index.cjs.map +0 -1
  73. package/dist/index.mjs +0 -90
  74. package/dist/index.mjs.map +0 -1
  75. package/dist/logging.cjs.map +0 -1
  76. package/dist/logging.mjs +0 -123
  77. package/dist/logging.mjs.map +0 -1
  78. package/dist/package-manager.cjs.map +0 -1
  79. package/dist/package-manager.mjs +0 -167
  80. package/dist/package-manager.mjs.map +0 -1
  81. package/dist/runtime.cjs.map +0 -1
  82. package/dist/runtime.mjs +0 -23
  83. package/dist/runtime.mjs.map +0 -1
  84. package/dist/terminal.cjs.map +0 -1
  85. package/dist/terminal.mjs +0 -230
  86. package/dist/terminal.mjs.map +0 -1
  87. package/dist/validation.cjs.map +0 -1
  88. package/dist/validation.mjs +0 -161
  89. package/dist/validation.mjs.map +0 -1
package/README.md CHANGED
@@ -39,6 +39,7 @@
39
39
  - [ensureServer()](#ensureserver)
40
40
  - [executeCommand()](#executecommand)
41
41
  - [exists()](#exists)
42
+ - [extractBaseUrlBeforeSegment()](#extractbaseurlbeforesegment)
42
43
  - [extractJsonObject()](#extractjsonobject)
43
44
  - [fetchWithRetry()](#fetchwithretry)
44
45
  - [findMonoRepoPackages()](#findmonorepopackages)
@@ -91,6 +92,7 @@
91
92
  - [PersonalAccessTokenSchema](#personalaccesstokenschema)
92
93
  - [runsInBrowser](#runsinbrowser)
93
94
  - [runsOnServer](#runsonserver)
95
+ - [STANDALONE\_INSTANCE](#standalone_instance)
94
96
  - [UniqueNameSchema](#uniquenameschema)
95
97
  - [UrlOrPathSchema](#urlorpathschema)
96
98
  - [UrlPathSchema](#urlpathschema)
@@ -415,6 +417,38 @@ if (await exists('/path/to/file.txt')) {
415
417
 
416
418
  ***
417
419
 
420
+ #### extractBaseUrlBeforeSegment()
421
+
422
+ > **extractBaseUrlBeforeSegment**(`baseUrl`, `pathSegment`): `string`
423
+
424
+ Defined in: [sdk/utils/src/url.ts:15](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/url.ts#L15)
425
+
426
+ Extracts the base URL before a specific segment in a URL.
427
+
428
+ ##### Parameters
429
+
430
+ | Parameter | Type | Description |
431
+ | ------ | ------ | ------ |
432
+ | `baseUrl` | `string` | The base URL to extract the path from |
433
+ | `pathSegment` | `string` | The path segment to start from |
434
+
435
+ ##### Returns
436
+
437
+ `string`
438
+
439
+ The base URL before the specified segment
440
+
441
+ ##### Example
442
+
443
+ ```typescript
444
+ import { extractBaseUrlBeforeSegment } from "@settlemint/sdk-utils/url";
445
+
446
+ const baseUrl = extractBaseUrlBeforeSegment("https://example.com/api/v1/subgraphs/name/my-subgraph", "/subgraphs");
447
+ // Returns: "https://example.com/api/v1"
448
+ ```
449
+
450
+ ***
451
+
418
452
  #### extractJsonObject()
419
453
 
420
454
  > **extractJsonObject**\<`T`\>(`value`): `null` \| `T`
@@ -1174,7 +1208,7 @@ The fetch function
1174
1208
 
1175
1209
  > **retryWhenFailed**\<`T`\>(`fn`, `maxRetries`, `initialSleepTime`, `stopOnError?`): `Promise`\<`T`\>
1176
1210
 
1177
- Defined in: [sdk/utils/src/retry.ts:14](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/retry.ts#L14)
1211
+ Defined in: [sdk/utils/src/retry.ts:16](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/retry.ts#L16)
1178
1212
 
1179
1213
  Retry a function when it fails.
1180
1214
 
@@ -1663,7 +1697,7 @@ Options for configuring the spinner behavior
1663
1697
 
1664
1698
  > **DotEnv** = `z.infer`\<*typeof* [`DotEnvSchema`](#dotenvschema)\>
1665
1699
 
1666
- Defined in: [sdk/utils/src/validation/dot-env.schema.ts:101](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L101)
1700
+ Defined in: [sdk/utils/src/validation/dot-env.schema.ts:106](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L106)
1667
1701
 
1668
1702
  Type definition for the environment variables schema.
1669
1703
 
@@ -1673,7 +1707,7 @@ Type definition for the environment variables schema.
1673
1707
 
1674
1708
  > **DotEnvPartial** = `z.infer`\<*typeof* [`DotEnvSchemaPartial`](#dotenvschemapartial)\>
1675
1709
 
1676
- Defined in: [sdk/utils/src/validation/dot-env.schema.ts:112](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L112)
1710
+ Defined in: [sdk/utils/src/validation/dot-env.schema.ts:117](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L117)
1677
1711
 
1678
1712
  Type definition for the partial environment variables schema.
1679
1713
 
@@ -1724,9 +1758,9 @@ Application access tokens start with 'sm_aat_' prefix.
1724
1758
 
1725
1759
  #### DotEnvSchema
1726
1760
 
1727
- > `const` **DotEnvSchema**: `ZodObject`\<\{ `SETTLEMINT_ACCESS_TOKEN`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_ACCESSIBLE_PRIVATE_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_APPLICATION`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NETWORK`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKSCOUT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_CUSTOM_DEPLOYMENT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA_ADMIN_SECRET`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA_DATABASE_URL`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HD_PRIVATE_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_INSTANCE`: `ZodDefault`\<`ZodString`\>; `SETTLEMINT_IPFS`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_IPFS_API_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_IPFS_GATEWAY_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_IPFS_PINNING_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_LOG_LEVEL`: `ZodDefault`\<`ZodEnum`\<\{ `debug`: `"debug"`; `error`: `"error"`; `info`: `"info"`; `none`: `"none"`; `warn`: `"warn"`; \}\>\>; `SETTLEMINT_MINIO`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_MINIO_ACCESS_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_MINIO_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_MINIO_SECRET_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_NEW_PROJECT_NAME`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL_REST_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL_WS_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_THEGRAPH`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS`: `ZodPipe`\<`ZodTransform`\<`null` \| `never`[], `unknown`\>, `ZodOptional`\<`ZodArray`\<`ZodString`\>\>\>; `SETTLEMINT_WORKSPACE`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>
1761
+ > `const` **DotEnvSchema**: `ZodObject`\<\{ `SETTLEMINT_ACCESS_TOKEN`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_ACCESSIBLE_PRIVATE_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_APPLICATION`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NETWORK`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKSCOUT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_CUSTOM_DEPLOYMENT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA_ADMIN_SECRET`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA_DATABASE_URL`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HASURA_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HD_PRIVATE_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_INSTANCE`: `ZodDefault`\<`ZodUnion`\<readonly \[`ZodString`, `ZodLiteral`\<`"standalone"`\>\]\>\>; `SETTLEMINT_IPFS`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_IPFS_API_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_IPFS_GATEWAY_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_IPFS_PINNING_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_LOG_LEVEL`: `ZodDefault`\<`ZodEnum`\<\{ `debug`: `"debug"`; `error`: `"error"`; `info`: `"info"`; `none`: `"none"`; `warn`: `"warn"`; \}\>\>; `SETTLEMINT_MINIO`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_MINIO_ACCESS_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_MINIO_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_MINIO_SECRET_KEY`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_NEW_PROJECT_NAME`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL_REST_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_PORTAL_WS_ENDPOINT`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_THEGRAPH`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH`: `ZodOptional`\<`ZodString`\>; `SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS`: `ZodPipe`\<`ZodTransform`\<`null` \| `never`[], `unknown`\>, `ZodOptional`\<`ZodArray`\<`ZodString`\>\>\>; `SETTLEMINT_WORKSPACE`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>
1728
1762
 
1729
- Defined in: [sdk/utils/src/validation/dot-env.schema.ts:12](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L12)
1763
+ Defined in: [sdk/utils/src/validation/dot-env.schema.ts:17](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L17)
1730
1764
 
1731
1765
  Schema for validating environment variables used by the SettleMint SDK.
1732
1766
  Defines validation rules and types for configuration values like URLs,
@@ -1736,9 +1770,9 @@ access tokens, workspace names, and service endpoints.
1736
1770
 
1737
1771
  #### DotEnvSchemaPartial
1738
1772
 
1739
- > `const` **DotEnvSchemaPartial**: `ZodObject`\<\{ `SETTLEMINT_ACCESS_TOKEN`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_ACCESSIBLE_PRIVATE_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_APPLICATION`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NETWORK`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKSCOUT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_CUSTOM_DEPLOYMENT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA_ADMIN_SECRET`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA_DATABASE_URL`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HD_PRIVATE_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_INSTANCE`: `ZodOptional`\<`ZodDefault`\<`ZodString`\>\>; `SETTLEMINT_IPFS`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_IPFS_API_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_IPFS_GATEWAY_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_IPFS_PINNING_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_LOG_LEVEL`: `ZodOptional`\<`ZodDefault`\<`ZodEnum`\<\{ `debug`: `"debug"`; `error`: `"error"`; `info`: `"info"`; `none`: `"none"`; `warn`: `"warn"`; \}\>\>\>; `SETTLEMINT_MINIO`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_MINIO_ACCESS_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_MINIO_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_MINIO_SECRET_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_NEW_PROJECT_NAME`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL_REST_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL_WS_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_THEGRAPH`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS`: `ZodOptional`\<`ZodPipe`\<`ZodTransform`\<`null` \| `never`[], `unknown`\>, `ZodOptional`\<`ZodArray`\<`ZodString`\>\>\>\>; `SETTLEMINT_WORKSPACE`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; \}, `$strip`\>
1773
+ > `const` **DotEnvSchemaPartial**: `ZodObject`\<\{ `SETTLEMINT_ACCESS_TOKEN`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_ACCESSIBLE_PRIVATE_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_APPLICATION`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NETWORK`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKSCOUT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_CUSTOM_DEPLOYMENT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA_ADMIN_SECRET`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA_DATABASE_URL`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HASURA_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HD_PRIVATE_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_INSTANCE`: `ZodOptional`\<`ZodDefault`\<`ZodUnion`\<readonly \[`ZodString`, `ZodLiteral`\<`"standalone"`\>\]\>\>\>; `SETTLEMINT_IPFS`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_IPFS_API_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_IPFS_GATEWAY_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_IPFS_PINNING_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_LOG_LEVEL`: `ZodOptional`\<`ZodDefault`\<`ZodEnum`\<\{ `debug`: `"debug"`; `error`: `"error"`; `info`: `"info"`; `none`: `"none"`; `warn`: `"warn"`; \}\>\>\>; `SETTLEMINT_MINIO`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_MINIO_ACCESS_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_MINIO_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_MINIO_SECRET_KEY`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_NEW_PROJECT_NAME`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL_REST_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_PORTAL_WS_ENDPOINT`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_THEGRAPH`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; `SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS`: `ZodOptional`\<`ZodPipe`\<`ZodTransform`\<`null` \| `never`[], `unknown`\>, `ZodOptional`\<`ZodArray`\<`ZodString`\>\>\>\>; `SETTLEMINT_WORKSPACE`: `ZodOptional`\<`ZodOptional`\<`ZodString`\>\>; \}, `$strip`\>
1740
1774
 
1741
- Defined in: [sdk/utils/src/validation/dot-env.schema.ts:107](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L107)
1775
+ Defined in: [sdk/utils/src/validation/dot-env.schema.ts:112](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L112)
1742
1776
 
1743
1777
  Partial version of the environment variables schema where all fields are optional.
1744
1778
  Useful for validating incomplete configurations during development or build time.
@@ -1800,6 +1834,16 @@ Boolean indicating if code is currently running in a server environment
1800
1834
 
1801
1835
  ***
1802
1836
 
1837
+ #### STANDALONE\_INSTANCE
1838
+
1839
+ > `const` **STANDALONE\_INSTANCE**: `"standalone"` = `"standalone"`
1840
+
1841
+ Defined in: [sdk/utils/src/validation/dot-env.schema.ts:10](https://github.com/settlemint/sdk/blob/v2.3.2/sdk/utils/src/validation/dot-env.schema.ts#L10)
1842
+
1843
+ Use this value to indicate that the resources are not part of the SettleMint platform.
1844
+
1845
+ ***
1846
+
1803
1847
  #### UniqueNameSchema
1804
1848
 
1805
1849
  > `const` **UniqueNameSchema**: `ZodString`
@@ -1,422 +1,38 @@
1
- "use strict";
1
+ //#region rolldown:runtime
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
8
  var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/environment.ts
31
- var environment_exports = {};
32
- __export(environment_exports, {
33
- loadEnv: () => loadEnv,
34
- writeEnv: () => writeEnv
35
- });
36
- module.exports = __toCommonJS(environment_exports);
37
-
38
- // src/environment/load-env.ts
39
- var import_node_path = require("path");
40
-
41
- // src/terminal/ascii.ts
42
- var import_yoctocolors = require("yoctocolors");
43
-
44
- // src/logging/mask-tokens.ts
45
- var maskTokens = (output) => {
46
- return output.replace(/sm_(pat|aat|sat)_[0-9a-zA-Z]+/g, "***");
47
- };
48
-
49
- // src/terminal/cancel.ts
50
- var import_yoctocolors2 = require("yoctocolors");
51
- var CancelError = class extends Error {
52
- };
53
- var cancel = (msg) => {
54
- console.log("");
55
- console.log((0, import_yoctocolors2.inverse)((0, import_yoctocolors2.redBright)(maskTokens(msg))));
56
- console.log("");
57
- throw new CancelError(msg);
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
58
17
  };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
59
22
 
60
- // src/terminal/execute-command.ts
61
- var import_node_child_process = require("child_process");
62
-
63
- // src/terminal/intro.ts
64
- var import_yoctocolors3 = require("yoctocolors");
23
+ //#endregion
24
+ const src_environment_load_env_js = __toESM(require("./environment/load-env.js"));
25
+ const src_environment_write_env_js = __toESM(require("./environment/write-env.js"));
65
26
 
66
- // src/terminal/note.ts
67
- var import_yoctocolors4 = require("yoctocolors");
68
-
69
- // src/terminal/outro.ts
70
- var import_yoctocolors5 = require("yoctocolors");
71
-
72
- // src/terminal/spinner.ts
73
- var import_is_in_ci = __toESM(require("is-in-ci"), 1);
74
- var import_yocto_spinner = __toESM(require("yocto-spinner"), 1);
75
- var import_yoctocolors6 = require("yoctocolors");
76
-
77
- // src/terminal/table.ts
78
- var import_console_table_printer = require("console-table-printer");
79
- var import_yoctocolors7 = require("yoctocolors");
80
-
81
- // src/validation/validate.ts
82
- var import_v4 = require("zod/v4");
83
- function validate(schema, value) {
84
- try {
85
- return schema.parse(value);
86
- } catch (error) {
87
- if (error instanceof import_v4.ZodError) {
88
- const formattedErrors = error.issues.map((err) => `- ${err.path.join(".")}: ${err.message}`).join("\n");
89
- throw new Error(`Validation error${error.issues.length > 1 ? "s" : ""}:
90
- ${formattedErrors}`);
91
- }
92
- throw error;
27
+ Object.defineProperty(exports, 'loadEnv', {
28
+ enumerable: true,
29
+ get: function () {
30
+ return src_environment_load_env_js.loadEnv;
93
31
  }
94
- }
95
-
96
- // src/validation/access-token.schema.ts
97
- var import_v42 = require("zod/v4");
98
- var ApplicationAccessTokenSchema = import_v42.z.string().regex(/^sm_aat_.*$/);
99
- var PersonalAccessTokenSchema = import_v42.z.string().regex(/^sm_pat_.*$/);
100
- var AccessTokenSchema = import_v42.z.string().regex(/^sm_pat_.*|sm_aat_.*$/);
101
-
102
- // src/json.ts
103
- function tryParseJson(value, defaultValue = null) {
104
- try {
105
- const parsed = JSON.parse(value);
106
- if (parsed === void 0 || parsed === null) {
107
- return defaultValue;
108
- }
109
- return parsed;
110
- } catch (err) {
111
- return defaultValue;
112
- }
113
- }
114
-
115
- // src/validation/dot-env.schema.ts
116
- var import_v45 = require("zod/v4");
117
-
118
- // src/validation/unique-name.schema.ts
119
- var import_v43 = require("zod/v4");
120
- var UniqueNameSchema = import_v43.z.string().regex(/^[a-z0-9-]+$/);
121
-
122
- // src/validation/url.schema.ts
123
- var import_v44 = require("zod/v4");
124
- var UrlSchema = import_v44.z.string().url();
125
- var UrlPathSchema = import_v44.z.string().regex(/^\/(?:[a-zA-Z0-9-_]+(?:\/[a-zA-Z0-9-_]+)*\/?)?$/, {
126
- message: "Invalid URL path format. Must start with '/' and can contain letters, numbers, hyphens, and underscores."
127
- });
128
- var UrlOrPathSchema = import_v44.z.union([UrlSchema, UrlPathSchema]);
129
-
130
- // src/validation/dot-env.schema.ts
131
- var STANDALONE_INSTANCE = "standalone";
132
- var DotEnvSchema = import_v45.z.object({
133
- /** Base URL of the SettleMint platform instance, set to standalone if your resources are not part of the SettleMint platform */
134
- SETTLEMINT_INSTANCE: import_v45.z.union([UrlSchema, import_v45.z.literal(STANDALONE_INSTANCE)]).default("https://console.settlemint.com"),
135
- /** Application access token for authenticating with SettleMint services */
136
- SETTLEMINT_ACCESS_TOKEN: ApplicationAccessTokenSchema.optional(),
137
- /** @internal */
138
- SETTLEMINT_PERSONAL_ACCESS_TOKEN: PersonalAccessTokenSchema.optional(),
139
- /** Unique name of the workspace */
140
- SETTLEMINT_WORKSPACE: UniqueNameSchema.optional(),
141
- /** Unique name of the application */
142
- SETTLEMINT_APPLICATION: UniqueNameSchema.optional(),
143
- /** Unique name of the blockchain network */
144
- SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema.optional(),
145
- /** Chain ID of the blockchain network */
146
- SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: import_v45.z.string().optional(),
147
- /** Unique name of the blockchain node (should have a private key for signing transactions) */
148
- SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema.optional(),
149
- /** JSON RPC endpoint for the blockchain node */
150
- SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: UrlSchema.optional(),
151
- /** Unique name of the blockchain node or load balancer */
152
- SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: UniqueNameSchema.optional(),
153
- /** JSON RPC endpoint for the blockchain node or load balancer */
154
- SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: UrlSchema.optional(),
155
- /** Unique name of the Hasura instance */
156
- SETTLEMINT_HASURA: UniqueNameSchema.optional(),
157
- /** Endpoint URL for the Hasura GraphQL API */
158
- SETTLEMINT_HASURA_ENDPOINT: UrlSchema.optional(),
159
- /** Admin secret for authenticating with Hasura */
160
- SETTLEMINT_HASURA_ADMIN_SECRET: import_v45.z.string().optional(),
161
- /** Database connection URL for Hasura */
162
- SETTLEMINT_HASURA_DATABASE_URL: import_v45.z.string().optional(),
163
- /** Unique name of The Graph instance */
164
- SETTLEMINT_THEGRAPH: UniqueNameSchema.optional(),
165
- /** Array of endpoint URLs for The Graph subgraphs */
166
- SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: import_v45.z.preprocess(
167
- (value) => tryParseJson(value, []),
168
- import_v45.z.array(UrlSchema).optional()
169
- ),
170
- /** Default The Graph subgraph to use */
171
- SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: import_v45.z.string().optional(),
172
- /** Unique name of the Smart Contract Portal instance */
173
- SETTLEMINT_PORTAL: UniqueNameSchema.optional(),
174
- /** GraphQL endpoint URL for the Portal */
175
- SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: UrlSchema.optional(),
176
- /** REST endpoint URL for the Portal */
177
- SETTLEMINT_PORTAL_REST_ENDPOINT: UrlSchema.optional(),
178
- /** WebSocket endpoint URL for the Portal */
179
- SETTLEMINT_PORTAL_WS_ENDPOINT: UrlSchema.optional(),
180
- /** Unique name of the HD private key */
181
- SETTLEMINT_HD_PRIVATE_KEY: UniqueNameSchema.optional(),
182
- /** Address of the HD private key forwarder */
183
- SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS: import_v45.z.string().optional(),
184
- /** Unique name of the accessible private key */
185
- SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: UniqueNameSchema.optional(),
186
- /** Unique name of the MinIO instance */
187
- SETTLEMINT_MINIO: UniqueNameSchema.optional(),
188
- /** Endpoint URL for MinIO */
189
- SETTLEMINT_MINIO_ENDPOINT: UrlSchema.optional(),
190
- /** Access key for MinIO authentication */
191
- SETTLEMINT_MINIO_ACCESS_KEY: import_v45.z.string().optional(),
192
- /** Secret key for MinIO authentication */
193
- SETTLEMINT_MINIO_SECRET_KEY: import_v45.z.string().optional(),
194
- /** Unique name of the IPFS instance */
195
- SETTLEMINT_IPFS: UniqueNameSchema.optional(),
196
- /** API endpoint URL for IPFS */
197
- SETTLEMINT_IPFS_API_ENDPOINT: UrlSchema.optional(),
198
- /** Pinning service endpoint URL for IPFS */
199
- SETTLEMINT_IPFS_PINNING_ENDPOINT: UrlSchema.optional(),
200
- /** Gateway endpoint URL for IPFS */
201
- SETTLEMINT_IPFS_GATEWAY_ENDPOINT: UrlSchema.optional(),
202
- /** Unique name of the custom deployment */
203
- SETTLEMINT_CUSTOM_DEPLOYMENT: UniqueNameSchema.optional(),
204
- /** Endpoint URL for the custom deployment */
205
- SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: UrlSchema.optional(),
206
- /** Unique name of the Blockscout instance */
207
- SETTLEMINT_BLOCKSCOUT: UniqueNameSchema.optional(),
208
- /** GraphQL endpoint URL for Blockscout */
209
- SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: UrlSchema.optional(),
210
- /** UI endpoint URL for Blockscout */
211
- SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: UrlSchema.optional(),
212
- /** Name of the new project being created */
213
- SETTLEMINT_NEW_PROJECT_NAME: import_v45.z.string().optional(),
214
- /** The log level to use */
215
- SETTLEMINT_LOG_LEVEL: import_v45.z.enum(["debug", "info", "warn", "error", "none"]).default("warn")
216
32
  });
217
- var DotEnvSchemaPartial = DotEnvSchema.partial();
218
-
219
- // src/validation/id.schema.ts
220
- var import_v46 = require("zod/v4");
221
- var IdSchema = import_v46.z.union([
222
- import_v46.z.string().uuid(),
223
- // PostgreSQL UUID
224
- import_v46.z.string().regex(/^[0-9a-fA-F]{24}$/)
225
- // MongoDB ObjectID
226
- ]);
227
-
228
- // src/environment/load-env.ts
229
- var import_dotenvx = require("@dotenvx/dotenvx");
230
- async function loadEnv(validateEnv, prod, path = process.cwd()) {
231
- return loadEnvironmentEnv(validateEnv, !!prod, path);
232
- }
233
- async function loadEnvironmentEnv(validateEnv, prod, path = process.cwd()) {
234
- if (prod) {
235
- process.env.NODE_ENV = "production";
236
- }
237
- let { parsed } = (0, import_dotenvx.config)({
238
- convention: "nextjs",
239
- logLevel: "error",
240
- overload: true,
241
- quiet: true,
242
- path: [(0, import_node_path.join)(path, ".env"), (0, import_node_path.join)(path, ".env.local")]
243
- });
244
- if (!parsed) {
245
- parsed = {};
246
- }
247
- const defaultEnv = Object.fromEntries(
248
- Object.entries(process.env).filter(([_, value]) => typeof value === "string" && value !== "")
249
- );
250
- try {
251
- return validate(validateEnv ? DotEnvSchema : DotEnvSchemaPartial, {
252
- ...parsed,
253
- ...defaultEnv
254
- });
255
- } catch (error) {
256
- cancel(error.message);
257
- return {};
258
- }
259
- }
260
-
261
- // src/environment/write-env.ts
262
- var import_promises3 = require("fs/promises");
263
- var import_node_path4 = require("path");
264
-
265
- // src/filesystem/project-root.ts
266
- var import_node_path2 = require("path");
267
- var import_find_up = require("find-up");
268
- async function projectRoot(fallbackToCwd = false, cwd) {
269
- const packageJsonPath = await (0, import_find_up.findUp)("package.json", { cwd });
270
- if (!packageJsonPath) {
271
- if (fallbackToCwd) {
272
- return process.cwd();
273
- }
274
- throw new Error("Unable to find project root (no package.json found)");
275
- }
276
- return (0, import_node_path2.dirname)(packageJsonPath);
277
- }
278
-
279
- // src/filesystem/exists.ts
280
- var import_promises = require("fs/promises");
281
- async function exists(path) {
282
- try {
283
- await (0, import_promises.stat)(path);
284
- return true;
285
- } catch {
286
- return false;
287
- }
288
- }
289
-
290
- // src/filesystem/mono-repo.ts
291
- var import_promises2 = require("fs/promises");
292
- var import_node_path3 = require("path");
293
- var import_find_up2 = require("find-up");
294
- var import_glob = require("glob");
295
- async function findMonoRepoRoot(startDir) {
296
- const lockFilePath = await (0, import_find_up2.findUp)(["package-lock.json", "yarn.lock", "pnpm-lock.yaml", "bun.lockb", "bun.lock"], {
297
- cwd: startDir
298
- });
299
- if (lockFilePath) {
300
- const packageJsonPath = (0, import_node_path3.join)((0, import_node_path3.dirname)(lockFilePath), "package.json");
301
- const hasWorkSpaces = await packageJsonHasWorkspaces(packageJsonPath);
302
- return hasWorkSpaces ? (0, import_node_path3.dirname)(lockFilePath) : null;
33
+ Object.defineProperty(exports, 'writeEnv', {
34
+ enumerable: true,
35
+ get: function () {
36
+ return src_environment_write_env_js.writeEnv;
303
37
  }
304
- let currentDir = startDir;
305
- while (currentDir !== "/") {
306
- const packageJsonPath = (0, import_node_path3.join)(currentDir, "package.json");
307
- if (await packageJsonHasWorkspaces(packageJsonPath)) {
308
- return currentDir;
309
- }
310
- const parentDir = (0, import_node_path3.dirname)(currentDir);
311
- if (parentDir === currentDir) {
312
- break;
313
- }
314
- currentDir = parentDir;
315
- }
316
- return null;
317
- }
318
- async function findMonoRepoPackages(projectDir) {
319
- try {
320
- const monoRepoRoot = await findMonoRepoRoot(projectDir);
321
- if (!monoRepoRoot) {
322
- return [projectDir];
323
- }
324
- const packageJsonPath = (0, import_node_path3.join)(monoRepoRoot, "package.json");
325
- const packageJson = tryParseJson(await (0, import_promises2.readFile)(packageJsonPath, "utf-8"));
326
- const workspaces = packageJson?.workspaces ?? [];
327
- const packagePaths = await Promise.all(
328
- workspaces.map(async (workspace) => {
329
- const matches = await (0, import_glob.glob)((0, import_node_path3.join)(monoRepoRoot, workspace, "package.json"));
330
- return matches.map((match) => (0, import_node_path3.join)(match, ".."));
331
- })
332
- );
333
- const allPaths = packagePaths.flat();
334
- return allPaths.length === 0 ? [projectDir] : [monoRepoRoot, ...allPaths];
335
- } catch (error) {
336
- return [projectDir];
337
- }
338
- }
339
- async function packageJsonHasWorkspaces(packageJsonPath) {
340
- if (await exists(packageJsonPath)) {
341
- const packageJson = tryParseJson(await (0, import_promises2.readFile)(packageJsonPath, "utf-8"));
342
- if (packageJson?.workspaces && Array.isArray(packageJson?.workspaces) && packageJson?.workspaces.length > 0) {
343
- return true;
344
- }
345
- }
346
- return false;
347
- }
348
-
349
- // src/environment/write-env.ts
350
- var import_dotenvx2 = require("@dotenvx/dotenvx");
351
- var import_deepmerge_ts = require("deepmerge-ts");
352
- async function writeEnv({
353
- prod,
354
- env,
355
- secrets,
356
- cwd
357
- }) {
358
- const projectDir = await projectRoot(true, cwd);
359
- if (prod) {
360
- process.env.NODE_ENV = "production";
361
- }
362
- const targetDirs = await findMonoRepoPackages(projectDir);
363
- await Promise.all(
364
- targetDirs.map(async (dir) => {
365
- const envFile = (0, import_node_path4.join)(
366
- dir,
367
- secrets ? `.env${prod ? ".production" : ""}.local` : `.env${prod ? ".production" : ""}`
368
- );
369
- let { parsed: currentEnv } = await exists(envFile) ? (0, import_dotenvx2.config)({
370
- path: envFile,
371
- logLevel: "error",
372
- quiet: true
373
- }) : { parsed: {} };
374
- if (!currentEnv) {
375
- currentEnv = {};
376
- }
377
- const prunedEnv = pruneCurrentEnv(currentEnv, env);
378
- const mergedEnv = (0, import_deepmerge_ts.deepmerge)(prunedEnv, env);
379
- await (0, import_promises3.writeFile)(envFile, stringify(mergedEnv));
380
- })
381
- );
382
- }
383
- var quote = /[\s"'#]/;
384
- function stringifyPair([key, val]) {
385
- if (val === void 0) {
386
- return void 0;
387
- }
388
- if (val === null) {
389
- return `${key}=""`;
390
- }
391
- const type = typeof val;
392
- if (type === "string") {
393
- return `${key}=${quote.test(val) ? JSON.stringify(val) : val}`;
394
- }
395
- if (type === "boolean" || type === "number") {
396
- return `${key}=${val}`;
397
- }
398
- if (type === "object") {
399
- return `${key}=${JSON.stringify(val)}`;
400
- }
401
- throw new Error(`Unsupported type for key "${key}": ${type}`);
402
- }
403
- function stringify(obj) {
404
- return Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)).map(stringifyPair).filter((value) => value !== void 0).join("\n");
405
- }
406
- function pruneCurrentEnv(currentEnv, env) {
407
- const dotEnvKeys = Object.keys(DotEnvSchema.shape);
408
- return Object.fromEntries(
409
- Object.entries(currentEnv).filter(([key]) => {
410
- if (dotEnvKeys.includes(key) && !env[key]) {
411
- return false;
412
- }
413
- return true;
414
- })
415
- );
416
- }
417
- // Annotate the CommonJS export names for ESM import in node:
418
- 0 && (module.exports = {
419
- loadEnv,
420
- writeEnv
421
- });
422
- //# sourceMappingURL=environment.cjs.map
38
+ });