@mocktomata/io-remote 8.0.4 → 9.0.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 (115) hide show
  1. package/cjs/errors.d.ts +1 -5
  2. package/cjs/errors.d.ts.map +1 -1
  3. package/cjs/errors.js +3 -11
  4. package/cjs/errors.js.map +1 -1
  5. package/cjs/index.d.ts +1 -2
  6. package/cjs/index.d.ts.map +1 -1
  7. package/cjs/index.js +1 -2
  8. package/cjs/index.js.map +1 -1
  9. package/cjs/io.d.ts +4 -0
  10. package/cjs/io.d.ts.map +1 -0
  11. package/cjs/io.internal.d.ts +8 -0
  12. package/cjs/io.internal.d.ts.map +1 -0
  13. package/cjs/{createIO.internal.js → io.internal.js} +9 -7
  14. package/cjs/io.internal.js.map +1 -0
  15. package/cjs/{createIO.js → io.js} +3 -3
  16. package/cjs/io.js.map +1 -0
  17. package/cjs/io.mock.d.ts +9 -0
  18. package/cjs/io.mock.d.ts.map +1 -0
  19. package/cjs/io.mock.js +112 -0
  20. package/cjs/io.mock.js.map +1 -0
  21. package/cjs/{types.d.ts → io.types.d.ts} +2 -2
  22. package/cjs/io.types.d.ts.map +1 -0
  23. package/cjs/{types.js → io.types.js} +1 -1
  24. package/cjs/io.types.js.map +1 -0
  25. package/cjs/server_info.d.ts +10 -0
  26. package/cjs/server_info.d.ts.map +1 -0
  27. package/cjs/server_info.js +16 -0
  28. package/cjs/server_info.js.map +1 -0
  29. package/cjs/{buildUrl.d.ts → url.d.ts} +1 -1
  30. package/cjs/url.d.ts.map +1 -0
  31. package/cjs/{buildUrl.js → url.js} +2 -2
  32. package/cjs/url.js.map +1 -0
  33. package/esm/errors.d.ts +1 -5
  34. package/esm/errors.d.ts.map +1 -1
  35. package/esm/errors.js +1 -8
  36. package/esm/errors.js.map +1 -1
  37. package/esm/index.d.ts +1 -2
  38. package/esm/index.d.ts.map +1 -1
  39. package/esm/index.js +1 -2
  40. package/esm/index.js.map +1 -1
  41. package/esm/io.d.ts +4 -0
  42. package/esm/io.d.ts.map +1 -0
  43. package/esm/io.internal.d.ts +8 -0
  44. package/esm/io.internal.d.ts.map +1 -0
  45. package/esm/{createIO.internal.js → io.internal.js} +6 -4
  46. package/esm/io.internal.js.map +1 -0
  47. package/esm/io.js +8 -0
  48. package/esm/io.js.map +1 -0
  49. package/esm/io.mock.d.ts +9 -0
  50. package/esm/io.mock.d.ts.map +1 -0
  51. package/esm/io.mock.js +84 -0
  52. package/esm/io.mock.js.map +1 -0
  53. package/esm/{types.d.ts → io.types.d.ts} +2 -2
  54. package/esm/io.types.d.ts.map +1 -0
  55. package/esm/io.types.js +2 -0
  56. package/esm/io.types.js.map +1 -0
  57. package/esm/server_info.d.ts +10 -0
  58. package/esm/server_info.d.ts.map +1 -0
  59. package/esm/server_info.js +12 -0
  60. package/esm/server_info.js.map +1 -0
  61. package/esm/{buildUrl.d.ts → url.d.ts} +1 -1
  62. package/esm/url.d.ts.map +1 -0
  63. package/esm/url.js +4 -0
  64. package/esm/url.js.map +1 -0
  65. package/package.json +8 -4
  66. package/ts/errors.ts +1 -8
  67. package/ts/index.ts +1 -2
  68. package/ts/{createIO.internal.ts → io.internal.ts} +12 -6
  69. package/ts/io.mock.ts +91 -0
  70. package/ts/io.ts +10 -0
  71. package/ts/{types.ts → io.types.ts} +1 -1
  72. package/ts/server_info.ts +24 -0
  73. package/ts/{buildUrl.ts → url.ts} +1 -1
  74. package/cjs/buildUrl.d.ts.map +0 -1
  75. package/cjs/buildUrl.js.map +0 -1
  76. package/cjs/createIO.d.ts +0 -4
  77. package/cjs/createIO.d.ts.map +0 -1
  78. package/cjs/createIO.internal.d.ts +0 -5
  79. package/cjs/createIO.internal.d.ts.map +0 -1
  80. package/cjs/createIO.internal.js.map +0 -1
  81. package/cjs/createIO.js.map +0 -1
  82. package/cjs/getServerInfo.d.ts +0 -16
  83. package/cjs/getServerInfo.d.ts.map +0 -1
  84. package/cjs/getServerInfo.js +0 -41
  85. package/cjs/getServerInfo.js.map +0 -1
  86. package/cjs/types.d.ts.map +0 -1
  87. package/cjs/types.internal.d.ts +0 -9
  88. package/cjs/types.internal.d.ts.map +0 -1
  89. package/cjs/types.internal.js +0 -3
  90. package/cjs/types.internal.js.map +0 -1
  91. package/cjs/types.js.map +0 -1
  92. package/esm/buildUrl.d.ts.map +0 -1
  93. package/esm/buildUrl.js +0 -4
  94. package/esm/buildUrl.js.map +0 -1
  95. package/esm/createIO.d.ts +0 -4
  96. package/esm/createIO.d.ts.map +0 -1
  97. package/esm/createIO.internal.d.ts +0 -5
  98. package/esm/createIO.internal.d.ts.map +0 -1
  99. package/esm/createIO.internal.js.map +0 -1
  100. package/esm/createIO.js +0 -8
  101. package/esm/createIO.js.map +0 -1
  102. package/esm/getServerInfo.d.ts +0 -16
  103. package/esm/getServerInfo.d.ts.map +0 -1
  104. package/esm/getServerInfo.js +0 -37
  105. package/esm/getServerInfo.js.map +0 -1
  106. package/esm/types.d.ts.map +0 -1
  107. package/esm/types.internal.d.ts +0 -9
  108. package/esm/types.internal.d.ts.map +0 -1
  109. package/esm/types.internal.js +0 -2
  110. package/esm/types.internal.js.map +0 -1
  111. package/esm/types.js +0 -2
  112. package/esm/types.js.map +0 -1
  113. package/ts/createIO.ts +0 -10
  114. package/ts/getServerInfo.ts +0 -62
  115. package/ts/types.internal.ts +0 -8
