@notambourine/metafields 0.0.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -95
- package/dist/admin-shapes.d.ts +57 -0
- package/dist/admin-shapes.d.ts.map +1 -0
- package/dist/admin-shapes.js +67 -0
- package/dist/admin-shapes.js.map +1 -0
- package/dist/admin.d.ts +8 -7
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +77 -118
- package/dist/admin.js.map +1 -1
- package/dist/app-config.d.ts +5 -0
- package/dist/app-config.d.ts.map +1 -0
- package/dist/app-config.js +50 -0
- package/dist/app-config.js.map +1 -0
- package/dist/builders.js +2 -2
- package/dist/builders.js.map +1 -1
- package/dist/changes.d.ts +20 -0
- package/dist/changes.d.ts.map +1 -0
- package/dist/changes.js +85 -0
- package/dist/changes.js.map +1 -0
- package/dist/cli.js +153 -85
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +16 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +61 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fleet.d.ts +7 -6
- package/dist/fleet.d.ts.map +1 -1
- package/dist/fleet.js +18 -18
- package/dist/fleet.js.map +1 -1
- package/dist/generator.js +1 -1
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/liquid.d.ts.map +1 -1
- package/dist/liquid.js +4 -19
- package/dist/liquid.js.map +1 -1
- package/dist/metafield-types.d.ts +601 -0
- package/dist/metafield-types.d.ts.map +1 -0
- package/dist/metafield-types.js +150 -0
- package/dist/metafield-types.js.map +1 -0
- package/dist/migration.d.ts +3 -2
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +4 -6
- package/dist/migration.js.map +1 -1
- package/dist/planner.d.ts +2 -2
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +5 -3
- package/dist/planner.js.map +1 -1
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +3 -62
- package/dist/pull.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -0
- package/dist/schema.js.map +1 -1
- package/dist/type-check.d.ts +14 -0
- package/dist/type-check.d.ts.map +1 -0
- package/dist/type-check.js +61 -0
- package/dist/type-check.js.map +1 -0
- package/dist/type-registry.d.ts +21 -0
- package/dist/type-registry.d.ts.map +1 -0
- package/dist/type-registry.js +48 -0
- package/dist/type-registry.js.map +1 -0
- package/package.json +3 -2
- package/dist/repair.d.ts +0 -16
- package/dist/repair.d.ts.map +0 -1
- package/dist/repair.js +0 -53
- package/dist/repair.js.map +0 -1
package/dist/admin.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { mapMetafield, mapMetaobject, METAFIELD_SELECTION, METAOBJECT_SELECTION, } from './admin-shapes.js';
|
|
1
2
|
import { assertDescriptionLengths } from './limits.js';
|
|
2
|
-
import { exitCodeForPlan, planSchema } from './planner.js';
|
|
3
|
-
import {
|
|
3
|
+
import { exitCodeForPlan, planFrom, planSchema } from './planner.js';
|
|
4
|
+
import { changedPaths, classifyDrift, deferred, written, } from './changes.js';
|
|
4
5
|
export const DEFAULT_API_VERSION = '2026-07';
|
|
5
6
|
export class AdminError extends Error {
|
|
6
7
|
requestId;
|
|
@@ -23,6 +24,11 @@ export function normalizeStore(store) {
|
|
|
23
24
|
export function redactSecrets(message) {
|
|
24
25
|
return message.replace(/shp(at|ca|pa|ss|us)_[A-Za-z0-9_-]+/g, '[REDACTED]');
|
|
25
26
|
}
|
|
27
|
+
// A rate limit arrives as HTTP 200 carrying this code, so it never reaches the status checks.
|
|
28
|
+
// MAX_COST_EXCEEDED is deliberately not throttling: that query costs too much every time.
|
|
29
|
+
function isThrottled(errors) {
|
|
30
|
+
return errors.some((error) => error.extensions?.code === 'THROTTLED' || /^throttled$/i.test(error.message.trim()));
|
|
31
|
+
}
|
|
26
32
|
export class AdminClient {
|
|
27
33
|
store;
|
|
28
34
|
apiVersion;
|
|
@@ -48,7 +54,10 @@ export class AdminClient {
|
|
|
48
54
|
this.#fetch = options.fetch ?? globalThis.fetch;
|
|
49
55
|
}
|
|
50
56
|
async request(query, variables = {}, mutation = false) {
|
|
51
|
-
|
|
57
|
+
// A timeout or 5xx may have landed, but Shopify rejects THROTTLED before execution.
|
|
58
|
+
// Retry only the latter to avoid duplicate creates.
|
|
59
|
+
const attempts = this.#retries + 1;
|
|
60
|
+
const retriesTransient = !mutation;
|
|
52
61
|
let lastError;
|
|
53
62
|
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
54
63
|
try {
|
|
@@ -63,7 +72,7 @@ export class AdminClient {
|
|
|
63
72
|
});
|
|
64
73
|
const requestId = response.headers.get('x-request-id') ?? undefined;
|
|
65
74
|
if (!response.ok) {
|
|
66
|
-
const retryable = response.status === 429 || response.status >= 500;
|
|
75
|
+
const retryable = retriesTransient && (response.status === 429 || response.status >= 500);
|
|
67
76
|
if (retryable && attempt + 1 < attempts) {
|
|
68
77
|
await delay(backoff(attempt, response.headers.get('retry-after')));
|
|
69
78
|
continue;
|
|
@@ -72,8 +81,7 @@ export class AdminClient {
|
|
|
72
81
|
}
|
|
73
82
|
const envelope = await response.json();
|
|
74
83
|
if (envelope.errors?.length) {
|
|
75
|
-
|
|
76
|
-
if (throttled && attempt + 1 < attempts) {
|
|
84
|
+
if (isThrottled(envelope.errors) && attempt + 1 < attempts) {
|
|
77
85
|
await delay(backoff(attempt));
|
|
78
86
|
continue;
|
|
79
87
|
}
|
|
@@ -85,7 +93,7 @@ export class AdminClient {
|
|
|
85
93
|
}
|
|
86
94
|
catch (error) {
|
|
87
95
|
lastError = error;
|
|
88
|
-
if (error instanceof AdminError || attempt + 1 >= attempts)
|
|
96
|
+
if (error instanceof AdminError || !retriesTransient || attempt + 1 >= attempts)
|
|
89
97
|
throw redactError(error);
|
|
90
98
|
await delay(backoff(attempt));
|
|
91
99
|
}
|
|
@@ -123,81 +131,86 @@ export class AdminClient {
|
|
|
123
131
|
}
|
|
124
132
|
async createMetaobject(definition) {
|
|
125
133
|
const data = await this.request(METAOBJECT_CREATE, { definition: metaobjectCreateInput(definition) }, true);
|
|
126
|
-
|
|
134
|
+
const payload = data.metaobjectDefinitionCreate;
|
|
135
|
+
assertMutation(payload.metaobjectDefinition, payload.userErrors, `metaobject:${definition.type}`);
|
|
127
136
|
}
|
|
128
137
|
async createMetafield(definition) {
|
|
129
138
|
const data = await this.request(METAFIELD_CREATE, { definition: metafieldCreateInput(definition) }, true);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
userErrors: data.metafieldDefinitionCreate.userErrors,
|
|
133
|
-
}, `metafield:${definition.ownerType}:${definition.namespace}.${definition.key}`);
|
|
139
|
+
const payload = data.metafieldDefinitionCreate;
|
|
140
|
+
assertMutation(payload.createdDefinition, payload.userErrors, `metafield:${definition.ownerType}:${definition.namespace}.${definition.key}`);
|
|
134
141
|
}
|
|
135
|
-
async
|
|
142
|
+
async updateMetaobject(entry, force = false) {
|
|
136
143
|
const data = await this.request(METAOBJECT_UPDATE, {
|
|
137
144
|
id: entry.item.existing?.id,
|
|
138
|
-
definition: metaobjectUpdateInput(entry),
|
|
145
|
+
definition: metaobjectUpdateInput(entry, force),
|
|
139
146
|
}, true);
|
|
140
|
-
|
|
147
|
+
const payload = data.metaobjectDefinitionUpdate;
|
|
148
|
+
assertMutation(payload.metaobjectDefinition, payload.userErrors, entry.item.identity);
|
|
141
149
|
}
|
|
142
|
-
async
|
|
143
|
-
const data = await this.request(METAFIELD_UPDATE, { definition: metafieldUpdateInput(entry) }, true);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
userErrors: data.metafieldDefinitionUpdate.userErrors,
|
|
147
|
-
}, entry.item.identity);
|
|
150
|
+
async updateMetafield(entry, force = false) {
|
|
151
|
+
const data = await this.request(METAFIELD_UPDATE, { definition: metafieldUpdateInput(entry, force) }, true);
|
|
152
|
+
const payload = data.metafieldDefinitionUpdate;
|
|
153
|
+
assertMutation(payload.updatedDefinition, payload.userErrors, entry.item.identity);
|
|
148
154
|
}
|
|
149
155
|
}
|
|
150
156
|
export async function planStore(client, schema) {
|
|
151
157
|
return planSchema(schema, await client.readSchema(schema));
|
|
152
158
|
}
|
|
153
|
-
export async function applyPlan(client, schema, plan,
|
|
154
|
-
const
|
|
155
|
-
const
|
|
159
|
+
export async function applyPlan(client, schema, plan, drift, force = false) {
|
|
160
|
+
const created = [];
|
|
161
|
+
const updated = [];
|
|
162
|
+
const skipped = deferred(drift, force).map((entry) => entry.item.identity);
|
|
156
163
|
try {
|
|
157
|
-
//
|
|
158
|
-
for (const entry of
|
|
164
|
+
// Updates run before creates so a metaobject a new metafield references is already correct.
|
|
165
|
+
for (const entry of written(drift, force)) {
|
|
159
166
|
if (entry.item.kind === 'metaobject')
|
|
160
|
-
await client.
|
|
167
|
+
await client.updateMetaobject(entry, force);
|
|
161
168
|
else
|
|
162
|
-
await client.
|
|
163
|
-
|
|
169
|
+
await client.updateMetafield(entry, force);
|
|
170
|
+
updated.push(entry.item.identity);
|
|
164
171
|
}
|
|
165
172
|
for (const item of plan.items.filter((value) => value.kind === 'metaobject' && value.status === 'CREATE')) {
|
|
166
173
|
await client.createMetaobject(item.desired);
|
|
167
|
-
|
|
174
|
+
created.push(item.identity);
|
|
168
175
|
}
|
|
169
176
|
for (const item of plan.items.filter((value) => value.kind === 'metafield' && value.status === 'CREATE')) {
|
|
170
177
|
await client.createMetafield(item.desired);
|
|
171
|
-
|
|
178
|
+
created.push(item.identity);
|
|
172
179
|
}
|
|
173
180
|
}
|
|
174
181
|
catch (error) {
|
|
175
182
|
const landed = [
|
|
176
|
-
...
|
|
177
|
-
...
|
|
183
|
+
...updated.map((identity) => `updated ${identity}`),
|
|
184
|
+
...created.map((identity) => `created ${identity}`),
|
|
178
185
|
];
|
|
179
186
|
const trail = landed.length > 0 ? `; before failure: ${landed.join(', ')}` : '';
|
|
180
187
|
throw new AdminError(`${error instanceof Error ? error.message : String(error)}${trail}`);
|
|
181
188
|
}
|
|
182
189
|
const after = planSchema(schema, await client.readSchema(schema));
|
|
183
|
-
|
|
184
|
-
|
|
190
|
+
// Only the writes this run made have to have landed. Drift it chose to skip is expected to
|
|
191
|
+
// still be there, and reporting it as a failed verification would hide a real one.
|
|
192
|
+
const attempted = planFrom(after.items.filter((item) => !skipped.includes(item.identity)));
|
|
193
|
+
if (exitCodeForPlan(attempted) !== 0) {
|
|
194
|
+
throw new AdminError(`post-apply verification failed; created: ${created.join(', ') || 'none'}`);
|
|
185
195
|
}
|
|
186
|
-
return { plan: after,
|
|
196
|
+
return { plan: after, created, updated, skipped };
|
|
187
197
|
}
|
|
188
|
-
export async function synchronize(client, schema, mode) {
|
|
198
|
+
export async function synchronize(client, schema, mode, force = false) {
|
|
189
199
|
assertDescriptionLengths(schema);
|
|
190
200
|
const before = await planStore(client, schema);
|
|
191
|
-
|
|
192
|
-
|
|
201
|
+
const drift = classifyDrift(before);
|
|
202
|
+
if (mode !== 'apply') {
|
|
203
|
+
return { plan: before, created: [], updated: [], skipped: deferred(drift, force).map((entry) => entry.item.identity) };
|
|
193
204
|
}
|
|
194
|
-
return applyPlan(client, schema, before);
|
|
205
|
+
return applyPlan(client, schema, before, drift, force);
|
|
195
206
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
207
|
+
// Each mutation names its payload field differently, so the caller passes the definition it
|
|
208
|
+
// found rather than a shape this has to know about.
|
|
209
|
+
function assertMutation(definition, userErrors, identity) {
|
|
210
|
+
if (userErrors.length > 0) {
|
|
211
|
+
throw new AdminError(`${identity}: ${userErrors.map((error) => error.message).join('; ')}`);
|
|
199
212
|
}
|
|
200
|
-
if (
|
|
213
|
+
if (definition == null) {
|
|
201
214
|
throw new AdminError(`${identity}: Shopify returned no created definition`);
|
|
202
215
|
}
|
|
203
216
|
}
|
|
@@ -221,19 +234,17 @@ function metafieldCreateInput(definition) {
|
|
|
221
234
|
input.constraints = definition.constraints;
|
|
222
235
|
return input;
|
|
223
236
|
}
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
function metafieldUpdateInput(entry) {
|
|
237
|
+
// An update only ever sends the attributes the plan reported as drifted, so it never carries an
|
|
238
|
+
// opinion about something the operator did not declare.
|
|
239
|
+
function metafieldUpdateInput(entry, force) {
|
|
227
240
|
const definition = entry.item.desired;
|
|
228
|
-
const paths =
|
|
241
|
+
const paths = changedPaths(entry, force);
|
|
229
242
|
const input = {
|
|
230
243
|
ownerType: definition.ownerType,
|
|
231
244
|
namespace: definition.namespace,
|
|
232
245
|
key: definition.key,
|
|
233
|
-
name: definition.name,
|
|
234
246
|
};
|
|
235
|
-
|
|
236
|
-
input.description = definition.description;
|
|
247
|
+
addLabels(input, paths, definition);
|
|
237
248
|
if (paths.includes('validations differ'))
|
|
238
249
|
input.validations = definition.validations;
|
|
239
250
|
if (paths.some((path) => path.startsWith('access.')) && definition.access)
|
|
@@ -257,10 +268,11 @@ function constraintsUpdateInput(definition, existing) {
|
|
|
257
268
|
];
|
|
258
269
|
return definition.constraints ? { key: definition.constraints.key, values } : { key: null, values };
|
|
259
270
|
}
|
|
260
|
-
function metaobjectUpdateInput(entry) {
|
|
271
|
+
function metaobjectUpdateInput(entry, force) {
|
|
261
272
|
const definition = entry.item.desired;
|
|
262
|
-
const paths =
|
|
273
|
+
const paths = changedPaths(entry, force);
|
|
263
274
|
const input = {};
|
|
275
|
+
addLabels(input, paths, definition);
|
|
264
276
|
if (paths.some((path) => path.startsWith('displayNameKey')) && definition.displayNameKey !== undefined) {
|
|
265
277
|
input.displayNameKey = definition.displayNameKey;
|
|
266
278
|
}
|
|
@@ -297,6 +309,15 @@ function metaobjectUpdateInput(entry) {
|
|
|
297
309
|
input.fieldDefinitions = operations;
|
|
298
310
|
return input;
|
|
299
311
|
}
|
|
312
|
+
// Both are labels, so both are sent only when the plan reported them drifted; an unchanged name
|
|
313
|
+
// is the same no-op either way, and an update to something else never rewrites one silently.
|
|
314
|
+
function addLabels(input, paths, definition) {
|
|
315
|
+
if (paths.includes('name differs'))
|
|
316
|
+
input.name = definition.name;
|
|
317
|
+
if (paths.includes('description differs') && definition.description !== undefined) {
|
|
318
|
+
input.description = definition.description;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
300
321
|
function fieldCreateInput(field) {
|
|
301
322
|
return { key: field.key, type: field.type, ...fieldUpdateInput(field) };
|
|
302
323
|
}
|
|
@@ -330,46 +351,6 @@ function metaobjectCreateInput(definition) {
|
|
|
330
351
|
function capabilityInput(capabilities) {
|
|
331
352
|
return Object.fromEntries(Object.entries(capabilities).map(([key, enabled]) => [key, { enabled }]));
|
|
332
353
|
}
|
|
333
|
-
function mapField(field) {
|
|
334
|
-
return {
|
|
335
|
-
key: field.key,
|
|
336
|
-
name: field.name,
|
|
337
|
-
description: field.description,
|
|
338
|
-
type: field.type,
|
|
339
|
-
required: field.required,
|
|
340
|
-
validations: field.validations,
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
function mapMetaobject(value) {
|
|
344
|
-
return {
|
|
345
|
-
id: value.id,
|
|
346
|
-
type: value.type,
|
|
347
|
-
name: value.name,
|
|
348
|
-
description: value.description,
|
|
349
|
-
displayNameKey: value.displayNameKey,
|
|
350
|
-
access: value.access,
|
|
351
|
-
capabilities: {
|
|
352
|
-
publishable: value.capabilities.publishable.enabled,
|
|
353
|
-
translatable: value.capabilities.translatable.enabled,
|
|
354
|
-
},
|
|
355
|
-
fields: value.fieldDefinitions.map(mapField),
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
function mapMetafield(value) {
|
|
359
|
-
return {
|
|
360
|
-
...mapField(value),
|
|
361
|
-
id: value.id,
|
|
362
|
-
namespace: value.namespace,
|
|
363
|
-
ownerType: value.ownerType,
|
|
364
|
-
access: value.access,
|
|
365
|
-
capabilities: Object.fromEntries(Object.entries(value.capabilities).map(([key, item]) => [key, item.enabled])),
|
|
366
|
-
constraints: value.constraints
|
|
367
|
-
? { key: value.constraints.key, values: value.constraints.values.nodes.map((item) => item.value) }
|
|
368
|
-
: null,
|
|
369
|
-
validationStatus: value.validationStatus,
|
|
370
|
-
invalidCount: value.invalidCount,
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
354
|
function redactError(error) {
|
|
374
355
|
if (error instanceof AdminError)
|
|
375
356
|
return error;
|
|
@@ -384,37 +365,15 @@ function backoff(attempt, retryAfter) {
|
|
|
384
365
|
function delay(milliseconds) {
|
|
385
366
|
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
386
367
|
}
|
|
387
|
-
const FIELD_SELECTION = `
|
|
388
|
-
key name description type { name } required validations { name value }
|
|
389
|
-
`;
|
|
390
368
|
const METAOBJECT_QUERY = `
|
|
391
369
|
query MetaobjectDefinition($type: String!) {
|
|
392
|
-
metaobjectDefinitionByType(type: $type) {
|
|
393
|
-
id type name description displayNameKey
|
|
394
|
-
access { admin storefront }
|
|
395
|
-
capabilities { publishable { enabled } translatable { enabled } }
|
|
396
|
-
fieldDefinitions { ${FIELD_SELECTION} }
|
|
397
|
-
}
|
|
370
|
+
metaobjectDefinitionByType(type: $type) { ${METAOBJECT_SELECTION} }
|
|
398
371
|
}`;
|
|
399
372
|
// Owner, namespace and key travel in `identifier`, never as top-level arguments: the only other
|
|
400
373
|
// selector is `id`, which is deprecated and which a schema-first tool has no way to know.
|
|
401
374
|
const METAFIELD_QUERY = `
|
|
402
375
|
query MetafieldDefinition($identifier: MetafieldDefinitionIdentifierInput!) {
|
|
403
|
-
metafieldDefinition(identifier: $identifier) {
|
|
404
|
-
id namespace key ownerType name description type { name }
|
|
405
|
-
validations { name value }
|
|
406
|
-
access { admin storefront customerAccount }
|
|
407
|
-
capabilities {
|
|
408
|
-
adminFilterable { enabled }
|
|
409
|
-
analyticsQueryable { enabled }
|
|
410
|
-
cartToOrderCopyable { enabled }
|
|
411
|
-
smartCollectionCondition { enabled }
|
|
412
|
-
uniqueValues { enabled }
|
|
413
|
-
}
|
|
414
|
-
constraints { key values(first: 250) { nodes { value } } }
|
|
415
|
-
validationStatus
|
|
416
|
-
invalidCount: metafieldsCount(validationStatus: INVALID)
|
|
417
|
-
}
|
|
376
|
+
metafieldDefinition(identifier: $identifier) { ${METAFIELD_SELECTION} }
|
|
418
377
|
}`;
|
|
419
378
|
const METAOBJECT_CREATE = `
|
|
420
379
|
mutation CreateMetaobjectDefinition($definition: MetaobjectDefinitionCreateInput!) {
|
|
@@ -430,7 +389,7 @@ mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {
|
|
|
430
389
|
userErrors { field message code }
|
|
431
390
|
}
|
|
432
391
|
}`;
|
|
433
|
-
// Neither update carries a `delete` field operation or a `type`:
|
|
392
|
+
// Neither update carries a `delete` field operation or a `type`: an update rewrites shape the
|
|
434
393
|
// operator declared and nothing else.
|
|
435
394
|
const METAOBJECT_UPDATE = `
|
|
436
395
|
mutation UpdateMetaobjectDefinition($id: ID!, $definition: MetaobjectDefinitionUpdateInput!) {
|
package/dist/admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../src/app-config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAmBpE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
// Only the top-level table is read, and only for `client_id`: a `client_id` under a `[section]`
|
|
3
|
+
// belongs to that section, and a TOML parser is a dependency for one string.
|
|
4
|
+
export async function readAppConfig(path) {
|
|
5
|
+
let text;
|
|
6
|
+
try {
|
|
7
|
+
text = await readFile(path, 'utf8');
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
throw new Error(`could not read ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
11
|
+
}
|
|
12
|
+
for (const line of text.split(/\r?\n/)) {
|
|
13
|
+
const statement = withoutComment(line).trim();
|
|
14
|
+
if (statement.startsWith('['))
|
|
15
|
+
break;
|
|
16
|
+
const match = /^client_id\s*=\s*(.*)$/.exec(statement);
|
|
17
|
+
if (!match)
|
|
18
|
+
continue;
|
|
19
|
+
const clientId = unquote((match[1] ?? '').trim());
|
|
20
|
+
if (clientId === undefined || clientId.length === 0) {
|
|
21
|
+
throw new Error(`${path}: client_id must be a non-empty quoted string`);
|
|
22
|
+
}
|
|
23
|
+
return { clientId };
|
|
24
|
+
}
|
|
25
|
+
throw new Error(`${path}: no top-level client_id; expected a Shopify app TOML`);
|
|
26
|
+
}
|
|
27
|
+
function withoutComment(line) {
|
|
28
|
+
let quote = '';
|
|
29
|
+
for (let index = 0; index < line.length; index += 1) {
|
|
30
|
+
const character = line[index];
|
|
31
|
+
if (quote.length > 0) {
|
|
32
|
+
if (character === quote)
|
|
33
|
+
quote = '';
|
|
34
|
+
}
|
|
35
|
+
else if (character === '"' || character === "'") {
|
|
36
|
+
quote = character;
|
|
37
|
+
}
|
|
38
|
+
else if (character === '#') {
|
|
39
|
+
return line.slice(0, index);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return line;
|
|
43
|
+
}
|
|
44
|
+
function unquote(value) {
|
|
45
|
+
const quote = value[0];
|
|
46
|
+
if (value.length < 2 || (quote !== '"' && quote !== "'") || !value.endsWith(quote))
|
|
47
|
+
return undefined;
|
|
48
|
+
return value.slice(1, -1);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=app-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../src/app-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,gGAAgG;AAChG,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM;QACrC,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,+CAA+C,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uDAAuD,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,SAAS,KAAK,KAAK;gBAAE,KAAK,GAAG,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAClD,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACrG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/builders.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FIELD_MARKER, METAOBJECT_MARKER, SCHEMA_MARKER, } from './types.js';
|
|
2
|
-
function validations(options
|
|
2
|
+
function validations(options) {
|
|
3
3
|
const result = [];
|
|
4
4
|
for (const name of ['min', 'max', 'regex']) {
|
|
5
5
|
const value = options[name];
|
|
@@ -10,7 +10,7 @@ function validations(options, numeric = false) {
|
|
|
10
10
|
result.push({ name: 'choices', value: JSON.stringify(options.choices) });
|
|
11
11
|
}
|
|
12
12
|
if (options.schema !== undefined) {
|
|
13
|
-
result.push({ name: '
|
|
13
|
+
result.push({ name: 'schema', value: JSON.stringify(options.schema) });
|
|
14
14
|
}
|
|
15
15
|
return result;
|
|
16
16
|
}
|
package/dist/builders.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,GAwBd,MAAM,YAAY,CAAC;AAIpB,SAAS,WAAW,CAAC,OAAgC
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Plan, PlanItem } from './planner.js';
|
|
2
|
+
export interface DriftItem {
|
|
3
|
+
item: PlanItem;
|
|
4
|
+
applies: string[];
|
|
5
|
+
needsForce: string[];
|
|
6
|
+
blocked: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface DriftPlan {
|
|
9
|
+
items: DriftItem[];
|
|
10
|
+
applies: number;
|
|
11
|
+
needsForce: number;
|
|
12
|
+
blocked: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function classifyDrift(plan: Plan): DriftPlan;
|
|
15
|
+
export declare function written(drift: DriftPlan, force: boolean): DriftItem[];
|
|
16
|
+
export declare function deferred(drift: DriftPlan, force: boolean): DriftItem[];
|
|
17
|
+
export declare function changedPaths(entry: DriftItem, force: boolean): string[];
|
|
18
|
+
export declare function attribute(item: PlanItem, reason: string): string;
|
|
19
|
+
export declare function blockedAdvice(item: PlanItem, reason: string): string;
|
|
20
|
+
//# sourceMappingURL=changes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAC;IAGf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAgBnD;AAGD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,CAErE;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,CAEtE;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAGvE;AAID,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYpE"}
|
package/dist/changes.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function classifyDrift(plan) {
|
|
2
|
+
const items = [];
|
|
3
|
+
for (const item of plan.items) {
|
|
4
|
+
if (item.status === 'CREATE')
|
|
5
|
+
continue;
|
|
6
|
+
const buckets = { apply: [], force: [], blocked: [] };
|
|
7
|
+
// Labels are safe to rewrite but remain notices, so cosmetic-only drift still exits 0.
|
|
8
|
+
for (const reason of [...item.reasons, ...item.notices])
|
|
9
|
+
buckets[bucketFor(item, reason)].push(reason);
|
|
10
|
+
const entry = { item, applies: buckets.apply, needsForce: buckets.force, blocked: buckets.blocked };
|
|
11
|
+
if (entry.applies.length + entry.needsForce.length + entry.blocked.length > 0)
|
|
12
|
+
items.push(entry);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
items,
|
|
16
|
+
applies: items.filter((entry) => writes(entry, false)).length,
|
|
17
|
+
needsForce: items.filter((entry) => !writes(entry, false) && writes(entry, true)).length,
|
|
18
|
+
blocked: items.filter((entry) => entry.blocked.length > 0).length,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
// The definitions this run rewrites. Everything else is left exactly as the store has it.
|
|
22
|
+
export function written(drift, force) {
|
|
23
|
+
return drift.items.filter((entry) => writes(entry, force));
|
|
24
|
+
}
|
|
25
|
+
// The drift still standing after this run: what force cannot reach, plus what it could have
|
|
26
|
+
// reached had it been passed. Post-apply verification ignores these; the exit code does not.
|
|
27
|
+
export function deferred(drift, force) {
|
|
28
|
+
return drift.items.filter((entry) => !writes(entry, force));
|
|
29
|
+
}
|
|
30
|
+
// The attributes an update carries, so a write never states an opinion about something the
|
|
31
|
+
// operator did not declare drifted.
|
|
32
|
+
export function changedPaths(entry, force) {
|
|
33
|
+
const reasons = force ? [...entry.applies, ...entry.needsForce] : entry.applies;
|
|
34
|
+
return reasons.map((reason) => attribute(entry.item, reason));
|
|
35
|
+
}
|
|
36
|
+
// Reasons carry the item identity for metafields but not for metaobjects, so strip it before
|
|
37
|
+
// matching an attribute path.
|
|
38
|
+
export function attribute(item, reason) {
|
|
39
|
+
return reason.startsWith(`${item.identity}.`) ? reason.slice(item.identity.length + 1) : reason;
|
|
40
|
+
}
|
|
41
|
+
// Why `--force` is the wrong reach. Someone hitting an unrelated refusal and typing `--force`
|
|
42
|
+
// is the one failure mode a generic flag name creates; saying so where they are looking closes it.
|
|
43
|
+
export function blockedAdvice(item, reason) {
|
|
44
|
+
const path = attribute(item, reason);
|
|
45
|
+
if (/(^|\.)type: expected /.test(path)) {
|
|
46
|
+
return 'Shopify will not retype a definition that holds values. --force cannot do this; use a migration.';
|
|
47
|
+
}
|
|
48
|
+
if (path.startsWith('stored values include ')) {
|
|
49
|
+
return 'Invalid stored values are data, not shape. --force cannot do this; correct the values.';
|
|
50
|
+
}
|
|
51
|
+
if (item.status === 'INDETERMINATE') {
|
|
52
|
+
return 'Shopify is still validating stored values. --force cannot do this; wait and re-run.';
|
|
53
|
+
}
|
|
54
|
+
return 'This definition cannot be read back for update. --force cannot do this.';
|
|
55
|
+
}
|
|
56
|
+
function writes(entry, force) {
|
|
57
|
+
return entry.blocked.length === 0 && (force || entry.needsForce.length === 0);
|
|
58
|
+
}
|
|
59
|
+
function bucketFor(item, reason) {
|
|
60
|
+
// IN_PROGRESS validation: wait, do not write, not even a label.
|
|
61
|
+
if (item.status === 'INDETERMINATE')
|
|
62
|
+
return 'blocked';
|
|
63
|
+
// A metaobject update needs the definition's Shopify id, which only a read supplies.
|
|
64
|
+
if (item.kind === 'metaobject' && item.existing?.id === undefined)
|
|
65
|
+
return 'blocked';
|
|
66
|
+
const path = attribute(item, reason);
|
|
67
|
+
// Shopify will not retype a definition that has stored values; that is what migrations are for.
|
|
68
|
+
if (/(^|\.)type: expected /.test(path))
|
|
69
|
+
return 'blocked';
|
|
70
|
+
// Invalid stored values are data, not shape.
|
|
71
|
+
if (path.startsWith('stored values include '))
|
|
72
|
+
return 'blocked';
|
|
73
|
+
// Risk follows the attribute, not direction; capabilities are the exception because their
|
|
74
|
+
// direction is explicit and enabling one is harmless.
|
|
75
|
+
if (/(^|\.)capabilities\.[^:]+: expected false/.test(path))
|
|
76
|
+
return 'force';
|
|
77
|
+
if (/(^|\.)access\./.test(path))
|
|
78
|
+
return 'force';
|
|
79
|
+
if (/(^|\.)(validations|constraints) differ$/.test(path))
|
|
80
|
+
return 'force';
|
|
81
|
+
if (/(^|\.)required: expected true/.test(path))
|
|
82
|
+
return 'force';
|
|
83
|
+
return 'apply';
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QACvC,MAAM,OAAO,GAA6B,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAChF,uFAAuF;QACvF,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvG,MAAM,KAAK,GAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/G,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnG,CAAC;IACD,OAAO;QACL,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM;QAC7D,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM;QACxF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;KAClE,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,OAAO,CAAC,KAAgB,EAAE,KAAc;IACtD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,4FAA4F;AAC5F,6FAA6F;AAC7F,MAAM,UAAU,QAAQ,CAAC,KAAgB,EAAE,KAAc;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,2FAA2F;AAC3F,oCAAoC;AACpC,MAAM,UAAU,YAAY,CAAC,KAAgB,EAAE,KAAc;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAChF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,6FAA6F;AAC7F,8BAA8B;AAC9B,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,MAAc;IACtD,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClG,CAAC;AAED,8FAA8F;AAC9F,mGAAmG;AACnG,MAAM,UAAU,aAAa,CAAC,IAAc,EAAE,MAAc;IAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,kGAAkG,CAAC;IAC5G,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC9C,OAAO,wFAAwF,CAAC;IAClG,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;QACpC,OAAO,qFAAqF,CAAC;IAC/F,CAAC;IACD,OAAO,yEAAyE,CAAC;AACnF,CAAC;AAID,SAAS,MAAM,CAAC,KAAgB,EAAE,KAAc;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,IAAc,EAAE,MAAc;IAC/C,gEAAgE;IAChE,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IACtD,qFAAqF;IACrF,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,gGAAgG;IAChG,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,6CAA6C;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,0FAA0F;IAC1F,sDAAsD;IACtD,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3E,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACzE,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC"}
|