@cedarjs/project-config 6.0.0-canary.2818 → 6.0.0-canary.2819

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.
@@ -0,0 +1,32 @@
1
+ interface ReadEnvVarOptions {
2
+ /**
3
+ * The pre-fork `REDWOOD_`-prefixed name for this env var. Still read, so
4
+ * projects don't break on upgrade, but the `CEDAR_`-prefixed name wins.
5
+ */
6
+ deprecatedAlias: string;
7
+ }
8
+ /**
9
+ * Read an env var that was renamed when Cedar forked from Redwood.
10
+ *
11
+ * The `CEDAR_`-prefixed name wins. The `REDWOOD_`-prefixed one keeps working
12
+ * so existing projects don't break on upgrade.
13
+ *
14
+ * Empty strings are treated as unset, matching how a `.env` file with a blank
15
+ * value behaves.
16
+ */
17
+ export declare function readEnvVar(name: string, { deprecatedAlias }: ReadEnvVarOptions): string | undefined;
18
+ /**
19
+ * Parse a port from an env var, rejecting anything that isn't a usable port.
20
+ *
21
+ * `parseInt` alone is not enough here: it stops at the first non-digit, so
22
+ * `"8080abc"` would become `8080` and `"1.5"` would become `1`. Silently
23
+ * binding a port the user didn't ask for is how a deployment ends up
24
+ * unreachable, so the whole value has to look like an integer.
25
+ *
26
+ * Out-of-range values are rejected here too, so a bad env var is reported as
27
+ * a bad env var rather than surfacing later as a `ERR_SOCKET_BAD_PORT` from
28
+ * `listen()`. Port 0 is allowed — it means "pick a free port".
29
+ */
30
+ export declare function parsePort(value: string, envVarName: string): number;
31
+ export {};
32
+ //# sourceMappingURL=envVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envVars.d.ts","sourceRoot":"","sources":["../../src/envVars.ts"],"names":[],"mappings":"AAAA,UAAU,iBAAiB;IACzB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,EAAE,eAAe,EAAE,EAAE,iBAAiB,GACrC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkBnE"}
@@ -1,5 +1,6 @@
1
1
  export * from './config.js';
2
2
  export * from './configPath.js';
3
+ export * from './envVars.js';
3
4
  export * from './generatedDataDir.js';
4
5
  export * from './paths.js';
5
6
  export * from './findUp.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -54,10 +54,12 @@ __export(index_exports, {
54
54
  importStatementPath: () => importStatementPath,
55
55
  isTypeScriptProject: () => isTypeScriptProject,
56
56
  loadPrismaConfig: () => loadPrismaConfig,
57
+ parsePort: () => parsePort,
57
58
  processPagesDir: () => processPagesDir,
58
59
  projectIsEsm: () => projectIsEsm,
59
60
  projectRootIsEsm: () => projectRootIsEsm,
60
61
  projectSideIsEsm: () => projectSideIsEsm,
62
+ readEnvVar: () => readEnvVar,
61
63
  resolveFile: () => resolveFile,
62
64
  resolveGeneratedPrismaClient: () => resolveGeneratedPrismaClient
63
65
  });
@@ -213,6 +215,26 @@ function getRawConfig(configPath = getConfigPath()) {
213
215
  }
214
216
  }
215
217
 
218
+ // src/envVars.ts
219
+ function readEnvVar(name, { deprecatedAlias }) {
220
+ return process.env[name] || process.env[deprecatedAlias] || void 0;
221
+ }
222
+ function parsePort(value, envVarName) {
223
+ const trimmed = value.trim();
224
+ if (!/^\d+$/.test(trimmed)) {
225
+ throw new Error(
226
+ `Invalid ${envVarName} env var value: "${value}". Must be an integer.`
227
+ );
228
+ }
229
+ const port = Number(trimmed);
230
+ if (port > 65535) {
231
+ throw new Error(
232
+ `Invalid ${envVarName} env var value: "${value}". Must be between 0 and 65535.`
233
+ );
234
+ }
235
+ return port;
236
+ }
237
+
216
238
  // src/generatedDataDir.ts
217
239
  var import_node_fs3 = __toESM(require("node:fs"), 1);
218
240
  var import_node_path = __toESM(require("node:path"), 1);
@@ -656,10 +678,12 @@ function getEnvVarDefinitions() {
656
678
  importStatementPath,
657
679
  isTypeScriptProject,
658
680
  loadPrismaConfig,
681
+ parsePort,
659
682
  processPagesDir,
660
683
  projectIsEsm,
661
684
  projectRootIsEsm,
662
685
  projectSideIsEsm,
686
+ readEnvVar,
663
687
  resolveFile,
664
688
  resolveGeneratedPrismaClient
665
689
  });