package/esm/io.mock.js ADDED
@@ -0,0 +1,84 @@
1
+ import { json } from '@mocktomata/framework';
2
+ import * as f from 'cross-fetch';
3
+ export function newMemoryContext({ url } = { url: 'http://localhost:3789' }) {
4
+ const store = {
5
+ info: {
6
+ name: 'mocktomata',
7
+ version: '8.0.4',
8
+ url
9
+ },
10
+ config: {
11
+ ecmaVersion: 'es2015',
12
+ plugins: []
13
+ },
14
+ modules: {}
15
+ };
16
+ const urlBase = store.info.url;
17
+ return {
18
+ async fetch(url) {
19
+ switch (true) {
20
+ case url === `${urlBase}/api/info`:
21
+ return new Response(JSON.stringify(store.info));
22
+ case url === `${urlBase}/api/config`:
23
+ return new Response(JSON.stringify(store.config));
24
+ default:
25
+ throw new Error(`not supported: ${url}`);
26
+ }
27
+ },
28
+ async importModule(moduleSpecifier) {
29
+ return store.modules[moduleSpecifier];
30
+ }
31
+ };
32
+ }
33
+ export function createFakeServerFetch() {
34
+ const specs = {
35
+ exist: { actions: [] }
36
+ };
37
+ const scenarios = {
38
+ exist: { scenario: 'exist' }
39
+ };
40
+ return Object.assign(async (url, init) => {
41
+ const uri = extractUri(url);
42
+ if (uri === 'api/info') {
43
+ return new f.Response(json.stringify({
44
+ url: 'http://localhost:3999',
45
+ version: '1.0'
46
+ }));
47
+ }
48
+ else if (uri === 'api/config') {
49
+ return new f.Response(json.stringify({
50
+ plugins: ['@mocktomata/plugin-fixture-dummy']
51
+ }));
52
+ // istanbul ignore next
53
+ }
54
+ else if (uri.startsWith('api/specs/')) {
55
+ const id = /api\/specs\/(.*)/.exec(uri)[1];
56
+ const { specName } = json.parse(atob(id));
57
+ if (init && init.method === 'POST') {
58
+ specs[specName] = json.parse(init.body);
59
+ return new f.Response(undefined);
60
+ }
61
+ else {
62
+ if (specs[specName])
63
+ return new f.Response(json.stringify(specs[specName]));
64
+ else
65
+ return new f.Response(undefined, { status: 404 });
66
+ }
67
+ }
68
+ // istanbul ignore next
69
+ console.error(url);
70
+ // istanbul ignore next
71
+ return new f.Response(undefined, { status: 404 });
72
+ }, {
73
+ specs,
74
+ scenarios
75
+ });
76
+ }
77
+ function extractUri(url) {
78
+ const match = /https?:\/\/\w*:\d+\/(.*)/.exec(url);
79
+ // istanbul ignore next
80
+ if (!match)
81
+ throw match;
82
+ return match[1];
83
+ }
84
+ //# sourceMappingURL=io.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.mock.js","sourceRoot":"","sources":["../ts/io.mock.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@ export type ServiceOptions = {
5
5
  */
