@wix/create-headless-site 0.0.44 → 0.0.46

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/package.json CHANGED
@@ -1,56 +1,21 @@
1
1
  {
2
2
  "name": "@wix/create-headless-site",
3
- "description": "Headless site creation wizard",
4
- "version": "0.0.44",
3
+ "description": "Deprecated: Use @wix/create-new headless instead",
4
+ "version": "0.0.46",
5
5
  "bin": "bin/index.cjs",
6
+ "deprecated": "This package is deprecated. Please use 'yarn create @wix/new headless' instead.",
6
7
  "devDependencies": {
7
- "@commander-js/extra-typings": "^13.0.0",
8
8
  "@types/react": "^18.3.3",
9
- "@types/semver": "^7.5.8",
10
- "@types/validate-npm-package-name": "^4.0.2",
11
- "@wix/ambassador-funnel-projects-v1-project": "^1.0.16",
12
- "@wix/backend-as-a-service-client": "0.0.0",
13
- "@wix/bi-logger-dev-tools-data": "^1.127.0",
14
- "@wix/cli-astro-definitions": "0.0.0",
15
- "@wix/cli-auth": "0.0.0",
16
- "@wix/cli-core-definitions": "0.0.0",
17
- "@wix/cli-error": "0.0.0",
18
- "@wix/cli-error-reporting": "0.0.0",
19
- "@wix/cli-fs": "0.0.0",
20
- "@wix/cli-http-client": "0.0.0",
21
- "@wix/cli-http-client-react": "0.0.0",
22
- "@wix/cli-panorama": "0.0.0",
23
- "@wix/cli-project-extender": "0.0.0",
24
- "@wix/cli-telemetry": "0.0.0",
25
- "@wix/cli-telemetry-react": "0.0.0",
26
- "@wix/cli-test-overrides": "0.0.0",
27
9
  "@wix/cli-ui-kit": "0.0.0",
28
- "@wix/create-app-definitions": "0.0.0",
29
- "@wix/dev-center-client": "0.0.0",
30
- "@wix/gena": "0.0.0",
31
- "@wix/metasite-manager-client": "0.0.0",
32
- "@wix/package-manager": "0.0.0",
33
10
  "@wix/tsup-configs": "0.0.0",
34
- "commander": "^13.0.0",
35
- "execa": "^8.0.1",
36
- "globby": "^14.1.0",
37
- "is-git-url": "^1.0.0",
38
- "p-retry": "^6.2.1",
39
- "package-json": "^10.0.1",
40
- "react": "^18.3.1",
41
- "semver": "^7.6.3",
42
- "tempy": "^3.1.0",
43
- "validate-npm-package-name": "^5.0.1",
44
- "variant": "^3.0.0-dev.27",
45
- "zod": "^3.24.2"
11
+ "react": "^18.3.1"
46
12
  },
47
13
  "engines": {
48
14
  "node": ">= 20.11.0"
49
15
  },
50
16
  "files": [
51
17
  "bin",
52
- "build",
53
- "templates"
18
+ "build"
54
19
  ],
55
20
  "publishConfig": {
56
21
  "registry": "https://registry.npmjs.org/",
@@ -58,9 +23,6 @@
58
23
  },
59
24
  "scripts": {
60
25
  "build": "run -T tsup",
61
- "build:watch": "run -T build:watch --filter='@wix/create-headless-site'",
62
- "dev:npm": "npx $INIT_CWD",
63
- "dev:yarn": "yarn create @wix/create-headless-site@portal:$INIT_CWD",
64
26
  "test": ":",
65
27
  "typecheck": "run -T tsc --noEmit"
66
28
  },
@@ -76,5 +38,5 @@
76
38
  ]
77
39
  }
78
40
  },
79
- "falconPackageHash": "7eda18805c20a9556b00bbc409c0d45a42474c25da2d18a0f5b6d838"
41
+ "falconPackageHash": "22f914216adba9a4c5b2debd5e318eab62c328e68f0262a5e9daf568"
80
42
  }
