@constructive-io/graphql-server 5.15.0 → 5.15.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.
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDebugDatabaseSnapshot = exports.closeDebugDatabasePools = void 0;
4
+ const pg_1 = require("pg");
4
5
  const pg_cache_1 = require("pg-cache");
5
6
  const pg_env_1 = require("pg-env");
6
- const pg_1 = require("pg");
7
7
  const ACTIVE_ACTIVITY_SQL = `
8
8
  select
9
9
  pid,
@@ -1,6 +1,6 @@
1
+ import { Pool } from 'pg';
1
2
  import { buildConnectionString, getPgPool } from 'pg-cache';
2
3
  import { getPgEnvOptions } from 'pg-env';
3
- import { Pool } from 'pg';
4
4
  const ACTIVE_ACTIVITY_SQL = `
5
5
  select
6
6
  pid,
@@ -1,6 +1,6 @@
1
1
  import os from 'node:os';
2
2
  import v8 from 'node:v8';
3
- import { svcCache, SVC_CACHE_TTL_MS } from '@pgpmjs/server-utils';
3
+ import { SVC_CACHE_TTL_MS, svcCache } from '@pgpmjs/server-utils';
4
4
  import { getCacheStats } from 'graphile-cache';
5
5
  import { getInFlightCount, getInFlightKeys } from '../middleware/graphile';
6
6
  import { getGraphileBuildStats } from '../middleware/observability/graphile-build-stats';
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './server';
2
2
  // Export middleware for use in testing packages
3
- export { createApiMiddleware, getSubdomain, getApiConfig } from './middleware/api';
3
+ export { createApiMiddleware, getApiConfig, getSubdomain } from './middleware/api';
4
4
  export { createAuthenticateMiddleware } from './middleware/auth';
5
5
  export { cors } from './middleware/cors';
6
- export { graphile } from './middleware/graphile';
7
6
  export { flush, flushService } from './middleware/flush';
7
+ export { graphile } from './middleware/graphile';
@@ -1,10 +1,10 @@
1
+ import './types'; // for Request type
1
2
  import { errors } from '@constructive-io/errors';
2
3
  import { getNodeEnv } from '@pgpmjs/env';
3
4
  import { Logger } from '@pgpmjs/logger';
4
5
  import { getPgPool } from 'pg-cache';
5
6
  import pgQueryContext from 'pg-query-context';
6
7
  import { respondWithGraphQLError } from '../errors/graphql-response';
7
- import './types'; // for Request type
8
8
  const log = new Logger('auth');
9
9
  const isDev = () => getNodeEnv() === 'development';
10
10
  /** Default cookie name for session tokens. */
@@ -1,7 +1,7 @@
1
+ import './types'; // for Request type
1
2
  import { errors } from '@constructive-io/errors';
2
3
  import { Logger } from '@pgpmjs/logger';
3
4
  import { respondWithGraphQLError } from '../errors/graphql-response';
4
- import './types'; // for Request type
5
5
  const log = new Logger('captcha');
6
6
  /** Google reCAPTCHA verification endpoint */
7
7
  const RECAPTCHA_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify';
@@ -1,6 +1,6 @@
1
+ import './types'; // for Request type
1
2
  import { parseUrl } from '@constructive-io/url-domains';
2
3
  import corsPlugin from 'cors';
3
- import './types'; // for Request type
4
4
  /**
5
5
  * Unified CORS middleware for Constructive API
6
6
  *
@@ -1,9 +1,9 @@
1
+ import './types';
1
2
  import { getNodeEnv } from '@pgpmjs/env';
2
3
  import { Logger } from '@pgpmjs/logger';
3
- import { isApiError } from '../errors/api-errors';
4
- import errorPage404Message from '../errors/404-message';
5
4
  import errorPage50x from '../errors/50x';
6
- import './types';
5
+ import errorPage404Message from '../errors/404-message';
6
+ import { isApiError } from '../errors/api-errors';
7
7
  const log = new Logger('error-handler');
8
8
  const isDevelopment = () => getNodeEnv() === 'development';
9
9
  const wantsJson = (req) => {
@@ -17,9 +17,9 @@
17
17
  * request's pgSettings (role + jwt.claims.* incl. jwt.claims.api_id) in a
18
18
  * transaction — RLS is fully enforced; no superuser or bypass path is used.
19
19
  */
20
+ import { QueryBuilder } from '@constructive-io/query-builder';
20
21
  import { Logger } from '@pgpmjs/logger';
21
22
  import { isUuid } from '@pgpmjs/server-utils';
22
- import { QueryBuilder } from '@constructive-io/query-builder';
23
23
  import express, { Router } from 'express';