6
6
  url: string;
7
7
  };
8
- export type CreateIOOptions = ServiceOptions & Log.Context;
9
- //# sourceMappingURL=types.d.ts.map
8
+ export type IOOptions = ServiceOptions & Log.Context;
9
+ //# sourceMappingURL=io.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.types.d.ts","sourceRoot":"","sources":["../ts/io.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAEhD,MAAM,MAAM,cAAc,GAAG;IAC5B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,GAAG,CAAC,OAAO,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=io.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.types.js","sourceRoot":"","sources":["../ts/io.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { Context } from './io.internal.js';
2
+ import type { ServiceOptions } from './io.types.js';
3
+ export type ServerInfo = {
4
+ name: string;
5
+ version: string;
6
+ url: string;
7
+ plugins?: string[];
8
+ };
9
+ export declare function getServerInfo({ fetch }: Pick<Context, 'fetch'>, { url }: ServiceOptions): Promise<ServerInfo>;
10
+ //# sourceMappingURL=server_info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_info.d.ts","sourceRoot":"","sources":["../ts/server_info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGnD,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IAEX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,wBAAsB,aAAa,CAClC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EACjC,EAAE,GAAG,EAAE,EAAE,cAAc,GACrB,OAAO,CAAC,UAAU,CAAC,CAOrB"}
@@ -0,0 +1,12 @@
1
+ import { ServiceNotAvailable } from './errors.js';
2
+ import { buildUrl } from './url.js';
3
+ export async function getServerInfo({ fetch }, { url }) {
4
+ try {
5
+ const response = await fetch(buildUrl(url, 'info'));
6
+ return response.json();
7
+ }
8
+ catch (e) {
9
+ throw e.code === 'ECONNREFUSED' ? new ServiceNotAvailable(url) : e;
10
+ }
11
+ }
12
+ //# sourceMappingURL=server_info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_info.js","sourceRoot":"","sources":["../ts/server_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAUnC,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,EAAE,KAAK,EAA0B,EACjC,EAAE,GAAG,EAAkB;IAEvB,IAAI;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QACnD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;KACtB;IAAC,OAAO,CAAM,EAAE;QAChB,MAAM,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAClE;AACF,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export declare function buildUrl(urlBase: string, path: string): string;
2
- //# sourceMappingURL=buildUrl.d.ts.map
2
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../ts/url.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAErD"}
package/esm/url.js ADDED
@@ -0,0 +1,4 @@
1
+ export function buildUrl(urlBase, path) {
2
+ return `${urlBase}/api/${path}`;
3
+ }
4
+ //# sourceMappingURL=url.js.map
package/esm/url.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../ts/url.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAY;IACrD,OAAO,GAAG,OAAO,QAAQ,IAAI,EAAE,CAAA;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mocktomata/io-remote",
3
- "version": "8.0.4",
3
+ "version": "9.0.0",
4
4
  "description": "mocktomata remote IO",
