@openapi-typescript-infra/service 6.1.2 → 6.2.0

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 (88) hide show
  1. package/.yarn/patches/confit-npm-3.0.0-eade8c7ce1.patch +52 -0
  2. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +541 -0
  3. package/.yarn/releases/yarn-3.2.3.cjs +783 -0
  4. package/.yarnrc.yml +7 -0
  5. package/Makefile +3 -1
  6. package/__tests__/config.test.ts +53 -0
  7. package/__tests__/fake-serv/api/fake-serv.yaml +48 -0
  8. package/__tests__/fake-serv/config/config.json +13 -0
  9. package/__tests__/fake-serv/src/handlers/hello.ts +17 -0
  10. package/__tests__/fake-serv/src/index.ts +36 -0
  11. package/__tests__/fake-serv/src/routes/error.ts +16 -0
  12. package/__tests__/fake-serv/src/routes/index.ts +19 -0
  13. package/__tests__/fake-serv/src/routes/other/world.ts +7 -0
  14. package/__tests__/fake-serv.test.ts +119 -0
  15. package/__tests__/vitest.test-setup.ts +15 -0
  16. package/build/bin/start-service.js +1 -1
  17. package/build/bin/start-service.js.map +1 -1
  18. package/build/bootstrap.d.ts +1 -1
  19. package/build/bootstrap.js +0 -2
  20. package/build/bootstrap.js.map +1 -1
  21. package/build/config/index.d.ts +1 -1
  22. package/build/config/index.js +1 -1
  23. package/build/config/index.js.map +1 -1
  24. package/build/config/schema.d.ts +1 -1
  25. package/build/config/schema.js +0 -1
  26. package/build/config/shortstops.d.ts +17 -2
  27. package/build/config/shortstops.js.map +1 -1
  28. package/build/config/validation.d.ts +1 -1
  29. package/build/development/port-finder.js +0 -1
  30. package/build/development/port-finder.js.map +1 -1
  31. package/build/development/repl.d.ts +2 -2
  32. package/build/development/repl.js +11 -8
  33. package/build/development/repl.js.map +1 -1
  34. package/build/env.js +1 -0
  35. package/build/env.js.map +1 -1
  36. package/build/error.d.ts +1 -1
  37. package/build/express-app/app.d.ts +1 -1
  38. package/build/express-app/app.js +8 -9
  39. package/build/express-app/app.js.map +1 -1
  40. package/build/express-app/internal-server.d.ts +2 -2
  41. package/build/express-app/route-loader.d.ts +1 -1
  42. package/build/express-app/types.d.ts +1 -1
  43. package/build/express-app/types.js +0 -1
  44. package/build/hook.d.ts +1 -1
  45. package/build/openapi.d.ts +2 -2
  46. package/build/openapi.js +1 -0
  47. package/build/openapi.js.map +1 -1
  48. package/build/telemetry/DummyExporter.d.ts +1 -1
  49. package/build/telemetry/DummyExporter.js.map +1 -1
  50. package/build/telemetry/index.js +1 -2
  51. package/build/telemetry/index.js.map +1 -1
  52. package/build/telemetry/instrumentations.d.ts +4 -2
  53. package/build/telemetry/instrumentations.js +1 -1
  54. package/build/telemetry/instrumentations.js.map +1 -1
  55. package/build/telemetry/requestLogger.d.ts +3 -3
  56. package/build/telemetry/requestLogger.js.map +1 -1
  57. package/build/types.d.ts +6 -6
  58. package/build/types.js +0 -1
  59. package/package.json +31 -30
  60. package/src/bin/start-service.ts +1 -1
  61. package/src/bootstrap.ts +6 -6
  62. package/src/config/index.ts +2 -7
  63. package/src/config/schema.ts +1 -1
  64. package/src/config/shortstops.ts +3 -3
  65. package/src/config/validation.ts +1 -1
  66. package/src/development/port-finder.ts +0 -1
  67. package/src/development/repl.ts +14 -10
  68. package/src/env.ts +1 -0
  69. package/src/error.ts +1 -1
  70. package/src/express-app/app.ts +11 -12
  71. package/src/express-app/internal-server.ts +2 -2
  72. package/src/express-app/route-loader.ts +1 -1
  73. package/src/express-app/types.ts +1 -1
  74. package/src/hook.ts +1 -1
  75. package/src/openapi.ts +4 -3
  76. package/src/telemetry/DummyExporter.ts +2 -1
  77. package/src/telemetry/index.ts +2 -3
  78. package/src/telemetry/instrumentations.ts +5 -6
  79. package/src/telemetry/requestLogger.ts +7 -7
  80. package/src/types.ts +6 -6
  81. package/.commitlintrc.json +0 -5
  82. package/.eslintignore +0 -11
  83. package/.eslintrc.cjs +0 -14
  84. package/.prettierrc.cjs +0 -14
  85. package/build/tsconfig.build.tsbuildinfo +0 -1
  86. package/tsconfig.build.json +0 -11
  87. package/tsconfig.json +0 -35
  88. package/vitest.config.ts +0 -19
