@pellux/goodvibes-sdk 0.25.16 → 0.25.18
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/dist/_internal/contracts/artifacts/operator-contract.json +1 -1
- package/dist/_internal/contracts/generated/foundation-metadata.d.ts +1 -1
- package/dist/_internal/contracts/generated/foundation-metadata.js +1 -1
- package/dist/_internal/contracts/generated/operator-contract.js +1 -1
- package/dist/_internal/platform/cloudflare/manager.d.ts +0 -1
- package/dist/_internal/platform/cloudflare/manager.d.ts.map +1 -1
- package/dist/_internal/platform/cloudflare/manager.js +13 -17
- package/dist/_internal/platform/cloudflare/resources.d.ts +2 -2
- package/dist/_internal/platform/cloudflare/resources.d.ts.map +1 -1
- package/dist/_internal/platform/cloudflare/resources.js +269 -63
- package/dist/_internal/platform/cloudflare/types.d.ts +13 -1
- package/dist/_internal/platform/cloudflare/types.d.ts.map +1 -1
- package/dist/_internal/platform/cloudflare/utils.d.ts +7 -2
- package/dist/_internal/platform/cloudflare/utils.d.ts.map +1 -1
- package/dist/_internal/platform/cloudflare/utils.js +95 -19
- package/dist/_internal/platform/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Synced from packages/contracts/src/generated/foundation-metadata.ts
|
|
2
2
|
export const FOUNDATION_METADATA = {
|
|
3
3
|
"productId": "goodvibes",
|
|
4
|
-
"productVersion": "0.25.
|
|
4
|
+
"productVersion": "0.25.18",
|
|
5
5
|
"operatorMethodCount": 224,
|
|
6
6
|
"operatorEventCount": 30,
|
|
7
7
|
"peerEndpointCount": 6
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/manager.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAIV,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/manager.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAIV,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EAMzB,gCAAgC,EAChC,iCAAiC,EAEjC,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAkBpB,qBAAa,6BAA6B;IAI5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqD;IAClF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,OAAO,EAAE,6BAA6B;IAK7D,cAAc,IAAI,OAAO,CAAC,4BAA4B,CAAC;IA0C7D,iBAAiB,CAAC,KAAK,GAAE,gCAAqC,GAAG,iCAAiC;IAkB5F,sBAAsB,CAAC,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAqEzG,QAAQ,CAAC,KAAK,GAAE,uBAA4B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuEhF,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuB3E,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8S9E,MAAM,CAAC,KAAK,GAAE,qBAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAe1E,OAAO,CAAC,KAAK,GAAE,sBAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA0BnF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;YAYX,eAAe;YAaf,oBAAoB;YAapB,wBAAwB;YAaxB,gBAAgB;YAahB,WAAW;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,yBAAyB;YAQnB,WAAW;IAazB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,SAAS;CAMlB"}
|
|
@@ -6,7 +6,7 @@ import { CLOUDFLARE_API_TOKEN_KEY, CLOUDFLARE_WORKER_CLIENT_TOKEN_KEY, CLOUDFLAR
|
|
|
6
6
|
import { discoverZones, resolveZone, selectDiscoveredZone, tryDiscover, } from './discovery.js';
|
|
7
7
|
import { configureDns, configureWorkerSubdomain, ensureAccess, ensureKvNamespace, ensureQueue, ensureQueueConsumer, ensureR2Bucket, ensureSecretsStore, ensureTunnel, findDurableObjectNamespace, uploadWorker, } from './resources.js';
|
|
8
8
|
import { CloudflareControlPlaneError } from './types.js';
|
|
9
|
-
import {
|
|
9
|
+
import { buildTokenPolicies, buildTokenRequirements, clean, collectAsync, collectSingleAccount, hostnameFromUrl, requireKvNamespaceId, requireQueueId, resolveComponents, resolvePermissionGroups, safeResponseText, stripTrailingSlash, verifyCreatedTokenPolicies, } from './utils.js';
|
|
10
10
|
export class CloudflareControlPlaneManager {
|
|
11
11
|
options;
|
|
12
12
|
createClient;
|
|
@@ -105,20 +105,16 @@ export class CloudflareControlPlaneManager {
|
|
|
105
105
|
required: components.dns,
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
const
|
|
109
|
-
const
|
|
108
|
+
const tokenApi = this.requireUserTokens(client);
|
|
109
|
+
const permissionGroups = await resolvePermissionGroups(requirements, (params) => tokenApi.permissionGroups.list(params));
|
|
110
|
+
const policies = buildTokenPolicies(accountId, zone?.id, permissionGroups);
|
|
110
111
|
const tokenName = clean(input.tokenName) || 'GoodVibes Cloudflare Operational';
|
|
111
|
-
const token = await
|
|
112
|
+
const token = await tokenApi.create({
|
|
112
113
|
name: tokenName,
|
|
113
|
-
policies
|
|
114
|
-
{
|
|
115
|
-
effect: 'allow',
|
|
116
|
-
permission_groups: permissionIds.map((id) => ({ id })),
|
|
117
|
-
resources,
|
|
118
|
-
},
|
|
119
|
-
],
|
|
114
|
+
policies,
|
|
120
115
|
...(clean(input.expiresOn) ? { expires_on: clean(input.expiresOn) } : {}),
|
|
121
116
|
});
|
|
117
|
+
await verifyCreatedTokenPolicies(token, permissionGroups, tokenApi.get ? (tokenId) => tokenApi.get(tokenId) : undefined);
|
|
122
118
|
if (!token.value) {
|
|
123
119
|
throw new CloudflareControlPlaneError('Cloudflare did not return a token value for the newly-created operational token.', 'CLOUDFLARE_TOKEN_VALUE_MISSING', 502);
|
|
124
120
|
}
|
|
@@ -289,9 +285,13 @@ export class CloudflareControlPlaneManager {
|
|
|
289
285
|
deadLetterQueueId = requireQueueId(deadLetterQueue, deadLetterQueueName);
|
|
290
286
|
queueId = requireQueueId(queue, queueName);
|
|
291
287
|
}
|
|
292
|
-
const
|
|
288
|
+
const kvName = clean(input.kvNamespaceName) || config.kvNamespaceName || DEFAULT_KV_NAMESPACE_NAME;
|
|
289
|
+
const kvId = clean(input.kvNamespaceId) || config.kvNamespaceId;
|
|
290
|
+
const kv = components.kv ? await ensureKvNamespace(resourceContext, client, accountId, kvName, kvId, persist, steps) : undefined;
|
|
293
291
|
const r2 = components.r2 ? await ensureR2Bucket(resourceContext, client, accountId, clean(input.r2BucketName) || config.r2BucketName || DEFAULT_R2_BUCKET_NAME, persist, steps) : undefined;
|
|
294
|
-
const
|
|
292
|
+
const secretsStoreName = clean(input.secretsStoreName) || config.secretsStoreName || DEFAULT_SECRETS_STORE_NAME;
|
|
293
|
+
const secretsStoreId = clean(input.secretsStoreId) || config.secretsStoreId;
|
|
294
|
+
const secretsStore = components.secretsStore ? await ensureSecretsStore(resourceContext, client, accountId, secretsStoreName, secretsStoreId, persist, steps) : undefined;
|
|
295
295
|
const tunnel = components.zeroTrustTunnel
|
|
296
296
|
? await ensureTunnel(resourceContext, client, {
|
|
297
297
|
accountId,
|
|
@@ -634,10 +634,6 @@ export class CloudflareControlPlaneManager {
|
|
|
634
634
|
}
|
|
635
635
|
return client.user.tokens;
|
|
636
636
|
}
|
|
637
|
-
async resolvePermissionGroupIds(client, requirements) {
|
|
638
|
-
const tokenApi = this.requireUserTokens(client);
|
|
639
|
-
return await resolvePermissionGroupIds(requirements, (params) => tokenApi.permissionGroups.list(params));
|
|
640
|
-
}
|
|
641
637
|
createProvisioningContext() {
|
|
642
638
|
return {
|
|
643
639
|
readConfig: () => this.readConfig(),
|
|
@@ -6,9 +6,9 @@ export interface CloudflareProvisioningContext {
|
|
|
6
6
|
readonly storeSecret: (key: string, value: string) => Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
export declare function ensureQueue(client: CloudflareApiClient, accountId: string, queueName: string, steps: CloudflareProvisionStep[], stepName: string): Promise<CloudflareQueueLike>;
|
|
9
|
-
export declare function ensureKvNamespace(context: CloudflareProvisioningContext, client: CloudflareApiClient, accountId: string, namespaceName: string, persist: boolean, steps: CloudflareProvisionStep[]): Promise<CloudflareKvNamespaceLike>;
|
|
9
|
+
export declare function ensureKvNamespace(context: CloudflareProvisioningContext, client: CloudflareApiClient, accountId: string, namespaceName: string, configuredNamespaceId: string, persist: boolean, steps: CloudflareProvisionStep[]): Promise<CloudflareKvNamespaceLike>;
|
|
10
10
|
export declare function ensureR2Bucket(context: CloudflareProvisioningContext, client: CloudflareApiClient, accountId: string, bucketName: string, persist: boolean, steps: CloudflareProvisionStep[]): Promise<CloudflareR2BucketLike>;
|
|
11
|
-
export declare function ensureSecretsStore(context: CloudflareProvisioningContext, client: CloudflareApiClient, accountId: string, storeName: string, persist: boolean, steps: CloudflareProvisionStep[]): Promise<CloudflareSecretsStoreLike>;
|
|
11
|
+
export declare function ensureSecretsStore(context: CloudflareProvisioningContext, client: CloudflareApiClient, accountId: string, storeName: string, configuredStoreId: string, persist: boolean, steps: CloudflareProvisionStep[]): Promise<CloudflareSecretsStoreLike>;
|
|
12
12
|
export declare function ensureTunnel(context: CloudflareProvisioningContext, client: CloudflareApiClient, input: {
|
|
13
13
|
readonly accountId: string;
|
|
14
14
|
readonly tunnelName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,KAAK,EAGV,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAE1B,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,4BAA4B,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/E,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,uBAAuB,EAAE,EAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,68 +4,114 @@ import { CloudflareControlPlaneError } from './types.js';
|
|
|
4
4
|
import { clean, collectAsync, hostnameFromUrl } from './utils.js';
|
|
5
5
|
import { GOODVIBES_CLOUDFLARE_WORKER_MODULE } from './worker-source.js';
|
|
6
6
|
export async function ensureQueue(client, accountId, queueName, steps, stepName) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const existing = await findQueueByName(client, accountId, queueName);
|
|
8
|
+
if (existing) {
|
|
9
|
+
steps.push({ name: stepName, status: 'ok', message: `Using existing Cloudflare Queue ${queueName}.`, resourceId: existing.queue_id });
|
|
10
|
+
return existing;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const created = await client.queues.create({ account_id: accountId, queue_name: queueName });
|
|
14
|
+
steps.push({ name: stepName, status: 'ok', message: `Created Cloudflare Queue ${queueName}.`, resourceId: created.queue_id });
|
|
15
|
+
return created;
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
const recovered = await findQueueByName(client, accountId, queueName);
|
|
19
|
+
if (recovered) {
|
|
20
|
+
steps.push({ name: stepName, status: 'ok', message: `Using existing Cloudflare Queue ${queueName} after create retry: ${summarizeError(error)}`, resourceId: recovered.queue_id });
|
|
21
|
+
return recovered;
|
|
11
22
|
}
|
|
23
|
+
throw error;
|
|
12
24
|
}
|
|
13
|
-
const created = await client.queues.create({ account_id: accountId, queue_name: queueName });
|
|
14
|
-
steps.push({ name: stepName, status: 'ok', message: `Created Cloudflare Queue ${queueName}.`, resourceId: created.queue_id });
|
|
15
|
-
return created;
|
|
16
25
|
}
|
|
17
|
-
export async function ensureKvNamespace(context, client, accountId, namespaceName, persist, steps) {
|
|
26
|
+
export async function ensureKvNamespace(context, client, accountId, namespaceName, configuredNamespaceId, persist, steps) {
|
|
18
27
|
if (!client.kv) {
|
|
19
28
|
throw new CloudflareControlPlaneError('The Cloudflare client does not expose KV namespace APIs.', 'CLOUDFLARE_KV_API_UNAVAILABLE', 500);
|
|
20
29
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
const existing = await findKvNamespace(client, accountId, namespaceName, configuredNamespaceId);
|
|
31
|
+
if (existing) {
|
|
32
|
+
persistKvNamespace(context, existing, namespaceName, persist);
|
|
33
|
+
steps.push({ name: 'kv-namespace', status: 'ok', message: `Using existing KV namespace ${namespaceName}.`, resourceId: existing.id });
|
|
34
|
+
return existing;
|
|
35
|
+
}
|
|
36
|
+
if (configuredNamespaceId) {
|
|
37
|
+
const configured = { id: configuredNamespaceId, title: namespaceName };
|
|
38
|
+
persistKvNamespace(context, configured, namespaceName, persist);
|
|
39
|
+
steps.push({ name: 'kv-namespace', status: 'ok', message: `Using configured KV namespace ${namespaceName}.`, resourceId: configuredNamespaceId });
|
|
40
|
+
return configured;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const created = await client.kv.namespaces.create({ account_id: accountId, title: namespaceName });
|
|
44
|
+
persistKvNamespace(context, created, namespaceName, persist);
|
|
45
|
+
steps.push({ name: 'kv-namespace', status: 'ok', message: `Created KV namespace ${namespaceName}.`, resourceId: created.id });
|
|
46
|
+
return created;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
const recovered = await findKvNamespace(client, accountId, namespaceName, configuredNamespaceId);
|
|
50
|
+
if (recovered) {
|
|
51
|
+
persistKvNamespace(context, recovered, namespaceName, persist);
|
|
52
|
+
steps.push({ name: 'kv-namespace', status: 'ok', message: `Using existing KV namespace ${namespaceName} after create retry: ${summarizeError(error)}`, resourceId: recovered.id });
|
|
53
|
+
return recovered;
|
|
28
54
|
}
|
|
55
|
+
throw error;
|
|
29
56
|
}
|
|
30
|
-
const created = await client.kv.namespaces.create({ account_id: accountId, title: namespaceName });
|
|
31
|
-
context.setConfig('cloudflare.kvNamespaceName', namespaceName, persist);
|
|
32
|
-
if (created.id)
|
|
33
|
-
context.setConfig('cloudflare.kvNamespaceId', created.id, persist);
|
|
34
|
-
steps.push({ name: 'kv-namespace', status: 'ok', message: `Created KV namespace ${namespaceName}.`, resourceId: created.id });
|
|
35
|
-
return created;
|
|
36
57
|
}
|
|
37
58
|
export async function ensureR2Bucket(context, client, accountId, bucketName, persist, steps) {
|
|
38
59
|
if (!client.r2) {
|
|
39
60
|
throw new CloudflareControlPlaneError('The Cloudflare client does not expose R2 bucket APIs.', 'CLOUDFLARE_R2_API_UNAVAILABLE', 500);
|
|
40
61
|
}
|
|
41
|
-
const existing =
|
|
62
|
+
const existing = await findR2BucketByName(client, accountId, bucketName);
|
|
42
63
|
if (existing) {
|
|
43
64
|
context.setConfig('cloudflare.r2BucketName', bucketName, persist);
|
|
44
65
|
steps.push({ name: 'r2-bucket', status: 'ok', message: `Using existing R2 Standard bucket ${bucketName}.`, resourceId: bucketName });
|
|
45
66
|
return existing;
|
|
46
67
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
68
|
+
try {
|
|
69
|
+
const created = await client.r2.buckets.create({ account_id: accountId, name: bucketName, storageClass: 'Standard' });
|
|
70
|
+
context.setConfig('cloudflare.r2BucketName', bucketName, persist);
|
|
71
|
+
steps.push({ name: 'r2-bucket', status: 'ok', message: `Created R2 Standard bucket ${bucketName}.`, resourceId: bucketName });
|
|
72
|
+
return created.name ? created : { ...created, name: bucketName, storage_class: 'Standard' };
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
const recovered = await findR2BucketByName(client, accountId, bucketName);
|
|
76
|
+
if (recovered) {
|
|
77
|
+
context.setConfig('cloudflare.r2BucketName', bucketName, persist);
|
|
78
|
+
steps.push({ name: 'r2-bucket', status: 'ok', message: `Using existing R2 bucket ${bucketName} after create retry: ${summarizeError(error)}`, resourceId: bucketName });
|
|
79
|
+
return recovered;
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
51
83
|
}
|
|
52
|
-
export async function ensureSecretsStore(context, client, accountId, storeName, persist, steps) {
|
|
84
|
+
export async function ensureSecretsStore(context, client, accountId, storeName, configuredStoreId, persist, steps) {
|
|
53
85
|
if (!client.secretsStore) {
|
|
54
86
|
throw new CloudflareControlPlaneError('The Cloudflare client does not expose Secrets Store APIs.', 'CLOUDFLARE_SECRETS_STORE_API_UNAVAILABLE', 500);
|
|
55
87
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
88
|
+
const existing = await findSecretsStore(client, accountId, storeName, configuredStoreId);
|
|
89
|
+
if (existing) {
|
|
90
|
+
persistSecretsStore(context, existing, persist);
|
|
91
|
+
steps.push({ name: 'secrets-store', status: 'ok', message: `Using existing Cloudflare Secrets Store ${existing.name}.`, resourceId: existing.id });
|
|
92
|
+
return existing;
|
|
93
|
+
}
|
|
94
|
+
if (configuredStoreId) {
|
|
95
|
+
const configured = { id: configuredStoreId, name: storeName };
|
|
96
|
+
persistSecretsStore(context, configured, persist);
|
|
97
|
+
steps.push({ name: 'secrets-store', status: 'warning', message: `Using configured Cloudflare Secrets Store id ${configuredStoreId}; it was not visible during discovery.`, resourceId: configuredStoreId });
|
|
98
|
+
return configured;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
for await (const created of client.secretsStore.stores.create({ account_id: accountId, body: [{ name: storeName }] })) {
|
|
102
|
+
persistSecretsStore(context, created, persist);
|
|
103
|
+
steps.push({ name: 'secrets-store', status: 'ok', message: `Created Cloudflare Secrets Store ${storeName}.`, resourceId: created.id });
|
|
104
|
+
return created;
|
|
62
105
|
}
|
|
63
106
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
107
|
+
catch (error) {
|
|
108
|
+
const recovered = await findRecoverableSecretsStore(client, accountId, storeName, configuredStoreId, error);
|
|
109
|
+
if (recovered) {
|
|
110
|
+
persistSecretsStore(context, recovered, persist);
|
|
111
|
+
steps.push({ name: 'secrets-store', status: recovered.name === storeName ? 'ok' : 'warning', message: `Using existing Cloudflare Secrets Store ${recovered.name} after create retry: ${summarizeError(error)}`, resourceId: recovered.id });
|
|
112
|
+
return recovered;
|
|
113
|
+
}
|
|
114
|
+
throw error;
|
|
69
115
|
}
|
|
70
116
|
throw new CloudflareControlPlaneError(`Cloudflare Secrets Store '${storeName}' did not return a created store.`, 'CLOUDFLARE_SECRETS_STORE_CREATE_FAILED', 502);
|
|
71
117
|
}
|
|
@@ -86,8 +132,16 @@ export async function ensureTunnel(context, client, input) {
|
|
|
86
132
|
}
|
|
87
133
|
}
|
|
88
134
|
if (!tunnel) {
|
|
89
|
-
|
|
90
|
-
|
|
135
|
+
try {
|
|
136
|
+
tunnel = await api.create({ account_id: input.accountId, name: input.tunnelName, config_src: 'cloudflare' });
|
|
137
|
+
input.steps.push({ name: 'zero-trust-tunnel', status: 'ok', message: `Created Zero Trust Tunnel ${input.tunnelName}.`, resourceId: tunnel.id });
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
tunnel = await findTunnelByName(client, input.accountId, input.tunnelName);
|
|
141
|
+
if (!tunnel)
|
|
142
|
+
throw error;
|
|
143
|
+
input.steps.push({ name: 'zero-trust-tunnel', status: 'ok', message: `Using existing Zero Trust Tunnel ${input.tunnelName} after create retry: ${summarizeError(error)}`, resourceId: tunnel.id });
|
|
144
|
+
}
|
|
91
145
|
}
|
|
92
146
|
else {
|
|
93
147
|
input.steps.push({ name: 'zero-trust-tunnel', status: 'ok', message: `Using existing Zero Trust Tunnel ${input.tunnelName}.`, resourceId: tunnel.id });
|
|
@@ -135,8 +189,16 @@ export async function ensureAccess(context, client, input) {
|
|
|
135
189
|
}
|
|
136
190
|
}
|
|
137
191
|
if (!serviceToken) {
|
|
138
|
-
|
|
139
|
-
|
|
192
|
+
try {
|
|
193
|
+
serviceToken = await api.serviceTokens.create({ account_id: input.accountId, name: 'GoodVibes Daemon', duration: '8760h' });
|
|
194
|
+
input.steps.push({ name: 'zero-trust-access-service-token', status: 'ok', message: 'Created Zero Trust Access service token.', resourceId: serviceToken.id });
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
serviceToken = await findAccessServiceTokenByName(api, input.accountId, 'GoodVibes Daemon');
|
|
198
|
+
if (!serviceToken)
|
|
199
|
+
throw error;
|
|
200
|
+
input.steps.push({ name: 'zero-trust-access-service-token', status: 'ok', message: `Using existing Zero Trust Access service token after create retry: ${summarizeError(error)}`, resourceId: serviceToken.id });
|
|
201
|
+
}
|
|
140
202
|
}
|
|
141
203
|
else {
|
|
142
204
|
input.steps.push({ name: 'zero-trust-access-service-token', status: 'ok', message: 'Using existing Zero Trust Access service token.', resourceId: serviceToken.id });
|
|
@@ -190,9 +252,20 @@ export async function ensureAccess(context, client, input) {
|
|
|
190
252
|
},
|
|
191
253
|
],
|
|
192
254
|
};
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
255
|
+
if (app?.id) {
|
|
256
|
+
app = await api.applications.update(app.id, accessAppParams);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
try {
|
|
260
|
+
app = await api.applications.create(accessAppParams);
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
const recovered = await findAccessApplicationByDomain(api, input.accountId, input.daemonHostname);
|
|
264
|
+
if (!recovered?.id)
|
|
265
|
+
throw error;
|
|
266
|
+
app = await api.applications.update(recovered.id, accessAppParams);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
196
269
|
if (app.id)
|
|
197
270
|
context.setConfig('cloudflare.accessAppId', app.id, input.persist);
|
|
198
271
|
input.steps.push({ name: 'zero-trust-access-app', status: 'ok', message: `Configured Zero Trust Access application for ${input.daemonHostname}.`, resourceId: app.id });
|
|
@@ -292,12 +365,30 @@ export async function configureWorkerSubdomain(context, client, input) {
|
|
|
292
365
|
});
|
|
293
366
|
}
|
|
294
367
|
}
|
|
295
|
-
|
|
296
|
-
account_id: input.accountId
|
|
297
|
-
enabled
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
368
|
+
try {
|
|
369
|
+
const existing = await client.workers.scripts.subdomain.get(input.workerName, { account_id: input.accountId });
|
|
370
|
+
if (existing.enabled) {
|
|
371
|
+
input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Using existing workers.dev route for ${input.workerName}.` });
|
|
372
|
+
return accountSubdomain;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
// Older accounts may not return script-level subdomain state before it is enabled.
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
await client.workers.scripts.subdomain.create(input.workerName, {
|
|
380
|
+
account_id: input.accountId,
|
|
381
|
+
enabled: true,
|
|
382
|
+
previews_enabled: false,
|
|
383
|
+
});
|
|
384
|
+
input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Enabled workers.dev route for ${input.workerName}.` });
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
const recovered = await client.workers.scripts.subdomain.get(input.workerName, { account_id: input.accountId });
|
|
388
|
+
if (!recovered.enabled)
|
|
389
|
+
throw error;
|
|
390
|
+
input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Using existing workers.dev route for ${input.workerName} after enable retry: ${summarizeError(error)}` });
|
|
391
|
+
}
|
|
301
392
|
return accountSubdomain;
|
|
302
393
|
}
|
|
303
394
|
export async function ensureQueueConsumer(client, input) {
|
|
@@ -320,15 +411,31 @@ export async function ensureQueueConsumer(client, input) {
|
|
|
320
411
|
return updated;
|
|
321
412
|
}
|
|
322
413
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
414
|
+
try {
|
|
415
|
+
const created = await client.queues.consumers.create(input.queueId, {
|
|
416
|
+
account_id: input.accountId,
|
|
417
|
+
type: 'worker',
|
|
418
|
+
script_name: input.workerName,
|
|
419
|
+
dead_letter_queue: input.deadLetterQueueName,
|
|
420
|
+
settings,
|
|
421
|
+
});
|
|
422
|
+
input.steps.push({ name: 'queue-consumer', status: 'ok', message: `Created Queue consumer for ${input.workerName}.`, resourceId: created.consumer_id });
|
|
423
|
+
return created;
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
const recovered = await findQueueConsumer(client, input.accountId, input.queueId, input.workerName);
|
|
427
|
+
if (!recovered?.consumer_id)
|
|
428
|
+
throw error;
|
|
429
|
+
const updated = await client.queues.consumers.update(input.queueId, recovered.consumer_id, {
|
|
430
|
+
account_id: input.accountId,
|
|
431
|
+
type: 'worker',
|
|
432
|
+
script_name: input.workerName,
|
|
433
|
+
dead_letter_queue: input.deadLetterQueueName,
|
|
434
|
+
settings,
|
|
435
|
+
});
|
|
436
|
+
input.steps.push({ name: 'queue-consumer', status: 'ok', message: `Updated existing Queue consumer for ${input.workerName} after create retry: ${summarizeError(error)}`, resourceId: updated.consumer_id });
|
|
437
|
+
return updated;
|
|
438
|
+
}
|
|
332
439
|
}
|
|
333
440
|
async function ensureCnameRecord(client, zoneId, hostname, target, steps, stepName) {
|
|
334
441
|
const existing = await collectAsync(client.dns.records.list({ zone_id: zoneId, type: 'CNAME', name: { exact: hostname } }));
|
|
@@ -347,7 +454,106 @@ async function ensureCnameRecord(client, zoneId, hostname, target, steps, stepNa
|
|
|
347
454
|
steps.push({ name: stepName, status: 'ok', message: `Updated CNAME ${hostname} -> ${target}.`, resourceId: updated.id });
|
|
348
455
|
return updated;
|
|
349
456
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
457
|
+
try {
|
|
458
|
+
const created = await client.dns.records.create(params);
|
|
459
|
+
steps.push({ name: stepName, status: 'ok', message: `Created CNAME ${hostname} -> ${target}.`, resourceId: created.id });
|
|
460
|
+
return created;
|
|
461
|
+
}
|
|
462
|
+
catch (error) {
|
|
463
|
+
const recovered = await findCnameRecord(client, zoneId, hostname);
|
|
464
|
+
if (!recovered?.id)
|
|
465
|
+
throw error;
|
|
466
|
+
const updated = await client.dns.records.update(recovered.id, params);
|
|
467
|
+
steps.push({ name: stepName, status: 'ok', message: `Updated existing CNAME ${hostname} -> ${target} after create retry: ${summarizeError(error)}`, resourceId: updated.id });
|
|
468
|
+
return updated;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
async function findQueueByName(client, accountId, queueName) {
|
|
472
|
+
for await (const queue of client.queues.list({ account_id: accountId })) {
|
|
473
|
+
if (queue.queue_name === queueName)
|
|
474
|
+
return queue;
|
|
475
|
+
}
|
|
476
|
+
return undefined;
|
|
477
|
+
}
|
|
478
|
+
async function findKvNamespace(client, accountId, namespaceName, namespaceId) {
|
|
479
|
+
for await (const namespace of client.kv.namespaces.list({ account_id: accountId })) {
|
|
480
|
+
if (namespace.title === namespaceName || (namespaceId && namespace.id === namespaceId))
|
|
481
|
+
return namespace;
|
|
482
|
+
}
|
|
483
|
+
return undefined;
|
|
484
|
+
}
|
|
485
|
+
function persistKvNamespace(context, namespace, namespaceName, persist) {
|
|
486
|
+
context.setConfig('cloudflare.kvNamespaceName', namespace.title ?? namespaceName, persist);
|
|
487
|
+
if (namespace.id)
|
|
488
|
+
context.setConfig('cloudflare.kvNamespaceId', namespace.id, persist);
|
|
489
|
+
}
|
|
490
|
+
async function findR2BucketByName(client, accountId, bucketName) {
|
|
491
|
+
const listed = (await client.r2.buckets.list({ account_id: accountId })).buckets?.find((bucket) => bucket.name === bucketName);
|
|
492
|
+
if (listed)
|
|
493
|
+
return listed;
|
|
494
|
+
if (!client.r2.buckets.get)
|
|
495
|
+
return undefined;
|
|
496
|
+
try {
|
|
497
|
+
const bucket = await client.r2.buckets.get(bucketName, { account_id: accountId });
|
|
498
|
+
return bucket.name ? bucket : { ...bucket, name: bucketName };
|
|
499
|
+
}
|
|
500
|
+
catch {
|
|
501
|
+
return undefined;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
async function findSecretsStore(client, accountId, storeName, storeId) {
|
|
505
|
+
for await (const store of client.secretsStore.stores.list({ account_id: accountId })) {
|
|
506
|
+
if (store.name === storeName || (storeId && store.id === storeId))
|
|
507
|
+
return store;
|
|
508
|
+
}
|
|
509
|
+
return undefined;
|
|
510
|
+
}
|
|
511
|
+
async function findRecoverableSecretsStore(client, accountId, storeName, storeId, error) {
|
|
512
|
+
const stores = await collectAsync(client.secretsStore.stores.list({ account_id: accountId }));
|
|
513
|
+
const exact = stores.find((store) => store.name === storeName || (storeId && store.id === storeId));
|
|
514
|
+
if (exact)
|
|
515
|
+
return exact;
|
|
516
|
+
if (isMaximumStoresExceeded(error) && stores.length === 1)
|
|
517
|
+
return stores[0];
|
|
518
|
+
return undefined;
|
|
519
|
+
}
|
|
520
|
+
function persistSecretsStore(context, store, persist) {
|
|
521
|
+
context.setConfig('cloudflare.secretsStoreName', store.name, persist);
|
|
522
|
+
context.setConfig('cloudflare.secretsStoreId', store.id, persist);
|
|
523
|
+
}
|
|
524
|
+
function isMaximumStoresExceeded(error) {
|
|
525
|
+
return summarizeError(error).toLowerCase().includes('maximum_stores_exceeded');
|
|
526
|
+
}
|
|
527
|
+
async function findTunnelByName(client, accountId, tunnelName) {
|
|
528
|
+
const api = client.zeroTrust.tunnels.cloudflared;
|
|
529
|
+
for await (const tunnel of api.list({ account_id: accountId, name: tunnelName, is_deleted: false })) {
|
|
530
|
+
if (tunnel.name === tunnelName)
|
|
531
|
+
return tunnel;
|
|
532
|
+
}
|
|
533
|
+
return undefined;
|
|
534
|
+
}
|
|
535
|
+
async function findAccessServiceTokenByName(api, accountId, name) {
|
|
536
|
+
for await (const token of api.serviceTokens.list({ account_id: accountId, name })) {
|
|
537
|
+
if (token.name === name)
|
|
538
|
+
return token;
|
|
539
|
+
}
|
|
540
|
+
return undefined;
|
|
541
|
+
}
|
|
542
|
+
async function findAccessApplicationByDomain(api, accountId, domain) {
|
|
543
|
+
for await (const app of api.applications.list({ account_id: accountId, domain, exact: true })) {
|
|
544
|
+
if (app.domain === domain)
|
|
545
|
+
return app;
|
|
546
|
+
}
|
|
547
|
+
return undefined;
|
|
548
|
+
}
|
|
549
|
+
async function findQueueConsumer(client, accountId, queueId, workerName) {
|
|
550
|
+
for await (const consumer of client.queues.consumers.list(queueId, { account_id: accountId })) {
|
|
551
|
+
if (consumer.type === 'worker' && consumer.script === workerName)
|
|
552
|
+
return consumer;
|
|
553
|
+
}
|
|
554
|
+
return undefined;
|
|
555
|
+
}
|
|
556
|
+
async function findCnameRecord(client, zoneId, hostname) {
|
|
557
|
+
const existing = await collectAsync(client.dns.records.list({ zone_id: zoneId, type: 'CNAME', name: { exact: hostname } }));
|
|
558
|
+
return existing.find((record) => record.name === hostname && record.type === 'CNAME');
|
|
353
559
|
}
|
|
@@ -192,10 +192,16 @@ export interface CloudflareTokenRequirementsInput {
|
|
|
192
192
|
export interface CloudflareTokenPermissionRequirement {
|
|
193
193
|
readonly component: CloudflareComponent | 'bootstrap';
|
|
194
194
|
readonly scope: 'account' | 'zone' | 'user';
|
|
195
|
+
readonly scopeAlternatives?: readonly string[];
|
|
195
196
|
readonly permission: string;
|
|
196
197
|
readonly alternatives?: readonly string[];
|
|
197
198
|
readonly reason: string;
|
|
198
199
|
}
|
|
200
|
+
export interface CloudflareResolvedPermissionGroup {
|
|
201
|
+
readonly id: string;
|
|
202
|
+
readonly requirement: CloudflareTokenPermissionRequirement;
|
|
203
|
+
readonly cloudflareScope: string;
|
|
204
|
+
}
|
|
199
205
|
export interface CloudflareTokenRequirementsResult {
|
|
200
206
|
readonly ok: true;
|
|
201
207
|
readonly components: Readonly<Record<CloudflareComponent, boolean>>;
|
|
@@ -356,16 +362,18 @@ export interface CloudflarePermissionGroupLike {
|
|
|
356
362
|
readonly name?: string;
|
|
357
363
|
readonly scopes?: readonly string[];
|
|
358
364
|
}
|
|
365
|
+
export type CloudflareTokenResourceMap = Record<string, string | Record<string, string>>;
|
|
359
366
|
export interface CloudflareTokenPolicyParam {
|
|
360
367
|
readonly effect: 'allow' | 'deny';
|
|
361
368
|
readonly permission_groups: readonly {
|
|
362
369
|
readonly id: string;
|
|
363
370
|
}[];
|
|
364
|
-
readonly resources:
|
|
371
|
+
readonly resources: CloudflareTokenResourceMap;
|
|
365
372
|
}
|
|
366
373
|
export interface CloudflareTokenCreateResponseLike {
|
|
367
374
|
readonly id?: string;
|
|
368
375
|
readonly name?: string;
|
|
376
|
+
readonly policies?: readonly CloudflareTokenPolicyParam[];
|
|
369
377
|
readonly value?: string;
|
|
370
378
|
}
|
|
371
379
|
export interface CloudflareTokenVerifyResponseLike {
|
|
@@ -385,6 +393,9 @@ export interface CloudflareApiClient {
|
|
|
385
393
|
readonly policies: readonly CloudflareTokenPolicyParam[];
|
|
386
394
|
readonly expires_on?: string;
|
|
387
395
|
}): Promise<CloudflareTokenCreateResponseLike>;
|
|
396
|
+
get?(tokenId: string, params: {
|
|
397
|
+
readonly account_id: string;
|
|
398
|
+
}): Promise<CloudflareTokenCreateResponseLike>;
|
|
388
399
|
verify(params: {
|
|
389
400
|
readonly account_id: string;
|
|
390
401
|
}): Promise<CloudflareTokenVerifyResponseLike>;
|
|
@@ -409,6 +420,7 @@ export interface CloudflareApiClient {
|
|
|
409
420
|
readonly policies: readonly CloudflareTokenPolicyParam[];
|
|
410
421
|
readonly expires_on?: string;
|
|
411
422
|
}): Promise<CloudflareTokenCreateResponseLike>;
|
|
423
|
+
get?(tokenId: string): Promise<CloudflareTokenCreateResponseLike>;
|
|
412
424
|
verify(): Promise<CloudflareTokenVerifyResponseLike>;
|
|
413
425
|
readonly permissionGroups: {
|
|
414
426
|
list(params?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,6BAA6B,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,QAAQ,GACR,iBAAiB,GACjB,iBAAiB,GACjB,KAAK,GACL,IAAI,GACJ,gBAAgB,GAChB,cAAc,GACd,IAAI,CAAC;AAET,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;QACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;QACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;QACtC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;QACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;CAC9C;AAED,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,qBAAqB,CAAC;CACjE;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;KACtD,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE;QACZ,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE;QACZ,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;QAC7C,QAAQ,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;KAClD,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,WAAW,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,oCAAoC,CAAC;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,WAAW,EAAE,SAAS,oCAAoC,EAAE,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;QACzC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;QACjC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1C,CAAC;CACH;AAED,MAAM,WAAW,+BAAgC,SAAQ,gCAAgC;IACvF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,oCAAoC,EAAE,CAAC;CACvE;AAED,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC7D,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,oCAAoC,EAAE,CAAC;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,+BAA+B,EAAE,CAAC;IACzE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACpD;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,YAAY,GAAG,KAAK,GAAG,kBAAkB,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAEjI,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;CAC1D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;CAChD;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE;QACjB,IAAI,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE;YAChB,MAAM,CAAC,MAAM,EAAE;gBACb,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAC;gBACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;aAC9B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAC/C,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAC3G,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAC5F,QAAQ,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,GAAG,aAAa,CAAC,6BAA6B,CAAC,CAAC;gBAC7I,GAAG,CAAC,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,GAAG,OAAO,CAAC,SAAS,6BAA6B,EAAE,CAAC,CAAC;aACnJ,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,MAAM,EAAE;gBACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAC;gBACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;aAC9B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAC/C,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAClE,MAAM,IAAI,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACrD,QAAQ,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,GAAG,aAAa,CAAC,6BAA6B,CAAC,CAAC;aAClH,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAClJ,GAAG,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACxE,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,MAAM,EAAE;gBACb,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;gBAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;aAC3B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,CACJ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;gBACN,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;gBAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;aAC3B,GACA,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE;gBACX,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,GAAG,MAAM,CAAC;aACtD,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAC;SAC5C,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACf,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC3G,IAAI,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAClF,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC5F,QAAQ,CAAC,SAAS,EAAE;YAClB,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;gBACN,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;oBAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;oBACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;iBAC/B,CAAC;aACH,GACA,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACnC,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;gBACN,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;oBAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;oBACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;iBAC/B,CAAC;aACH,GACA,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;SACvG,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE;QACZ,QAAQ,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAC5G,IAAI,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,aAAa,CAAC,yBAAyB,CAAC,CAAC;SACzF,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,aAAa,CAAC,oCAAoC,CAAC,CAAC;SACpG,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE;QACZ,QAAQ,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;gBAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAA;aAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC3N,IAAI,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC;gBAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;aAAE,CAAC,CAAC;YACjH,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;SACpG,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,IAAI,EAAE,SAAS;oBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;iBAAE,EAAE,CAAA;aAAE,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;YAChJ,IAAI,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;SAC1F,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,OAAO,CAAC,EAAE;YACjB,QAAQ,CAAC,WAAW,EAAE;gBACpB,MAAM,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;iBAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACpJ,IAAI,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;iBAAE,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBAC1I,QAAQ,CAAC,cAAc,EAAE;oBACvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;wBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;wBAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;qBAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;iBAC/I,CAAC;gBACF,QAAQ,CAAC,KAAK,EAAE;oBACd,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;wBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;qBAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;iBACjF,CAAC;aACH,CAAC;SACH,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,EAAE;YAChB,QAAQ,CAAC,aAAa,EAAE;gBACtB,MAAM,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;iBAAE,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;gBAC1K,IAAI,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;iBAAE,GAAG,aAAa,CAAC,gCAAgC,CAAC,CAAC;aAC9K,CAAC;YACF,QAAQ,CAAC,YAAY,EAAE;gBACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;gBAClF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;gBACjG,IAAI,CAAC,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;iBAAE,GAAG,aAAa,CAAC,+BAA+B,CAAC,CAAC;aACvM,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE;YACnB,GAAG,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC;gBAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YACtF,MAAM,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC;gBAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SACtH,CAAC;QACF,QAAQ,CAAC,OAAO,EAAE;YAChB,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;gBACN,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;aACjC,GACA,OAAO,CAAC;gBAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YACrC,QAAQ,CAAC,SAAS,EAAE;gBAClB,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;oBAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;iBAAE,GACtG,OAAO,CAAC;oBAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;iBAAE,CAAC,CAAC;gBAC1C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;iBAAE,GAAG,OAAO,CAAC;oBAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;iBAAE,CAAC,CAAC;gBAC5G,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;iBAAE,GAAG,OAAO,CAAC;oBAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;iBAAE,CAAC,CAAC;aAC1G,CAAC;YACF,QAAQ,CAAC,SAAS,EAAE;gBAClB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,SAAS;wBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;qBAAE,EAAE,CAAA;iBAAE,GAAG,OAAO,CAAC;oBAAE,QAAQ,CAAC,SAAS,EAAE,SAAS;wBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;qBAAE,EAAE,CAAA;iBAAE,CAAC,CAAC;gBAChM,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;iBAAE,GAAG,OAAO,CAAC;oBAAE,QAAQ,CAAC,SAAS,EAAE,SAAS;wBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;qBAAE,EAAE,CAAA;iBAAE,CAAC,CAAC;aACzI,CAAC;YACF,QAAQ,CAAC,OAAO,EAAE;gBAChB,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;oBAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;iBAAE,GAClH,OAAO,CAAC;oBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;iBAAE,CAAC,CAAC;aACrE,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,eAAe,CAAC,GAAG,IAAI,CAAC;IACvF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CACpC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAM;CAMxD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CloudflareAccountLike, CloudflareApiClient, CloudflareComponent, CloudflareComponentSelection, CloudflareKvNamespaceLike, CloudflarePermissionGroupLike, CloudflareQueueLike, CloudflareTokenPermissionRequirement } from './types.js';
|
|
1
|
+
import type { CloudflareAccountLike, CloudflareApiClient, CloudflareComponent, CloudflareComponentSelection, CloudflareKvNamespaceLike, CloudflarePermissionGroupLike, CloudflareQueueLike, CloudflareResolvedPermissionGroup, CloudflareTokenPermissionRequirement, CloudflareTokenPolicyParam, CloudflareTokenCreateResponseLike } from './types.js';
|
|
2
2
|
export declare function resolveComponents(selection: CloudflareComponentSelection | undefined): Readonly<Record<CloudflareComponent, boolean>>;
|
|
3
3
|
export declare function buildTokenRequirements(components: Readonly<Record<CloudflareComponent, boolean>>, includeBootstrap: boolean): readonly CloudflareTokenPermissionRequirement[];
|
|
4
4
|
export declare function selectPermissionGroups(requirements: readonly CloudflareTokenPermissionRequirement[], groups: readonly CloudflarePermissionGroupLike[]): readonly string[];
|
|
@@ -6,7 +6,12 @@ export declare function resolvePermissionGroupIds(requirements: readonly Cloudfl
|
|
|
6
6
|
readonly name?: string;
|
|
7
7
|
readonly scope?: string;
|
|
8
8
|
}) => AsyncIterable<CloudflarePermissionGroupLike>): Promise<readonly string[]>;
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function resolvePermissionGroups(requirements: readonly CloudflareTokenPermissionRequirement[], listPermissionGroups: (params?: {
|
|
10
|
+
readonly name?: string;
|
|
11
|
+
readonly scope?: string;
|
|
12
|
+
}) => AsyncIterable<CloudflarePermissionGroupLike>): Promise<readonly CloudflareResolvedPermissionGroup[]>;
|
|
13
|
+
export declare function buildTokenPolicies(accountId: string, zoneId: string | undefined, groups: readonly CloudflareResolvedPermissionGroup[]): readonly CloudflareTokenPolicyParam[];
|
|
14
|
+
export declare function verifyCreatedTokenPolicies(token: CloudflareTokenCreateResponseLike, expectedGroups: readonly CloudflareResolvedPermissionGroup[], loadToken?: (tokenId: string) => Promise<CloudflareTokenCreateResponseLike>): Promise<void>;
|
|
10
15
|
export declare function collectSingleAccount(client: CloudflareApiClient, accountId: string, warnings: string[]): Promise<readonly CloudflareAccountLike[]>;
|
|
11
16
|
export declare function collectAsync<T>(iterable: AsyncIterable<T>, limit?: number): Promise<readonly T[]>;
|
|
12
17
|
export declare function clean(value: string | undefined): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,oCAAoC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,iCAAiC,EACjC,oCAAoC,EACpC,0BAA0B,EAE1B,iCAAiC,EAClC,MAAM,YAAY,CAAC;AAGpB,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,4BAA4B,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAKrI;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAC1D,gBAAgB,EAAE,OAAO,GACxB,SAAS,oCAAoC,EAAE,CAkHjD;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,SAAS,oCAAoC,EAAE,EAC7D,MAAM,EAAE,SAAS,6BAA6B,EAAE,GAC/C,SAAS,MAAM,EAAE,CAmBnB;AAED,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,SAAS,oCAAoC,EAAE,EAC7D,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,aAAa,CAAC,6BAA6B,CAAC,GACnI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAE5B;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,SAAS,oCAAoC,EAAE,EAC7D,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,aAAa,CAAC,6BAA6B,CAAC,GACnI,OAAO,CAAC,SAAS,iCAAiC,EAAE,CAAC,CA4DvD;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,SAAS,iCAAiC,EAAE,GACnD,SAAS,0BAA0B,EAAE,CAmBvC;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,iCAAiC,EACxC,cAAc,EAAE,SAAS,iCAAiC,EAAE,EAC5D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iCAAiC,CAAC,GAC1E,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAW3C;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAOpG;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,yBAAyB,GAAG,MAAM,CAGjF;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1E"}
|
|
@@ -106,6 +106,7 @@ export function buildTokenRequirements(components, includeBootstrap) {
|
|
|
106
106
|
requirements.push({
|
|
107
107
|
component: 'r2',
|
|
108
108
|
scope: 'account',
|
|
109
|
+
scopeAlternatives: ['com.cloudflare.edge.r2.bucket'],
|
|
109
110
|
permission: 'Workers R2 Storage Write',
|
|
110
111
|
alternatives: ['R2 Storage Write', 'Workers R2 Storage Edit'],
|
|
111
112
|
reason: 'Create and bind a Standard R2 bucket for optional GoodVibes artifacts.',
|
|
@@ -131,7 +132,10 @@ export function selectPermissionGroups(requirements, groups) {
|
|
|
131
132
|
return Array.from(new Set(ids));
|
|
132
133
|
}
|
|
133
134
|
export async function resolvePermissionGroupIds(requirements, listPermissionGroups) {
|
|
134
|
-
|
|
135
|
+
return (await resolvePermissionGroups(requirements, listPermissionGroups)).map((entry) => entry.id);
|
|
136
|
+
}
|
|
137
|
+
export async function resolvePermissionGroups(requirements, listPermissionGroups) {
|
|
138
|
+
const resolved = [];
|
|
135
139
|
const missing = [];
|
|
136
140
|
let scannedGroups = null;
|
|
137
141
|
let lastError;
|
|
@@ -142,15 +146,19 @@ export async function resolvePermissionGroupIds(requirements, listPermissionGrou
|
|
|
142
146
|
return scannedGroups;
|
|
143
147
|
};
|
|
144
148
|
for (const requirement of requirements) {
|
|
145
|
-
const
|
|
149
|
+
const scopes = cloudflareScopesForRequirement(requirement);
|
|
146
150
|
const names = permissionNameCandidates(requirement);
|
|
147
151
|
let group;
|
|
148
152
|
for (const name of names) {
|
|
153
|
+
if (group)
|
|
154
|
+
break;
|
|
149
155
|
try {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
156
|
+
for (const scope of scopes) {
|
|
157
|
+
const exactMatches = await collectAsync(listPermissionGroups({ name, scope }), 50);
|
|
158
|
+
group = findPermissionGroup(requirement, exactMatches);
|
|
159
|
+
if (group)
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
154
162
|
}
|
|
155
163
|
catch (error) {
|
|
156
164
|
lastError = error;
|
|
@@ -166,7 +174,11 @@ export async function resolvePermissionGroupIds(requirements, listPermissionGrou
|
|
|
166
174
|
}
|
|
167
175
|
}
|
|
168
176
|
if (group?.id) {
|
|
169
|
-
|
|
177
|
+
resolved.push({
|
|
178
|
+
id: group.id,
|
|
179
|
+
requirement,
|
|
180
|
+
cloudflareScope: cloudflareScopeForResolvedGroup(requirement, group),
|
|
181
|
+
});
|
|
170
182
|
}
|
|
171
183
|
else {
|
|
172
184
|
missing.push(`${requirement.permission} (${requirement.component})`);
|
|
@@ -176,16 +188,44 @@ export async function resolvePermissionGroupIds(requirements, listPermissionGrou
|
|
|
176
188
|
const suffix = lastError ? ` Last Cloudflare permission-group error: ${summarizeError(lastError)}` : '';
|
|
177
189
|
throw new CloudflareControlPlaneError(`Could not resolve Cloudflare permission groups for: ${missing.join(', ')}.${suffix} Use /api/cloudflare/token/requirements to show the exact required token shape and create the operational token manually if this Cloudflare account uses different permission names.`, 'CLOUDFLARE_PERMISSION_GROUPS_MISSING', 400);
|
|
178
190
|
}
|
|
179
|
-
return
|
|
191
|
+
return uniqueResolvedPermissionGroups(resolved);
|
|
180
192
|
}
|
|
181
|
-
export function
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
193
|
+
export function buildTokenPolicies(accountId, zoneId, groups) {
|
|
194
|
+
const byScope = new Map();
|
|
195
|
+
for (const group of groups) {
|
|
196
|
+
const ids = byScope.get(group.cloudflareScope) ?? [];
|
|
197
|
+
ids.push(group.id);
|
|
198
|
+
byScope.set(group.cloudflareScope, ids);
|
|
199
|
+
}
|
|
200
|
+
const policies = [];
|
|
201
|
+
addTokenPolicy(policies, byScope.get('com.cloudflare.api.account'), accountTokenResources(accountId));
|
|
202
|
+
addTokenPolicy(policies, byScope.get('com.cloudflare.api.account.zone'), zoneTokenResources(accountId, zoneId));
|
|
203
|
+
addTokenPolicy(policies, byScope.get('com.cloudflare.edge.r2.bucket'), { 'com.cloudflare.edge.r2.bucket.*': '*' });
|
|
204
|
+
if ((byScope.get('com.cloudflare.api.user')?.length ?? 0) > 0) {
|
|
205
|
+
throw new CloudflareControlPlaneError('Operational Cloudflare tokens cannot include user-scoped permissions. Create the bootstrap token separately from the Cloudflare dashboard.', 'CLOUDFLARE_USER_POLICY_UNSUPPORTED', 400);
|
|
206
|
+
}
|
|
207
|
+
return policies;
|
|
208
|
+
}
|
|
209
|
+
export async function verifyCreatedTokenPolicies(token, expectedGroups, loadToken) {
|
|
210
|
+
const expectedIds = new Set(expectedGroups.map((group) => group.id));
|
|
211
|
+
let policies = token.policies;
|
|
212
|
+
if ((!policies || policies.length === 0) && token.id && loadToken) {
|
|
213
|
+
policies = (await loadToken(token.id)).policies;
|
|
214
|
+
}
|
|
215
|
+
if (!policies)
|
|
216
|
+
return;
|
|
217
|
+
const actualIds = new Set();
|
|
218
|
+
for (const policy of policies) {
|
|
219
|
+
for (const group of policy.permission_groups ?? []) {
|
|
220
|
+
if (group.id)
|
|
221
|
+
actualIds.add(group.id);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const missing = [...expectedIds].filter((id) => !actualIds.has(id));
|
|
225
|
+
if (actualIds.size === 0 || missing.length > 0) {
|
|
226
|
+
throw new CloudflareControlPlaneError(`Cloudflare created the operational token but did not persist the expected permission policy. Missing permission group ids: ${missing.join(', ') || 'all'}. ` +
|
|
227
|
+
'Delete the unusable token in Cloudflare and retry with this SDK version.', 'CLOUDFLARE_TOKEN_POLICY_MISMATCH', 502);
|
|
187
228
|
}
|
|
188
|
-
return resources;
|
|
189
229
|
}
|
|
190
230
|
export async function collectSingleAccount(client, accountId, warnings) {
|
|
191
231
|
if (!accountId) {
|
|
@@ -255,16 +295,34 @@ function uniqueRequirements(requirements) {
|
|
|
255
295
|
}
|
|
256
296
|
return unique;
|
|
257
297
|
}
|
|
298
|
+
function uniqueResolvedPermissionGroups(groups) {
|
|
299
|
+
const seen = new Set();
|
|
300
|
+
const unique = [];
|
|
301
|
+
for (const group of groups) {
|
|
302
|
+
if (seen.has(group.id))
|
|
303
|
+
continue;
|
|
304
|
+
seen.add(group.id);
|
|
305
|
+
unique.push(group);
|
|
306
|
+
}
|
|
307
|
+
return unique;
|
|
308
|
+
}
|
|
258
309
|
function findPermissionGroup(requirement, groups) {
|
|
259
310
|
const names = permissionNameCandidates(requirement).map(normalizePermissionName);
|
|
260
|
-
const
|
|
311
|
+
const scopes = cloudflareScopesForRequirement(requirement);
|
|
261
312
|
return groups.find((entry) => entry.id &&
|
|
262
313
|
entry.name &&
|
|
263
314
|
names.includes(normalizePermissionName(entry.name)) &&
|
|
264
|
-
matchesPermissionScope(entry,
|
|
315
|
+
matchesPermissionScope(entry, scopes));
|
|
316
|
+
}
|
|
317
|
+
function matchesPermissionScope(group, scopes) {
|
|
318
|
+
return !group.scopes || group.scopes.length === 0 || group.scopes.some((scope) => scopes.includes(scope));
|
|
319
|
+
}
|
|
320
|
+
function cloudflareScopeForResolvedGroup(requirement, group) {
|
|
321
|
+
const scopes = cloudflareScopesForRequirement(requirement);
|
|
322
|
+
return group.scopes?.find((scope) => scopes.includes(scope)) ?? scopes[0];
|
|
265
323
|
}
|
|
266
|
-
function
|
|
267
|
-
return
|
|
324
|
+
function cloudflareScopesForRequirement(requirement) {
|
|
325
|
+
return [cloudflareScopeForRequirement(requirement), ...(requirement.scopeAlternatives ?? [])];
|
|
268
326
|
}
|
|
269
327
|
function cloudflareScopeForRequirement(requirement) {
|
|
270
328
|
switch (requirement.scope) {
|
|
@@ -290,3 +348,21 @@ function permissionNameCandidates(requirement) {
|
|
|
290
348
|
}
|
|
291
349
|
return Array.from(names);
|
|
292
350
|
}
|
|
351
|
+
function accountTokenResources(accountId) {
|
|
352
|
+
return { [`com.cloudflare.api.account.${accountId}`]: '*' };
|
|
353
|
+
}
|
|
354
|
+
function zoneTokenResources(accountId, zoneId) {
|
|
355
|
+
return zoneId
|
|
356
|
+
? { [`com.cloudflare.api.account.zone.${zoneId}`]: '*' }
|
|
357
|
+
: { [`com.cloudflare.api.account.${accountId}`]: { 'com.cloudflare.api.account.zone.*': '*' } };
|
|
358
|
+
}
|
|
359
|
+
function addTokenPolicy(policies, ids, resources) {
|
|
360
|
+
const uniqueIds = Array.from(new Set(ids ?? []));
|
|
361
|
+
if (uniqueIds.length === 0)
|
|
362
|
+
return;
|
|
363
|
+
policies.push({
|
|
364
|
+
effect: 'allow',
|
|
365
|
+
permission_groups: uniqueIds.map((id) => ({ id })),
|
|
366
|
+
resources,
|
|
367
|
+
});
|
|
368
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.25.
|
|
3
|
+
let version = '0.25.18';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|