5
5
  "homepage": "https://github.com/mocktomata/mocktomata/tree/main/packages/io-remote",
6
6
  "bugs": {
@@ -35,24 +35,28 @@
35
35
  "dependencies": {
36
36
  "cross-fetch": "^3.1.4",
37
37
  "iso-error": "^6.0.0",
38
- "@mocktomata/framework": "^8.0.4"
38
+ "@mocktomata/framework": "^9.0.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@kayahr/jest-electron-runner": "^29.0.0",
42
+ "@repobuddy/jest": "^3.1.1",
42
43
  "assertron": "^11.0.0",
43
44
  "cross-env": "^7.0.3",
45
+ "deepmerge": "^4.2.2",
44
46
  "depcheck": "^1.4.3",
45
47
  "jest": "^29.4.2",
46
- "jest-validate": "29.4.2",
48
+ "jest-validate": "29.4.3",
47
49
  "jest-watch-suspend": "^1.1.2",
48
50
  "jest-watch-toggle-config-2": "^2.1.0",
49
51
  "jest-watch-typeahead": "^2.2.2",
50
52
  "ncp": "^2.0.0",
51
53
  "npm-run-all": "^4.1.5",
52
54
  "rimraf": "^3.0.2",
55
+ "standard-log": "^11.5.1",
53
56
  "ts-jest": "^29.0.3",
54
57
  "typescript": "~4.9.0",
55
- "@mocktomata/plugin-fixture-dummy": "^1.1.10"
58
+ "@mocktomata/plugin-fixture-dummy": "^1.1.11",
59
+ "@mocktomata/service": "^9.0.0"
56
60
  },
57
61
  "engines": {
58
62
  "node": ">= 14.16"
package/ts/errors.ts CHANGED
@@ -1,14 +1,7 @@
1
1
  import { MocktomataError } from '@mocktomata/framework'
2
2
  import { ModuleError } from 'iso-error'
3
- export class ServerNotAvailable extends MocktomataError {
3
+ export class ServiceNotAvailable extends MocktomataError {
4
4
  constructor(public url: string, options?: ModuleError.Options) {
5
5
  super(`Unable to connect to server at ${url}`, options)
6
6
  }
7
7
  }
8
-
9
- // istanbul ignore next
10
- export class ServerNotAvailableAtPortRange extends MocktomataError {
11
- constructor(public url: string, start: number, end: number, options?: ModuleError.Options) {
12
- super(`Unable to find mocktomata server at ${url} between port ${start} and ${end}`, options)
13
- }
14
- }
package/ts/index.ts CHANGED
@@ -1,3 +1,2 @@
1
- export * from './createIO.js'
1
+ export * from './io.js'
2
2
  export * from './errors.js'
3
- export * from './types.js'
@@ -1,13 +1,17 @@
1
1
  import { json, SpecNotFound, type Mocktomata, type SpecPlugin, type SpecRecord } from '@mocktomata/framework'
2
- import { buildUrl } from './buildUrl.js'
3
- import { getServerInfo } from './getServerInfo.js'
4
- import type { Context } from './types.internal.js'
5
- import type { CreateIOOptions } from './types.js'
2
+ import { IOOptions } from './io.types.js'
3
+ import { getServerInfo } from './server_info.js'
4
+ import { buildUrl } from './url.js'
6
5
 
7
- export async function createIOInternal(ctx: Context, options?: CreateIOOptions): Promise<Mocktomata.IO> {
8
- const info = await getServerInfo(ctx, options)
6
+ export type Context = {
7
+ fetch: (url: RequestInfo, init?: RequestInit) => Promise<Response>
8
+ importModule(moduleSpecifier: string): Promise<SpecPlugin.Module>
9
+ }
10
+
11
+ export async function createIOInternal(ctx: Context, options: IOOptions): Promise<Mocktomata.IO> {
9
12
  return {
10
13
  async loadConfig() {
14
+ const info = await getServerInfo(ctx, options)
11
15
  // @TODO add browser config?
12
16
  const url = buildUrl(info.url, `config`)
13
17
  const response = await ctx.fetch(url)
@@ -17,6 +21,7 @@ export async function createIOInternal(ctx: Context, options?: CreateIOOptions):
17
21
  return ctx.importModule(name)
18
22
  },
19
23
  async readSpec(specName: string, specRelativePath: string): Promise<SpecRecord> {
24
+ const info = await getServerInfo(ctx, options)
20
25
  const id = btoa(json.stringify({ specName, specRelativePath }))
21
26
  const response = await ctx.fetch(buildUrl(info.url, `specs/${id}`))
22
27
  if (response.status === 404) {
@@ -25,6 +30,7 @@ export async function createIOInternal(ctx: Context, options?: CreateIOOptions):
25
30
  return response.json()
26
31
  },
27
32
  async writeSpec(specName, specRelativePath, record) {
33
+ const info = await getServerInfo(ctx, options)
28
34
  const id = btoa(json.stringify({ specName, specRelativePath }))
29
35
  const response = await ctx.fetch(buildUrl(info.url, `specs/${id}`), {
30
36
  method: 'POST',
package/ts/io.mock.ts ADDED
@@ -0,0 +1,91 @@
1
+ import { Config, json, SpecPlugin } from '@mocktomata/framework'
2
+ import * as f from 'cross-fetch'
3
+ import type { Context } from './io.internal.js'
4
+ import type { ServerInfo } from './server_info.js'
5
+
6
+ export function newMemoryContext({ url } = { url: 'http://localhost:3789' }): Context {
7
+ const store = {
8
+ info: {
9
+ name: 'mocktomata',
10
+ version: '8.0.4',
11
+ url
12
+ } satisfies ServerInfo,
13
+ config: {
14
+ ecmaVersion: 'es2015',
15
+ plugins: []
16
+ } satisfies Config.Input,
17
+ modules: {} as Record<string, SpecPlugin.Module>
18
+ }
19
+ const urlBase = store.info.url
20
+ return {
21
+ async fetch(url) {
22
+ switch (true) {
23
+ case url === `${urlBase}/api/info`:
24
+ return new Response(JSON.stringify(store.info))
25
+ case url === `${urlBase}/api/config`:
26
+ return new Response(JSON.stringify(store.config))
27
+ default:
28
+ throw new Error(`not supported: ${url}`)
29
+ }
30
+ },
31
+ async importModule(moduleSpecifier) {
32
+ return store.modules[moduleSpecifier]
33
+ }
34
+ }
35
+ }
36
+
37
+ export function createFakeServerFetch() {
38
+ const specs: Record<string, any> = {
39
+ exist: { actions: [] }
40
+ }
41
+
42
+ const scenarios: Record<string, any> = {
43
+ exist: { scenario: 'exist' }
44
+ }
45
+
46
+ return Object.assign(
47
+ async (url: RequestInfo, init?: RequestInit) => {
48
+ const uri = extractUri(url as string)
49
+ if (uri === 'api/info') {
50
+ return new f.Response(
51
+ json.stringify({
52
+ url: 'http://localhost:3999',
53
+ version: '1.0'
54
+ })
55
+ )
56
+ } else if (uri === 'api/config') {
57
+ return new f.Response(
58
+ json.stringify({
59
+ plugins: ['@mocktomata/plugin-fixture-dummy']
60
+ })
61
+ )
62
+ // istanbul ignore next
63
+ } else if (uri.startsWith('api/specs/')) {
64
+ const id = /api\/specs\/(.*)/.exec(uri)![1]
65
+ const { specName } = json.parse(atob(id))
66
+ if (init && init.method === 'POST') {
67
+ specs[specName] = json.parse(init.body as string)
68
+ return new f.Response(undefined)
69
+ } else {
70
+ if (specs[specName]) return new f.Response(json.stringify(specs[specName]))
71
+ else return new f.Response(undefined, { status: 404 })
72
+ }
73
+ }
74
+ // istanbul ignore next
75
+ console.error(url)
76
+ // istanbul ignore next
77
+ return new f.Response(undefined, { status: 404 })
78
+ },
79
+ {
80
+ specs,
81
+ scenarios
82
+ }
83
+ )
84
+ }
85
+
86
+ function extractUri(url: string) {
87
+ const match = /https?:\/\/\w*:\d+\/(.*)/.exec(url)
88
+ // istanbul ignore next
89
+ if (!match) throw match
90
+ return match[1]
91
+ }
package/ts/io.ts ADDED
@@ -0,0 +1,10 @@
1
+ import type { Mocktomata } from '@mocktomata/framework'
2
+ import fetch from 'cross-fetch'
3
+ import { createIOInternal } from './io.internal.js'
4
+ import type { IOOptions } from './io.types.js'
5
+ import { importModule } from './platform.js'
6
+
7
+ export async function createIO(options: IOOptions): Promise<Mocktomata.IO> {
8
+ // istanbul ignore next
9
+ return createIOInternal({ fetch, importModule }, options)
10
+ }
@@ -7,4 +7,4 @@ export type ServiceOptions = {
7
7
  url: string
8
8
  }
9
9
 
10
- export type CreateIOOptions = ServiceOptions & Log.Context
10
+ export type IOOptions = ServiceOptions & Log.Context
@@ -0,0 +1,24 @@
1
+ import { ServiceNotAvailable } from './errors.js'
2
+ import { Context } from './io.internal.js'
3
+ import type { ServiceOptions } from './io.types.js'
4
+ import { buildUrl } from './url.js'
5
+
6
+ export type ServerInfo = {
7
+ name: string
8
+ version: string
9
+ url: string
10
+ // TODO: server not returning plugins
11
+ plugins?: string[]
12
+ }
13
+
14
+ export async function getServerInfo(
15
+ { fetch }: Pick<Context, 'fetch'>,
16
+ { url }: ServiceOptions
17
+ ): Promise<ServerInfo> {
18
+ try {
19
+ const response = await fetch(buildUrl(url, 'info'))
20
+ return response.json()
21
+ } catch (e: any) {
22
+ throw e.code === 'ECONNREFUSED' ? new ServiceNotAvailable(url) : e
23
+ }
24
+ }
@@ -1,3 +1,3 @@
1
1
  export function buildUrl(urlBase: string, path: string) {
2
- return `${urlBase}/mocktomata/${path}`
2
+ return `${urlBase}/api/${path}`
3
3
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildUrl.d.ts","sourceRoot":"","sources":["../ts/buildUrl.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAErD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildUrl.js","sourceRoot":"","sources":["../ts/buildUrl.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,OAAe,EAAE,IAAY;IACrD,OAAO,GAAG,OAAO,eAAe,IAAI,EAAE,CAAA;AACvC,CAAC;AAFD,4BAEC"}
package/cjs/createIO.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { Mocktomata } from '@mocktomata/framework';
2
- import type { CreateIOOptions } from './types.js';
3
- export declare function createIO(options?: CreateIOOptions): Promise<Mocktomata.IO>;
4
- //# sourceMappingURL=createIO.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.d.ts","sourceRoot":"","sources":["../ts/createIO.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAGhF"}
@@ -1,5 +0,0 @@
1
- import { type Mocktomata } from '@mocktomata/framework';
2
- import type { Context } from './types.internal.js';
3
- import type { CreateIOOptions } from './types.js';
4
- export declare function createIOInternal(ctx: Context, options?: CreateIOOptions): Promise<Mocktomata.IO>;
5
- //# sourceMappingURL=createIO.internal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.internal.d.ts","sourceRoot":"","sources":["../ts/createIO.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAoC,MAAM,uBAAuB,CAAA;AAG7G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAgCtG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.internal.js","sourceRoot":"","sources":["../ts/createIO.internal.ts"],"names":[],"mappings":";;;AAAA,qDAA6G;AAC7G,+CAAwC;AACxC,yDAAkD;AAI3C,KAAK,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAyB;IAC7E,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAa,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC9C,OAAO;QACN,KAAK,CAAC,UAAU;YACf,4BAA4B;YAC5B,MAAM,GAAG,GAAG,IAAA,sBAAQ,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACrC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,IAAY;YAC5B,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,gBAAwB;YACxD,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;YACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC5B,MAAM,IAAI,wBAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAA;aAC5C;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM;YACjD,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAA,sBAAQ,EAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,gBAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC5B,CAAC,CAAA;YACF,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;aAC/D;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAhCD,4CAgCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.js","sourceRoot":"","sources":["../ts/createIO.ts"],"names":[],"mappings":";;;;;;AACA,8DAA+B;AAC/B,iEAAyD;AACzD,+CAA4C;AAGrC,KAAK,UAAU,QAAQ,CAAC,OAAyB;IACvD,uBAAuB;IACvB,OAAO,IAAA,uCAAgB,EAAC,EAAE,KAAK,EAAL,qBAAK,EAAE,QAAQ,EAAE,YAAY,EAAZ,0BAAY,EAAE,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAHD,4BAGC"}
@@ -1,16 +0,0 @@
1
- import type { ServiceOptions } from './types.js';
2
- export type ServerInfo = {
3
- name: string;
4
- version: string;
5
- url: string;
6
- plugins?: string[];
7
- };
8
- export type Context = {
9
- fetch: (url: RequestInfo, init?: RequestInit) => Promise<Response>;
10
- location: {
11
- protocol: string;
12
- hostname: string;
13
- };
14
- };
15
- export declare function getServerInfo(context: Context, options?: ServiceOptions): Promise<ServerInfo>;
16
- //# sourceMappingURL=getServerInfo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getServerInfo.d.ts","sourceRoot":"","sources":["../ts/getServerInfo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IAEX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,QAAQ,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;KAChB,CAAA;CACD,CAAA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnG"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getServerInfo = void 0;
4
- const buildUrl_js_1 = require("./buildUrl.js");
5
- const errors_js_1 = require("./errors.js");
6
- async function getServerInfo(context, options) {
7
- return options ? tryGetServerInfo(context, options.url) : lookupServerInfo(context);
8
- }
9
- exports.getServerInfo = getServerInfo;
10
- async function lookupServerInfo(context) {
11
- const { location } = context;
12
- const url = `${location.protocol}//${location.hostname}`;
13
- if (location.hostname === 'localhost') {
14
- return tryGetServerInfoAtPort(context, url, 3698, 3698, 3708);
15
- }
16
- else {
17
- return tryGetServerInfo(context, url);
18
- }
19
- }
20
- async function tryGetServerInfoAtPort(context, urlBase, port, start, end) {
21
- if (port >= end) {
22
- throw new errors_js_1.ServerNotAvailableAtPortRange(urlBase, start, end);
23
- }
24
- const url = `${urlBase}:${port}`;
25
- try {
26
- return await tryGetServerInfo(context, url);
27
- }
28
- catch (e) {
29
- return tryGetServerInfoAtPort(context, urlBase, port + 1, start, end);
30
- }
31
- }
32
- async function tryGetServerInfo({ fetch }, url) {
33
- try {
34
- const response = await fetch((0, buildUrl_js_1.buildUrl)(url, 'info'));
35
- return response.json();
36
- }
37
- catch (e) {
38
- throw e.code === 'ECONNREFUSED' ? new errors_js_1.ServerNotAvailable(url) : e;
39
- }
40
- }
41
- //# sourceMappingURL=getServerInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getServerInfo.js","sourceRoot":"","sources":["../ts/getServerInfo.ts"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,2CAA+E;AAmBxE,KAAK,UAAU,aAAa,CAAC,OAAgB,EAAE,OAAwB;IAC7E,OAAO,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACpF,CAAC;AAFD,sCAEC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAC5B,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACxD,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;QACtC,OAAO,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;KAC7D;SAAM;QACN,OAAO,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;KACrC;AACF,CAAC;AAED,KAAK,UAAU,sBAAsB,CACpC,OAAgB,EAChB,OAAe,EACf,IAAY,EACZ,KAAa,EACb,GAAW;IAEX,IAAI,IAAI,IAAI,GAAG,EAAE;QAChB,MAAM,IAAI,yCAA6B,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;KAC5D;IAED,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAA;IAEhC,IAAI;QACH,OAAO,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAM,EAAE;QAChB,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;KACrE;AACF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAW,EAAE,GAAW;IAC9D,IAAI;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAA,sBAAQ,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QACnD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;KACtB;IAAC,OAAO,CAAM,EAAE;QAChB,MAAM,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,8BAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACjE;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAEhD,MAAM,MAAM,cAAc,GAAG;IAC5B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,GAAG,CAAC,OAAO,CAAA"}
@@ -1,9 +0,0 @@
1
- export type Context = {
2
- fetch: (url: RequestInfo, init?: RequestInit) => Promise<Response>;
3
- location: {
4
- protocol: string;
5
- hostname: string;
6
- };
7
- importModule(moduleSpecifier: string): Promise<any>;
8
- };
9
- //# sourceMappingURL=types.internal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.internal.d.ts","sourceRoot":"","sources":["../ts/types.internal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,QAAQ,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACnD,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.internal.js","sourceRoot":"","sources":["../ts/types.internal.ts"],"names":[],"mappings":""}
package/cjs/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../ts/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildUrl.d.ts","sourceRoot":"","sources":["../ts/buildUrl.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAErD"}
package/esm/buildUrl.js DELETED
@@ -1,4 +0,0 @@
1
- export function buildUrl(urlBase, path) {
2
- return `${urlBase}/mocktomata/${path}`;
3
- }
4
- //# sourceMappingURL=buildUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildUrl.js","sourceRoot":"","sources":["../ts/buildUrl.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAY;IACrD,OAAO,GAAG,OAAO,eAAe,IAAI,EAAE,CAAA;AACvC,CAAC"}
package/esm/createIO.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { Mocktomata } from '@mocktomata/framework';
2
- import type { CreateIOOptions } from './types.js';
3
- export declare function createIO(options?: CreateIOOptions): Promise<Mocktomata.IO>;
4
- //# sourceMappingURL=createIO.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.d.ts","sourceRoot":"","sources":["../ts/createIO.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAGhF"}
@@ -1,5 +0,0 @@
1
- import { type Mocktomata } from '@mocktomata/framework';
2
- import type { Context } from './types.internal.js';
3
- import type { CreateIOOptions } from './types.js';
4
- export declare function createIOInternal(ctx: Context, options?: CreateIOOptions): Promise<Mocktomata.IO>;
5
- //# sourceMappingURL=createIO.internal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.internal.d.ts","sourceRoot":"","sources":["../ts/createIO.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAoC,MAAM,uBAAuB,CAAA;AAG7G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAgCtG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.internal.js","sourceRoot":"","sources":["../ts/createIO.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAqD,MAAM,uBAAuB,CAAA;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY,EAAE,OAAyB;IAC7E,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC9C,OAAO;QACN,KAAK,CAAC,UAAU;YACf,4BAA4B;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACrC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,IAAY;YAC5B,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,gBAAwB;YACxD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;YACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC5B,MAAM,IAAI,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAA;aAC5C;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM;YACjD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC5B,CAAC,CAAA;YACF,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;aAC/D;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
package/esm/createIO.js DELETED
@@ -1,8 +0,0 @@
1
- import fetch from 'cross-fetch';
2
- import { createIOInternal } from './createIO.internal.js';
3
- import { importModule } from './platform.js';
4
- export async function createIO(options) {
5
- // istanbul ignore next
6
- return createIOInternal({ fetch, location, importModule }, options);
7
- }
8
- //# sourceMappingURL=createIO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createIO.js","sourceRoot":"","sources":["../ts/createIO.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAyB;IACvD,uBAAuB;IACvB,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { ServiceOptions } from './types.js';
2
- export type ServerInfo = {
3
- name: string;
4
- version: string;
5
- url: string;
6
- plugins?: string[];
7
- };
8
- export type Context = {
9
- fetch: (url: RequestInfo, init?: RequestInit) => Promise<Response>;
10
- location: {
11
- protocol: string;
12
- hostname: string;
13
- };
14
- };
15
- export declare function getServerInfo(context: Context, options?: ServiceOptions): Promise<ServerInfo>;
16
- //# sourceMappingURL=getServerInfo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getServerInfo.d.ts","sourceRoot":"","sources":["../ts/getServerInfo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IAEX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,QAAQ,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;KAChB,CAAA;CACD,CAAA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnG"}