24
24
  const log = new Logger('fn');
25
25
  const notFound = (res) => {
@@ -1,5 +1,5 @@
1
- import { randomUUID } from 'crypto';
2
1
  import { Logger } from '@pgpmjs/logger';
2
+ import { randomUUID } from 'crypto';
3
3
  const log = new Logger('server');
4
4
  const SAFE_REQUEST_ID = /^[a-zA-Z0-9\-_]{1,128}$/;
5
5
  export const createRequestLogger = ({ observabilityEnabled }) => {
@@ -1,6 +1,6 @@
1
- import { Logger } from '@pgpmjs/logger';
2
1
  import '../middleware/types';
3
- import { SESSION_COOKIE_NAME, DEVICE_TOKEN_COOKIE_NAME, getSessionCookieConfig, getDeviceTokenCookieConfig, } from '../middleware/cookie';
2
+ import { Logger } from '@pgpmjs/logger';
3
+ import { DEVICE_TOKEN_COOKIE_NAME, getDeviceTokenCookieConfig, getSessionCookieConfig, SESSION_COOKIE_NAME, } from '../middleware/cookie';
4
4
  const log = new Logger('auth-cookie');
5
5
  /**
6
6
  * Serialize a cookie to a Set-Cookie header value.
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from './server';
2
- export { createApiMiddleware, getSubdomain, getApiConfig } from './middleware/api';
2
+ export { createApiMiddleware, getApiConfig, getSubdomain } from './middleware/api';
3
3
  export { createAuthenticateMiddleware } from './middleware/auth';
4
4
  export { cors } from './middleware/cors';
5
- export { graphile } from './middleware/graphile';
6
5
  export { flush, flushService } from './middleware/flush';
6
+ export { graphile } from './middleware/graphile';
package/index.js CHANGED
@@ -14,19 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.flushService = exports.flush = exports.graphile = exports.cors = exports.createAuthenticateMiddleware = exports.getApiConfig = exports.getSubdomain = exports.createApiMiddleware = void 0;
17
+ exports.graphile = exports.flushService = exports.flush = exports.cors = exports.createAuthenticateMiddleware = exports.getSubdomain = exports.getApiConfig = exports.createApiMiddleware = void 0;
18
18
  __exportStar(require("./server"), exports);
19
19
  // Export middleware for use in testing packages
20
20
  var api_1 = require("./middleware/api");
21
21
  Object.defineProperty(exports, "createApiMiddleware", { enumerable: true, get: function () { return api_1.createApiMiddleware; } });
22
- Object.defineProperty(exports, "getSubdomain", { enumerable: true, get: function () { return api_1.getSubdomain; } });
23
22
  Object.defineProperty(exports, "getApiConfig", { enumerable: true, get: function () { return api_1.getApiConfig; } });
23
+ Object.defineProperty(exports, "getSubdomain", { enumerable: true, get: function () { return api_1.getSubdomain; } });
24
24
  var auth_1 = require("./middleware/auth");
25
25
  Object.defineProperty(exports, "createAuthenticateMiddleware", { enumerable: true, get: function () { return auth_1.createAuthenticateMiddleware; } });
26
26
  var cors_1 = require("./middleware/cors");
27
27
  Object.defineProperty(exports, "cors", { enumerable: true, get: function () { return cors_1.cors; } });
28
- var graphile_1 = require("./middleware/graphile");
29
- Object.defineProperty(exports, "graphile", { enumerable: true, get: function () { return graphile_1.graphile; } });
30
28
  var flush_1 = require("./middleware/flush");
31
29
  Object.defineProperty(exports, "flush", { enumerable: true, get: function () { return flush_1.flush; } });
32
30
  Object.defineProperty(exports, "flushService", { enumerable: true, get: function () { return flush_1.flushService; } });
31
+ var graphile_1 = require("./middleware/graphile");
32
+ Object.defineProperty(exports, "graphile", { enumerable: true, get: function () { return graphile_1.graphile; } });
@@ -1,4 +1,4 @@
1
+ import './types';
1
2
  import { PgpmOptions } from '@pgpmjs/types';
2
3
  import { RequestHandler } from 'express';
3
- import './types';
4
4
  export declare const createAuthenticateMiddleware: (opts: PgpmOptions) => RequestHandler;
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createAuthenticateMiddleware = void 0;
7
+ require("./types"); // for Request type
7
8
  const errors_1 = require("@constructive-io/errors");
8
9
  const env_1 = require("@pgpmjs/env");
9
10
  const logger_1 = require("@pgpmjs/logger");
10
11
  const pg_cache_1 = require("pg-cache");
11
12
  const pg_query_context_1 = __importDefault(require("pg-query-context"));
12
13
  const graphql_response_1 = require("../errors/graphql-response");
13
- require("./types"); // for Request type
14
14
  const log = new logger_1.Logger('auth');
15
15
  const isDev = () => (0, env_1.getNodeEnv)() === 'development';
16
16
  /** Default cookie name for session tokens. */
@@ -1,5 +1,5 @@
1
- import type { RequestHandler } from 'express';
2
1
  import './types';
2
+ import type { RequestHandler } from 'express';
3
3
  /**
4
4
  * Creates a CAPTCHA verification middleware.
5
5
  *
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createCaptchaMiddleware = void 0;
4
+ require("./types"); // for Request type
4
5
  const errors_1 = require("@constructive-io/errors");
5
6
  const logger_1 = require("@pgpmjs/logger");
6
7
  const graphql_response_1 = require("../errors/graphql-response");
7
- require("./types"); // for Request type
8
8
  const log = new logger_1.Logger('captcha');
9
9
  /** Google reCAPTCHA verification endpoint */
10
10
  const RECAPTCHA_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify';
@@ -1,5 +1,5 @@
1
- import type { RequestHandler } from 'express';
2
1
  import './types';
2
+ import type { RequestHandler } from 'express';
3
3
  /**
4
4
  * Unified CORS middleware for Constructive API
5
5
  *
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.cors = void 0;
7
+ require("./types"); // for Request type
7
8
  const url_domains_1 = require("@constructive-io/url-domains");
8
9
  const cors_1 = __importDefault(require("cors"));
9
- require("./types"); // for Request type
10
10
  /**
11
11
  * Unified CORS middleware for Constructive API
12
12
  *
@@ -1,4 +1,4 @@
1
- import type { ErrorRequestHandler, NextFunction, Request, Response } from 'express';
2
1
  import './types';
2
+ import type { ErrorRequestHandler, NextFunction, Request, Response } from 'express';
3
3
  export declare const errorHandler: ErrorRequestHandler;
4
4
  export declare const notFoundHandler: (req: Request, res: Response, _next: NextFunction) => void;
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.notFoundHandler = exports.errorHandler = void 0;
7
+ require("./types");
7
8
  const env_1 = require("@pgpmjs/env");
8
9
  const logger_1 = require("@pgpmjs/logger");
9
- const api_errors_1 = require("../errors/api-errors");
10
- const _404_message_1 = __importDefault(require("../errors/404-message"));
11
10
  const _50x_1 = __importDefault(require("../errors/50x"));
12
- require("./types");
11
+ const _404_message_1 = __importDefault(require("../errors/404-message"));
12
+ const api_errors_1 = require("../errors/api-errors");
13
13
  const log = new logger_1.Logger('error-handler');
14
14
  const isDevelopment = () => (0, env_1.getNodeEnv)() === 'development';
15
15
  const wantsJson = (req) => {
package/middleware/fn.js CHANGED
@@ -53,9 +53,9 @@ var __importStar = (this && this.__importStar) || (function () {
53
53
  })();
54
54
  Object.defineProperty(exports, "__esModule", { value: true });
55
55
  exports.createFnRouter = createFnRouter;
56
+ const query_builder_1 = require("@constructive-io/query-builder");
56
57
  const logger_1 = require("@pgpmjs/logger");
57
58
  const server_utils_1 = require("@pgpmjs/server-utils");
58
- const query_builder_1 = require("@constructive-io/query-builder");
59
59
  const express_1 = __importStar(require("express"));
60
60
  const log = new logger_1.Logger('fn');
61
61
  const notFound = (res) => {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRequestLogger = void 0;
4
- const crypto_1 = require("crypto");
5
4
  const logger_1 = require("@pgpmjs/logger");
5
+ const crypto_1 = require("crypto");
6
6
  const log = new logger_1.Logger('server');
7
7
  const SAFE_REQUEST_ID = /^[a-zA-Z0-9\-_]{1,128}$/;
8
8
  const createRequestLogger = ({ observabilityEnabled }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructive-io/graphql-server",
3
- "version": "5.15.0",
3
+ "version": "5.15.1",
4
4
  "author": "Constructive <developers@constructive.io>",
5
5
  "description": "Constructive GraphQL Server",
6
6
  "main": "index.js",
@@ -42,20 +42,20 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "@agentic-kit/ollama": "2.12.2",
45
- "@constructive-io/csrf": "^0.26.2",
45
+ "@constructive-io/csrf": "^0.26.3",
46
46
  "@constructive-io/errors": "^0.8.2",
47
- "@constructive-io/express-context": "^0.23.2",
48
- "@constructive-io/graphql-env": "^3.28.2",
49
- "@constructive-io/graphql-types": "^3.27.2",
50
- "@constructive-io/llm-env": "^0.12.2",
51
- "@constructive-io/query-builder": "^3.9.4",
52
- "@constructive-io/s3-utils": "^2.29.2",
47
+ "@constructive-io/express-context": "^0.23.3",
48
+ "@constructive-io/graphql-env": "^3.28.3",
49
+ "@constructive-io/graphql-types": "^3.27.3",
50
+ "@constructive-io/llm-env": "^0.12.3",
51
+ "@constructive-io/query-builder": "^3.9.5",
52
+ "@constructive-io/s3-utils": "^2.29.3",
53
53
  "@constructive-io/url-domains": "^2.28.2",
54
54
  "@graphile-contrib/pg-many-to-many": "2.0.0-rc.2",
55
- "@pgpmjs/env": "^2.40.2",
56
- "@pgpmjs/logger": "^2.23.2",
57
- "@pgpmjs/server-utils": "^3.24.2",
58
- "@pgpmjs/types": "^2.49.2",
55
+ "@pgpmjs/env": "^2.40.3",
56
+ "@pgpmjs/logger": "^2.23.3",
57
+ "@pgpmjs/server-utils": "^3.24.3",
58
+ "@pgpmjs/types": "^2.49.3",
59
59
  "cors": "^2.8.6",
60
60
  "deepmerge": "^4.3.1",
61
61
  "express": "^5.2.1",
@@ -64,16 +64,16 @@
64
64
  "grafserv": "1.0.0",
65
65
  "graphile-build": "5.0.2",
66
66
  "graphile-build-pg": "5.0.2",
67
- "graphile-cache": "^4.9.2",
67
+ "graphile-cache": "^4.9.3",
68
68
  "graphile-config": "1.0.1",
69
- "graphile-function-bindings": "^1.10.7",
70
- "graphile-settings": "^6.11.7",
69
+ "graphile-function-bindings": "^1.10.8",
70
+ "graphile-settings": "^6.11.8",
71
71
  "graphile-utils": "5.0.1",
72
72
  "graphql": "16.13.0",
73
73
  "graphql-upload": "^13.0.0",
74
74
  "lru-cache": "^11.2.7",
75
75
  "pg": "^8.21.0",
76
- "pg-cache": "^3.24.2",
76
+ "pg-cache": "^3.24.3",
77
77
  "pg-env": "^1.27.2",
78
78
  "pg-query-context": "^2.28.2",
79
79
  "pg-sql2": "5.0.1",
@@ -90,11 +90,11 @@
90
90
  "@types/request-ip": "^0.0.41",
91
91
  "@types/supertest": "^7.2.0",
92
92
  "cookie-parser": "^1.4.7",
93
- "graphile-test": "5.10.7",
93
+ "graphile-test": "5.10.8",
94
94
  "makage": "^0.3.0",
95
95
  "nodemon": "^3.1.14",
96
96
  "supertest": "^7.2.2",
97
97
  "ts-node": "^10.9.2"
98
98
  },
99
- "gitHead": "6d3e25dc5c9f93421dba49ddedf93239f87213a8"
99
+ "gitHead": "c20b6be96b39bf71c0e2df0f4b51e05deacd006b"
100
100
  }
@@ -1,5 +1,5 @@
1
- import type { GraphileConfig } from 'graphile-config';
2
1
  import '../middleware/types';
2
+ import type { GraphileConfig } from 'graphile-config';
3
3
  /**
4
4
  * AuthCookiePlugin - grafserv middleware plugin that handles auth cookie lifecycle.
5
5
  *
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuthCookiePlugin = void 0;
4
- const logger_1 = require("@pgpmjs/logger");
5
4
  require("../middleware/types");
5
+ const logger_1 = require("@pgpmjs/logger");
6
6
  const cookie_1 = require("../middleware/cookie");
7
7
  const log = new logger_1.Logger('auth-cookie');
8
8
  /**
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { PgpmOptions } from '@pgpmjs/types';
2
1
  import type { ApiOptions as ApiConfig } from '@constructive-io/graphql-types';
2
+ import type { PgpmOptions } from '@pgpmjs/types';
3
3
  export type { ApiConfigResult, ApiError, ApiStructure, AuthSettings, DatabaseSettings, PubkeyChallengeSettings, RlsModule, WebauthnSettings, } from '@constructive-io/express-context';
4
4
  export type ApiOptions = PgpmOptions & {
5
5
  api?: ApiConfig;