@furystack/rest-service 7.0.0 → 7.0.2
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.
- package/{types → esm}/actions/error-action.d.ts +1 -1
- package/{types → esm}/actions/error-action.d.ts.map +1 -1
- package/esm/actions/error-action.js +25 -0
- package/esm/actions/error-action.js.map +1 -0
- package/{types → esm}/actions/get-current-user.d.ts +1 -1
- package/{types → esm}/actions/get-current-user.d.ts.map +1 -1
- package/esm/actions/get-current-user.js +12 -0
- package/esm/actions/get-current-user.js.map +1 -0
- package/esm/actions/index.d.ts +7 -0
- package/esm/actions/index.d.ts.map +1 -0
- package/esm/actions/index.js +7 -0
- package/esm/actions/index.js.map +1 -0
- package/{types → esm}/actions/is-authenticated.d.ts +1 -1
- package/{types → esm}/actions/is-authenticated.d.ts.map +1 -1
- package/esm/actions/is-authenticated.js +13 -0
- package/esm/actions/is-authenticated.js.map +1 -0
- package/{types → esm}/actions/login.d.ts +2 -2
- package/esm/actions/login.d.ts.map +1 -0
- package/esm/actions/login.js +22 -0
- package/esm/actions/login.js.map +1 -0
- package/{types → esm}/actions/logout.d.ts +1 -1
- package/{types → esm}/actions/logout.d.ts.map +1 -1
- package/esm/actions/logout.js +15 -0
- package/esm/actions/logout.js.map +1 -0
- package/{types → esm}/actions/not-found-action.d.ts +1 -1
- package/{types → esm}/actions/not-found-action.d.ts.map +1 -1
- package/esm/actions/not-found-action.js +10 -0
- package/esm/actions/not-found-action.js.map +1 -0
- package/{types → esm}/api-manager.d.ts +4 -4
- package/{types → esm}/api-manager.d.ts.map +1 -1
- package/esm/api-manager.js +153 -0
- package/esm/api-manager.js.map +1 -0
- package/{types → esm}/authenticate.d.ts +1 -1
- package/{types → esm}/authenticate.d.ts.map +1 -1
- package/esm/authenticate.js +16 -0
- package/esm/authenticate.js.map +1 -0
- package/{types → esm}/authorize.d.ts +1 -1
- package/{types → esm}/authorize.d.ts.map +1 -1
- package/esm/authorize.js +19 -0
- package/esm/authorize.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-delete-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-delete-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-delete-endpoint.js +20 -0
- package/esm/endpoint-generators/create-delete-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-get-collection-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-get-collection-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-get-collection-endpoint.js +22 -0
- package/esm/endpoint-generators/create-get-collection-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-get-entity-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-get-entity-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-get-entity-endpoint.js +25 -0
- package/esm/endpoint-generators/create-get-entity-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-patch-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-patch-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-patch-endpoint.js +22 -0
- package/esm/endpoint-generators/create-patch-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-post-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-post-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-post-endpoint.js +25 -0
- package/esm/endpoint-generators/create-post-endpoint.js.map +1 -0
- package/esm/endpoint-generators/index.d.ts +6 -0
- package/{types → esm}/endpoint-generators/index.d.ts.map +1 -1
- package/esm/endpoint-generators/index.js +6 -0
- package/esm/endpoint-generators/index.js.map +1 -0
- package/esm/endpoint-generators/utils.js +23 -0
- package/esm/endpoint-generators/utils.js.map +1 -0
- package/{types → esm}/helpers.d.ts +4 -4
- package/esm/helpers.d.ts.map +1 -0
- package/esm/helpers.js +28 -0
- package/esm/helpers.js.map +1 -0
- package/{types → esm}/http-authentication-settings.d.ts +1 -1
- package/{types → esm}/http-authentication-settings.d.ts.map +1 -1
- package/esm/http-authentication-settings.js +26 -0
- package/esm/http-authentication-settings.js.map +1 -0
- package/{types → esm}/http-user-context.d.ts +2 -2
- package/{types → esm}/http-user-context.d.ts.map +1 -1
- package/esm/http-user-context.js +168 -0
- package/esm/http-user-context.js.map +1 -0
- package/esm/incoming-message-extensions.js +11 -0
- package/esm/incoming-message-extensions.js.map +1 -0
- package/esm/index.d.ts +19 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +19 -0
- package/esm/index.js.map +1 -0
- package/esm/mime-types.js +333 -0
- package/esm/mime-types.js.map +1 -0
- package/esm/models/cors-options.js +2 -0
- package/esm/models/cors-options.js.map +1 -0
- package/esm/models/default-session.js +6 -0
- package/esm/models/default-session.js.map +1 -0
- package/esm/models/index.d.ts +3 -0
- package/esm/models/index.d.ts.map +1 -0
- package/esm/models/index.js +3 -0
- package/esm/models/index.js.map +1 -0
- package/esm/request-action-implementation.js +34 -0
- package/esm/request-action-implementation.js.map +1 -0
- package/esm/schema-validator/index.d.ts +3 -0
- package/{types → esm}/schema-validator/index.d.ts.map +1 -1
- package/esm/schema-validator/index.js +3 -0
- package/esm/schema-validator/index.js.map +1 -0
- package/esm/schema-validator/schema-validation-error.js +11 -0
- package/esm/schema-validator/schema-validation-error.js.map +1 -0
- package/esm/schema-validator/schema-validator.js +31 -0
- package/esm/schema-validator/schema-validator.js.map +1 -0
- package/esm/schema-validator/validate-examples.js +26 -0
- package/esm/schema-validator/validate-examples.js.map +1 -0
- package/{types → esm}/server-manager.d.ts +1 -1
- package/esm/server-manager.js +73 -0
- package/esm/server-manager.js.map +1 -0
- package/{types → esm}/server-response-extensions.d.ts +1 -1
- package/{types → esm}/server-response-extensions.d.ts.map +1 -1
- package/esm/server-response-extensions.js +12 -0
- package/esm/server-response-extensions.js.map +1 -0
- package/{types → esm}/static-server-manager.d.ts +1 -1
- package/esm/static-server-manager.js +68 -0
- package/esm/static-server-manager.js.map +1 -0
- package/{types → esm}/utils.d.ts +1 -1
- package/{types → esm}/utils.d.ts.map +1 -1
- package/esm/utils.js +70 -0
- package/esm/utils.js.map +1 -0
- package/{types → esm}/validate.d.ts +1 -1
- package/{types → esm}/validate.d.ts.map +1 -1
- package/esm/validate.integration.schema.js +2 -0
- package/esm/validate.integration.schema.js.map +1 -0
- package/esm/validate.integration.spec.schema.json +903 -0
- package/esm/validate.js +43 -0
- package/esm/validate.js.map +1 -0
- package/package.json +11 -20
- package/src/actions/error-action.ts +3 -3
- package/src/actions/get-current-user.ts +3 -3
- package/src/actions/index.ts +6 -6
- package/src/actions/is-authenticated.ts +2 -2
- package/src/actions/login.ts +4 -4
- package/src/actions/logout.ts +3 -3
- package/src/actions/not-found-action.ts +2 -2
- package/src/api-manager.ts +10 -9
- package/src/authenticate.ts +3 -3
- package/src/authorize.ts +2 -2
- package/src/endpoint-generators/create-delete-endpoint.ts +2 -2
- package/src/endpoint-generators/create-get-collection-endpoint.ts +2 -2
- package/src/endpoint-generators/create-get-entity-endpoint.ts +2 -2
- package/src/endpoint-generators/create-patch-endpoint.ts +2 -2
- package/src/endpoint-generators/create-post-endpoint.ts +2 -2
- package/src/endpoint-generators/index.ts +5 -5
- package/src/endpoint-generators/utils.ts +1 -1
- package/src/helpers.ts +6 -6
- package/src/http-authentication-settings.ts +1 -1
- package/src/http-user-context.ts +2 -2
- package/src/incoming-message-extensions.ts +1 -1
- package/src/index.ts +18 -18
- package/src/models/index.ts +2 -2
- package/src/schema-validator/index.ts +2 -2
- package/src/schema-validator/schema-validator.ts +3 -3
- package/src/server-response-extensions.ts +1 -1
- package/src/static-server-manager.ts +2 -2
- package/src/utils.ts +1 -1
- package/src/validate.ts +2 -2
- package/types/actions/index.d.ts +0 -7
- package/types/actions/index.d.ts.map +0 -1
- package/types/actions/login.d.ts.map +0 -1
- package/types/endpoint-generators/index.d.ts +0 -6
- package/types/helpers.d.ts.map +0 -1
- package/types/index.d.ts +0 -19
- package/types/index.d.ts.map +0 -1
- package/types/models/index.d.ts +0 -3
- package/types/models/index.d.ts.map +0 -1
- package/types/schema-validator/index.d.ts +0 -3
- /package/{types → esm}/endpoint-generators/utils.d.ts +0 -0
- /package/{types → esm}/endpoint-generators/utils.d.ts.map +0 -0
- /package/{types → esm}/incoming-message-extensions.d.ts +0 -0
- /package/{types → esm}/incoming-message-extensions.d.ts.map +0 -0
- /package/{types → esm}/mime-types.d.ts +0 -0
- /package/{types → esm}/mime-types.d.ts.map +0 -0
- /package/{types → esm}/models/cors-options.d.ts +0 -0
- /package/{types → esm}/models/cors-options.d.ts.map +0 -0
- /package/{types → esm}/models/default-session.d.ts +0 -0
- /package/{types → esm}/models/default-session.d.ts.map +0 -0
- /package/{types → esm}/request-action-implementation.d.ts +0 -0
- /package/{types → esm}/request-action-implementation.d.ts.map +0 -0
- /package/{types → esm}/schema-validator/schema-validation-error.d.ts +0 -0
- /package/{types → esm}/schema-validator/schema-validation-error.d.ts.map +0 -0
- /package/{types → esm}/schema-validator/schema-validator.d.ts +0 -0
- /package/{types → esm}/schema-validator/schema-validator.d.ts.map +0 -0
- /package/{types → esm}/schema-validator/validate-examples.d.ts +0 -0
- /package/{types → esm}/schema-validator/validate-examples.d.ts.map +0 -0
- /package/{types → esm}/server-manager.d.ts.map +0 -0
- /package/{types → esm}/static-server-manager.d.ts.map +0 -0
- /package/{types → esm}/validate.integration.schema.d.ts +0 -0
- /package/{types → esm}/validate.integration.schema.d.ts.map +0 -0
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export const mimeTypes = {
|
|
3
|
+
'application/andrew-inset': ['ez'],
|
|
4
|
+
'application/applixware': ['aw'],
|
|
5
|
+
'application/atom+xml': ['atom'],
|
|
6
|
+
'application/atomcat+xml': ['atomcat'],
|
|
7
|
+
'application/atomdeleted+xml': ['atomdeleted'],
|
|
8
|
+
'application/atomsvc+xml': ['atomsvc'],
|
|
9
|
+
'application/atsc-dwd+xml': ['dwd'],
|
|
10
|
+
'application/atsc-held+xml': ['held'],
|
|
11
|
+
'application/atsc-rsat+xml': ['rsat'],
|
|
12
|
+
'application/bdoc': ['bdoc'],
|
|
13
|
+
'application/calendar+xml': ['xcs'],
|
|
14
|
+
'application/ccxml+xml': ['ccxml'],
|
|
15
|
+
'application/cdfx+xml': ['cdfx'],
|
|
16
|
+
'application/cdmi-capability': ['cdmia'],
|
|
17
|
+
'application/cdmi-container': ['cdmic'],
|
|
18
|
+
'application/cdmi-domain': ['cdmid'],
|
|
19
|
+
'application/cdmi-object': ['cdmio'],
|
|
20
|
+
'application/cdmi-queue': ['cdmiq'],
|
|
21
|
+
'application/cu-seeme': ['cu'],
|
|
22
|
+
'application/dash+xml': ['mpd'],
|
|
23
|
+
'application/davmount+xml': ['davmount'],
|
|
24
|
+
'application/docbook+xml': ['dbk'],
|
|
25
|
+
'application/dssc+der': ['dssc'],
|
|
26
|
+
'application/dssc+xml': ['xdssc'],
|
|
27
|
+
'application/ecmascript': ['es', 'ecma'],
|
|
28
|
+
'application/emma+xml': ['emma'],
|
|
29
|
+
'application/emotionml+xml': ['emotionml'],
|
|
30
|
+
'application/epub+zip': ['epub'],
|
|
31
|
+
'application/exi': ['exi'],
|
|
32
|
+
'application/express': ['exp'],
|
|
33
|
+
'application/fdt+xml': ['fdt'],
|
|
34
|
+
'application/font-tdpfr': ['pfr'],
|
|
35
|
+
'application/geo+json': ['geojson'],
|
|
36
|
+
'application/gml+xml': ['gml'],
|
|
37
|
+
'application/gpx+xml': ['gpx'],
|
|
38
|
+
'application/gxf': ['gxf'],
|
|
39
|
+
'application/gzip': ['gz'],
|
|
40
|
+
'application/hjson': ['hjson'],
|
|
41
|
+
'application/hyperstudio': ['stk'],
|
|
42
|
+
'application/inkml+xml': ['ink', 'inkml'],
|
|
43
|
+
'application/ipfix': ['ipfix'],
|
|
44
|
+
'application/its+xml': ['its'],
|
|
45
|
+
'application/java-archive': ['jar', 'war', 'ear'],
|
|
46
|
+
'application/java-serialized-object': ['ser'],
|
|
47
|
+
'application/java-vm': ['class'],
|
|
48
|
+
'application/javascript': ['js', 'mjs'],
|
|
49
|
+
'application/json': ['json', 'map'],
|
|
50
|
+
'application/json5': ['json5'],
|
|
51
|
+
'application/jsonml+json': ['jsonml'],
|
|
52
|
+
'application/ld+json': ['jsonld'],
|
|
53
|
+
'application/lgr+xml': ['lgr'],
|
|
54
|
+
'application/lost+xml': ['lostxml'],
|
|
55
|
+
'application/mac-binhex40': ['hqx'],
|
|
56
|
+
'application/mac-compactpro': ['cpt'],
|
|
57
|
+
'application/mads+xml': ['mads'],
|
|
58
|
+
'application/manifest+json': ['webmanifest'],
|
|
59
|
+
'application/marc': ['mrc'],
|
|
60
|
+
'application/marcxml+xml': ['mrcx'],
|
|
61
|
+
'application/mathematica': ['ma', 'nb', 'mb'],
|
|
62
|
+
'application/mathml+xml': ['mathml'],
|
|
63
|
+
'application/mbox': ['mbox'],
|
|
64
|
+
'application/mediaservercontrol+xml': ['mscml'],
|
|
65
|
+
'application/metalink+xml': ['metalink'],
|
|
66
|
+
'application/metalink4+xml': ['meta4'],
|
|
67
|
+
'application/mets+xml': ['mets'],
|
|
68
|
+
'application/mmt-aei+xml': ['maei'],
|
|
69
|
+
'application/mmt-usd+xml': ['musd'],
|
|
70
|
+
'application/mods+xml': ['mods'],
|
|
71
|
+
'application/mp21': ['m21', 'mp21'],
|
|
72
|
+
'application/mp4': ['mp4s', 'm4p'],
|
|
73
|
+
'application/msword': ['doc', 'dot'],
|
|
74
|
+
'application/mxf': ['mxf'],
|
|
75
|
+
'application/n-quads': ['nq'],
|
|
76
|
+
'application/n-triples': ['nt'],
|
|
77
|
+
'application/node': ['cjs'],
|
|
78
|
+
'application/octet-stream': [
|
|
79
|
+
'bin',
|
|
80
|
+
'dms',
|
|
81
|
+
'lrf',
|
|
82
|
+
'mar',
|
|
83
|
+
'so',
|
|
84
|
+
'dist',
|
|
85
|
+
'distz',
|
|
86
|
+
'pkg',
|
|
87
|
+
'bpk',
|
|
88
|
+
'dump',
|
|
89
|
+
'elc',
|
|
90
|
+
'deploy',
|
|
91
|
+
'exe',
|
|
92
|
+
'dll',
|
|
93
|
+
'deb',
|
|
94
|
+
'dmg',
|
|
95
|
+
'iso',
|
|
96
|
+
'img',
|
|
97
|
+
'msi',
|
|
98
|
+
'msp',
|
|
99
|
+
'msm',
|
|
100
|
+
'buffer',
|
|
101
|
+
],
|
|
102
|
+
'application/oda': ['oda'],
|
|
103
|
+
'application/oebps-package+xml': ['opf'],
|
|
104
|
+
'application/ogg': ['ogx'],
|
|
105
|
+
'application/omdoc+xml': ['omdoc'],
|
|
106
|
+
'application/onenote': ['onetoc', 'onetoc2', 'onetmp', 'onepkg'],
|
|
107
|
+
'application/oxps': ['oxps'],
|
|
108
|
+
'application/p2p-overlay+xml': ['relo'],
|
|
109
|
+
'application/patch-ops-error+xml': ['xer'],
|
|
110
|
+
'application/pdf': ['pdf'],
|
|
111
|
+
'application/pgp-encrypted': ['pgp'],
|
|
112
|
+
'application/pgp-signature': ['asc', 'sig'],
|
|
113
|
+
'application/pics-rules': ['prf'],
|
|
114
|
+
'application/pkcs10': ['p10'],
|
|
115
|
+
'application/pkcs7-mime': ['p7m', 'p7c'],
|
|
116
|
+
'application/pkcs7-signature': ['p7s'],
|
|
117
|
+
'application/pkcs8': ['p8'],
|
|
118
|
+
'application/pkix-attr-cert': ['ac'],
|
|
119
|
+
'application/pkix-cert': ['cer'],
|
|
120
|
+
'application/pkix-crl': ['crl'],
|
|
121
|
+
'application/pkix-pkipath': ['pkipath'],
|
|
122
|
+
'application/pkixcmp': ['pki'],
|
|
123
|
+
'application/pls+xml': ['pls'],
|
|
124
|
+
'application/postscript': ['ai', 'eps', 'ps'],
|
|
125
|
+
'application/provenance+xml': ['provx'],
|
|
126
|
+
'application/pskc+xml': ['pskcxml'],
|
|
127
|
+
'application/raml+yaml': ['raml'],
|
|
128
|
+
'application/rdf+xml': ['rdf', 'owl'],
|
|
129
|
+
'application/reginfo+xml': ['rif'],
|
|
130
|
+
'application/relax-ng-compact-syntax': ['rnc'],
|
|
131
|
+
'application/resource-lists+xml': ['rl'],
|
|
132
|
+
'application/resource-lists-diff+xml': ['rld'],
|
|
133
|
+
'application/rls-services+xml': ['rs'],
|
|
134
|
+
'application/route-apd+xml': ['rapd'],
|
|
135
|
+
'application/route-s-tsid+xml': ['sls'],
|
|
136
|
+
'application/route-usd+xml': ['rusd'],
|
|
137
|
+
'application/rpki-ghostbusters': ['gbr'],
|
|
138
|
+
'application/rpki-manifest': ['mft'],
|
|
139
|
+
'application/rpki-roa': ['roa'],
|
|
140
|
+
'application/rsd+xml': ['rsd'],
|
|
141
|
+
'application/rss+xml': ['rss'],
|
|
142
|
+
'application/rtf': ['rtf'],
|
|
143
|
+
'application/sbml+xml': ['sbml'],
|
|
144
|
+
'application/scvp-cv-request': ['scq'],
|
|
145
|
+
'application/scvp-cv-response': ['scs'],
|
|
146
|
+
'application/scvp-vp-request': ['spq'],
|
|
147
|
+
'application/scvp-vp-response': ['spp'],
|
|
148
|
+
'application/sdp': ['sdp'],
|
|
149
|
+
'application/senml+xml': ['senmlx'],
|
|
150
|
+
'application/sensml+xml': ['sensmlx'],
|
|
151
|
+
'application/set-payment-initiation': ['setpay'],
|
|
152
|
+
'application/set-registration-initiation': ['setreg'],
|
|
153
|
+
'application/shf+xml': ['shf'],
|
|
154
|
+
'application/sieve': ['siv', 'sieve'],
|
|
155
|
+
'application/smil+xml': ['smi', 'smil'],
|
|
156
|
+
'application/sparql-query': ['rq'],
|
|
157
|
+
'application/sparql-results+xml': ['srx'],
|
|
158
|
+
'application/srgs': ['gram'],
|
|
159
|
+
'application/srgs+xml': ['grxml'],
|
|
160
|
+
'application/sru+xml': ['sru'],
|
|
161
|
+
'application/ssdl+xml': ['ssdl'],
|
|
162
|
+
'application/ssml+xml': ['ssml'],
|
|
163
|
+
'application/swid+xml': ['swidtag'],
|
|
164
|
+
'application/tei+xml': ['tei', 'teicorpus'],
|
|
165
|
+
'application/thraud+xml': ['tfi'],
|
|
166
|
+
'application/timestamped-data': ['tsd'],
|
|
167
|
+
'application/toml': ['toml'],
|
|
168
|
+
'application/trig': ['trig'],
|
|
169
|
+
'application/ttml+xml': ['ttml'],
|
|
170
|
+
'application/ubjson': ['ubj'],
|
|
171
|
+
'application/urc-ressheet+xml': ['rsheet'],
|
|
172
|
+
'application/urc-targetdesc+xml': ['td'],
|
|
173
|
+
'application/voicexml+xml': ['vxml'],
|
|
174
|
+
'application/wasm': ['wasm'],
|
|
175
|
+
'application/widget': ['wgt'],
|
|
176
|
+
'application/winhlp': ['hlp'],
|
|
177
|
+
'application/wsdl+xml': ['wsdl'],
|
|
178
|
+
'application/wspolicy+xml': ['wspolicy'],
|
|
179
|
+
'application/xaml+xml': ['xaml'],
|
|
180
|
+
'application/xcap-att+xml': ['xav'],
|
|
181
|
+
'application/xcap-caps+xml': ['xca'],
|
|
182
|
+
'application/xcap-diff+xml': ['xdf'],
|
|
183
|
+
'application/xcap-el+xml': ['xel'],
|
|
184
|
+
'application/xcap-ns+xml': ['xns'],
|
|
185
|
+
'application/xenc+xml': ['xenc'],
|
|
186
|
+
'application/xhtml+xml': ['xhtml', 'xht'],
|
|
187
|
+
'application/xliff+xml': ['xlf'],
|
|
188
|
+
'application/xml': ['xml', 'xsl', 'xsd', 'rng'],
|
|
189
|
+
'application/xml-dtd': ['dtd'],
|
|
190
|
+
'application/xop+xml': ['xop'],
|
|
191
|
+
'application/xproc+xml': ['xpl'],
|
|
192
|
+
'application/xslt+xml': ['(.)+xsl', 'xslt'],
|
|
193
|
+
'application/xspf+xml': ['xspf'],
|
|
194
|
+
'application/xv+xml': ['mxml', 'xhvml', 'xvml', 'xvm'],
|
|
195
|
+
'application/yang': ['yang'],
|
|
196
|
+
'application/yin+xml': ['yin'],
|
|
197
|
+
'application/zip': ['zip'],
|
|
198
|
+
'audio/3gpp': ['(.)+3gpp'],
|
|
199
|
+
'audio/adpcm': ['adp'],
|
|
200
|
+
'audio/amr': ['amr'],
|
|
201
|
+
'audio/basic': ['au', 'snd'],
|
|
202
|
+
'audio/midi': ['mid', 'midi', 'kar', 'rmi'],
|
|
203
|
+
'audio/mobile-xmf': ['mxmf'],
|
|
204
|
+
'audio/mp3': ['(.)+mp3'],
|
|
205
|
+
'audio/mp4': ['m4a', 'mp4a'],
|
|
206
|
+
'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],
|
|
207
|
+
'audio/ogg': ['oga', 'ogg', 'spx', 'opus'],
|
|
208
|
+
'audio/s3m': ['s3m'],
|
|
209
|
+
'audio/silk': ['sil'],
|
|
210
|
+
'audio/wav': ['wav'],
|
|
211
|
+
'audio/wave': ['(.)+wav'],
|
|
212
|
+
'audio/webm': ['weba'],
|
|
213
|
+
'audio/xm': ['xm'],
|
|
214
|
+
'font/collection': ['ttc'],
|
|
215
|
+
'font/otf': ['otf'],
|
|
216
|
+
'font/ttf': ['ttf'],
|
|
217
|
+
'font/woff': ['woff'],
|
|
218
|
+
'font/woff2': ['woff2'],
|
|
219
|
+
'image/aces': ['exr'],
|
|
220
|
+
'image/apng': ['apng'],
|
|
221
|
+
'image/avif': ['avif'],
|
|
222
|
+
'image/bmp': ['bmp'],
|
|
223
|
+
'image/cgm': ['cgm'],
|
|
224
|
+
'image/dicom-rle': ['drle'],
|
|
225
|
+
'image/emf': ['emf'],
|
|
226
|
+
'image/fits': ['fits'],
|
|
227
|
+
'image/g3fax': ['g3'],
|
|
228
|
+
'image/gif': ['gif'],
|
|
229
|
+
'image/heic': ['heic'],
|
|
230
|
+
'image/heic-sequence': ['heics'],
|
|
231
|
+
'image/heif': ['heif'],
|
|
232
|
+
'image/heif-sequence': ['heifs'],
|
|
233
|
+
'image/hej2k': ['hej2'],
|
|
234
|
+
'image/hsj2': ['hsj2'],
|
|
235
|
+
'image/ief': ['ief'],
|
|
236
|
+
'image/jls': ['jls'],
|
|
237
|
+
'image/jp2': ['jp2', 'jpg2'],
|
|
238
|
+
'image/jpeg': ['jpeg', 'jpg', 'jpe'],
|
|
239
|
+
'image/jph': ['jph'],
|
|
240
|
+
'image/jphc': ['jhc'],
|
|
241
|
+
'image/jpm': ['jpm'],
|
|
242
|
+
'image/jpx': ['jpx', 'jpf'],
|
|
243
|
+
'image/jxr': ['jxr'],
|
|
244
|
+
'image/jxra': ['jxra'],
|
|
245
|
+
'image/jxrs': ['jxrs'],
|
|
246
|
+
'image/jxs': ['jxs'],
|
|
247
|
+
'image/jxsc': ['jxsc'],
|
|
248
|
+
'image/jxsi': ['jxsi'],
|
|
249
|
+
'image/jxss': ['jxss'],
|
|
250
|
+
'image/ktx': ['ktx'],
|
|
251
|
+
'image/ktx2': ['ktx2'],
|
|
252
|
+
'image/png': ['png'],
|
|
253
|
+
'image/sgi': ['sgi'],
|
|
254
|
+
'image/svg+xml': ['svg', 'svgz'],
|
|
255
|
+
'image/t38': ['t38'],
|
|
256
|
+
'image/tiff': ['tif', 'tiff'],
|
|
257
|
+
'image/tiff-fx': ['tfx'],
|
|
258
|
+
'image/webp': ['webp'],
|
|
259
|
+
'image/wmf': ['wmf'],
|
|
260
|
+
'message/disposition-notification': ['disposition-notification'],
|
|
261
|
+
'message/global': ['u8msg'],
|
|
262
|
+
'message/global-delivery-status': ['u8dsn'],
|
|
263
|
+
'message/global-disposition-notification': ['u8mdn'],
|
|
264
|
+
'message/global-headers': ['u8hdr'],
|
|
265
|
+
'message/rfc822': ['eml', 'mime'],
|
|
266
|
+
'model/3mf': ['3mf'],
|
|
267
|
+
'model/gltf+json': ['gltf'],
|
|
268
|
+
'model/gltf-binary': ['glb'],
|
|
269
|
+
'model/iges': ['igs', 'iges'],
|
|
270
|
+
'model/mesh': ['msh', 'mesh', 'silo'],
|
|
271
|
+
'model/mtl': ['mtl'],
|
|
272
|
+
'model/obj': ['obj'],
|
|
273
|
+
'model/step+xml': ['stpx'],
|
|
274
|
+
'model/step+zip': ['stpz'],
|
|
275
|
+
'model/step-xml+zip': ['stpxz'],
|
|
276
|
+
'model/stl': ['stl'],
|
|
277
|
+
'model/vrml': ['wrl', 'vrml'],
|
|
278
|
+
'model/x3d+binary': ['(.)+x3db', 'x3dbz'],
|
|
279
|
+
'model/x3d+fastinfoset': ['x3db'],
|
|
280
|
+
'model/x3d+vrml': ['(.)+x3dv', 'x3dvz'],
|
|
281
|
+
'model/x3d+xml': ['x3d', 'x3dz'],
|
|
282
|
+
'model/x3d-vrml': ['x3dv'],
|
|
283
|
+
'text/cache-manifest': ['appcache', 'manifest'],
|
|
284
|
+
'text/calendar': ['ics', 'ifb'],
|
|
285
|
+
'text/coffeescript': ['coffee', 'litcoffee'],
|
|
286
|
+
'text/css': ['css'],
|
|
287
|
+
'text/csv': ['csv'],
|
|
288
|
+
'text/html': ['html', 'htm', 'shtml'],
|
|
289
|
+
'text/jade': ['jade'],
|
|
290
|
+
'text/jsx': ['jsx'],
|
|
291
|
+
'text/less': ['less'],
|
|
292
|
+
'text/markdown': ['markdown', 'md'],
|
|
293
|
+
'text/mathml': ['mml'],
|
|
294
|
+
'text/mdx': ['mdx'],
|
|
295
|
+
'text/n3': ['n3'],
|
|
296
|
+
'text/plain': ['txt', 'text', 'conf', 'def', 'list', 'log', 'in', 'ini'],
|
|
297
|
+
'text/richtext': ['rtx'],
|
|
298
|
+
'text/rtf': ['(.)+rtf'],
|
|
299
|
+
'text/sgml': ['sgml', 'sgm'],
|
|
300
|
+
'text/shex': ['shex'],
|
|
301
|
+
'text/slim': ['slim', 'slm'],
|
|
302
|
+
'text/spdx': ['spdx'],
|
|
303
|
+
'text/stylus': ['stylus', 'styl'],
|
|
304
|
+
'text/tab-separated-values': ['tsv'],
|
|
305
|
+
'text/troff': ['t', 'tr', 'roff', 'man', 'me', 'ms'],
|
|
306
|
+
'text/turtle': ['ttl'],
|
|
307
|
+
'text/uri-list': ['uri', 'uris', 'urls'],
|
|
308
|
+
'text/vcard': ['vcard'],
|
|
309
|
+
'text/vtt': ['vtt'],
|
|
310
|
+
'text/xml': ['(.)+xml'],
|
|
311
|
+
'text/yaml': ['yaml', 'yml'],
|
|
312
|
+
'video/3gpp': ['3gp', '3gpp'],
|
|
313
|
+
'video/3gpp2': ['3g2'],
|
|
314
|
+
'video/h261': ['h261'],
|
|
315
|
+
'video/h263': ['h263'],
|
|
316
|
+
'video/h264': ['h264'],
|
|
317
|
+
'video/iso.segment': ['m4s'],
|
|
318
|
+
'video/jpeg': ['jpgv'],
|
|
319
|
+
'video/jpm': ['(.)+jpm', 'jpgm'],
|
|
320
|
+
'video/mj2': ['mj2', 'mjp2'],
|
|
321
|
+
'video/mp2t': ['ts'],
|
|
322
|
+
'video/mp4': ['mp4', 'mp4v', 'mpg4'],
|
|
323
|
+
'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'],
|
|
324
|
+
'video/ogg': ['ogv'],
|
|
325
|
+
'video/quicktime': ['qt', 'mov'],
|
|
326
|
+
'video/webm': ['webm'],
|
|
327
|
+
};
|
|
328
|
+
export const getMimeForFile = (file) => {
|
|
329
|
+
const ext = path.extname(file);
|
|
330
|
+
return (Object.entries(mimeTypes).find(([, values]) => values.some((value) => ext.match(`^.${value}$`)))?.[0] ||
|
|
331
|
+
'application/octet-stream');
|
|
332
|
+
};
|
|
333
|
+
//# sourceMappingURL=mime-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mime-types.js","sourceRoot":"","sources":["../src/mime-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-options.js","sourceRoot":"","sources":["../../src/models/cors-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-session.js","sourceRoot":"","sources":["../../src/models/default-session.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,cAAc;CAU1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const JsonResult = (chunk, statusCode = 200, headers) => ({
|
|
2
|
+
statusCode,
|
|
3
|
+
chunk,
|
|
4
|
+
headers: {
|
|
5
|
+
...headers,
|
|
6
|
+
'Content-Type': 'application/json',
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
export const PlainTextResult = (text, statusCode = 200, headers) => ({
|
|
10
|
+
statusCode,
|
|
11
|
+
chunk: text,
|
|
12
|
+
headers: {
|
|
13
|
+
...headers,
|
|
14
|
+
'Content-Type': 'plain/text',
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
export const XmlResult = (text, statusCode = 200, headers) => ({
|
|
18
|
+
statusCode,
|
|
19
|
+
chunk: text,
|
|
20
|
+
headers: {
|
|
21
|
+
...headers,
|
|
22
|
+
'Content-Type': 'application/xml;charset=utf-8',
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
export const EmptyResult = (statusCode = 200, headers) => ({
|
|
26
|
+
statusCode,
|
|
27
|
+
headers: {
|
|
28
|
+
...headers,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
export const BypassResult = () => ({
|
|
32
|
+
chunk: 'BypassResult',
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=request-action-implementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-action-implementation.js","sourceRoot":"","sources":["../src/request-action-implementation.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAmB,KAAQ,EAAE,UAAU,GAAG,GAAG,EAAE,OAAiC,EAAE,EAAE,CAC5G,CAAC;IACC,UAAU;IACV,KAAK;IACL,OAAO,EAAE;QACP,GAAG,OAAO;QACV,cAAc,EAAE,kBAAkB;KACnC;CACkB,CAAA,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,UAAU,GAAG,GAAG,EAAE,OAAiC,EAAE,EAAE,CACnG,CAAC;IACC,UAAU;IACV,KAAK,EAAE,IAAI;IACX,OAAO,EAAE;QACP,GAAG,OAAO;QACV,cAAc,EAAE,YAAY;KAC7B;CACuB,CAAA,CAAA;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,UAAU,GAAG,GAAG,EAAE,OAAiC,EAAE,EAAE,CAC7F,CAAC;IACC,UAAU;IACV,KAAK,EAAE,IAAI;IACX,OAAO,EAAE;QACP,GAAG,OAAO;QACV,cAAc,EAAE,+BAA+B;KAChD;CACuB,CAAA,CAAA;AAE5B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,OAAiC,EAAE,EAAE,CACjF,CAAC;IACC,UAAU;IACV,OAAO,EAAE;QACP,GAAG,OAAO;KACX;CAC0B,CAAA,CAAA;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAC/B,CAAC;IACC,KAAK,EAAE,cAAc;CACW,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema-validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema-validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RequestError } from '@furystack/rest';
|
|
2
|
+
/**
|
|
3
|
+
* Custom Error class for Schema Validation Errors
|
|
4
|
+
*/
|
|
5
|
+
export class SchemaValidationError extends RequestError {
|
|
6
|
+
constructor(errors) {
|
|
7
|
+
super('Schema Validation failed', 400);
|
|
8
|
+
this.errors = errors;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=schema-validation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validation-error.js","sourceRoot":"","sources":["../../src/schema-validator/schema-validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,YAA4B,MAAqB;QAC/C,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QADZ,WAAM,GAAN,MAAM,CAAe;IAEjD,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
import useFormats from 'ajv-formats';
|
|
3
|
+
import { SchemaValidationError } from './schema-validation-error.js';
|
|
4
|
+
export class SchemaValidator {
|
|
5
|
+
constructor(schema, ajvOptions) {
|
|
6
|
+
this.schema = schema;
|
|
7
|
+
this.ajvOptions = ajvOptions;
|
|
8
|
+
this.ajv = new Ajv.default({
|
|
9
|
+
allErrors: true,
|
|
10
|
+
...this.ajvOptions,
|
|
11
|
+
});
|
|
12
|
+
useFormats.default(this.ajv);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @param data The object to validate
|
|
16
|
+
* @param options Options for the schema validation
|
|
17
|
+
* @param options.schemaName The name of the type in the Schema Definitions
|
|
18
|
+
* @throws SchemaValidationError when the validation has been failed
|
|
19
|
+
* @returns true in case of validation success
|
|
20
|
+
*/
|
|
21
|
+
isValid(data, options) {
|
|
22
|
+
const schema = { ...this.schema, $ref: `#/definitions/${options.schemaName}` };
|
|
23
|
+
const validatorFn = this.ajv.compile(schema);
|
|
24
|
+
const isValid = validatorFn(data);
|
|
25
|
+
if (!isValid) {
|
|
26
|
+
throw new SchemaValidationError(validatorFn.errors);
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=schema-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/schema-validator/schema-validator.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,UAAU,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,MAAM,OAAO,eAAe;IAK1B,YAA6B,MAAe,EAAmB,UAAoB;QAAtD,WAAM,GAAN,MAAM,CAAS;QAAmB,eAAU,GAAV,UAAU,CAAU;QAJlE,QAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;YACrC,SAAS,EAAE,IAAI;YACf,GAAG,IAAI,CAAC,UAAU;SACnB,CAAC,CAAA;QAEA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;OAMG;IACI,OAAO,CAAI,IAAS,EAAE,OAAqD;QAChF,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,OAAO,CAAC,UAAoB,EAAE,EAAE,CAAA;QACxF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,MAAuB,CAAC,CAAA;SACrE;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example Schema Definition - can be generated from the example types above with ts-json-schema-generator
|
|
3
|
+
*/
|
|
4
|
+
export const exampleSchema = {
|
|
5
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
6
|
+
definitions: {
|
|
7
|
+
BodyParameters: {
|
|
8
|
+
additionalProperties: false,
|
|
9
|
+
properties: {
|
|
10
|
+
age: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
},
|
|
13
|
+
gender: {
|
|
14
|
+
enum: ['MALE', 'FEMALE'],
|
|
15
|
+
type: 'string',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
type: 'object',
|
|
19
|
+
},
|
|
20
|
+
Language: {
|
|
21
|
+
enum: ['en', 'hu', 'de', 'all'],
|
|
22
|
+
type: 'string',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=validate-examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-examples.js","sourceRoot":"","sources":["../../src/schema-validator/validate-examples.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,yCAAyC;IAClD,WAAW,EAAE;QACX,cAAc,EAAE;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;iBACf;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACxB,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;YAC/B,IAAI,EAAE,QAAQ;SACf;KACF;CACF,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var ServerManager_1;
|
|
8
|
+
import { Injectable } from '@furystack/inject';
|
|
9
|
+
import { createServer } from 'http';
|
|
10
|
+
import { Lock } from 'semaphore-async-await';
|
|
11
|
+
let ServerManager = ServerManager_1 = class ServerManager {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.servers = new Map();
|
|
14
|
+
this.openedSockets = new Set();
|
|
15
|
+
this.listenLock = new Lock();
|
|
16
|
+
this.getHostUrl = (options) => `http://${options.hostName || ServerManager_1.DEFAULT_HOST}:${options.port}`;
|
|
17
|
+
this.onConnection = (socket) => {
|
|
18
|
+
this.openedSockets.add(socket);
|
|
19
|
+
socket.once('close', () => this.openedSockets.delete(socket));
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
async dispose() {
|
|
23
|
+
try {
|
|
24
|
+
await this.listenLock.waitFor(5000);
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
this.openedSockets.forEach((s) => s.destroy());
|
|
28
|
+
await Promise.allSettled([...this.servers.values()].map((s) => new Promise((resolve, reject) => {
|
|
29
|
+
s.server.close((err) => (err ? reject(err) : resolve()));
|
|
30
|
+
s.server.off('connection', this.onConnection);
|
|
31
|
+
})));
|
|
32
|
+
this.servers.clear();
|
|
33
|
+
this.listenLock.release();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async getOrCreate(options) {
|
|
37
|
+
const url = this.getHostUrl(options);
|
|
38
|
+
if (!this.servers.has(url)) {
|
|
39
|
+
await this.listenLock.acquire();
|
|
40
|
+
try {
|
|
41
|
+
if (!this.servers.has(url)) {
|
|
42
|
+
await new Promise((resolve, reject) => {
|
|
43
|
+
const apis = [];
|
|
44
|
+
const server = createServer((req, res) => {
|
|
45
|
+
const apiMatch = apis.find((api) => api.shouldExec({ req, res }));
|
|
46
|
+
if (apiMatch) {
|
|
47
|
+
apiMatch.onRequest({ req, res });
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
res.destroy();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
server.on('connection', this.onConnection);
|
|
54
|
+
server.on('listening', () => resolve());
|
|
55
|
+
server.on('error', (err) => reject(err));
|
|
56
|
+
server.listen(options.port, options.hostName);
|
|
57
|
+
this.servers.set(url, { server, apis });
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
this.listenLock.release();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return this.servers.get(url);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
ServerManager.DEFAULT_HOST = 'localhost';
|
|
69
|
+
ServerManager = ServerManager_1 = __decorate([
|
|
70
|
+
Injectable({ lifetime: 'singleton' })
|
|
71
|
+
], ServerManager);
|
|
72
|
+
export { ServerManager };
|
|
73
|
+
//# sourceMappingURL=server-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"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"}
|