@pie-players/tts-server-sc 0.3.28 → 0.3.30
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
CHANGED
|
@@ -32,6 +32,108 @@ bun add @pie-players/tts-server-sc
|
|
|
32
32
|
- `apiKey`: signing key used to mint bearer JWT
|
|
33
33
|
- `issuer`: JWT `iss` claim
|
|
34
34
|
|
|
35
|
+
## Asset fetch allow-list (SSRF defense)
|
|
36
|
+
|
|
37
|
+
The provider validates every upstream-returned asset URL (audio and speech
|
|
38
|
+
marks) before fetching. The allow-list has two modes:
|
|
39
|
+
|
|
40
|
+
### Default: same-registrable-domain as `baseUrl` (zero config)
|
|
41
|
+
|
|
42
|
+
If `assetOrigins` is not supplied, the provider permits:
|
|
43
|
+
|
|
44
|
+
- Exact match of `baseUrl`'s origin, and
|
|
45
|
+
- Any URL whose hostname shares the same registrable domain (eTLD+1) as
|
|
46
|
+
`baseUrl`.
|
|
47
|
+
|
|
48
|
+
This matches the common "service at `x.vendor.tld`, CDN at `y.vendor.tld`"
|
|
49
|
+
deployment (e.g. `baseUrl = https://tts.svcdev.schoolcity.com` permits
|
|
50
|
+
`https://tts-cdn.svcdev.schoolcity.com` out of the box) without opening the
|
|
51
|
+
provider up to arbitrary external hosts. The registrable domain is computed
|
|
52
|
+
via the Public Suffix List (`tldts`), so it is correct for multi-label TLDs
|
|
53
|
+
(`.co.uk`, `.com.au`, etc.). If `baseUrl` is an IP literal or a hostname
|
|
54
|
+
without a recognised public suffix, the provider falls back to strict
|
|
55
|
+
single-origin behavior.
|
|
56
|
+
|
|
57
|
+
### Explicit (recommended for production): exact-origin allow-list
|
|
58
|
+
|
|
59
|
+
Passing a non-empty `assetOrigins` switches the allow-list to strict
|
|
60
|
+
exact-origin matching and disables the registrable-domain fallback:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
await provider.initialize({
|
|
64
|
+
baseUrl: process.env.TTS_SCHOOLCITY_URL!,
|
|
65
|
+
apiKey: process.env.TTS_SCHOOLCITY_API_KEY!,
|
|
66
|
+
issuer: process.env.TTS_SCHOOLCITY_ISS!,
|
|
67
|
+
assetOrigins: [
|
|
68
|
+
"https://tts.svcdev.schoolcity.com",
|
|
69
|
+
"https://tts-cdn.svcdev.schoolcity.com",
|
|
70
|
+
],
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
This is recommended for production because it gives an auditable,
|
|
75
|
+
typo-resistant declaration of exactly which CDNs the provider is permitted
|
|
76
|
+
to reach, and it rejects a compromised sibling host on the same registrable
|
|
77
|
+
domain.
|
|
78
|
+
|
|
79
|
+
To force strict single-origin behavior without listing any extras, pass
|
|
80
|
+
`assetOrigins: [baseUrl]`.
|
|
81
|
+
|
|
82
|
+
### Private-network deployments (internal CDN / K8s / VPC / air-gapped)
|
|
83
|
+
|
|
84
|
+
The private-host guard is intentionally opt-out-able for deployments where
|
|
85
|
+
the TTS service and its assets legitimately live on a private network —
|
|
86
|
+
on-prem CDN, in-cluster Kubernetes service, VPC endpoint, air-gapped
|
|
87
|
+
install, etc. Disable the guard and supply an explicit `assetOrigins`
|
|
88
|
+
allow-list covering every internal host that may appear in responses:
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
await provider.initialize({
|
|
92
|
+
baseUrl: "https://tts.internal.corp.local",
|
|
93
|
+
apiKey: process.env.TTS_SCHOOLCITY_API_KEY!,
|
|
94
|
+
issuer: process.env.TTS_SCHOOLCITY_ISS!,
|
|
95
|
+
blockPrivateAssetHosts: false,
|
|
96
|
+
assetOrigins: [
|
|
97
|
+
"https://tts.internal.corp.local",
|
|
98
|
+
"https://cdn.internal.corp.local",
|
|
99
|
+
],
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Always pair `blockPrivateAssetHosts: false` with an explicit
|
|
104
|
+
`assetOrigins` list. Without one, a compromised or malicious upstream
|
|
105
|
+
response could redirect the provider to arbitrary internal hosts inside
|
|
106
|
+
your network boundary — which is exactly the SSRF class the guard
|
|
107
|
+
defends against.
|
|
108
|
+
|
|
109
|
+
Cloud-metadata / IMDS endpoints are always blocked (see below), even
|
|
110
|
+
when `blockPrivateAssetHosts` is `false`.
|
|
111
|
+
|
|
112
|
+
### Always-on hardening (not configurable)
|
|
113
|
+
|
|
114
|
+
- `http:` / `https:` schemes only.
|
|
115
|
+
- Cloud-metadata / IMDS endpoints are always rejected —
|
|
116
|
+
`169.254.169.254`, `fd00:ec2::254`, `metadata.google.internal`,
|
|
117
|
+
`metadata.azure.internal`, `metadata.packet.net`,
|
|
118
|
+
`metadata.oci.oraclecloud.com`. There is no legitimate TTS-asset use
|
|
119
|
+
case for these hosts and they return IAM credentials / provisioning
|
|
120
|
+
secrets.
|
|
121
|
+
- SSRF-resistant hostname normalization: IPv4-mapped IPv6
|
|
122
|
+
(`::ffff:…`), trailing-dot hostnames (`host.`), bare decimal / hex /
|
|
123
|
+
octal IPv4 encodings are all rewritten before matching so they cannot
|
|
124
|
+
be used to bypass the blocklists.
|
|
125
|
+
- Manual redirect handling with a bounded hop count; each redirect target
|
|
126
|
+
is re-validated against the same policy.
|
|
127
|
+
- Authorization / cookie headers are scrubbed for cross-origin asset fetches.
|
|
128
|
+
|
|
129
|
+
Symptom if a URL falls outside the policy:
|
|
130
|
+
`SchoolCity asset URL origin is not allow-listed: <url>`,
|
|
131
|
+
`SchoolCity asset URL resolves to a private/internal host`, or
|
|
132
|
+
`SchoolCity asset URL resolves to a cloud metadata endpoint`. Address by
|
|
133
|
+
adding the origin to `assetOrigins`, toggling `blockPrivateAssetHosts`
|
|
134
|
+
for private-network deployments, or investigating why an upstream
|
|
135
|
+
response is pointing at a metadata endpoint (that is never legitimate).
|
|
136
|
+
|
|
35
137
|
## Basic usage
|
|
36
138
|
|
|
37
139
|
```ts
|
|
@@ -10,6 +10,46 @@ export interface SchoolCityProviderConfig extends TTSServerConfig {
|
|
|
10
10
|
defaultCache?: boolean;
|
|
11
11
|
requestTimeoutMs?: number;
|
|
12
12
|
fetchImpl?: FetchLike;
|
|
13
|
+
/**
|
|
14
|
+
* Explicit allow-list of origins that upstream-returned `audioContent`
|
|
15
|
+
* and `word` URLs may use. When provided, only exact origin matches
|
|
16
|
+
* are accepted — this is the tightest setting and recommended for
|
|
17
|
+
* production (gives an auditable, typo-resistant declaration of
|
|
18
|
+
* which CDNs the provider is permitted to reach).
|
|
19
|
+
*
|
|
20
|
+
* When omitted, the provider falls back to a zero-config default:
|
|
21
|
+
* allow `baseUrl`'s origin plus any hostname on the same registrable
|
|
22
|
+
* domain (eTLD+1) as `baseUrl`. This matches the common "service at
|
|
23
|
+
* `x.vendor.tld`, CDN at `y.vendor.tld`" deployment pattern without
|
|
24
|
+
* weakening the private-host / metadata / scheme / redirect defenses
|
|
25
|
+
* (all of which remain active regardless of this setting).
|
|
26
|
+
*
|
|
27
|
+
* To force strict single-origin behavior (no registrable-domain
|
|
28
|
+
* fallback), pass `assetOrigins: [baseUrl]`.
|
|
29
|
+
*/
|
|
30
|
+
assetOrigins?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* When true (default), asset URLs that resolve to RFC1918 / loopback /
|
|
33
|
+
* link-local / IPv6 unique-local hosts are rejected as a defense against
|
|
34
|
+
* SSRF. Set to `false` only for deployments where the SchoolCity
|
|
35
|
+
* service legitimately lives on a private network (on-prem CDN,
|
|
36
|
+
* in-cluster K8s service, VPC endpoint, air-gapped install). When you
|
|
37
|
+
* disable this guard, always also pass an explicit `assetOrigins`
|
|
38
|
+
* allow-list so a compromised upstream response cannot redirect the
|
|
39
|
+
* fetch to arbitrary internal hosts.
|
|
40
|
+
*
|
|
41
|
+
* Cloud-metadata / IMDS endpoints (169.254.169.254, fd00:ec2::254,
|
|
42
|
+
* metadata.google.internal, metadata.azure.internal,
|
|
43
|
+
* metadata.packet.net, metadata.oci.oraclecloud.com) are always
|
|
44
|
+
* blocked regardless of this flag — there is no legitimate TTS-asset
|
|
45
|
+
* use case for those, and they are the primary SSRF payoff target.
|
|
46
|
+
*/
|
|
47
|
+
blockPrivateAssetHosts?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Maximum number of HTTP redirects to follow when dereferencing
|
|
50
|
+
* upstream-returned asset URLs. Defaults to 2.
|
|
51
|
+
*/
|
|
52
|
+
maxAssetRedirects?: number;
|
|
13
53
|
}
|
|
14
54
|
export interface SchoolCitySynthesizeAssetsResult {
|
|
15
55
|
audioContent: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchoolCityServerProvider.d.ts","sourceRoot":"","sources":["../src/SchoolCityServerProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SchoolCityServerProvider.d.ts","sourceRoot":"","sources":["../src/SchoolCityServerProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,MAAM,8BAA8B,CAAC;AAEtC,KAAK,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAiBtD,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gCAAgC;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;CAC1B;AAieD,qBAAa,wBAAyB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,UAAU,oBAAoB;IACvC,QAAQ,CAAC,YAAY,oBAAoB;IACzC,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,SAAS,CAAoB;IAE/B,UAAU,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsCnD,aAAa;IAU3B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,WAAW;IASN,oBAAoB,CAChC,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC,gCAAgC,CAAC;IAoFtC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8CnE,SAAS,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK9D,eAAe,IAAI,0BAA0B;CAqB7C"}
|
|
@@ -1,9 +1,211 @@
|
|
|
1
1
|
import { SignJWT } from "jose";
|
|
2
|
+
import { getDomain } from "tldts";
|
|
2
3
|
import { BaseTTSProvider, TTSError, TTSErrorCode, } from "@pie-players/tts-server-core";
|
|
3
4
|
const DEFAULT_LANGUAGE = "en-US";
|
|
4
5
|
const DEFAULT_SPEED_RATE = "medium";
|
|
5
6
|
const DEFAULT_CACHE = true;
|
|
6
7
|
const DEFAULT_REQUEST_TIMEOUT_MS = 15000;
|
|
8
|
+
const DEFAULT_MAX_ASSET_REDIRECTS = 2;
|
|
9
|
+
// Cloud-metadata / IMDS endpoints are ALWAYS blocked, even when
|
|
10
|
+
// `blockPrivateAssetHosts` is `false`. These have no legitimate TTS-asset
|
|
11
|
+
// use case and are the primary SSRF payoff target (they return IAM
|
|
12
|
+
// credentials, instance tokens, and provisioning secrets).
|
|
13
|
+
const CLOUD_METADATA_HOSTNAME_PATTERNS = [
|
|
14
|
+
/^169\.254\.169\.254$/,
|
|
15
|
+
/^fd00:ec2::254$/i,
|
|
16
|
+
/^metadata\.google\.internal$/i,
|
|
17
|
+
/^metadata\.azure\.internal$/i,
|
|
18
|
+
/^metadata\.packet\.net$/i,
|
|
19
|
+
/^metadata\.oci\.oraclecloud\.com$/i,
|
|
20
|
+
];
|
|
21
|
+
// Private / internal-network patterns. Blocked by default, can be
|
|
22
|
+
// opted-out via `blockPrivateAssetHosts: false` for deployments where
|
|
23
|
+
// the TTS service legitimately runs on a private network.
|
|
24
|
+
const PRIVATE_HOSTNAME_PATTERNS = [
|
|
25
|
+
/^localhost$/i,
|
|
26
|
+
/^127(?:\.\d{1,3}){3}$/,
|
|
27
|
+
/^0(?:\.\d{1,3}){3}$/,
|
|
28
|
+
/^10(?:\.\d{1,3}){3}$/,
|
|
29
|
+
/^192\.168(?:\.\d{1,3}){2}$/,
|
|
30
|
+
/^172\.(?:1[6-9]|2\d|3[01])(?:\.\d{1,3}){2}$/,
|
|
31
|
+
/^169\.254(?:\.\d{1,3}){2}$/,
|
|
32
|
+
/^::1$/,
|
|
33
|
+
/^0:0:0:0:0:0:0:1$/,
|
|
34
|
+
/^fe80:/i,
|
|
35
|
+
/^fc00:/i,
|
|
36
|
+
/^fd[0-9a-f]{2}:/i,
|
|
37
|
+
];
|
|
38
|
+
const ipv4BareToDotted = (hostname) => {
|
|
39
|
+
// Reject obviously non-numeric inputs fast; numeric IPv4 encodings
|
|
40
|
+
// (bare decimal, hex, or octal) are a classic SSRF bypass.
|
|
41
|
+
if (!/^(?:0x[0-9a-f]+|0[0-7]*|\d+)$/i.test(hostname))
|
|
42
|
+
return null;
|
|
43
|
+
let asInt;
|
|
44
|
+
try {
|
|
45
|
+
asInt = Number.parseInt(hostname, hostname.startsWith("0x") ? 16 : 10);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
if (!Number.isFinite(asInt) || asInt < 0 || asInt > 0xff_ff_ff_ff)
|
|
51
|
+
return null;
|
|
52
|
+
return [
|
|
53
|
+
(asInt >>> 24) & 0xff,
|
|
54
|
+
(asInt >>> 16) & 0xff,
|
|
55
|
+
(asInt >>> 8) & 0xff,
|
|
56
|
+
asInt & 0xff,
|
|
57
|
+
].join(".");
|
|
58
|
+
};
|
|
59
|
+
const normalizeHostnameForSafetyCheck = (hostname) => {
|
|
60
|
+
let host = hostname.replace(/^\[|\]$/g, "").replace(/\.$/, "");
|
|
61
|
+
// Unmap IPv4-in-IPv6 (e.g. `::ffff:127.0.0.1` / `::ffff:7f00:1`).
|
|
62
|
+
const mapped = host.match(/^::ffff:([0-9a-f.]+)$/i);
|
|
63
|
+
if (mapped) {
|
|
64
|
+
const inner = mapped[1];
|
|
65
|
+
if (/^\d+\.\d+\.\d+\.\d+$/.test(inner)) {
|
|
66
|
+
host = inner;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return host;
|
|
70
|
+
};
|
|
71
|
+
const hostnameMatchesAny = (hostname, patterns) => {
|
|
72
|
+
const normalized = normalizeHostnameForSafetyCheck(hostname);
|
|
73
|
+
const numericDotted = ipv4BareToDotted(normalized);
|
|
74
|
+
const candidates = [normalized.toLowerCase()];
|
|
75
|
+
if (numericDotted)
|
|
76
|
+
candidates.push(numericDotted);
|
|
77
|
+
return candidates.some((candidate) => patterns.some((pattern) => pattern.test(candidate)));
|
|
78
|
+
};
|
|
79
|
+
const hostnameIsCloudMetadata = (hostname) => hostnameMatchesAny(hostname, CLOUD_METADATA_HOSTNAME_PATTERNS);
|
|
80
|
+
const hostnameIsPrivate = (hostname) => hostnameMatchesAny(hostname, PRIVATE_HOSTNAME_PATTERNS);
|
|
81
|
+
const resolveAssetPolicy = (config, baseUrl) => {
|
|
82
|
+
const explicitOrigins = new Set();
|
|
83
|
+
if (Array.isArray(config.assetOrigins)) {
|
|
84
|
+
for (const raw of config.assetOrigins) {
|
|
85
|
+
if (typeof raw !== "string" || raw.length === 0)
|
|
86
|
+
continue;
|
|
87
|
+
try {
|
|
88
|
+
explicitOrigins.add(new URL(raw).origin);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Ignore malformed origins; they simply won't match.
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
let baseUrlOrigin = null;
|
|
96
|
+
let baseUrlHostname = null;
|
|
97
|
+
if (baseUrl) {
|
|
98
|
+
try {
|
|
99
|
+
const parsed = new URL(baseUrl);
|
|
100
|
+
baseUrlOrigin = parsed.origin;
|
|
101
|
+
baseUrlHostname = parsed.hostname;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// baseUrl validated at initialize(); unreachable in practice.
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Only derive a registrable-domain fallback when the host did NOT pass
|
|
108
|
+
// an explicit allow-list. Explicit config always wins and stays strict.
|
|
109
|
+
const baseUrlRegistrableDomain = explicitOrigins.size === 0 && baseUrlHostname
|
|
110
|
+
? getDomain(baseUrlHostname)
|
|
111
|
+
: null;
|
|
112
|
+
return {
|
|
113
|
+
explicitOrigins,
|
|
114
|
+
baseUrlOrigin,
|
|
115
|
+
baseUrlRegistrableDomain,
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
const describePolicy = (policy) => {
|
|
119
|
+
const descriptions = [];
|
|
120
|
+
for (const origin of policy.explicitOrigins)
|
|
121
|
+
descriptions.push(origin);
|
|
122
|
+
if (policy.explicitOrigins.size === 0) {
|
|
123
|
+
if (policy.baseUrlOrigin)
|
|
124
|
+
descriptions.push(policy.baseUrlOrigin);
|
|
125
|
+
if (policy.baseUrlRegistrableDomain) {
|
|
126
|
+
descriptions.push(`*.${policy.baseUrlRegistrableDomain}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return descriptions;
|
|
130
|
+
};
|
|
131
|
+
const isUrlAllowedByPolicy = (parsed, policy) => {
|
|
132
|
+
if (policy.explicitOrigins.size > 0) {
|
|
133
|
+
return policy.explicitOrigins.has(parsed.origin);
|
|
134
|
+
}
|
|
135
|
+
if (policy.baseUrlOrigin && parsed.origin === policy.baseUrlOrigin) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
if (policy.baseUrlRegistrableDomain) {
|
|
139
|
+
const parsedRegistrable = getDomain(parsed.hostname);
|
|
140
|
+
if (parsedRegistrable !== null &&
|
|
141
|
+
parsedRegistrable === policy.baseUrlRegistrableDomain) {
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Fall back to "baseUrl origin only" when PSL lookup yields no
|
|
146
|
+
// registrable domain for baseUrl (e.g. IP literal, single-label host).
|
|
147
|
+
return (policy.explicitOrigins.size === 0 &&
|
|
148
|
+
policy.baseUrlOrigin !== null &&
|
|
149
|
+
policy.baseUrlRegistrableDomain === null &&
|
|
150
|
+
parsed.origin === policy.baseUrlOrigin);
|
|
151
|
+
};
|
|
152
|
+
const validateAssetUrl = (rawUrl, config, baseUrl) => {
|
|
153
|
+
let parsed;
|
|
154
|
+
try {
|
|
155
|
+
parsed = new URL(rawUrl);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, "SchoolCity returned a malformed asset URL", { url: rawUrl }, "schoolcity-tts");
|
|
159
|
+
}
|
|
160
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
161
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, `SchoolCity asset URL uses unsupported protocol: ${parsed.protocol}`, { url: rawUrl }, "schoolcity-tts");
|
|
162
|
+
}
|
|
163
|
+
// Cloud-metadata / IMDS is always blocked, even when the private-host
|
|
164
|
+
// guard is intentionally disabled for internal-network deployments.
|
|
165
|
+
if (hostnameIsCloudMetadata(parsed.hostname)) {
|
|
166
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, "SchoolCity asset URL resolves to a cloud metadata endpoint", { url: rawUrl, hostname: parsed.hostname }, "schoolcity-tts");
|
|
167
|
+
}
|
|
168
|
+
if (config.blockPrivateAssetHosts !== false && hostnameIsPrivate(parsed.hostname)) {
|
|
169
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, "SchoolCity asset URL resolves to a private/internal host", { url: rawUrl, hostname: parsed.hostname }, "schoolcity-tts");
|
|
170
|
+
}
|
|
171
|
+
const policy = resolveAssetPolicy(config, baseUrl);
|
|
172
|
+
if (!isUrlAllowedByPolicy(parsed, policy)) {
|
|
173
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, `SchoolCity asset URL origin is not allow-listed: ${parsed.origin}`, { url: rawUrl, allowed: describePolicy(policy) }, "schoolcity-tts");
|
|
174
|
+
}
|
|
175
|
+
return parsed;
|
|
176
|
+
};
|
|
177
|
+
const fetchAssetWithManualRedirects = async (initialUrl, config, baseUrl, fetchImpl, init) => {
|
|
178
|
+
const maxRedirects = Math.max(0, Math.floor(config.maxAssetRedirects ?? DEFAULT_MAX_ASSET_REDIRECTS));
|
|
179
|
+
let current = initialUrl;
|
|
180
|
+
for (let hop = 0; hop <= maxRedirects; hop += 1) {
|
|
181
|
+
const response = await fetchImpl(current.toString(), {
|
|
182
|
+
...init,
|
|
183
|
+
redirect: "manual",
|
|
184
|
+
});
|
|
185
|
+
const status = response.status;
|
|
186
|
+
const isRedirect = status >= 300 && status < 400 && status !== 304;
|
|
187
|
+
if (!isRedirect) {
|
|
188
|
+
return response;
|
|
189
|
+
}
|
|
190
|
+
const location = response.headers.get("location");
|
|
191
|
+
if (!location) {
|
|
192
|
+
return response;
|
|
193
|
+
}
|
|
194
|
+
if (hop === maxRedirects) {
|
|
195
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, "SchoolCity asset redirect chain exceeded limit", { limit: maxRedirects, lastUrl: current.toString() }, "schoolcity-tts");
|
|
196
|
+
}
|
|
197
|
+
let nextUrl;
|
|
198
|
+
try {
|
|
199
|
+
nextUrl = new URL(location, current);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, "SchoolCity asset redirect target is malformed", { from: current.toString(), location }, "schoolcity-tts");
|
|
203
|
+
}
|
|
204
|
+
current = validateAssetUrl(nextUrl.toString(), config, baseUrl);
|
|
205
|
+
}
|
|
206
|
+
// Unreachable: loop either returns or throws.
|
|
207
|
+
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, "SchoolCity asset fetch terminated unexpectedly", undefined, "schoolcity-tts");
|
|
208
|
+
};
|
|
7
209
|
const asFiniteNumber = (value) => {
|
|
8
210
|
const next = Number(value);
|
|
9
211
|
return Number.isFinite(next) ? next : null;
|
|
@@ -268,7 +470,8 @@ export class SchoolCityServerProvider extends BaseTTSProvider {
|
|
|
268
470
|
}
|
|
269
471
|
let speechMarks = [];
|
|
270
472
|
if (request.includeSpeechMarks !== false) {
|
|
271
|
-
const
|
|
473
|
+
const marksUrl = validateAssetUrl(word, this.config, this.baseUrl);
|
|
474
|
+
const marksResponse = await fetchAssetWithManualRedirects(marksUrl, this.config, this.baseUrl, this.fetchImpl, { signal: timeout.signal });
|
|
272
475
|
if (!marksResponse.ok) {
|
|
273
476
|
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, `SchoolCity marks fetch failed (${marksResponse.status})`, { word, status: marksResponse.status }, this.providerId);
|
|
274
477
|
}
|
|
@@ -294,7 +497,15 @@ export class SchoolCityServerProvider extends BaseTTSProvider {
|
|
|
294
497
|
async synthesize(request) {
|
|
295
498
|
const startedAt = Date.now();
|
|
296
499
|
const { audioContent, speechMarks } = await this.synthesizeWithAssets(request);
|
|
297
|
-
const
|
|
500
|
+
const audioUrl = validateAssetUrl(audioContent, this.config, this.baseUrl);
|
|
501
|
+
const audioTimeout = this.withTimeout();
|
|
502
|
+
let audioResponse;
|
|
503
|
+
try {
|
|
504
|
+
audioResponse = await fetchAssetWithManualRedirects(audioUrl, this.config, this.baseUrl, this.fetchImpl, { signal: audioTimeout.signal });
|
|
505
|
+
}
|
|
506
|
+
finally {
|
|
507
|
+
audioTimeout.clear();
|
|
508
|
+
}
|
|
298
509
|
if (!audioResponse.ok) {
|
|
299
510
|
throw new TTSError(TTSErrorCode.PROVIDER_ERROR, `Failed to fetch SchoolCity audio asset (${audioResponse.status})`, { audioContent, status: audioResponse.status }, this.providerId);
|
|
300
511
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchoolCityServerProvider.js","sourceRoot":"","sources":["../src/SchoolCityServerProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SchoolCityServerProvider.js","sourceRoot":"","sources":["../src/SchoolCityServerProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-players/tts-server-sc",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.30",
|
|
4
4
|
"description": "SchoolCity-backed provider for server-side TTS with speech marks support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,12 +38,13 @@
|
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@pie-players/tts-server-core": "0.3.
|
|
42
|
-
"jose": "^6.2.2"
|
|
41
|
+
"@pie-players/tts-server-core": "0.3.30",
|
|
42
|
+
"jose": "^6.2.2",
|
|
43
|
+
"tldts": "^7.0.26"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"typescript": "^5.9.3",
|
|
46
|
-
"vitest": "^1.
|
|
47
|
+
"vitest": "^4.1.4"
|
|
47
48
|
},
|
|
48
49
|
"sideEffects": false,
|
|
49
50
|
"homepage": "https://github.com/pie-framework/pie-players/tree/master/packages/tts-server-sc#readme",
|