@@ -0,0 +1,32 @@
1
+ interface ReadEnvVarOptions {
2
+ /**
3
+ * The pre-fork `REDWOOD_`-prefixed name for this env var. Still read, so
4
+ * projects don't break on upgrade, but the `CEDAR_`-prefixed name wins.
5
+ */
6
+ deprecatedAlias: string;
7
+ }
8
+ /**
9
+ * Read an env var that was renamed when Cedar forked from Redwood.
10
+ *
11
+ * The `CEDAR_`-prefixed name wins. The `REDWOOD_`-prefixed one keeps working
12
+ * so existing projects don't break on upgrade.
13
+ *
14
+ * Empty strings are treated as unset, matching how a `.env` file with a blank
15
+ * value behaves.
16
+ */
17
+ export declare function readEnvVar(name: string, { deprecatedAlias }: ReadEnvVarOptions): string | undefined;
18
+ /**
19
+ * Parse a port from an env var, rejecting anything that isn't a usable port.
20
+ *
21
+ * `parseInt` alone is not enough here: it stops at the first non-digit, so
22
+ * `"8080abc"` would become `8080` and `"1.5"` would become `1`. Silently
23
+ * binding a port the user didn't ask for is how a deployment ends up
24
+ * unreachable, so the whole value has to look like an integer.
25
+ *
26
+ * Out-of-range values are rejected here too, so a bad env var is reported as
27
+ * a bad env var rather than surfacing later as a `ERR_SOCKET_BAD_PORT` from
28
+ * `listen()`. Port 0 is allowed — it means "pick a free port".
29
+ */
30
+ export declare function parsePort(value: string, envVarName: string): number;
31
+ export {};
32
+ //# sourceMappingURL=envVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envVars.d.ts","sourceRoot":"","sources":["../src/envVars.ts"],"names":[],"mappings":"AAAA,UAAU,iBAAiB;IACzB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,EAAE,eAAe,EAAE,EAAE,iBAAiB,GACrC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkBnE"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './config.js';
2
2
  export * from './configPath.js';
3
+ export * from './envVars.js';
3
4
  export * from './generatedDataDir.js';
4
5
  export * from './paths.js';
5
6
  export * from './findUp.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
package/dist/index.js CHANGED
@@ -148,6 +148,26 @@ function getRawConfig(configPath = getConfigPath()) {
148
148
  }
149
149
  }
150
150
 
151
+ // src/envVars.ts
152
+ function readEnvVar(name, { deprecatedAlias }) {
153
+ return process.env[name] || process.env[deprecatedAlias] || void 0;
154
+ }
155
+ function parsePort(value, envVarName) {
156
+ const trimmed = value.trim();
157
+ if (!/^\d+$/.test(trimmed)) {
158
+ throw new Error(
159
+ `Invalid ${envVarName} env var value: "${value}". Must be an integer.`
160
+ );
161
+ }
162
+ const port = Number(trimmed);
163
+ if (port > 65535) {
164
+ throw new Error(
165
+ `Invalid ${envVarName} env var value: "${value}". Must be between 0 and 65535.`
166
+ );
167
+ }
168
+ return port;
169
+ }
170
+
151
171
  // src/generatedDataDir.ts
152
172
  import fs3 from "node:fs";
153
173
  import path2 from "node:path";
@@ -590,10 +610,12 @@ export {
590
610
  importStatementPath,
591
611
  isTypeScriptProject,
592
612
  loadPrismaConfig,
613
+ parsePort,
593
614
  processPagesDir,
594
615
  projectIsEsm,
595
616
  projectRootIsEsm,
596
617
  projectSideIsEsm,
618
+ readEnvVar,
597
619
  resolveFile,
598
620
  resolveGeneratedPrismaClient
599
621
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/project-config",
3
- "version": "6.0.0-canary.2818",
3
+ "version": "6.0.0-canary.2819",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/cedarjs/cedar.git",
@@ -64,7 +64,7 @@
64
64
  },
65
65
  "devDependencies": {
66
66
  "@arethetypeswrong/cli": "0.18.5",
67
- "@cedarjs/framework-tools": "6.0.0-canary.2818",
67
+ "@cedarjs/framework-tools": "6.0.0-canary.2819",
68
68
  "concurrently": "9.2.4",
69
69
  "prisma": "7.8.0",
70
70
  "publint": "0.3.22",