@@ -1,182 +0,0 @@
1
- import { createRequire as _createRequire } from 'node:module';
2
- const require = _createRequire(import.meta.url);
3
- import {
4
- esm_exports,
5
- esm_exports2,
6
- init_esm,
7
- init_esm2
8
- } from "./chunk-Z4MHKCET.js";
9
- import {
10
- __commonJS,
11
- __require,
12
- __toCommonJS,
13
- init_esm_shims
14
- } from "./chunk-4EFJZ3GQ.js";
15
-
16
- // ../../node_modules/opentelemetry-instrumentation-fetch-node/build/index.js
17
- var require_build = __commonJS({
18
- "../../node_modules/opentelemetry-instrumentation-fetch-node/build/index.js"(exports) {
19
- init_esm_shims();
20
- var __importDefault = exports && exports.__importDefault || function(mod) {
21
- return mod && mod.__esModule ? mod : { "default": mod };
22
- };
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.FetchInstrumentation = void 0;
25
- var node_diagnostics_channel_1 = __importDefault(__require("node:diagnostics_channel"));
26
- var semantic_conventions_1 = (init_esm2(), __toCommonJS(esm_exports2));
27
- var api_1 = (init_esm(), __toCommonJS(esm_exports));
28
- function getMessage(error) {
29
- if (error instanceof AggregateError) {
30
- return error.errors.map((e) => e.message).join(", ");
31
- }
32
- return error.message;
33
- }
34
- function contentLengthFromResponseHeaders(headers) {
35
- const name = "content-length";
36
- for (let i = 0; i < headers.length; i += 2) {
37
- const k = headers[i];
38
- if (k.length === name.length && k.toString().toLowerCase() === name) {
39
- const v = Number(headers[i + 1]);
40
- if (!Number.isNaN(Number(v))) {
41
- return v;
42
- }
43
- return void 0;
44
- }
45
- }
46
- return void 0;
47
- }
48
- async function loadFetch() {
49
- try {
50
- await fetch("");
51
- } catch (_) {
52
- }
53
- }
54
- var FetchInstrumentation = class {
55
- // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for
56
- // unsubscribing.
57
- channelSubs;
58
- spanFromReq = /* @__PURE__ */ new WeakMap();
59
- tracer;
60
- config;
61
- meter;
62
- instrumentationName = "opentelemetry-instrumentation-node-18-fetch";
63
- instrumentationVersion = "1.0.0";
64
- instrumentationDescription = "Instrumentation for Node 18 fetch via diagnostics_channel";
65
- subscribeToChannel(diagnosticChannel, onMessage) {
66
- const channel = node_diagnostics_channel_1.default.channel(diagnosticChannel);
67
- channel.subscribe(onMessage);
68
- this.channelSubs.push({
69
- name: diagnosticChannel,
70
- channel,
71
- onMessage
72
- });
73
- }
74
- constructor(config) {
75
- loadFetch();
76
- this.channelSubs = [];
77
- this.meter = api_1.metrics.getMeter(this.instrumentationName, this.instrumentationVersion);
78
- this.tracer = api_1.trace.getTracer(this.instrumentationName, this.instrumentationVersion);
79
- this.config = { ...config };
80
- }
81
- disable() {
82
- this.channelSubs?.forEach((sub) => sub.channel.unsubscribe(sub.onMessage));
83
- }
84
- enable() {
85
- this.subscribeToChannel("undici:request:create", (args) => this.onRequest(args));
86
- this.subscribeToChannel("undici:request:headers", (args) => this.onHeaders(args));
87
- this.subscribeToChannel("undici:request:trailers", (args) => this.onDone(args));
88
- this.subscribeToChannel("undici:request:error", (args) => this.onError(args));
89
- }
90
- setTracerProvider(tracerProvider) {
91
- this.tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);
92
- }
93
- setMeterProvider(meterProvider) {
94
- this.meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);
95
- }
96
- setConfig(config) {
97
- this.config = { ...config };
98
- }
99
- getConfig() {
100
- return this.config;
101
- }
102
- onRequest({ request }) {
103
- if (request.method === "CONNECT") {
104
- return;
105
- }
106
- if (this.config.ignoreRequestHook && this.config.ignoreRequestHook(request) === true) {
107
- return;
108
- }
109
- const span = this.tracer.startSpan(`HTTP ${request.method}`, {
110
- kind: api_1.SpanKind.CLIENT,
111
- attributes: {
112
- [semantic_conventions_1.SemanticAttributes.HTTP_URL]: getAbsoluteUrl(request.origin, request.path),
113
- [semantic_conventions_1.SemanticAttributes.HTTP_METHOD]: request.method,
114
- [semantic_conventions_1.SemanticAttributes.HTTP_TARGET]: request.path,
115
- "http.client": "fetch"
116
- }
117
- });
118
- const requestContext = api_1.trace.setSpan(api_1.context.active(), span);
119
- const addedHeaders = {};
120
- api_1.propagation.inject(requestContext, addedHeaders);
121
- if (this.config.onRequest) {
122
- this.config.onRequest({ request, span, additionalHeaders: addedHeaders });
123
- }
124
- if (Array.isArray(request.headers)) {
125
- request.headers.push(...Object.entries(addedHeaders).flat());
126
- } else {
127
- request.headers += Object.entries(addedHeaders).map(([k, v]) => `${k}: ${v}\r
128
- `).join("");
129
- }
130
- this.spanFromReq.set(request, span);
131
- }
132
- onHeaders({ request, response }) {
133
- const span = this.spanFromReq.get(request);
134
- if (span !== void 0) {
135
- const cLen = contentLengthFromResponseHeaders(response.headers);
136
- const attrs = {
137
- [semantic_conventions_1.SemanticAttributes.HTTP_STATUS_CODE]: response.statusCode
138
- };
139
- if (cLen) {
140
- attrs[semantic_conventions_1.SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH] = cLen;
141
- }
142
- span.setAttributes(attrs);
143
- span.setStatus({
144
- code: response.statusCode >= 400 ? api_1.SpanStatusCode.ERROR : api_1.SpanStatusCode.OK,
145
- message: String(response.statusCode)
146
- });
147
- }
148
- }
149
- onDone({ request }) {
150
- const span = this.spanFromReq.get(request);
151
- if (span !== void 0) {
152
- span.end();
153
- this.spanFromReq.delete(request);
154
- }
155
- }
156
- onError({ request, error }) {
157
- const span = this.spanFromReq.get(request);
158
- if (span !== void 0) {
159
- span.recordException(error);
160
- span.setStatus({
161
- code: api_1.SpanStatusCode.ERROR,
162
- message: getMessage(error)
163
- });
164
- span.end();
165
- }
166
- }
167
- };
168
- exports.FetchInstrumentation = FetchInstrumentation;
169
- function getAbsoluteUrl(origin, path = "/") {
170
- const url = `${origin}`;
171
- if (origin.endsWith("/") && path.startsWith("/")) {
172
- return `${url}${path.slice(1)}`;
173
- }
174
- if (!origin.endsWith("/") && !path.startsWith("/")) {
175
- return `${url}/${path.slice(1)}`;
176
- }
177
- return `${url}${path}`;
178
- }
179
- }
180
- });
181
- export default require_build();
182
- //# sourceMappingURL=build-6IMWAXMA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/opentelemetry-instrumentation-fetch-node/src/index.ts"],"sourcesContent":["/*\n * Portions from https://github.com/elastic/apm-agent-nodejs\n * Copyright Elasticsearch B.V. and other contributors where applicable.\n * Licensed under the BSD 2-Clause License; you may not use this file except in\n * compliance with the BSD 2-Clause License.\n *\n */\nimport diagch from 'node:diagnostics_channel';\n\nimport { SemanticAttributes } from '@opentelemetry/semantic-conventions';\nimport { Instrumentation, InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport {\n Attributes,\n context,\n Meter,\n MeterProvider,\n metrics,\n propagation,\n Span,\n SpanKind,\n SpanStatusCode,\n trace,\n Tracer,\n TracerProvider,\n} from '@opentelemetry/api';\n\ninterface ListenerRecord {\n name: string;\n channel: diagch.Channel;\n onMessage: diagch.ChannelListener;\n}\n\ninterface FetchRequest {\n method: string;\n origin: string;\n path: string;\n headers: string | string[];\n}\n\ninterface FetchResponse {\n headers: Buffer[];\n statusCode: number;\n}\n\nexport interface FetchInstrumentationConfig extends InstrumentationConfig {\n ignoreRequestHook?: (request: FetchRequest) => boolean;\n onRequest?: (args: {\n request: FetchRequest;\n span: Span;\n additionalHeaders: Record<string, string | string[]>;\n }) => void;\n}\n\nfunction getMessage(error: Error) {\n if (error instanceof AggregateError) {\n return error.errors.map((e) => e.message).join(', ');\n }\n return error.message;\n}\n\n// Get the content-length from undici response headers.\n// `headers` is an Array of buffers: [k, v, k, v, ...].\n// If the header is not present, or has an invalid value, this returns null.\nfunction contentLengthFromResponseHeaders(headers: Buffer[]) {\n const name = 'content-length';\n for (let i = 0; i < headers.length; i += 2) {\n const k = headers[i];\n if (k.length === name.length && k.toString().toLowerCase() === name) {\n const v = Number(headers[i + 1]);\n if (!Number.isNaN(Number(v))) {\n return v;\n }\n return undefined;\n }\n }\n return undefined;\n}\n\nasync function loadFetch() {\n try {\n await fetch('');\n } catch (_) {\n //\n }\n}\n\n// A combination of https://github.com/elastic/apm-agent-nodejs and\n// https://github.com/gadget-inc/opentelemetry-instrumentations/blob/main/packages/opentelemetry-instrumentation-undici/src/index.ts\nexport class FetchInstrumentation implements Instrumentation {\n // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for\n // unsubscribing.\n private channelSubs: Array<ListenerRecord> | undefined;\n\n private spanFromReq = new WeakMap<FetchRequest, Span>();\n\n private tracer: Tracer;\n\n private config: FetchInstrumentationConfig;\n\n private meter: Meter;\n\n public readonly instrumentationName = 'opentelemetry-instrumentation-node-18-fetch';\n\n public readonly instrumentationVersion = '1.0.0';\n\n public readonly instrumentationDescription =\n 'Instrumentation for Node 18 fetch via diagnostics_channel';\n\n private subscribeToChannel(diagnosticChannel: string, onMessage: diagch.ChannelListener) {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n this.channelSubs!.push({\n name: diagnosticChannel,\n channel,\n onMessage,\n });\n }\n\n constructor(config: FetchInstrumentationConfig) {\n // Force load fetch API (since it's lazy loaded in Node 18)\n loadFetch();\n this.channelSubs = [];\n this.meter = metrics.getMeter(this.instrumentationName, this.instrumentationVersion);\n this.tracer = trace.getTracer(this.instrumentationName, this.instrumentationVersion);\n this.config = { ...config };\n }\n\n disable(): void {\n this.channelSubs?.forEach((sub) => sub.channel.unsubscribe(sub.onMessage));\n }\n\n enable(): void {\n this.subscribeToChannel('undici:request:create', (args) =>\n this.onRequest(args as { request: FetchRequest }),\n );\n this.subscribeToChannel('undici:request:headers', (args) =>\n this.onHeaders(args as { request: FetchRequest; response: FetchResponse }),\n );\n this.subscribeToChannel('undici:request:trailers', (args) =>\n this.onDone(args as { request: FetchRequest }),\n );\n this.subscribeToChannel('undici:request:error', (args) =>\n this.onError(args as { request: FetchRequest; error: Error }),\n );\n }\n\n setTracerProvider(tracerProvider: TracerProvider): void {\n this.tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n }\n\n public setMeterProvider(meterProvider: MeterProvider): void {\n this.meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n }\n\n setConfig(config: InstrumentationConfig): void {\n this.config = { ...config };\n }\n\n getConfig(): InstrumentationConfig {\n return this.config;\n }\n\n onRequest({ request }: { request: FetchRequest }): void {\n // Don't instrument CONNECT - see comments at:\n // https://github.com/elastic/apm-agent-nodejs/blob/c55b1d8c32b2574362fc24d81b8e173ce2f75257/lib/instrumentation/modules/undici.js#L24\n if (request.method === 'CONNECT') {\n return;\n }\n if (this.config.ignoreRequestHook && this.config.ignoreRequestHook(request) === true) {\n return;\n }\n\n const span = this.tracer.startSpan(`HTTP ${request.method}`, {\n kind: SpanKind.CLIENT,\n attributes: {\n [SemanticAttributes.HTTP_URL]: getAbsoluteUrl(request.origin, request.path),\n [SemanticAttributes.HTTP_METHOD]: request.method,\n [SemanticAttributes.HTTP_TARGET]: request.path,\n 'http.client': 'fetch',\n },\n });\n const requestContext = trace.setSpan(context.active(), span);\n const addedHeaders: Record<string, string> = {};\n propagation.inject(requestContext, addedHeaders);\n\n if (this.config.onRequest) {\n this.config.onRequest({ request, span, additionalHeaders: addedHeaders });\n }\n\n if (Array.isArray(request.headers)) {\n request.headers.push(...Object.entries(addedHeaders).flat());\n } else {\n request.headers += Object.entries(addedHeaders)\n .map(([k, v]) => `${k}: ${v}\\r\\n`)\n .join('');\n }\n this.spanFromReq.set(request, span);\n }\n\n onHeaders({ request, response }: { request: FetchRequest; response: FetchResponse }): void {\n const span = this.spanFromReq.get(request);\n\n if (span !== undefined) {\n // We are currently *not* capturing response headers, even though the\n // intake API does allow it, because none of the other `setHttpContext`\n // uses currently do.\n\n const cLen = contentLengthFromResponseHeaders(response.headers);\n const attrs: Attributes = {\n [SemanticAttributes.HTTP_STATUS_CODE]: response.statusCode,\n };\n if (cLen) {\n attrs[SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH] = cLen;\n }\n span.setAttributes(attrs);\n span.setStatus({\n code: response.statusCode >= 400 ? SpanStatusCode.ERROR : SpanStatusCode.OK,\n message: String(response.statusCode),\n });\n }\n }\n\n onDone({ request }: { request: FetchRequest }): void {\n const span = this.spanFromReq.get(request);\n if (span !== undefined) {\n span.end();\n this.spanFromReq.delete(request);\n }\n }\n\n onError({ request, error }: { request: FetchRequest; error: Error }): void {\n const span = this.spanFromReq.get(request);\n if (span !== undefined) {\n span.recordException(error);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: getMessage(error),\n });\n span.end();\n }\n }\n}\n\nfunction getAbsoluteUrl(origin: string, path: string = '/'): string {\n const url = `${origin}`;\n\n if (origin.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!origin.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path.slice(1)}`;\n }\n\n return `${url}${path}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAOA,QAAA,6BAAA,gBAAA,UAAA,0BAAA,CAAA;AAEA,QAAA,yBAAA;AAEA,QAAA,QAAA;AA0CA,aAAS,WAAW,OAAY;AAC9B,UAAI,iBAAiB,gBAAgB;AACnC,eAAO,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI;MACrD;AACA,aAAO,MAAM;IACf;AAKA,aAAS,iCAAiC,SAAiB;AACzD,YAAM,OAAO;AACb,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;AAC1C,cAAM,IAAI,QAAQ,CAAC;AACnB,YAAI,EAAE,WAAW,KAAK,UAAU,EAAE,SAAQ,EAAG,YAAW,MAAO,MAAM;AACnE,gBAAM,IAAI,OAAO,QAAQ,IAAI,CAAC,CAAC;AAC/B,cAAI,CAAC,OAAO,MAAM,OAAO,CAAC,CAAC,GAAG;AAC5B,mBAAO;UACT;AACA,iBAAO;QACT;MACF;AACA,aAAO;IACT;AAEA,mBAAe,YAAS;AACtB,UAAI;AACF,cAAM,MAAM,EAAE;MAChB,SAAS,GAAG;MAEZ;IACF;AAIA,QAAa,uBAAb,MAAiC;;;MAGvB;MAEA,cAAc,oBAAI,QAAO;MAEzB;MAEA;MAEA;MAEQ,sBAAsB;MAEtB,yBAAyB;MAEzB,6BACd;MAEM,mBAAmB,mBAA2B,WAAiC;AACrF,cAAM,UAAU,2BAAA,QAAO,QAAQ,iBAAiB;AAChD,gBAAQ,UAAU,SAAS;AAC3B,aAAK,YAAa,KAAK;UACrB,MAAM;UACN;UACA;SACD;MACH;MAEA,YAAY,QAAkC;AAE5C,kBAAS;AACT,aAAK,cAAc,CAAA;AACnB,aAAK,QAAQ,MAAA,QAAQ,SAAS,KAAK,qBAAqB,KAAK,sBAAsB;AACnF,aAAK,SAAS,MAAA,MAAM,UAAU,KAAK,qBAAqB,KAAK,sBAAsB;AACnF,aAAK,SAAS,EAAE,GAAG,OAAM;MAC3B;MAEA,UAAO;AACL,aAAK,aAAa,QAAQ,CAAC,QAAQ,IAAI,QAAQ,YAAY,IAAI,SAAS,CAAC;MAC3E;MAEA,SAAM;AACJ,aAAK,mBAAmB,yBAAyB,CAAC,SAChD,KAAK,UAAU,IAAiC,CAAC;AAEnD,aAAK,mBAAmB,0BAA0B,CAAC,SACjD,KAAK,UAAU,IAA0D,CAAC;AAE5E,aAAK,mBAAmB,2BAA2B,CAAC,SAClD,KAAK,OAAO,IAAiC,CAAC;AAEhD,aAAK,mBAAmB,wBAAwB,CAAC,SAC/C,KAAK,QAAQ,IAA+C,CAAC;MAEjE;MAEA,kBAAkB,gBAA8B;AAC9C,aAAK,SAAS,eAAe,UAAU,KAAK,qBAAqB,KAAK,sBAAsB;MAC9F;MAEO,iBAAiB,eAA4B;AAClD,aAAK,QAAQ,cAAc,SAAS,KAAK,qBAAqB,KAAK,sBAAsB;MAC3F;MAEA,UAAU,QAA6B;AACrC,aAAK,SAAS,EAAE,GAAG,OAAM;MAC3B;MAEA,YAAS;AACP,eAAO,KAAK;MACd;MAEA,UAAU,EAAE,QAAO,GAA6B;AAG9C,YAAI,QAAQ,WAAW,WAAW;AAChC;QACF;AACA,YAAI,KAAK,OAAO,qBAAqB,KAAK,OAAO,kBAAkB,OAAO,MAAM,MAAM;AACpF;QACF;AAEA,cAAM,OAAO,KAAK,OAAO,UAAU,QAAQ,QAAQ,MAAM,IAAI;UAC3D,MAAM,MAAA,SAAS;UACf,YAAY;YACV,CAAC,uBAAA,mBAAmB,QAAQ,GAAG,eAAe,QAAQ,QAAQ,QAAQ,IAAI;YAC1E,CAAC,uBAAA,mBAAmB,WAAW,GAAG,QAAQ;YAC1C,CAAC,uBAAA,mBAAmB,WAAW,GAAG,QAAQ;YAC1C,eAAe;;SAElB;AACD,cAAM,iBAAiB,MAAA,MAAM,QAAQ,MAAA,QAAQ,OAAM,GAAI,IAAI;AAC3D,cAAM,eAAuC,CAAA;AAC7C,cAAA,YAAY,OAAO,gBAAgB,YAAY;AAE/C,YAAI,KAAK,OAAO,WAAW;AACzB,eAAK,OAAO,UAAU,EAAE,SAAS,MAAM,mBAAmB,aAAY,CAAE;QAC1E;AAEA,YAAI,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAClC,kBAAQ,QAAQ,KAAK,GAAG,OAAO,QAAQ,YAAY,EAAE,KAAI,CAAE;QAC7D,OAAO;AACL,kBAAQ,WAAW,OAAO,QAAQ,YAAY,EAC3C,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;CAAM,EAChC,KAAK,EAAE;QACZ;AACA,aAAK,YAAY,IAAI,SAAS,IAAI;MACpC;MAEA,UAAU,EAAE,SAAS,SAAQ,GAAsD;AACjF,cAAM,OAAO,KAAK,YAAY,IAAI,OAAO;AAEzC,YAAI,SAAS,QAAW;AAKtB,gBAAM,OAAO,iCAAiC,SAAS,OAAO;AAC9D,gBAAM,QAAoB;YACxB,CAAC,uBAAA,mBAAmB,gBAAgB,GAAG,SAAS;;AAElD,cAAI,MAAM;AACR,kBAAM,uBAAA,mBAAmB,4BAA4B,IAAI;UAC3D;AACA,eAAK,cAAc,KAAK;AACxB,eAAK,UAAU;YACb,MAAM,SAAS,cAAc,MAAM,MAAA,eAAe,QAAQ,MAAA,eAAe;YACzE,SAAS,OAAO,SAAS,UAAU;WACpC;QACH;MACF;MAEA,OAAO,EAAE,QAAO,GAA6B;AAC3C,cAAM,OAAO,KAAK,YAAY,IAAI,OAAO;AACzC,YAAI,SAAS,QAAW;AACtB,eAAK,IAAG;AACR,eAAK,YAAY,OAAO,OAAO;QACjC;MACF;MAEA,QAAQ,EAAE,SAAS,MAAK,GAA2C;AACjE,cAAM,OAAO,KAAK,YAAY,IAAI,OAAO;AACzC,YAAI,SAAS,QAAW;AACtB,eAAK,gBAAgB,KAAK;AAC1B,eAAK,UAAU;YACb,MAAM,MAAA,eAAe;YACrB,SAAS,WAAW,KAAK;WAC1B;AACD,eAAK,IAAG;QACV;MACF;;AAxJF,YAAA,uBAAA;AA2JA,aAAS,eAAe,QAAgB,OAAe,KAAG;AACxD,YAAM,MAAM,GAAG,MAAM;AAErB,UAAI,OAAO,SAAS,GAAG,KAAK,KAAK,WAAW,GAAG,GAAG;AAChD,eAAO,GAAG,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC;MAC/B;AAEA,UAAI,CAAC,OAAO,SAAS,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG,GAAG;AAClD,eAAO,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC;MAChC;AAEA,aAAO,GAAG,GAAG,GAAG,IAAI;IACtB;;;","names":[]}