@prosopo/client-example-server 2.7.121 → 2.7.123

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.
@@ -1,25 +1,7 @@
1
1
 
2
- > @prosopo/client-example-server@2.7.121 build:cjs
2
+ > @prosopo/client-example-server@2.7.123 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
- ▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]
6
-
7
- package.json:11:3:
8
- 11 │ "types": "./dist/app.d.ts"
9
- ╵ ~~~~~~~
10
-
11
- The "import" condition comes earlier and will be used for all "import" statements:
12
-
13
- package.json:9:3:
14
- 9 │ "import": "./dist/index.js",
15
- ╵ ~~~~~~~~
16
-
17
- The "require" condition comes earlier and will be used for all "require" calls:
18
-
19
- package.json:10:3:
20
- 10 │ "require": "./dist/cjs/index.cjs",
21
- ╵ ~~~~~~~~~
22
-
23
5
  ViteCommonJSConfig: .
24
6
  {
25
7
  tsConfigPaths: [
@@ -61,17 +43,19 @@ ViteCommonJSConfig: .
61
43
  '@prosopo/load-balancer'
62
44
  ]
63
45
  }
64
- vite v6.4.1 building SSR bundle for production...
46
+ The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
47
+ vite v8.1.5 building ssr environment for production...
65
48
  Bundle build started
