@skyold/model-protocol 0.1.0-beta.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 (104) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +22 -0
  3. package/README.zh-CN.md +17 -0
  4. package/dist/chat-egress.d.ts +12 -0
  5. package/dist/chat-egress.d.ts.map +1 -0
  6. package/dist/chat-egress.js +144 -0
  7. package/dist/chat-egress.js.map +1 -0
  8. package/dist/chat-ingress.d.ts +39 -0
  9. package/dist/chat-ingress.d.ts.map +1 -0
  10. package/dist/chat-ingress.js +323 -0
  11. package/dist/chat-ingress.js.map +1 -0
  12. package/dist/chat-stream-egress.d.ts +8 -0
  13. package/dist/chat-stream-egress.d.ts.map +1 -0
  14. package/dist/chat-stream-egress.js +129 -0
  15. package/dist/chat-stream-egress.js.map +1 -0
  16. package/dist/contracts.d.ts +61 -0
  17. package/dist/contracts.d.ts.map +1 -0
  18. package/dist/contracts.js +2 -0
  19. package/dist/contracts.js.map +1 -0
  20. package/dist/egress-codec-registry.d.ts +36 -0
  21. package/dist/egress-codec-registry.d.ts.map +1 -0
  22. package/dist/egress-codec-registry.js +125 -0
  23. package/dist/egress-codec-registry.js.map +1 -0
  24. package/dist/index.d.ts +39 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +25 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/ingress-codec-registry.d.ts +26 -0
  29. package/dist/ingress-codec-registry.d.ts.map +1 -0
  30. package/dist/ingress-codec-registry.js +106 -0
  31. package/dist/ingress-codec-registry.js.map +1 -0
  32. package/dist/media-images.d.ts +154 -0
  33. package/dist/media-images.d.ts.map +1 -0
  34. package/dist/media-images.js +721 -0
  35. package/dist/media-images.js.map +1 -0
  36. package/dist/media-video.d.ts +68 -0
  37. package/dist/media-video.d.ts.map +1 -0
  38. package/dist/media-video.js +196 -0
  39. package/dist/media-video.js.map +1 -0
  40. package/dist/native-images.d.ts +68 -0
  41. package/dist/native-images.d.ts.map +1 -0
  42. package/dist/native-images.js +424 -0
  43. package/dist/native-images.js.map +1 -0
  44. package/dist/openai-embeddings-egress.d.ts +4 -0
  45. package/dist/openai-embeddings-egress.d.ts.map +1 -0
  46. package/dist/openai-embeddings-egress.js +21 -0
  47. package/dist/openai-embeddings-egress.js.map +1 -0
  48. package/dist/openai-embeddings.d.ts +66 -0
  49. package/dist/openai-embeddings.d.ts.map +1 -0
  50. package/dist/openai-embeddings.js +442 -0
  51. package/dist/openai-embeddings.js.map +1 -0
  52. package/dist/openai-responses-egress.d.ts +17 -0
  53. package/dist/openai-responses-egress.d.ts.map +1 -0
  54. package/dist/openai-responses-egress.js +99 -0
  55. package/dist/openai-responses-egress.js.map +1 -0
  56. package/dist/openai-responses-stream-egress.d.ts +4 -0
  57. package/dist/openai-responses-stream-egress.d.ts.map +1 -0
  58. package/dist/openai-responses-stream-egress.js +252 -0
  59. package/dist/openai-responses-stream-egress.js.map +1 -0
  60. package/dist/openai-responses.d.ts +15 -0
  61. package/dist/openai-responses.d.ts.map +1 -0
  62. package/dist/openai-responses.js +363 -0
  63. package/dist/openai-responses.js.map +1 -0
  64. package/dist/provider-source.d.ts +20 -0
  65. package/dist/provider-source.d.ts.map +1 -0
  66. package/dist/provider-source.js +41 -0
  67. package/dist/provider-source.js.map +1 -0
  68. package/dist/provider-transport.d.ts +5 -0
  69. package/dist/provider-transport.d.ts.map +1 -0
  70. package/dist/provider-transport.js +114 -0
  71. package/dist/provider-transport.js.map +1 -0
  72. package/dist/runtime-v2-validation.d.ts +16 -0
  73. package/dist/runtime-v2-validation.d.ts.map +1 -0
  74. package/dist/runtime-v2-validation.js +915 -0
  75. package/dist/runtime-v2-validation.js.map +1 -0
  76. package/dist/runtime-v2.d.ts +462 -0
  77. package/dist/runtime-v2.d.ts.map +1 -0
  78. package/dist/runtime-v2.js +56 -0
  79. package/dist/runtime-v2.js.map +1 -0
  80. package/dist/tokenforge-task-projection.d.ts +8 -0
  81. package/dist/tokenforge-task-projection.d.ts.map +1 -0
  82. package/dist/tokenforge-task-projection.js +247 -0
  83. package/dist/tokenforge-task-projection.js.map +1 -0
  84. package/dist/tokenforge-tasks.d.ts +241 -0
  85. package/dist/tokenforge-tasks.d.ts.map +1 -0
  86. package/dist/tokenforge-tasks.js +1132 -0
  87. package/dist/tokenforge-tasks.js.map +1 -0
  88. package/dist/usage-reservation.d.ts +11 -0
  89. package/dist/usage-reservation.d.ts.map +1 -0
  90. package/dist/usage-reservation.js +40 -0
  91. package/dist/usage-reservation.js.map +1 -0
  92. package/dist/validation.d.ts +22 -0
  93. package/dist/validation.d.ts.map +1 -0
  94. package/dist/validation.js +415 -0
  95. package/dist/validation.js.map +1 -0
  96. package/dist/video-ingress.d.ts +31 -0
  97. package/dist/video-ingress.d.ts.map +1 -0
  98. package/dist/video-ingress.js +246 -0
  99. package/dist/video-ingress.js.map +1 -0
  100. package/dist/volc-video-task-codec.d.ts +59 -0
  101. package/dist/volc-video-task-codec.d.ts.map +1 -0
  102. package/dist/volc-video-task-codec.js +123 -0
  103. package/dist/volc-video-task-codec.js.map +1 -0
  104. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenforge-tasks.js","sourceRoot":"","sources":["../src/tokenforge-tasks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DecodedTaskV1 } from './runtime-v2.js';