package/.yarnrc.yml ADDED
@@ -0,0 +1,7 @@
1
+ nodeLinker: node-modules
2
+
3
+ plugins:
4
+ - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
5
+ spec: '@yarnpkg/plugin-interactive-tools'
6
+
7
+ yarnPath: .yarn/releases/yarn-3.2.3.cjs
package/Makefile CHANGED
@@ -28,6 +28,8 @@ build_dir := $(shell node -e "console.log(require('./package.json').exports.repl
28
28
  src_files := $(shell find src -name '*.ts')
29
29
  build_files := $(patsubst src/%.ts,$(build_dir)/%.js,$(src_files))
30
30
  camel_case_name := $(shell echo $(SERVICE_NAME) | awk -F- '{result=""; for(i=1; i<=NF; i++) result = result toupper(substr($$i,1,1)) substr($$i,2); print result}' | tr -d '\n')
31
+ # tsgo is pretty cool. Maybe you should try it?
32
+ TSC ?= tsc
31
33
 
32
34
  ts: $(word 1, $(build_files))
33
35
 
@@ -35,7 +37,7 @@ clean:
35
37
  yarn dlx rimraf ./$(build_dir) src/generated tsconfig.build.tsbuildinfo
36
38
 
37
39
  $(word 1, $(build_files)): $(src_files)
38
- yarn tsc -p tsconfig.build.json
40
+ yarn $(TSC) -p tsconfig.build.json
39
41
  @if yarn info tsc-alias name --silent > /dev/null 2>&1; then \
40
42
  yarn tsc-alias --project tsconfig.build.json; \
41
43
  fi
@@ -0,0 +1,53 @@
1
+ import os from 'os';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ import { describe, expect, test } from 'vitest';
6
+
7
+ import type { ConfigurationSchema} from '../src/config/index.js';
8
+ import { insertConfigurationBefore, loadConfiguration } from '../src/config/index.js';
9
+ import { shortstops } from '../src/config/shortstops.js';
10
+
11
+ interface CustomConfig extends ConfigurationSchema {
12
+ google: string;
13
+ envswitchon: boolean;
14
+ envswitchoff: boolean;
15
+ servicetype: string;
16
+ oservicetype: string;
17
+ notservicetype: string;
18
+ bash_profile: string;
19
+ }
20
+
21
+ describe('configuration loader', () => {
22
+ test('overrides and shortstops', async () => {
23
+ const __filename = fileURLToPath(import.meta.url);
24
+ const __dirname = path.dirname(__filename);
25
+ const rootDirectory = path.resolve(__dirname, './fake-serv');
26
+ const shortstopHandlers = shortstops({ name: 'fake-serv' }, path.join(rootDirectory, 'src'));
27
+ const config = await loadConfiguration<CustomConfig>({
28
+ configurationDirectories: [path.resolve(rootDirectory, './config')],
29
+ shortstopHandlers,
30
+ });
31
+
32
+ expect(config.logging?.level).toEqual('debug');
33
+ expect(config.google).toBeTruthy();
34
+ expect(config.google).not.toEqual('google.com');
35
+
36
+ expect(config.envswitchoff).toBeFalsy();
37
+ expect(config.envswitchon).toBeTruthy();
38
+
39
+ expect(config.servicetype).toBeTruthy();
40
+ expect(config.oservicetype).toBeTruthy();
41
+ expect(config.notservicetype).toBeFalsy();
42
+
43
+ expect(config.bash_profile).toEqual(path.join(os.homedir(), '.bash_profile'));
44
+
45
+ const orig = ['a', 'b', 'd'];
46
+ const withC = insertConfigurationBefore(orig, 'c', 'd');
47
+ expect(withC).toEqual(['a', 'b', 'c', 'd']);
48
+ const withE = insertConfigurationBefore(orig, 'e', 'q');
49
+ expect(withE).toEqual(['a', 'b', 'd', 'e', 'q']);
50
+ expect(insertConfigurationBefore(undefined, 'a', 'b')).toEqual(['a', 'b']);
51
+ expect(insertConfigurationBefore([], 'a', 'b')).toEqual(['a', 'b']);
52
+ });
53
+ });
@@ -0,0 +1,48 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ title: Fake Service
4
+ version: 1.0.0
5
+ paths:
6
+ /hello:
7
+ get:
8
+ description: Get a greeting
9
+ parameters:
10
+ - name: greeting
11
+ in: query
12
+ required: false
13
+ schema:
14
+ type: string
15
+ - name: number
16
+ in: query
17
+ required: false
18
+ schema:
19
+ type: number
20
+ - name: break_things
21
+ in: query
22
+ required: false
23
+ schema:
24
+ type: boolean
25
+ responses:
26
+ 200:
27
+ description: We responded
28
+ content:
29
+ application/json:
30
+ schema:
31
+ type: object
32
+ properties:
33
+ greeting:
34
+ type: string
35
+ post:
36
+ description: Test body conversion
37
+ requestBody:
38
+ content:
39
+ application/json:
40
+ schema:
41
+ type: object
42
+ properties:
43
+ number:
44
+ type: number
45
+ required: true
46
+ responses:
47
+ 204:
48
+ description: I heard you
@@ -0,0 +1,13 @@
1
+ {
2
+ "logging": {
3
+ "level": "debug"
4
+ },
5
+ "google": "dns:google.com",
6
+ "bash_profile": "path:~/.bash_profile",
7
+ "envswitchoff": "env_switch:ENV_VAR_DOESNT_EXIST",
8
+ "envswitchon": "env_switch:!ENV_VAR_DOESNT_EXIST",
9
+ "servicetype": "servicetype:serv",
10
+ "oservicetype": "servicetype:internal",
11
+ "notservicetype": "servicetype:api",
12
+ "server": {}
13
+ }
@@ -0,0 +1,17 @@
1
+ import type { ServiceHandler } from '../../../../src/index';
2
+ import { repl$ } from '../../../../src/index';
3
+ import type { FakeServLocals } from '../index';
4
+
5
+ export const get: ServiceHandler<FakeServLocals> = async (req, res) => {
6
+ res.json({ greeting: req.query.greeting || 'Hello World' });
7
+ };
8
+
9
+ export const post: ServiceHandler<FakeServLocals> = async (req, res) => {
10
+ res.sendStatus(204);
11
+ };
12
+
13
+ export function thisIsATest() {
14
+ return 'Yes, true';
15
+ }
16
+
17
+ repl$(thisIsATest);
@@ -0,0 +1,36 @@
1
+ import type { Service, ServiceLocals } from '../../../src/types.js';
2
+ import { useService } from '../../../src/index.js';
3
+
4
+ export interface FakeServLocals extends ServiceLocals {
5
+ services: {
6
+ fakeServ: {
7
+ get_something(): Promise<{ things: string[] } | Error>;
8
+ };
9
+ };
10
+ }
11
+
12
+ export function service(): Service<FakeServLocals> {
13
+ const base = useService<FakeServLocals>();
14
+ return {
15
+ ...base,
16
+ async start(app) {
17
+ await base.start(app);
18
+ app.locals.services = app.locals.services || {};
19
+ app.locals.services.fakeServ = {
20
+ async get_something() {
21
+ throw new Error('Should not be called.');
22
+ },
23
+ };
24
+ },
25
+ async onRequest(req, res) {
26
+ await base.onRequest?.(req, res);
27
+ res.locals.rawBody = true;
28
+ },
29
+ async healthy(app) {
30
+ await base.healthy?.(app);
31
+ return new Promise((accept) => {
32
+ setTimeout(accept, 1000);
33
+ });
34
+ },
35
+ };
36
+ }
@@ -0,0 +1,16 @@
1
+ import type { ServiceRouter } from '../../../../src/index';
2
+ import { ServiceError } from '../../../../src/error';
3
+
4
+ export function route(router: ServiceRouter) {
5
+ router.get('/sync', (req) => {
6
+ throw new ServiceError(req.app, 'Synchronous error', { code: 'SyncError' });
7
+ });
8
+
9
+ router.get('/async', async (req) => {
10
+ await new Promise((accept) => {
11
+ setTimeout(accept, 100);
12
+ }).then(() => {
13
+ throw new ServiceError(req.app, 'Async error', { code: 'AsyncError' });
14
+ });
15
+ });
16
+ }
@@ -0,0 +1,19 @@
1
+ import type { ServiceExpress, ServiceRouter } from '../../../../src/index';
2
+ import type { FakeServLocals } from '../index';
3
+
4
+ export function route(router: ServiceRouter<FakeServLocals>, app: ServiceExpress<FakeServLocals>) {
5
+ const worldRequests = app.locals.meter.createCounter('world_requests', {
6
+ description: 'Metrics about requests to world',
7
+ });
8
+
9
+ router.get('/world', (req, res) => {
10
+ worldRequests.add(1, { method: 'get' });
11
+ res.json({ hello: 'world' });
12
+ });
13
+
14
+ router.post('/world', async (req, res) => {
15
+ await app.locals.services.fakeServ.get_something();
16
+ worldRequests.add(1);
17
+ res.sendStatus(204);
18
+ });
19
+ }
@@ -0,0 +1,7 @@
1
+ import type { Router } from 'express';
2
+
3
+ export function route(router: Router) {
4
+ router.get('/', (req, res) => {
5
+ res.json({ hello: 'jupiter' });
6
+ });
7
+ }
@@ -0,0 +1,119 @@
1
+ import http from 'http';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ import { describe, expect, test } from 'vitest';
6
+ import request from 'supertest';
7
+
8
+ import type {
9
+ ServiceStartOptions} from '../src/index.js';
10
+ import {
11
+ listen,
12
+ startApp,
13
+ } from '../src/index.js';
14
+
15
+ import { type FakeServLocals, service } from './fake-serv/src/index.js';
16
+
17
+ function httpRequest(options: http.RequestOptions) {
18
+ return new Promise((resolve, reject) => {
19
+ const req = http.request(options, (res) => {
20
+ let responseData = '';
21
+ res.on('data', (chunk) => {
22
+ responseData += chunk;
23
+ });
24
+ res.on('end', () => {
25
+ resolve(responseData);
26
+ });
27
+ });
28
+ req.on('error', (e) => {
29
+ reject(e);
30
+ });
31
+ req.end();
32
+ });
33
+ }
34
+
35
+ describe('fake-serv', () => {
36
+ test('basic service functionality', async () => {
37
+ const __filename = fileURLToPath(import.meta.url);
38
+ const __dirname = path.dirname(__filename);
39
+
40
+ const options: ServiceStartOptions<FakeServLocals> = {
41
+ service,
42
+ name: 'fake-serv',
43
+ rootDirectory: path.resolve(__dirname, './fake-serv'),
44
+ codepath: 'src',
45
+ version: '1.0.0',
46
+ };
47
+
48
+ const app = await startApp(options).catch((error) => {
49
+ // eslint-disable-next-line no-console
50
+ console.error(error);
51
+ throw error;
52
+ });
53
+ expect(app.locals.config.server.port).not.toEqual(0);
54
+ expect(app).toBeTruthy();
55
+
56
+ let { body } = await request(app).get('/world').timeout(500).expect(200);
57
+ expect(body.hello).toEqual('world');
58
+
59
+ ({ body } = await request(app).get('/other/world').timeout(500).expect(200));
60
+ expect(body.hello).toEqual('jupiter');
61
+
62
+ ({ body } = await request(app)
63
+ .get('/hello')
64
+ .query({ greeting: 'Hello Pluto!', number: '6', break_things: true })
65
+ .expect(200));
66
+ expect(body.greeting).toEqual('Hello Pluto!');
67
+
68
+ // Can't convert green to a number
69
+ await request(app)
70
+ .get('/hello')
71
+ .query({ greeting: 'Hello Pluto!', number: 'green' })
72
+ .expect(400);
73
+
74
+ // Make sure body paramater conversion works
75
+ await request(app).post('/hello').send({ number: 'green' }).expect(400);
76
+ await request(app).post('/hello').send({ number: '6' }).expect(204);
77
+ await request(app).post('/hello').send({ number: 6 }).expect(204);
78
+
79
+ ({ body } = await request(app).get('/error/sync').timeout(1000).expect(500));
80
+ expect(body.code).toEqual('SyncError');
81
+
82
+ ({ body } = await request(app).get('/error/async').timeout(1000).expect(500));
83
+ expect(body.code).toEqual('AsyncError');
84
+
85
+ // Mocking
86
+ await request(app).post('/world').expect(500);
87
+
88
+ const server = await listen(app);
89
+ // Exercise the http module
90
+ await httpRequest({
91
+ hostname: 'localhost',
92
+ port: app.locals.config.server.port,
93
+ path: '/hello?greeting=Hello&number=6',
94
+ method: 'GET',
95
+ });
96
+ await request(app.locals.internalApp)
97
+ .get('/metrics')
98
+ .expect(200)
99
+ .expect((res) => {
100
+ expect(res.text).toMatch(/nodejs_version_info{version/);
101
+ expect(res.text).toMatch(/# UNIT http_server_duration ms/);
102
+ expect(res.text).toMatch(/world_requests_total{method="get"} 1/);
103
+ expect(res.text).toContain(
104
+ 'http_request_duration_seconds_bucket{status_code="200",method="GET",path="/world"',
105
+ );
106
+ });
107
+
108
+ // Clean shutdown
109
+ await new Promise<void>((accept, reject) => {
110
+ server.close((e) => {
111
+ if (e) {
112
+ reject(e);
113
+ } else {
114
+ accept();
115
+ }
116
+ });
117
+ });
118
+ });
119
+ });
@@ -0,0 +1,15 @@
1
+ import { afterAll, beforeAll } from 'vitest';
2
+
3
+ import { shutdownGlobalTelemetry, startGlobalTelemetry } from '../src/telemetry/index.js';
4
+
5
+ // Even in testing, this needs to run first so that the instrumentation
6
+ // is loaded BEFORE express is loaded.
7
+ const startPromise = startGlobalTelemetry('fake-serv');
8
+
9
+ beforeAll(async () => {
10
+ await startPromise;
11
+ });
12
+
13
+ afterAll(async () => {
14
+ await shutdownGlobalTelemetry().catch(() => undefined);
15
+ });
@@ -16,7 +16,7 @@ if (argv.telemetry) {
16
16
  await import('../telemetry/hook-modules.js');
17
17
  }
18
18
  const noTelemetry = (argv.repl || isDev()) && !argv.telemetry;
19
- bootstrap({
19
+ void bootstrap({
20
20
  ...argv,
21
21
  telemetry: !noTelemetry,
22
22
  }).then(({ app, codepath, server }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"start-service.js","sourceRoot":"","sources":["../../src/bin/start-service.ts"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC3C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;CAClD,CAAC,CAAC;AAEH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9D,SAAS,CAAC;IACR,GAAG,IAAI;IACP,SAAS,EAAE,CAAC,WAAW;CACxB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"start-service.js","sourceRoot":"","sources":["../../src/bin/start-service.ts"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC3C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;CAClD,CAAC,CAAC;AAEH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9D,KAAK,SAAS,CAAC;IACb,GAAG,IAAI;IACP,SAAS,EAAE,CAAC,WAAW;CACxB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { AnyServiceLocals, RequestLocals, ServiceLocals } from './types.js';
2
- import { ConfigurationSchema } from './config/schema.js';
2
+ import type { ConfigurationSchema } from './config/schema.js';
3
3
  interface BootstrapArguments {
4
4
  name?: string;
5
5
  main?: string;
@@ -86,7 +86,6 @@ export async function bootstrap(argv) {
86
86
  });
87
87
  }
88
88
  // This needs to be required for TS on-the-fly to work
89
- // eslint-disable-next-line global-require, import/no-dynamic-require, @typescript-eslint/no-var-requires
90
89
  const impl = await import(absoluteEntrypoint);
91
90
  const opts = {
92
91
  name,
@@ -95,7 +94,6 @@ export async function bootstrap(argv) {
95
94
  service: impl.default || impl.service,
96
95
  codepath,
97
96
  };
98
- // eslint-disable-next-line import/no-unresolved
99
97
  const { startApp, listen } = await import('./express-app/app.js');
100
98
  const app = await startApp(opts);
101
99
  const server = argv?.nobind ? undefined : await listen(app);
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ShortstopHandler } from '@sesamecare-oss/confit';
1
+ import type { ShortstopHandler } from '@sesamecare-oss/confit';
2
2
  import type { ConfigurationSchema } from './schema.js';
3
3
  export interface ServiceConfigurationSpec {
4
4
  configurationDirectories: string[];
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
- import { confit, } from '@sesamecare-oss/confit';
4
+ import { confit } from '@sesamecare-oss/confit';
5
5
  import { getAvailablePort } from '../development/port-finder.js';
6
6
  // Order matters here.
7
7
  const ENVIRONMENTS = ['production', 'staging', 'test', 'development'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { BaseConfitSchema } from '@sesamecare-oss/confit';
2
2
  import type { middleware } from 'express-openapi-validator';
3
3
  import type { Level } from 'pino';
4
- import bodyParser from 'body-parser';
4
+ import type bodyParser from 'body-parser';
5
5
  export interface ConfigurationItemEnabled {
6
6
  enabled?: boolean;
7
7
  }
@@ -1,2 +1 @@
1
- export {};
2
1
  //# sourceMappingURL=schema.js.map
@@ -1,4 +1,19 @@
1
- import { type ShortstopHandler } from '@sesamecare-oss/confit';
2
1
  export declare function shortstops(service: {
3
2
  name: string;
4
- }, sourcedir: string): Record<string, ShortstopHandler<string, unknown>>;
3
+ }, sourcedir: string): {
4
+ env: (value: string) => string | number | boolean | undefined;
5
+ env_switch(v: string): boolean;
6
+ base64: (value: string) => string | Buffer;
7
+ regex(v: string): RegExp;
8
+ path: (v: string) => string;
9
+ sourcepath: (value: string) => string;
10
+ file: (v: string) => Promise<string | Buffer<ArrayBufferLike>>;
11
+ sourcefile: (value: string) => Promise<string | Buffer>;
12
+ require: (v: string) => any;
13
+ sourcerequire: (v: string) => any;
14
+ yaml: (value: string) => Promise<any>;
15
+ servicetype: (v: string) => boolean;
16
+ servicename: (v: string) => string;
17
+ os(p: string): string;
18
+ literal(v: string): string;
19
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"shortstops.js","sourceRoot":"","sources":["../../src/config/shortstops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortstops.js","sourceRoot":"","sources":["../../src/config/shortstops.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ConfigurationSchema } from './schema.js';
1
+ import type { ConfigurationSchema } from './schema.js';
2
2
  export interface ConfigValidationError {
3
3
  path: string;
4
4
  message: string;
@@ -25,7 +25,6 @@ async function isAvailable(port) {
25
25
  }
26
26
  async function findPort(start) {
27
27
  for (let p = start; p < start + 1000; p += 1) {
28
- // eslint-disable-next-line no-await-in-loop
29
28
  if (await isAvailable(p)) {
30
29
  return p;
31
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"port-finder.js","sourceRoot":"","sources":["../../src/development/port-finder.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,+EAA+E;AAC/E,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3B,YAAY,CAAC,UAAU,CAAC,CAAC;YAEzB,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACrD,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,KAAa;IACnC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,4CAA4C;QAC5C,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B;YACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,OAAO,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"port-finder.js","sourceRoot":"","sources":["../../src/development/port-finder.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,+EAA+E;AAC/E,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3B,YAAY,CAAC,UAAU,CAAC,CAAC;YAEzB,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACrD,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,KAAa;IACnC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B;YACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,OAAO,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvF,CAAC"}
@@ -1,5 +1,5 @@
1
- import { AnyServiceLocals, ServiceExpress, ServiceLocals } from '../types.js';
2
- import { ConfigurationSchema } from '../config/schema.js';
1
+ import type { AnyServiceLocals, ServiceExpress, ServiceLocals } from '../types.js';
2
+ import type { ConfigurationSchema } from '../config/schema.js';
3
3
  export declare function serviceRepl<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>>(app: ServiceExpress<SLocals>, codepath: string | undefined, onExit: () => void): void;
4
4
  type ReplAny = any;
5
5
  /**
@@ -1,6 +1,6 @@
1
- import repl from 'repl';
2
- import fs from 'fs';
3
- import path from 'path';
1
+ import repl from 'node:repl';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
4
  import { glob } from 'glob';
5
5
  import { set } from 'moderndash';
6
6
  const REPL_PROP = '$$repl$$';
@@ -23,7 +23,6 @@ export function serviceRepl(app, codepath, onExit) {
23
23
  app,
24
24
  req: new FakeReq('/'),
25
25
  dump(o) {
26
- // eslint-disable-next-line no-console
27
26
  console.log(JSON.stringify(o, null, '\t'));
28
27
  },
29
28
  // Use iTerm2's escape code to copy to clipboard
@@ -39,7 +38,10 @@ export function serviceRepl(app, codepath, onExit) {
39
38
  }
40
39
  });
41
40
  app.locals.service.attachRepl?.(app, rl);
42
- loadReplFunctions(app, codepath, rl);
41
+ loadReplFunctions(app, codepath, rl).catch((error) => {
42
+ // eslint-disable-next-line no-console
43
+ console.error('Failed to load REPL functions', error);
44
+ });
43
45
  rl.on('exit', onExit);
44
46
  }
45
47
  async function loadReplFunctions(app, codepath, rl) {
@@ -55,9 +57,9 @@ async function loadReplFunctions(app, codepath, rl) {
55
57
  if (/repl\$[()]/.test(fileContent)) {
56
58
  const module = await import(path.resolve(file));
57
59
  // Look for functions with the REPL_PROP marker
58
- Object.values(module).forEach((exported) => {
60
+ for (const exported of Object.values(module)) {
59
61
  if (!exported) {
60
- return;
62
+ continue;
61
63
  }
62
64
  if (typeof exported === 'function') {
63
65
  const replName = exported[REPL_PROP];
@@ -65,10 +67,11 @@ async function loadReplFunctions(app, codepath, rl) {
65
67
  set(rl.context, replName, exported.bind(null, app));
66
68
  }
67
69
  }
68
- });
70
+ }
69
71
  }
70
72
  }
71
73
  catch (err) {
74
+ // eslint-disable-next-line no-console
72
75
  console.error(`Failed to load REPL functions from ${file}:`, err);
73
76
  }
74
77
  }