66
- transforming...
67
- Build end
68
- ✓ 6 modules transformed.
69
- Entry module "src/utils/database.ts" is using named and default exports together. Consumers of your bundle will have to use `..default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
49
+ 
50
+ ✓ 7 modules transformed.
70
51
  rendering chunks...
71
- dist/cjs/models/user.cjs 0.45 kB
72
- dist/cjs/routes/routes.cjs 0.80 kB
73
- dist/cjs/utils/connection.cjs 0.99 kB
74
- dist/cjs/utils/database.cjs 1.61 kB
75
- dist/cjs/app.cjs 4.77 kB
76
- dist/cjs/controllers/auth.cjs 7.80 kB
77
- ✓ built in 270ms
52
+ computing gzip size...
53
+ dist/cjs/utils/database.cjs 0.26 kB │ gzip: 0.17 kB
54
+ dist/cjs/models/user.cjs 0.60 kB │ gzip: 0.26 kB
55
+ dist/cjs/utils/connection.cjs 0.89 kB │ gzip: 0.44 kB
56
+ dist/cjs/routes/routes.cjs 0.94 kB │ gzip: 0.41 kB
57
+ dist/cjs/_virtual/_rolldown/runtime.cjs 1.00 kB │ gzip: 0.50 kB
58
+ dist/cjs/app.cjs 4.99 kB │ gzip: 1.72 kB
59
+ dist/cjs/controllers/auth.cjs 7.59 kB │ gzip: 2.43 kB
60
+
61
+ ✓ built in 52ms
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/client-example-server@2.7.121 build:tsc
2
+ > @prosopo/client-example-server@2.7.123 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 10:23:08 PM - Projects in this build:
5
+ 8:59:53 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../../packages/locale/tsconfig.json
8
8
  * ../../packages/util/tsconfig.json
@@ -22,41 +22,41 @@
22
22
  * ../../packages/server/tsconfig.json
23
23
  * tsconfig.json
24
24
 
25
- 10:23:08 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
25
+ 8:59:54 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
26
26
 
27
- 10:23:09 PM - Project '../../packages/locale/tsconfig.json' is up to date because newest input '../../packages/locale/src/translationKey.ts' is older than output '../../packages/locale/tsconfig.tsbuildinfo'
27
+ 8:59:54 PM - Project '../../packages/locale/tsconfig.json' is up to date because newest input '../../packages/locale/src/translationKey.ts' is older than output '../../packages/locale/tsconfig.tsbuildinfo'
28
28
 
29
- 10:23:09 PM - Project '../../packages/util/tsconfig.json' is up to date because newest input '../../packages/util/src/url.ts' is older than output '../../packages/util/tsconfig.tsbuildinfo'
29
+ 8:59:54 PM - Project '../../packages/util/tsconfig.json' is up to date because newest input '../../packages/util/src/url.ts' is older than output '../../packages/util/tsconfig.tsbuildinfo'
30
30
 
31
- 10:23:09 PM - Project '../../packages/logger/tsconfig.json' is up to date because newest input '../../packages/logger/src/index.ts' is older than output '../../packages/logger/tsconfig.tsbuildinfo'
31
+ 8:59:54 PM - Project '../../packages/logger/tsconfig.json' is up to date because newest input '../../packages/logger/src/index.ts' is older than output '../../packages/logger/tsconfig.tsbuildinfo'
32
32
 
33
- 10:23:09 PM - Project '../../packages/util-crypto/tsconfig.json' is up to date because newest input '../../packages/util-crypto/src/types.ts' is older than output '../../packages/util-crypto/tsconfig.tsbuildinfo'
33
+ 8:59:54 PM - Project '../../packages/util-crypto/tsconfig.json' is up to date because newest input '../../packages/util-crypto/src/types.ts' is older than output '../../packages/util-crypto/tsconfig.tsbuildinfo'
34
34
 
35
- 10:23:09 PM - Project '../../packages/types/tsconfig.json' is up to date because newest input '../../packages/types/src/procaptcha/api.ts' is older than output '../../packages/types/tsconfig.tsbuildinfo'
35
+ 8:59:54 PM - Project '../../packages/types/tsconfig.json' is up to date because newest input '../../packages/types/src/provider/api.ts' is older than output '../../packages/types/tsconfig.tsbuildinfo'
36
36
 
37
- 10:23:09 PM - Project '../../packages/common/tsconfig.json' is up to date because newest input '../../packages/common/src/error.ts' is older than output '../../packages/common/tsconfig.tsbuildinfo'
37
+ 8:59:54 PM - Project '../../packages/common/tsconfig.json' is up to date because newest input '../../packages/common/src/tests/utils/batches.unit.test.ts' is older than output '../../packages/common/tsconfig.tsbuildinfo'
38
38
 
39
- 10:23:09 PM - Project '../../packages/api-route/tsconfig.json' is up to date because newest input '../../packages/api-route/src/apiRoutes.ts' is older than output '../../packages/api-route/tsconfig.tsbuildinfo'
39
+ 8:59:54 PM - Project '../../packages/api-route/tsconfig.json' is up to date because newest input '../../packages/api-route/src/apiRoutes.ts' is older than output '../../packages/api-route/tsconfig.tsbuildinfo'
40
40
 
41
- 10:23:09 PM - Project '../../packages/redis-client/tsconfig.json' is up to date because newest input '../../packages/redis-client/src/index.ts' is older than output '../../packages/redis-client/tsconfig.tsbuildinfo'
41
+ 8:59:54 PM - Project '../../packages/redis-client/tsconfig.json' is up to date because newest input '../../packages/redis-client/src/index.ts' is older than output '../../packages/redis-client/tsconfig.tsbuildinfo'
42
42
 
43
- 10:23:09 PM - Project '../../packages/api/tsconfig.json' is up to date because newest input '../../packages/api/src/index.ts' is older than output '../../packages/api/tsconfig.tsbuildinfo'
43
+ 8:59:54 PM - Project '../../packages/api/tsconfig.json' is up to date because newest input '../../packages/api/src/index.ts' is older than output '../../packages/api/tsconfig.tsbuildinfo'
44
44
 
45
- 10:23:09 PM - Project '../../packages/user-access-policy/tsconfig.json' is up to date because newest input '../../packages/user-access-policy/src/ruleRecord.ts' is older than output '../../packages/user-access-policy/tsconfig.tsbuildinfo'
45
+ 8:59:54 PM - Project '../../packages/user-access-policy/tsconfig.json' is up to date because newest input '../../packages/user-access-policy/src/ruleRecord.ts' is older than output '../../packages/user-access-policy/tsconfig.tsbuildinfo'
46
46
 
47
- 10:23:09 PM - Project '../../packages/types-database/tsconfig.json' is up to date because newest input '../../packages/types-database/src/index.ts' is older than output '../../packages/types-database/tsconfig.tsbuildinfo'
47
+ 8:59:54 PM - Project '../../packages/types-database/tsconfig.json' is up to date because newest input '../../packages/types-database/src/types/bannedDomain.ts' is older than output '../../packages/types-database/tsconfig.tsbuildinfo'
48
48
 
49
- 10:23:09 PM - Project '../../packages/database/tsconfig.json' is up to date because newest input '../../packages/database/src/tests/unit/redisCacheEscalation.unit.test.ts' is older than output '../../packages/database/tsconfig.tsbuildinfo'
49
+ 8:59:54 PM - Project '../../packages/database/tsconfig.json' is up to date because newest input '../../packages/database/src/tests/mongoGlobalSetup.ts' is older than output '../../packages/database/tsconfig.tsbuildinfo'
50
50
 
51
- 10:23:09 PM - Project '../../packages/dotenv/tsconfig.json' is up to date because newest input '../../packages/dotenv/src/env.ts' is older than output '../../packages/dotenv/tsconfig.tsbuildinfo'
51
+ 8:59:54 PM - Project '../../packages/dotenv/tsconfig.json' is up to date because newest input '../../packages/dotenv/src/env.ts' is older than output '../../packages/dotenv/tsconfig.tsbuildinfo'
52
52
 
53
- 10:23:09 PM - Project '../../packages/keyring/tsconfig.json' is up to date because newest input '../../packages/keyring/src/index.ts' is older than output '../../packages/keyring/tsconfig.tsbuildinfo'
53
+ 8:59:54 PM - Project '../../packages/keyring/tsconfig.json' is up to date because newest input '../../packages/keyring/src/keyring/keyring.ts' is older than output '../../packages/keyring/tsconfig.tsbuildinfo'
54
54
 
55
- 10:23:09 PM - Project '../../packages/load-balancer/tsconfig.json' is up to date because newest input '../../packages/load-balancer/src/balancer.ts' is older than output '../../packages/load-balancer/tsconfig.tsbuildinfo'
55
+ 8:59:54 PM - Project '../../packages/load-balancer/tsconfig.json' is up to date because newest input '../../packages/load-balancer/src/tests/providers.unit.test.ts' is older than output '../../packages/load-balancer/tsconfig.tsbuildinfo'
56
56
 
57
- 10:23:09 PM - Project '../../packages/server/tsconfig.json' is up to date because newest input '../../packages/server/src/index.ts' is older than output '../../packages/server/tsconfig.tsbuildinfo'
57
+ 8:59:54 PM - Project '../../packages/server/tsconfig.json' is up to date because newest input '../../packages/server/src/config.ts' is older than output '../../packages/server/tsconfig.tsbuildinfo'
58
58
 
59
- 10:23:09 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
59
+ 8:59:54 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
60
60
 
61
- 10:23:09 PM - Building project '/home/runner/work/captcha/captcha/demos/client-example-server/tsconfig.json'...
61
+ 8:59:54 PM - Building project '/home/runner/work/captcha/captcha/demos/client-example-server/tsconfig.json'...
62
62
 
@@ -1,29 +1,11 @@
1
1
 
2
- > @prosopo/client-example-server@2.7.121 build
2
+ > @prosopo/client-example-server@2.7.123 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/client-example-server@2.7.121 build:cross-env
6
+ > @prosopo/client-example-server@2.7.123 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
- ▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]
10
-
11
- package.json:11:3:
12
- 11 │ "types": "./dist/app.d.ts"
13
- ╵ ~~~~~~~
14
-
15
- The "import" condition comes earlier and will be used for all "import" statements:
16
-
17
- package.json:9:3:
18
- 9 │ "import": "./dist/index.js",
19
- ╵ ~~~~~~~~
20
-
21
- The "require" condition comes earlier and will be used for all "require" calls:
22
-
23
- package.json:10:3:
24
- 10 │ "require": "./dist/cjs/index.cjs",
25
- ╵ ~~~~~~~~~
26
-
27
9
  ViteEsmConfig: .
28
10
  {
29
11
  tsConfigPaths: [
@@ -65,16 +47,19 @@ ViteEsmConfig: .
65
47
  '@prosopo/load-balancer'
66
48
  ]
67
49
  }
68
- vite v6.4.1 building SSR bundle for production...
50
+ The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
51
+ vite v8.1.5 building ssr environment for production...
69
52
  Bundle build started
70
- transforming...
71
- Build end
72
- ✓ 6 modules transformed.
53
+ 
54
+ ✓ 7 modules transformed.
73
55
  rendering chunks...
74
- dist/utils/database.js 0.30 kB
75
- dist/models/user.js 0.44 kB
76
- dist/utils/connection.js 0.65 kB
77
- dist/routes/routes.js 0.79 kB
78
- dist/app.js 4.38 kB
79
- dist/controllers/auth.js 7.54 kB
80
- ✓ built in 259ms
56
+ computing gzip size...
57
+ dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
58
+ dist/utils/database.js 0.23 kB │ gzip: 0.17 kB
59
+ dist/models/user.js 0.45 kB │ gzip: 0.21 kB
60
+ dist/utils/connection.js 0.64 kB │ gzip: 0.35 kB
61
+ dist/routes/routes.js 0.78 kB │ gzip: 0.36 kB
62
+ dist/app.js 4.23 kB │ gzip: 1.61 kB
63
+ dist/controllers/auth.js 6.91 kB │ gzip: 2.31 kB
64
+
65
+ ✓ built in 87ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @prosopo/client-example-server
2
2
 
3
+ ## 2.7.123
4
+ ### Patch Changes
5
+
6
+ - e14fce6: chore(deps): bump vite to 6.4.3 and mongoose to 8.24.1, and adjust types for the mongoose 8.24 Document/ObjectId changes
7
+ - Updated dependencies [2c47bb7]
8
+ - Updated dependencies [0e1171c]
9
+ - Updated dependencies [103318c]
10
+ - Updated dependencies [4cd9035]
11
+ - Updated dependencies [8fba211]
12
+ - Updated dependencies [270a8d8]
13
+ - Updated dependencies [e14fce6]
14
+ - @prosopo/util@3.3.5
15
+ - @prosopo/types@4.10.0
16
+ - @prosopo/dotenv@3.0.50
17
+ - @prosopo/common@3.1.48
18
+ - @prosopo/database@3.15.20
19
+ - @prosopo/keyring@2.9.61
20
+ - @prosopo/server@2.10.41
21
+ - @prosopo/logger@2.0.4
22
+
23
+ ## 2.7.122
24
+ ### Patch Changes
25
+
26
+ - @prosopo/database@3.15.19
27
+
3
28
  ## 2.7.121
4
29
  ### Patch Changes
5
30
 
@@ -0,0 +1,3 @@
1
+ import "node:module";
2
+ //#endregion
3
+ export {};
package/dist/app.js CHANGED
@@ -1,3 +1,7 @@
1
+ import "./_virtual/_rolldown/runtime.js";
2
+ import getRoutes from "./routes/routes.js";
3
+ import connectionFactory from "./utils/connection.js";
4
+ import memoryServerSetup from "./utils/database.js";
1
5
  import fs from "node:fs";
2
6
  import http from "node:http";
3
7
  import https from "node:https";
@@ -10,99 +14,92 @@ import { getServerConfig } from "@prosopo/server";
10
14
  import { at } from "@prosopo/util";
11
15
  import cors from "cors";
12
16
  import express from "express";
13
- import getRoutes from "./routes/routes.js";
14
- import connectionFactory from "./utils/connection.js";
15
- import { memoryServerSetup } from "./utils/database.js";
17
+ //#region src/app.ts
16
18
  loadEnv();
17
- var ProsopoVerificationType = /* @__PURE__ */ ((ProsopoVerificationType2) => {
18
- ProsopoVerificationType2["api"] = "api";
19
- ProsopoVerificationType2["local"] = "local";
20
- return ProsopoVerificationType2;
21
- })(ProsopoVerificationType || {});
22
- const logger = getLogger("info", "client-example-server:app");
19
+ var ProsopoVerificationType = /* @__PURE__ */ function(ProsopoVerificationType) {
20
+ ProsopoVerificationType["api"] = "api";
21
+ ProsopoVerificationType["local"] = "local";
22
+ return ProsopoVerificationType;
23
+ }(ProsopoVerificationType || {});
24
+ var logger = getLogger("info", "client-example-server:app");
23
25
  async function main() {
24
- loadEnv();
25
- const apiPrefix = process.env.NODE_ENV && process.env.NODE_ENV === "production" ? "" : `${process.env.NODE_ENV}-`;
26
- const verifyEndpoint = process.env.PROSOPO_VERIFY_ENDPOINT || `https://${apiPrefix}api.prosopo.io/siteverify`;
27
- logger.info(() => ({ data: { verifyEndpoint } }));
28
- const verifyType = Object.keys(
29
- ProsopoVerificationType
30
- ).includes(process.env.PROSOPO_VERIFICATION_TYPE) ? process.env.PROSOPO_VERIFICATION_TYPE : "api";
31
- const app = express();
32
- app.set("trust proxy", 1);
33
- app.use(cors({ origin: true, credentials: true }));
34
- app.use(express.urlencoded({ extended: true }));
35
- app.use(express.json());
36
- app.use((_, res, next) => {
37
- res.setHeader("Access-Control-Allow-Origin", "*");
38
- res.setHeader(
39
- "Access-Control-Allow-Methods",
40
- "GET, POST, PUT, PATCH, DELETE"
41
- );
42
- res.setHeader(
43
- "Access-Control-Allow-Headers",
44
- "Origin, Content-Type, X-Auth-Token, Authorization"
45
- );
46
- next();
47
- });
48
- app.options("/*", (_, res) => {
49
- res.sendStatus(200);
50
- });
51
- if (!process.env.MONGO_URI && process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test") {
52
- throw new Error(
53
- "Cannot run mongo memory when NODE_ENV is neither development nor test"
54
- );
55
- }
56
- logger.info(() => ({ msg: process.env.MONGO_URI }));
57
- const uri = process.env.MONGO_URI || await memoryServerSetup();
58
- logger.info(() => ({ msg: "mongo uri", data: { uri } }));
59
- const mongoose = connectionFactory(uri);
60
- if (!process.env.PROSOPO_SITE_PRIVATE_KEY) {
61
- const mnemonicError = new ProsopoEnvError("GENERAL.MNEMONIC_UNDEFINED", {
62
- context: { missingParams: ["PROSOPO_SITE_PRIVATE_KEY"] },
63
- logger
64
- });
65
- logger.error(() => ({ err: mnemonicError }));
66
- }
67
- const config = getServerConfig();
68
- logger.info(() => ({ msg: "Config", data: { config } }));
69
- app.use(getRoutes(mongoose, config, verifyEndpoint, verifyType));
70
- const port = config.serverUrl ? Number.parseInt(at(config.serverUrl.split(":"), 2)) : 9228;
71
- logger.info(() => ({ msg: "Listening on port", data: { port } }));
72
- const isDev = process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test";
73
- if (isDev) {
74
- const __filename = fileURLToPath(import.meta.url);
75
- const __dirname = path.dirname(__filename);
76
- const certsDir = path.resolve(__dirname, "../../../certs");
77
- const keyPath = path.join(certsDir, "server.key");
78
- const certPath = path.join(certsDir, "server.crt");
79
- if (fs.existsSync(keyPath) && fs.existsSync(certPath)) {
80
- const httpsOptions = {
81
- key: fs.readFileSync(keyPath),
82
- cert: fs.readFileSync(certPath)
83
- };
84
- https.createServer(httpsOptions, app).listen(port, () => {
85
- logger.info(() => ({ msg: `HTTPS server started on port ${port}` }));
86
- });
87
- } else {
88
- logger.warn(() => ({
89
- msg: "Certificates not found, starting HTTP server instead. Run ./setup_certs.sh to enable HTTPS in development."
90
- }));
91
- http.createServer(app).listen(port, () => {
92
- logger.info(() => ({ msg: `HTTP server started on port ${port}` }));
93
- });
94
- }
95
- } else {
96
- http.createServer(app).listen(port, () => {
97
- logger.info(() => ({
98
- msg: `HTTP server started on port ${port} (TLS handled by reverse proxy)`
99
- }));
100
- });
101
- }
26
+ loadEnv();
27
+ const apiPrefix = process.env.NODE_ENV && process.env.NODE_ENV === "production" ? "" : `${process.env.NODE_ENV}-`;
28
+ const verifyEndpoint = process.env.PROSOPO_VERIFY_ENDPOINT || `https://${apiPrefix}api.prosopo.io/siteverify`;
29
+ logger.info(() => ({ data: { verifyEndpoint } }));
30
+ const verifyType = Object.keys(ProsopoVerificationType).includes(process.env.PROSOPO_VERIFICATION_TYPE) ? process.env.PROSOPO_VERIFICATION_TYPE : "api";
31
+ const app = express();
32
+ app.set("trust proxy", 1);
33
+ app.use(cors({
34
+ origin: true,
35
+ credentials: true
36
+ }));
37
+ app.use(express.urlencoded({ extended: true }));
38
+ app.use(express.json());
39
+ app.use((_, res, next) => {
40
+ res.setHeader("Access-Control-Allow-Origin", "*");
41
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE");
42
+ res.setHeader("Access-Control-Allow-Headers", "Origin, Content-Type, X-Auth-Token, Authorization");
43
+ next();
44
+ });
45
+ app.options("/*", (_, res) => {
46
+ res.sendStatus(200);
47
+ });
48
+ if (!process.env.MONGO_URI && process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test") throw new Error("Cannot run mongo memory when NODE_ENV is neither development nor test");
49
+ logger.info(() => ({ msg: process.env.MONGO_URI }));
50
+ const uri = process.env.MONGO_URI || await memoryServerSetup();
51
+ logger.info(() => ({
52
+ msg: "mongo uri",
53
+ data: { uri }
54
+ }));
55
+ const mongoose = connectionFactory(uri);
56
+ if (!process.env.PROSOPO_SITE_PRIVATE_KEY) {
57
+ const mnemonicError = new ProsopoEnvError("GENERAL.MNEMONIC_UNDEFINED", {
58
+ context: { missingParams: ["PROSOPO_SITE_PRIVATE_KEY"] },
59
+ logger
60
+ });
61
+ logger.error(() => ({ err: mnemonicError }));
62
+ }
63
+ const config = getServerConfig();
64
+ logger.info(() => ({
65
+ msg: "Config",
66
+ data: { config }
67
+ }));
68
+ app.use(getRoutes(mongoose, config, verifyEndpoint, verifyType));
69
+ const port = config.serverUrl ? Number.parseInt(at(config.serverUrl.split(":"), 2)) : 9228;
70
+ logger.info(() => ({
71
+ msg: "Listening on port",
72
+ data: { port }
73
+ }));
74
+ if (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") {
75
+ const __filename = fileURLToPath(import.meta.url);
76
+ const __dirname = path.dirname(__filename);
77
+ const certsDir = path.resolve(__dirname, "../../../certs");
78
+ const keyPath = path.join(certsDir, "server.key");
79
+ const certPath = path.join(certsDir, "server.crt");
80
+ if (fs.existsSync(keyPath) && fs.existsSync(certPath)) {
81
+ const httpsOptions = {
82
+ key: fs.readFileSync(keyPath),
83
+ cert: fs.readFileSync(certPath)
84
+ };
85
+ https.createServer(httpsOptions, app).listen(port, () => {
86
+ logger.info(() => ({ msg: `HTTPS server started on port ${port}` }));
87
+ });
88
+ } else {
89
+ logger.warn(() => ({ msg: "Certificates not found, starting HTTP server instead. Run ./setup_certs.sh to enable HTTPS in development." }));
90
+ http.createServer(app).listen(port, () => {
91
+ logger.info(() => ({ msg: `HTTP server started on port ${port}` }));
92
+ });
93
+ }
94
+ } else http.createServer(app).listen(port, () => {
95
+ logger.info(() => ({ msg: `HTTP server started on port ${port} (TLS handled by reverse proxy)` }));
96
+ });
102
97
  }
103
98
  main().then(() => {
104
- logger.info(() => ({ msg: "Server started" }));
99
+ logger.info(() => ({ msg: "Server started" }));
105
100
  }).catch((err) => {
106
- logger.error(() => ({ err }));
107
- process.exit();
101
+ logger.error(() => ({ err }));
102
+ process.exit();
108
103
  });
104
+ //#endregion
105
+ export {};
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
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;
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));
22
+ //#endregion
23
+ exports.__toESM = __toESM;