2
+ export interface TaskUsageReservationV1 {
3
+ readonly estimatedInputTokens: number;
4
+ readonly maximumOutputTokens: number;
5
+ }
6
+ /**
7
+ * Project a cost-neutral usage bound from protocol-normalized input.
8
+ * Pricing, credits, currency, tenant policy, and settlement remain Host concerns.
9
+ */
10
+ export declare function projectTaskUsageReservationV1(decoded: DecodedTaskV1, defaultMaximumOutputTokens: number): TaskUsageReservationV1;
11
+ //# sourceMappingURL=usage-reservation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-reservation.d.ts","sourceRoot":"","sources":["../src/usage-reservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,aAAa,EACtB,0BAA0B,EAAE,MAAM,GACjC,sBAAsB,CAgBxB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Project a cost-neutral usage bound from protocol-normalized input.
3
+ * Pricing, credits, currency, tenant policy, and settlement remain Host concerns.
4
+ */
5
+ export function projectTaskUsageReservationV1(decoded, defaultMaximumOutputTokens) {
6
+ if (!positiveSafeInteger(defaultMaximumOutputTokens)) {
7
+ throw new Error('TASK_USAGE_RESERVATION_DEFAULT_INVALID');
8
+ }
9
+ const estimatedInputTokens = Math.max(1, Math.ceil(JSON.stringify(decoded.normalizedInput).length / 4));
10
+ if (decoded.taskKind === 'embedding') {
11
+ return { estimatedInputTokens, maximumOutputTokens: 0 };
12
+ }
13
+ const requested = requestedMaximumOutputTokens(decoded);
14
+ return {
15
+ estimatedInputTokens,
16
+ maximumOutputTokens: requested ?? defaultMaximumOutputTokens,
17
+ };
18
+ }
19
+ function requestedMaximumOutputTokens(decoded) {
20
+ const input = decoded.normalizedInput;
21
+ let value;
22
+ switch (decoded.ingressProtocolFamily) {
23
+ case 'openai-chat/v1':
24
+ value = input['max_completion_tokens'] ?? input['max_tokens'];
25
+ break;
26
+ case 'anthropic-messages/v1':
27
+ value = input['max_tokens'];
28
+ break;
29
+ case 'openai-responses/v1':
30
+ value = input['max_output_tokens'];
31
+ break;
32
+ default:
33
+ return undefined;
34
+ }
35
+ return positiveSafeInteger(value) ? value : undefined;
36
+ }
37
+ function positiveSafeInteger(value) {
38
+ return Number.isSafeInteger(value) && value > 0;
39
+ }
40
+ //# sourceMappingURL=usage-reservation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-reservation.js","sourceRoot":"","sources":["../src/usage-reservation.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAsB,EACtB,0BAAkC;IAElC,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,CAAC,EACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9D,CAAC;IACF,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,SAAS,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO;QACL,oBAAoB;QACpB,mBAAmB,EAAE,SAAS,IAAI,0BAA0B;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAsB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC;IACtC,IAAI,KAAc,CAAC;IACnB,QAAQ,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACtC,KAAK,gBAAgB;YACnB,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM;QACR,KAAK,uBAAuB;YAC1B,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,qBAAqB;YACxB,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACnC,MAAM;QACR;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ExecutionMode, MediaReference, ProtocolFamily, TaskEnvelope } from './contracts.js';
2
+ export interface LegacyCapabilityInput {
3
+ protocol: 'openai' | 'anthropic';
4
+ supportsStream: boolean;
5
+ supportsVision: boolean;
6
+ supportsFnCall: boolean;
7
+ }
8
+ export interface LegacyMappedCapability {
9
+ protocolFamily: ProtocolFamily;
10
+ taskKinds: readonly ['chat'];
11
+ inputModalities: readonly ['text'];
12
+ outputModalities: readonly ['text'];
13
+ executionModes: readonly ExecutionMode[];
14
+ features: readonly [];
15
+ supportsVision: boolean;
16
+ supportsFnCall: boolean;
17
+ }
18
+ export declare function validateTaskEnvelope(task: TaskEnvelope): TaskEnvelope;
19
+ export declare function validateMediaReference(reference: MediaReference): MediaReference;
20
+ export declare function assertSafeResolvedAddresses(addresses: readonly string[]): void;
21
+ export declare function mapLegacyCapability(input: LegacyCapabilityInput): LegacyMappedCapability;
22
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EACd,cAAc,EACd,YAAY,EAEb,MAAM,gBAAgB,CAAC;AASxB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7B,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AA8FD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAerE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAmDhF;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAe9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAsBxF"}
@@ -0,0 +1,415 @@
1
+ const TASK_COMPATIBILITY = {
2
+ chat: {
3
+ executionModes: ['sync', 'stream'],
4
+ inputModalities: ['text', 'image', 'audio'],
5
+ outputModalities: ['text'],
6
+ },
7
+ embedding: {
8
+ executionModes: ['sync'],
9
+ inputModalities: ['text'],
10
+ outputModalities: ['vector'],
11
+ },
12
+ image_generation: {
13
+ executionModes: ['sync', 'async'],
14
+ inputModalities: ['text', 'image'],
15
+ outputModalities: ['image'],
16
+ },
17
+ speech_to_text: {
18
+ executionModes: ['sync', 'async'],
19
+ inputModalities: ['audio'],
20
+ outputModalities: ['text'],
21
+ },
22
+ text_to_speech: {
23
+ executionModes: ['sync', 'async'],
24
+ inputModalities: ['text'],
25
+ outputModalities: ['audio'],
26
+ },
27
+ video_generation: {
28
+ executionModes: ['async'],
29
+ inputModalities: ['text', 'image'],
30
+ outputModalities: ['video'],
31
+ },
32
+ batch: {
33
+ executionModes: ['async'],
34
+ inputModalities: ['text', 'image', 'audio', 'video', 'vector'],
35
+ outputModalities: ['text', 'image', 'audio', 'video', 'vector'],
36
+ },
37
+ realtime: {
38
+ executionModes: ['realtime'],
39
+ inputModalities: ['text', 'audio'],
40
+ outputModalities: ['text', 'audio'],
41
+ },
42
+ };
43
+ const METADATA_HOSTS = new Set([
44
+ 'metadata',
45
+ 'metadata.google.internal',
46
+ 'metadata.azure.internal',
47
+ 'instance-data',
48
+ 'instance-data.ec2.internal',
49
+ ]);
50
+ // IANA IPv6 Special-Purpose Address Registry, last updated 2025-10-09.
51
+ // Entries in 2001::/23 are non-global unless a more-specific registration says otherwise.
52
+ const IPV6_WELL_KNOWN_NAT64_PREFIX = ipv6Prefix([0x0064, 0xff9b, 0, 0, 0, 0], 96);
53
+ const IPV6_GLOBALLY_REACHABLE_EXCEPTIONS = [
54
+ ipv6Prefix([0x2001, 0x0001, 0, 0, 0, 0, 0, 0x0001], 128),
55
+ ipv6Prefix([0x2001, 0x0001, 0, 0, 0, 0, 0, 0x0002], 128),
56
+ ipv6Prefix([0x2001, 0x0001, 0, 0, 0, 0, 0, 0x0003], 128),
57
+ ipv6Prefix([0x2001, 0x0003], 32),
58
+ ipv6Prefix([0x2001, 0x0004, 0x0112], 48),
59
+ ipv6Prefix([0x2001, 0x0020], 28),
60
+ ipv6Prefix([0x2001, 0x0030], 28),
61
+ ];
62
+ const IPV6_NON_GLOBAL_SPECIAL_PREFIXES = [
63
+ ipv6Prefix([0x0064, 0xff9b, 0x0001], 48),
64
+ ipv6Prefix([0x0100, 0, 0, 0], 64),
65
+ ipv6Prefix([0x0100, 0, 0, 0x0001], 64),
66
+ ipv6Prefix([0x2001, 0], 23),
67
+ ipv6Prefix([0x2001, 0x0db8], 32),
68
+ ipv6Prefix([0x2002], 16),
69
+ ipv6Prefix([0x3fff, 0], 20),
70
+ ipv6Prefix([0x5f00], 16),
71
+ ipv6Prefix([0xfc00], 7),
72
+ ipv6Prefix([0xfec0], 10),
73
+ ipv6Prefix([0xff00], 8),
74
+ ];
75
+ const IPV6_DEFAULT_GLOBAL_UNICAST_PREFIX = ipv6Prefix([0x2000], 3);
76
+ export function validateTaskEnvelope(task) {
77
+ const compatibility = Object.hasOwn(TASK_COMPATIBILITY, task.taskKind)
78
+ ? TASK_COMPATIBILITY[task.taskKind]
79
+ : undefined;
80
+ if (!compatibility ||
81
+ !compatibility.executionModes.includes(task.executionMode) ||
82
+ !hasOnlyAllowedModalities(task.inputModalities, compatibility.inputModalities) ||
83
+ !hasOnlyAllowedModalities(task.outputModalities, compatibility.outputModalities)) {
84
+ throw new Error('INVALID_MODALITY');
85
+ }
86
+ return task;
87
+ }
88
+ export function validateMediaReference(reference) {
89
+ if (reference.kind !== 'url') {
90
+ return reference;
91
+ }
92
+ if (typeof reference.url !== 'string') {
93
+ unsafeMediaReference('INVALID_URL');
94
+ }
95
+ let parsed;
96
+ try {
97
+ parsed = new URL(reference.url);
98
+ }
99
+ catch {
100
+ unsafeMediaReference('INVALID_URL');
101
+ }
102
+ const rawHostname = rawUrlHostname(reference.url);
103
+ const hostname = normaliseHostname(parsed.hostname);
104
+ if (hostname && rawHostname?.includes(':') && rawHostname.includes('.')) {
105
+ unsafeMediaReference('PRIVATE_ADDRESS');
106
+ }
107
+ if (hostname && (!rawHostname || !hasCanonicalAddressLiteral(rawHostname, hostname))) {
108
+ unsafeMediaReference('INVALID_ADDRESS');
109
+ }
110
+ const hostnameSafety = addressSafetyCode(hostname);
111
+ if (hostnameSafety) {
112
+ unsafeMediaReference(hostnameSafety === 'LOOPBACK_ADDRESS' && parseIpv4(hostname)
113
+ ? 'PRIVATE_ADDRESS'
114
+ : hostnameSafety);
115
+ }
116
+ if (METADATA_HOSTS.has(hostname) || hostname.endsWith('.metadata.google.internal')) {
117
+ unsafeMediaReference('METADATA_HOST');
118
+ }
119
+ if (parsed.protocol !== 'https:') {
120
+ unsafeMediaReference('UNSUPPORTED_SCHEME');
121
+ }
122
+ if (!hostname) {
123
+ unsafeMediaReference('EXTERNAL_HOST_REQUIRED');
124
+ }
125
+ if (parsed.username || parsed.password) {
126
+ unsafeMediaReference('URL_CREDENTIALS');
127
+ }
128
+ return reference;
129
+ }
130
+ export function assertSafeResolvedAddresses(addresses) {
131
+ if (addresses.length === 0) {
132
+ throw new Error('INVALID_ADDRESS');
133
+ }
134
+ for (const address of addresses) {
135
+ const safety = addressSafetyCode(address);
136
+ if (safety) {
137
+ throw new Error(safety);
138
+ }
139
+ if (!isPublicIpAddress(address)) {
140
+ throw new Error('INVALID_ADDRESS');
141
+ }
142
+ }
143
+ }
144
+ export function mapLegacyCapability(input) {
145
+ const protocolFamily = input.protocol === 'openai'
146
+ ? 'openai-chat/v1'
147
+ : input.protocol === 'anthropic'
148
+ ? 'anthropic-messages/v1'
149
+ : undefined;
150
+ if (!protocolFamily) {
151
+ throw new Error('INVALID_LEGACY_PROTOCOL');
152
+ }
153
+ return {
154
+ protocolFamily,
155
+ taskKinds: ['chat'],
156
+ inputModalities: ['text'],
157
+ outputModalities: ['text'],
158
+ executionModes: input.supportsStream ? ['sync', 'stream'] : ['sync'],
159
+ features: [],
160
+ supportsVision: input.supportsVision,
161
+ supportsFnCall: input.supportsFnCall,
162
+ };
163
+ }
164
+ function hasOnlyAllowedModalities(modalities, allowedModalities) {
165
+ return (Array.isArray(modalities) &&
166
+ modalities.length > 0 &&
167
+ modalities.every((modality) => allowedModalities.includes(modality)));
168
+ }
169
+ function unsafeMediaReference(reason) {
170
+ throw new Error(`UNSAFE_MEDIA_REFERENCE: ${reason}`);
171
+ }
172
+ function normaliseHostname(value) {
173
+ const hostname = value.toLowerCase().replace(/\.$/, '');
174
+ return hostname.startsWith('[') && hostname.endsWith(']') ? hostname.slice(1, -1) : hostname;
175
+ }
176
+ function rawUrlHostname(value) {
177
+ const schemeEnd = value.indexOf('://');
178
+ if (schemeEnd < 0) {
179
+ return undefined;
180
+ }
181
+ const authorityStart = schemeEnd + 3;
182
+ const authorityEndOffset = value.slice(authorityStart).search(/[/?#]/);
183
+ const authorityEnd = authorityEndOffset < 0 ? value.length : authorityStart + authorityEndOffset;
184
+ const authority = value.slice(authorityStart, authorityEnd);
185
+ const hostAndPort = authority.slice(authority.lastIndexOf('@') + 1);
186
+ if (hostAndPort.startsWith('[')) {
187
+ const closingBracket = hostAndPort.indexOf(']');
188
+ if (closingBracket < 0 || !/^(:\d+)?$/.test(hostAndPort.slice(closingBracket + 1))) {
189
+ return undefined;
190
+ }
191
+ return hostAndPort.slice(1, closingBracket);
192
+ }
193
+ const portSeparator = hostAndPort.lastIndexOf(':');
194
+ return portSeparator < 0 ? hostAndPort : hostAndPort.slice(0, portSeparator);
195
+ }
196
+ function hasCanonicalAddressLiteral(rawHostname, parsedHostname) {
197
+ const raw = rawHostname.replace(/\.$/, '');
198
+ const parsedIpv4 = parseIpv4(parsedHostname);
199
+ if (parsedIpv4) {
200
+ return raw === parsedHostname;
201
+ }
202
+ if (parsedHostname.includes(':')) {
203
+ const words = parseIpv6(raw);
204
+ return Boolean(words && !raw.includes('.') && formatIpv6(words) === raw);
205
+ }
206
+ return true;
207
+ }
208
+ function addressSafetyCode(address) {
209
+ const ipv4 = parseIpv4(address);
210
+ if (ipv4) {
211
+ return ipv4SafetyCode(ipv4);
212
+ }
213
+ if (address.includes(':')) {
214
+ const ipv6 = parseIpv6(address);
215
+ if (!ipv6) {
216
+ return 'INVALID_ADDRESS';
217
+ }
218
+ return ipv6SafetyCode(ipv6);
219
+ }
220
+ if (address === 'localhost' || address.endsWith('.localhost')) {
221
+ return 'LOOPBACK_ADDRESS';
222
+ }
223
+ return undefined;
224
+ }
225
+ function isPublicIpAddress(address) {
226
+ if (parseIpv4(address)) {
227
+ return true;
228
+ }
229
+ const ipv6 = parseIpv6(address);
230
+ return Boolean(ipv6 && !address.includes('.') && formatIpv6(ipv6) === address);
231
+ }
232
+ function parseIpv4(address) {
233
+ const parts = address.split('.');
234
+ if (parts.length !== 4 || parts.some((part) => !/^(0|[1-9]\d{0,2})$/.test(part))) {
235
+ return undefined;
236
+ }
237
+ const octets = parts.map(Number);
238
+ if (octets.some((octet) => octet > 255)) {
239
+ return undefined;
240
+ }
241
+ return octets;
242
+ }
243
+ function ipv4SafetyCode(octets) {
244
+ const [first, second, third, fourth] = octets;
245
+ if (first === 127) {
246
+ return 'LOOPBACK_ADDRESS';
247
+ }
248
+ if (first === 169 && second === 254) {
249
+ return 'LINK_LOCAL_ADDRESS';
250
+ }
251
+ if (first === 100 && second === 100 && third === 100 && fourth === 200) {
252
+ return 'METADATA_HOST';
253
+ }
254
+ if (first === 0 ||
255
+ first === 10 ||
256
+ (first === 100 && second >= 64 && second <= 127) ||
257
+ (first === 172 && second >= 16 && second <= 31) ||
258
+ (first === 192 && (second === 0 || second === 168)) ||
259
+ // IANA deprecated 6to4 relay anycast block; 192.88.99.2 is explicitly non-global.
260
+ (first === 192 && second === 88 && third === 99) ||
261
+ (first === 198 && (second === 18 || second === 19)) ||
262
+ (first === 198 && second === 51 && third === 100) ||
263
+ (first === 203 && second === 0 && third === 113) ||
264
+ first >= 224) {
265
+ return 'PRIVATE_ADDRESS';
266
+ }
267
+ return undefined;
268
+ }
269
+ function parseIpv6(address) {
270
+ const compressedParts = address.toLowerCase().split('::');
271
+ if (compressedParts.length > 2) {
272
+ return undefined;
273
+ }
274
+ const leftSegment = compressedParts[0];
275
+ if (leftSegment === undefined) {
276
+ return undefined;
277
+ }
278
+ const left = parseIpv6Parts(leftSegment);
279
+ const rightSegment = compressedParts[1];
280
+ const right = compressedParts.length === 2 && rightSegment !== undefined ? parseIpv6Parts(rightSegment) : [];
281
+ if (!left || !right) {
282
+ return undefined;
283
+ }
284
+ const specifiedLength = left.length + right.length;
285
+ if (compressedParts.length === 1) {
286
+ return specifiedLength === 8 ? [...left, ...right] : undefined;
287
+ }
288
+ const omittedLength = 8 - specifiedLength;
289
+ return omittedLength > 0 ? [...left, ...Array(omittedLength).fill(0), ...right] : undefined;
290
+ }
291
+ function parseIpv6Parts(segment) {
292
+ if (!segment) {
293
+ return [];
294
+ }
295
+ const parts = segment.split(':');
296
+ const words = [];
297
+ for (let index = 0; index < parts.length; index += 1) {
298
+ const part = parts[index];
299
+ if (part === undefined) {
300
+ return undefined;
301
+ }
302
+ if (part.includes('.')) {
303
+ if (index !== parts.length - 1) {
304
+ return undefined;
305
+ }
306
+ const ipv4 = parseIpv4(part);
307
+ if (!ipv4) {
308
+ return undefined;
309
+ }
310
+ words.push((ipv4[0] << 8) | ipv4[1], (ipv4[2] << 8) | ipv4[3]);
311
+ continue;
312
+ }
313
+ if (!/^[0-9a-f]{1,4}$/.test(part)) {
314
+ return undefined;
315
+ }
316
+ words.push(Number.parseInt(part, 16));
317
+ }
318
+ return words;
319
+ }
320
+ function ipv6SafetyCode(words) {
321
+ if (words.length !== 8) {
322
+ return 'INVALID_ADDRESS';
323
+ }
324
+ const first = words[0];
325
+ const sixth = words[5];
326
+ const seventh = words[6];
327
+ const eighth = words[7];
328
+ if (first === undefined || sixth === undefined || seventh === undefined || eighth === undefined) {
329
+ return 'INVALID_ADDRESS';
330
+ }
331
+ if (words.slice(0, 7).every((word) => word === 0) && eighth === 1) {
332
+ return 'LOOPBACK_ADDRESS';
333
+ }
334
+ if (words.every((word) => word === 0)) {
335
+ return 'PRIVATE_ADDRESS';
336
+ }
337
+ if ((first & 0xffc0) === 0xfe80) {
338
+ return 'LINK_LOCAL_ADDRESS';
339
+ }
340
+ const isIpv4Compatible = words.slice(0, 6).every((word) => word === 0);
341
+ const isIpv4Mapped = words.slice(0, 5).every((word) => word === 0) && sixth === 0xffff;
342
+ if (isIpv4Compatible || isIpv4Mapped) {
343
+ return 'PRIVATE_ADDRESS';
344
+ }
345
+ if (isInIpv6Prefix(words, IPV6_WELL_KNOWN_NAT64_PREFIX)) {
346
+ return ipv4SafetyCode([
347
+ (seventh >>> 8) & 0xff,
348
+ seventh & 0xff,
349
+ (eighth >>> 8) & 0xff,
350
+ eighth & 0xff,
351
+ ]);
352
+ }
353
+ if (matchesIpv6Prefix(words, IPV6_GLOBALLY_REACHABLE_EXCEPTIONS)) {
354
+ return undefined;
355
+ }
356
+ if (matchesIpv6Prefix(words, IPV6_NON_GLOBAL_SPECIAL_PREFIXES) ||
357
+ !isInIpv6Prefix(words, IPV6_DEFAULT_GLOBAL_UNICAST_PREFIX)) {
358
+ return 'PRIVATE_ADDRESS';
359
+ }
360
+ return undefined;
361
+ }
362
+ function ipv6Prefix(words, prefixLength) {
363
+ return { words, prefixLength };
364
+ }
365
+ function matchesIpv6Prefix(words, prefixes) {
366
+ return prefixes.some((prefix) => isInIpv6Prefix(words, prefix));
367
+ }
368
+ function isInIpv6Prefix(words, prefix) {
369
+ const completeWords = Math.floor(prefix.prefixLength / 16);
370
+ for (let index = 0; index < completeWords; index += 1) {
371
+ if (words[index] !== prefix.words[index])
372
+ return false;
373
+ }
374
+ const partialBits = prefix.prefixLength % 16;
375
+ if (partialBits === 0)
376
+ return true;
377
+ const mask = (0xffff << (16 - partialBits)) & 0xffff;
378
+ return ((words[completeWords] ?? 0) & mask) === ((prefix.words[completeWords] ?? 0) & mask);
379
+ }
380
+ function formatIpv6(words) {
381
+ let bestStart = -1;
382
+ let bestLength = 0;
383
+ for (let start = 0; start < words.length; start += 1) {
384
+ if (words[start] !== 0) {
385
+ continue;
386
+ }
387
+ let end = start;
388
+ while (end < words.length && words[end] === 0) {
389
+ end += 1;
390
+ }
391
+ const length = end - start;
392
+ if (length >= 2 && length > bestLength) {
393
+ bestStart = start;
394
+ bestLength = length;
395
+ }
396
+ start = end - 1;
397
+ }
398
+ const parts = [];
399
+ for (let index = 0; index < words.length; index += 1) {
400
+ if (index === bestStart) {
401
+ parts.push('');
402
+ index += bestLength - 1;
403
+ if (index === words.length - 1) {
404
+ parts.push('');
405
+ }
406
+ continue;
407
+ }
408
+ parts.push((words[index] ?? 0).toString(16));
409
+ }
410
+ if (bestStart === 0) {
411
+ parts.unshift('');
412
+ }
413
+ return parts.join(':');
414
+ }
415
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AA6CA,MAAM,kBAAkB,GAAkD;IACxE,IAAI,EAAE;QACJ,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClC,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QAC3C,gBAAgB,EAAE,CAAC,MAAM,CAAC;KAC3B;IACD,SAAS,EAAE;QACT,cAAc,EAAE,CAAC,MAAM,CAAC;QACxB,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,gBAAgB,EAAE,CAAC,QAAQ,CAAC;KAC7B;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACjC,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC,gBAAgB,EAAE,CAAC,OAAO,CAAC;KAC5B;IACD,cAAc,EAAE;QACd,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACjC,eAAe,EAAE,CAAC,OAAO,CAAC;QAC1B,gBAAgB,EAAE,CAAC,MAAM,CAAC;KAC3B;IACD,cAAc,EAAE;QACd,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACjC,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,gBAAgB,EAAE,CAAC,OAAO,CAAC;KAC5B;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC,gBAAgB,EAAE,CAAC,OAAO,CAAC;KAC5B;IACD,KAAK,EAAE;QACL,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC9D,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;KAChE;IACD,QAAQ,EAAE;QACR,cAAc,EAAE,CAAC,UAAU,CAAC;QAC5B,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KACpC;CACF,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,UAAU;IACV,0BAA0B;IAC1B,yBAAyB;IACzB,eAAe;IACf,4BAA4B;CAC7B,CAAC,CAAC;AAEH,uEAAuE;AACvE,0FAA0F;AAC1F,MAAM,4BAA4B,GAAG,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAElF,MAAM,kCAAkC,GAA0B;IAChE,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACxD,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACxD,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACxD,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAChC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IACxC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAChC,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,gCAAgC,GAA0B;IAC9D,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IACxC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IACjC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IACtC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3B,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAChC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACxB,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3B,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACxB,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACxB,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,kCAAkC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnE,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC;QACpE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,SAAS,CAAC;IAEd,IACE,CAAC,aAAa;QACd,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1D,CAAC,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,eAAe,CAAC;QAC9E,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAChF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAyB;IAC9D,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACtC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,IAAI,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrF,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,cAAc,EAAE,CAAC;QACnB,oBAAoB,CAClB,cAAc,KAAK,kBAAkB,IAAI,SAAS,CAAC,QAAQ,CAAC;YAC1D,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,cAAc,CACnB,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACnF,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,SAA4B;IACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAA4B;IAC9D,MAAM,cAAc,GAClB,KAAK,CAAC,QAAQ,KAAK,QAAQ;QACzB,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW;YAC9B,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,SAAS,CAAC;IAElB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,cAAc;QACd,SAAS,EAAE,CAAC,MAAM,CAAC;QACnB,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpE,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,UAAoC,EACpC,iBAA2C;IAE3C,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACzB,UAAU,CAAC,MAAM,GAAG,CAAC;QACrB,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,GAAG,CAAC,CAAC;IACrC,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,GAAG,kBAAkB,CAAC;IACjG,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpE,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,0BAA0B,CAAC,WAAmB,EAAE,cAAsB;IAC7E,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,cAAc,CAAC;IAChC,CAAC;IAED,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9D,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAA0C,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CACrB,MAAiD;IAEjD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAE9C,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACpC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACvE,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IACE,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,EAAE;QACZ,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,CAAC;QAChD,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;QAC/C,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC;QACnD,kFAAkF;QAClF,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;QAChD,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,CAAC;QACjD,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC;QAChD,KAAK,IAAI,GAAG,EACZ,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,KAAK,GACT,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAG,eAAe,CAAC;IAC1C,OAAO,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC;IACvF,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;QACrC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,4BAA4B,CAAC,EAAE,CAAC;QACxD,OAAO,cAAc,CAAC;YACpB,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI;YACtB,OAAO,GAAG,IAAI;YACd,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI;YACrB,MAAM,GAAG,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,kCAAkC,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IACE,iBAAiB,CAAC,KAAK,EAAE,gCAAgC,CAAC;QAC1D,CAAC,cAAc,CAAC,KAAK,EAAE,kCAAkC,CAAC,EAC1D,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,KAAwB,EAAE,YAAoB;IAChE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB,EAAE,QAA+B;IAClF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB,EAAE,MAAkB;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACzD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;IAC7C,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC;IACrD,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,UAAU,CAAC,KAAwB;IAC1C,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;QAC3B,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC;YACvC,SAAS,GAAG,KAAK,CAAC;YAClB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}