@blakearoberts/visage 0.0.4 → 0.0.5-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/compose.d.ts +1 -3
- package/dist/compose.d.ts.map +1 -1
- package/dist/config.d.ts +3 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +65 -124
- package/dist/plugin.d.ts.map +1 -1
- package/dist/render/compose.d.ts +1 -1
- package/dist/render/compose.d.ts.map +1 -1
- package/dist/render/nginx.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/docker-compose.images.yml +2 -0
- package/package.json +3 -8
- package/dist/network.d.ts +0 -3
- package/dist/network.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -166,6 +166,7 @@ Visage pulls these as needed based on configuration:
|
|
|
166
166
|
| [NGINX](https://nginx.org/) | [`nginx`](https://hub.docker.com/_/nginx) | [manifest](docker-compose.images.yml) |
|
|
167
167
|
| [OAuth2 Proxy](https://oauth2-proxy.github.io/oauth2-proxy/) | [`quay.io/oauth2-proxy/oauth2-proxy`](https://quay.io/repository/oauth2-proxy/oauth2-proxy) | [manifest](docker-compose.images.yml) |
|
|
168
168
|
| [Dex](https://dexidp.io/) | [`ghcr.io/dexidp/dex`](https://github.com/dexidp/dex/pkgs/container/dex) | [manifest](docker-compose.images.yml) |
|
|
169
|
+
| [Socat](https://www.dest-unreach.org/socat/) | [`alpine/socat`](https://hub.docker.com/r/alpine/socat) | [manifest](docker-compose.images.yml) |
|
|
169
170
|
|
|
170
171
|
## Security Notes
|
|
171
172
|
|
|
@@ -191,9 +192,6 @@ application accepts form posts or other browser-submitted mutations. CSP,
|
|
|
191
192
|
- If NGINX cannot start, check whether the configured `port` is already in use.
|
|
192
193
|
- If the hostname cannot be resolved, Visage may need permission to update
|
|
193
194
|
`/etc/hosts`.
|
|
194
|
-
- If the browser rejects the certificate, allow the local certificate authority
|
|
195
|
-
prompt from `mkcert`; CI test runners should be configured to ignore local
|
|
196
|
-
HTTPS errors.
|
|
197
195
|
|
|
198
196
|
## TO-DO
|
|
199
197
|
|
package/dist/compose.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
import type { VisageConfig } from './config';
|
|
2
|
-
|
|
3
|
-
export declare function startCompose(config: VisageConfig): StopCompose;
|
|
4
|
-
export {};
|
|
2
|
+
export declare function startCompose(config: VisageConfig): () => void;
|
|
5
3
|
//# sourceMappingURL=compose.d.ts.map
|
package/dist/compose.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,CAmD7D"}
|
package/dist/config.d.ts
CHANGED
|
@@ -101,14 +101,14 @@ export type VisageConfig = {
|
|
|
101
101
|
};
|
|
102
102
|
readonly compose: {
|
|
103
103
|
readonly name: string;
|
|
104
|
-
readonly network: {
|
|
105
|
-
readonly trustedProxyIps: readonly string[];
|
|
106
|
-
};
|
|
107
104
|
};
|
|
108
105
|
readonly services: Readonly<Record<string, ResolvedService>>;
|
|
109
106
|
readonly upstreams: Readonly<Record<string, ResolvedConfigUpstream>>;
|
|
110
107
|
};
|
|
111
108
|
export declare const VisageEdgeKeyHeader = "X-Visage-Edge-Key";
|
|
109
|
+
export declare const DockerImages: Record<string, {
|
|
110
|
+
image: string;
|
|
111
|
+
}>;
|
|
112
112
|
export declare function resolveOptions(options: VisageOptions): ResolvedVisageOptions;
|
|
113
113
|
export declare function resolveConfig(options: ResolvedVisageOptions & {
|
|
114
114
|
readonly root: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,aAAa,EAEb,aAAa,EAEd,MAAM,SAAS,CAAC;AAEjB,KAAK,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AAElD,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { spawnSync, spawn } from 'node:child_process';
|
|
2
1
|
import { randomBytes } from 'node:crypto';
|
|
3
|
-
import { isIP } from 'node:net';
|
|
4
2
|
import { basename, resolve, join } from 'node:path';
|
|
5
3
|
import { readFileSync, mkdirSync, chmodSync, openSync, rmSync, appendFileSync, writeFileSync } from 'node:fs';
|
|
6
4
|
import { parse, stringify } from 'yaml';
|
|
5
|
+
import { spawnSync } from 'node:child_process';
|
|
7
6
|
import { homedir } from 'node:os';
|
|
8
7
|
import { hashSync } from 'bcryptjs';
|
|
9
8
|
import { Eta } from 'eta';
|
|
@@ -17,14 +16,14 @@ const BaseServiceDex = {
|
|
|
17
16
|
};
|
|
18
17
|
const BaseServiceNginx = {
|
|
19
18
|
image: DockerImages.nginx.image,
|
|
20
|
-
depends_on: ['oauth2_proxy'],
|
|
21
19
|
extra_hosts: ['host.docker.internal:host-gateway'],
|
|
22
20
|
restart: 'always',
|
|
23
21
|
};
|
|
24
22
|
const BaseServiceOAuth2Proxy = {
|
|
25
23
|
image: DockerImages.oauth2_proxy.image,
|
|
26
24
|
command: ['--config', '/etc/oauth2-proxy/config.yml'],
|
|
27
|
-
|
|
25
|
+
depends_on: ['nginx'],
|
|
26
|
+
network_mode: 'service:nginx',
|
|
28
27
|
restart: 'always',
|
|
29
28
|
};
|
|
30
29
|
const DefaultProxyPolicy = {
|
|
@@ -49,7 +48,7 @@ const DefaultProxyPolicy = {
|
|
|
49
48
|
},
|
|
50
49
|
};
|
|
51
50
|
const BaseUpstreamOauth2Proxy = {
|
|
52
|
-
host: '
|
|
51
|
+
host: '127.0.0.1',
|
|
53
52
|
scheme: 'http',
|
|
54
53
|
port: 4180,
|
|
55
54
|
locations: {
|
|
@@ -167,13 +166,7 @@ function resolveServicesOptions(services = {}) {
|
|
|
167
166
|
},
|
|
168
167
|
oauth2_proxy: {
|
|
169
168
|
...BaseServiceOAuth2Proxy,
|
|
170
|
-
...{
|
|
171
|
-
...(services.oauth2_proxy ?? {}),
|
|
172
|
-
extra_hosts: [
|
|
173
|
-
...BaseServiceOAuth2Proxy.extra_hosts,
|
|
174
|
-
...(services.oauth2_proxy?.extra_hosts ?? []),
|
|
175
|
-
],
|
|
176
|
-
},
|
|
169
|
+
...(services.oauth2_proxy ?? {}),
|
|
177
170
|
},
|
|
178
171
|
};
|
|
179
172
|
}
|
|
@@ -345,14 +338,13 @@ function resolveConfig(options) {
|
|
|
345
338
|
},
|
|
346
339
|
compose: {
|
|
347
340
|
name: resolveComposeName(options.root),
|
|
348
|
-
network: { trustedProxyIps: [] },
|
|
349
341
|
},
|
|
350
342
|
services: {
|
|
351
343
|
...('dex' in idp
|
|
352
344
|
? {
|
|
353
345
|
dex: BaseServiceDex,
|
|
354
|
-
nginx:
|
|
355
|
-
oauth2_proxy:
|
|
346
|
+
nginx: BaseServiceNginx,
|
|
347
|
+
oauth2_proxy: BaseServiceOAuth2Proxy,
|
|
356
348
|
}
|
|
357
349
|
: { nginx: BaseServiceNginx, oauth2_proxy: BaseServiceOAuth2Proxy }),
|
|
358
350
|
...Object.fromEntries(Object.entries(options.services).map(([name, { upstream: _upstream, ...service }]) => [
|
|
@@ -577,19 +569,15 @@ function mkcertInstallInstructions() {
|
|
|
577
569
|
].join('\n');
|
|
578
570
|
}
|
|
579
571
|
|
|
580
|
-
let stopRef;
|
|
581
|
-
let cookieSecret;
|
|
582
572
|
function startCompose(config) {
|
|
583
|
-
stopRef?.();
|
|
584
|
-
stopRef = undefined;
|
|
585
|
-
const file = join(config.cache, config.files.compose);
|
|
586
573
|
const logs = join(config.cache, 'logs');
|
|
587
574
|
const output = openSync(join(logs, 'compose.log'), 'w');
|
|
588
575
|
const compose = [
|
|
589
576
|
'compose',
|
|
590
577
|
'--ansi=never',
|
|
591
|
-
`--file=${
|
|
578
|
+
`--file=${config.files.compose}`,
|
|
592
579
|
`--project-name=${config.compose.name}`,
|
|
580
|
+
`--profile=${process.platform}`,
|
|
593
581
|
];
|
|
594
582
|
const env = {
|
|
595
583
|
COMPOSE_MENU: 'false',
|
|
@@ -598,31 +586,36 @@ function startCompose(config) {
|
|
|
598
586
|
: { [config.secrets.clientSecret]: config.oauth2.secret }),
|
|
599
587
|
...process.env,
|
|
600
588
|
[config.secrets.edgeKey]: config.edgeKey,
|
|
601
|
-
[config.secrets.cookieSecret]: (
|
|
602
|
-
randomBytes(32).toString('base64url')),
|
|
589
|
+
[config.secrets.cookieSecret]: randomBytes(32).toString('base64url'),
|
|
603
590
|
};
|
|
604
591
|
const opts = {
|
|
605
592
|
cwd: config.cache,
|
|
606
593
|
stdio: ['ignore', output, output],
|
|
607
594
|
env,
|
|
608
595
|
};
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
596
|
+
function up() {
|
|
597
|
+
const args = [
|
|
598
|
+
...compose,
|
|
599
|
+
'up',
|
|
600
|
+
'--detach',
|
|
601
|
+
'--force-recreate',
|
|
602
|
+
'--remove-orphans',
|
|
603
|
+
];
|
|
604
|
+
return spawnSync('docker', args, opts);
|
|
605
|
+
}
|
|
606
|
+
function down() {
|
|
607
|
+
const args = [...compose, 'down', '--remove-orphans'];
|
|
608
|
+
return spawnSync('docker', args, opts);
|
|
609
|
+
}
|
|
610
|
+
down();
|
|
611
|
+
const result = up();
|
|
612
|
+
if (result.error)
|
|
613
|
+
throw result.error;
|
|
614
|
+
if (result.status !== 0) {
|
|
615
|
+
down();
|
|
616
|
+
throw new Error('Failed to start Docker Compose');
|
|
617
|
+
}
|
|
618
|
+
return down;
|
|
626
619
|
}
|
|
627
620
|
|
|
628
621
|
const HOSTS_FILE = '/etc/hosts';
|
|
@@ -670,62 +663,6 @@ function ensureHostEntry({ host }) {
|
|
|
670
663
|
}
|
|
671
664
|
}
|
|
672
665
|
|
|
673
|
-
function ensureNginxNetwork(config) {
|
|
674
|
-
const network = config.compose.name;
|
|
675
|
-
const exists = spawnSync('docker', ['network', 'ls', '--filter', `name=${network}`, '--format', '{{ .Name }}'], { encoding: 'utf-8' });
|
|
676
|
-
if (exists.error)
|
|
677
|
-
throw exists.error;
|
|
678
|
-
if (exists.status !== 0) {
|
|
679
|
-
console.error(exists.stderr);
|
|
680
|
-
throw new Error('Failed to list Docker network');
|
|
681
|
-
}
|
|
682
|
-
if (exists.stdout) {
|
|
683
|
-
return withTrustedProxyIps(config, inspectNetwork(network));
|
|
684
|
-
}
|
|
685
|
-
const create = spawnSync('docker', ['network', 'create', '--driver', 'bridge', network], { encoding: 'utf-8' });
|
|
686
|
-
if (create.error)
|
|
687
|
-
throw create.error;
|
|
688
|
-
if (create.status !== 0) {
|
|
689
|
-
console.error(create.stderr);
|
|
690
|
-
throw new Error('Failed to create Docker network');
|
|
691
|
-
}
|
|
692
|
-
return withTrustedProxyIps(config, inspectNetwork(network));
|
|
693
|
-
}
|
|
694
|
-
function withTrustedProxyIps(config, trustedProxyIps) {
|
|
695
|
-
return {
|
|
696
|
-
...config,
|
|
697
|
-
compose: {
|
|
698
|
-
...config.compose,
|
|
699
|
-
network: {
|
|
700
|
-
...config.compose.network,
|
|
701
|
-
trustedProxyIps: [
|
|
702
|
-
...config.compose.network.trustedProxyIps,
|
|
703
|
-
...trustedProxyIps,
|
|
704
|
-
],
|
|
705
|
-
},
|
|
706
|
-
},
|
|
707
|
-
};
|
|
708
|
-
}
|
|
709
|
-
function inspectNetwork(name) {
|
|
710
|
-
const result = spawnSync('docker', [
|
|
711
|
-
'network',
|
|
712
|
-
'inspect',
|
|
713
|
-
'--format',
|
|
714
|
-
'{{range .IPAM.Config}}{{println .Subnet}}{{end}}',
|
|
715
|
-
name,
|
|
716
|
-
], { encoding: 'utf-8' });
|
|
717
|
-
if (result.error)
|
|
718
|
-
throw result.error;
|
|
719
|
-
if (result.status !== 0) {
|
|
720
|
-
console.error(result.stderr);
|
|
721
|
-
throw new Error('Failed to inspect Docker network');
|
|
722
|
-
}
|
|
723
|
-
return result.stdout
|
|
724
|
-
.split(/\r?\n/)
|
|
725
|
-
.map((line) => line.trim())
|
|
726
|
-
.filter(Boolean);
|
|
727
|
-
}
|
|
728
|
-
|
|
729
666
|
function writeComposeConfig(config) {
|
|
730
667
|
const file = join(config.cache, config.files.compose);
|
|
731
668
|
const render = renderComposeConfig(config);
|
|
@@ -733,8 +670,13 @@ function writeComposeConfig(config) {
|
|
|
733
670
|
}
|
|
734
671
|
function renderComposeConfig(config) {
|
|
735
672
|
const { dex, nginx, oauth2_proxy, ...services } = config.services;
|
|
673
|
+
const bridge = spawnSync('docker', [
|
|
674
|
+
'network',
|
|
675
|
+
'inspect',
|
|
676
|
+
'bridge',
|
|
677
|
+
'--format={{ (index .IPAM.Config 0).Gateway }}',
|
|
678
|
+
], { encoding: 'utf8' }).stdout.trim();
|
|
736
679
|
return stringify({
|
|
737
|
-
networks: { default: { external: true, name: config.compose.name } },
|
|
738
680
|
secrets: {
|
|
739
681
|
[config.secrets.cookieSecret]: {
|
|
740
682
|
environment: config.secrets.cookieSecret,
|
|
@@ -765,6 +707,17 @@ function renderComposeConfig(config) {
|
|
|
765
707
|
},
|
|
766
708
|
}
|
|
767
709
|
: {}),
|
|
710
|
+
...('vite' in config.upstreams
|
|
711
|
+
? {
|
|
712
|
+
vite_loopback: {
|
|
713
|
+
image: DockerImages.socat.image,
|
|
714
|
+
command: `tcp-listen:${config.upstreams.vite.port},fork,bind=${bridge} tcp-connect:127.0.0.1:${config.upstreams.vite.port}`,
|
|
715
|
+
network_mode: 'host',
|
|
716
|
+
profiles: ['linux'],
|
|
717
|
+
restart: 'always',
|
|
718
|
+
},
|
|
719
|
+
}
|
|
720
|
+
: {}),
|
|
768
721
|
nginx: {
|
|
769
722
|
...config.services.nginx,
|
|
770
723
|
secrets: [config.secrets.edgeKey],
|
|
@@ -839,7 +792,8 @@ http {
|
|
|
839
792
|
js_shared_dict_zone zone=edge_key:32k;
|
|
840
793
|
js_set $edge_key edge_key;
|
|
841
794
|
|
|
842
|
-
# Disable IPv6 DNS
|
|
795
|
+
# Disable IPv6 DNS lookup. Docker Desktop (com.docker.backend), doesn't
|
|
796
|
+
# support IPv6 traffic translation to host loopback.
|
|
843
797
|
resolver 127.0.0.11 ipv6=off;
|
|
844
798
|
|
|
845
799
|
# Configure access log format.
|
|
@@ -1010,7 +964,7 @@ function writeOauth2ProxyConfig(config) {
|
|
|
1010
964
|
}
|
|
1011
965
|
function renderOauth2ProxyConfig(config) {
|
|
1012
966
|
const data = {
|
|
1013
|
-
http_address: `
|
|
967
|
+
http_address: `127.0.0.1:${config.upstreams.oauth2_proxy.port}`,
|
|
1014
968
|
provider: 'oidc',
|
|
1015
969
|
oidc_issuer_url: config.idp.oidc.issuer,
|
|
1016
970
|
...(config.idp.oidc.algs === undefined
|
|
@@ -1049,7 +1003,7 @@ function renderOauth2ProxyConfig(config) {
|
|
|
1049
1003
|
],
|
|
1050
1004
|
scope: config.oauth2.scopes.join(' '),
|
|
1051
1005
|
reverse_proxy: true,
|
|
1052
|
-
trusted_proxy_ips:
|
|
1006
|
+
trusted_proxy_ips: ['127.0.0.1'],
|
|
1053
1007
|
set_xauthrequest: true,
|
|
1054
1008
|
set_authorization_header: true,
|
|
1055
1009
|
pass_access_token: true,
|
|
@@ -1099,14 +1053,13 @@ async function startVisageServer(config) {
|
|
|
1099
1053
|
chmodSync(logs, 0o700);
|
|
1100
1054
|
await ensureCerts(config);
|
|
1101
1055
|
ensureHostEntry(config);
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
writeDexConfig(renderConfig);
|
|
1056
|
+
writeComposeConfig(config);
|
|
1057
|
+
if ('dex' in config.idp) {
|
|
1058
|
+
writeDexConfig(config);
|
|
1106
1059
|
}
|
|
1107
|
-
writeNginxConfig(
|
|
1108
|
-
writeOauth2ProxyConfig(
|
|
1109
|
-
return startCompose(
|
|
1060
|
+
writeNginxConfig(config);
|
|
1061
|
+
writeOauth2ProxyConfig(config);
|
|
1062
|
+
return startCompose(config);
|
|
1110
1063
|
}
|
|
1111
1064
|
|
|
1112
1065
|
function visage(options = {}) {
|
|
@@ -1130,23 +1083,10 @@ function visage(options = {}) {
|
|
|
1130
1083
|
host: resolvedOptions.host,
|
|
1131
1084
|
clientPort: resolvedOptions.port,
|
|
1132
1085
|
},
|
|
1133
|
-
//
|
|
1134
|
-
// Docker
|
|
1135
|
-
//
|
|
1136
|
-
|
|
1137
|
-
// 172.17.0.1).
|
|
1138
|
-
host: process.platform !== 'linux'
|
|
1139
|
-
? '127.0.0.1'
|
|
1140
|
-
: (spawnSync('docker', [
|
|
1141
|
-
'network',
|
|
1142
|
-
'inspect',
|
|
1143
|
-
'bridge',
|
|
1144
|
-
'--format',
|
|
1145
|
-
'{{range .IPAM.Config}}{{println .Gateway}}{{end}}',
|
|
1146
|
-
], { encoding: 'utf8' })
|
|
1147
|
-
.stdout?.split(/\r?\n/)
|
|
1148
|
-
.map((line) => line.trim())
|
|
1149
|
-
.find((line) => isIP(line)) ?? '0.0.0.0'),
|
|
1086
|
+
// Overwrite the localhost default which may resolve to an IPv6
|
|
1087
|
+
// loopback. Docker Desktop (com.docker.backend), doesn't support IPv6
|
|
1088
|
+
// traffic translation to host loopback.
|
|
1089
|
+
host: '127.0.0.1',
|
|
1150
1090
|
},
|
|
1151
1091
|
};
|
|
1152
1092
|
},
|
|
@@ -1181,6 +1121,7 @@ function visage(options = {}) {
|
|
|
1181
1121
|
});
|
|
1182
1122
|
visageUrl = formatVisageUrlLog(config.host, config.port);
|
|
1183
1123
|
stop = await startVisageServer(config);
|
|
1124
|
+
process.once('SIGINT', closeBundle);
|
|
1184
1125
|
vite.httpServer?.once('close', closeBundle);
|
|
1185
1126
|
return result;
|
|
1186
1127
|
};
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAQlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CA+E1D;AAED,eAAe,MAAM,CAAC"}
|
package/dist/render/compose.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/render/compose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/render/compose.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAI7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nginx.d.ts","sourceRoot":"","sources":["../../src/render/nginx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"nginx.d.ts","sourceRoot":"","sources":["../../src/render/nginx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AA2InE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAQ3D"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKvC,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKvC,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAY5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,IAAI,KACb,IAAI,CAAC;AAEV,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,KACX,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;IAC7B;;;OAGG;IACH,OAAO,EAAE,oBAAoB,CAAC;IAC9B;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAqBvE;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,IAAI,CAAC,CAiBrB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -276,6 +276,10 @@ export type VisageService = {
|
|
|
276
276
|
* Compose service dependencies that should start before this service.
|
|
277
277
|
*/
|
|
278
278
|
readonly depends_on?: readonly string[];
|
|
279
|
+
/**
|
|
280
|
+
* Docker network mode rendered into the Compose service.
|
|
281
|
+
*/
|
|
282
|
+
readonly network_mode?: string;
|
|
279
283
|
/**
|
|
280
284
|
* Additional host-to-IP mappings rendered into the Compose service.
|
|
281
285
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blakearoberts/visage",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5-rc.1",
|
|
4
4
|
"description": "Vite plugin for local development with HMR and OIDC session cookie lifecycle semantics.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Blake Roberts",
|
|
@@ -46,13 +46,8 @@
|
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "rollup -c",
|
|
49
|
-
"check": "npm run
|
|
50
|
-
"
|
|
51
|
-
"pretest:e2e": "npm run test:e2e:setup",
|
|
52
|
-
"test": "tsx --test test/unit/*.test.ts",
|
|
53
|
-
"test:all": "npm run typecheck && npm test && npm run test:e2e",
|
|
54
|
-
"test:e2e": "playwright test test/e2e",
|
|
55
|
-
"test:e2e:setup": "npm run build && playwright install chromium",
|
|
49
|
+
"check": "npm run typecheck",
|
|
50
|
+
"test": "tsx --test test/*.test.ts",
|
|
56
51
|
"typecheck": "tsc --noEmit"
|
|
57
52
|
},
|
|
58
53
|
"dependencies": {
|
package/dist/network.d.ts
DELETED
package/dist/network.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA2BrE"}
|