@undefineds.co/xpod 0.3.57 → 0.3.58

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.
@@ -29,6 +29,14 @@ interface ResolvedObjSelector {
29
29
  limit: number;
30
30
  includeMetadata: boolean;
31
31
  }
32
+ interface DescriptorObject {
33
+ schema: string;
34
+ subject: string;
35
+ resourceUrl: string;
36
+ etag?: string | null;
37
+ revision?: string | null;
38
+ object: Record<string, unknown>;
39
+ }
32
40
  type ItemResult = {
33
41
  index: number;
34
42
  ok: boolean;
@@ -62,6 +70,7 @@ export declare function extractReservedWhereSelectors(where: Record<string, unkn
62
70
  path?: string;
63
71
  };
64
72
  export declare function buildDescriptorObjectQuery(selector: ResolvedObjSelector): string;
73
+ export declare function descriptorObjectFromTurtle(descriptor: PodModelDescriptor, subject: string, resourceUrl: string, turtle: string): DescriptorObject | null;
65
74
  export declare function descriptorUpsertPlanItem(input: {
66
75
  descriptor: PodModelDescriptor;
67
76
  index: number;
@@ -13,11 +13,13 @@ exports.buildDescriptorLinkSparql = buildDescriptorLinkSparql;
13
13
  exports.buildDescriptorDeleteSparql = buildDescriptorDeleteSparql;
14
14
  exports.extractReservedWhereSelectors = extractReservedWhereSelectors;
15
15
  exports.buildDescriptorObjectQuery = buildDescriptorObjectQuery;
16
+ exports.descriptorObjectFromTurtle = descriptorObjectFromTurtle;
16
17
  exports.descriptorUpsertPlanItem = descriptorUpsertPlanItem;
17
18
  exports.executeRows = executeRows;
18
19
  exports.mutationItemsResultCode = mutationItemsResultCode;
19
20
  const fs_1 = require("fs");
20
21
  const path_1 = require("path");
22
+ const n3_1 = require("n3");
21
23
  const models_1 = require("@undefineds.co/models");
22
24
  const auth_context_1 = require("../lib/auth-context");
23
25
  const credentials_store_1 = require("../lib/credentials-store");
@@ -274,15 +276,17 @@ function buildDescriptorUpsertSparql(descriptor, subject, row) {
274
276
  assertWritableFields(descriptor, set);
275
277
  const merged = { ...match, ...set };
276
278
  const deleteFields = Object.keys(set).filter((field) => fields[field]);
277
- const deletes = deleteFields.map((field) => `<${subject}> <${fields[field].predicate}> ?old_${field.replace(/[^A-Za-z0-9_]/gu, '_')} .`);
278
- const optionals = deleteFields.map((field) => `OPTIONAL { <${subject}> <${fields[field].predicate}> ?old_${field.replace(/[^A-Za-z0-9_]/gu, '_')} }`);
279
+ const deletes = deleteFields.map((field) => `DELETE WHERE {\n <${subject}> <${fields[field].predicate}> ?old_${field.replace(/[^A-Za-z0-9_]/gu, '_')} .\n}`);
279
280
  const inserts = [
280
281
  `<${subject}> a <${descriptor.class}>`,
281
282
  ...Object.entries(merged)
282
283
  .filter(([field, value]) => fields[field] && value !== undefined && value !== null)
283
284
  .map(([field, value]) => `<${subject}> <${fields[field].predicate}> ${sparqlValue(value, fields[field])}`),
284
285
  ];
285
- return `DELETE {\n ${deletes.join('\n ')}\n}\nINSERT {\n ${inserts.join(' .\n ')} .\n}\nWHERE {\n ${optionals.join('\n ')}\n}`;
286
+ return [
287
+ ...deletes,
288
+ `INSERT DATA {\n ${inserts.join(' .\n ')} .\n}`,
289
+ ].join(';\n');
286
290
  }
287
291
  function buildDescriptorPatchSparql(descriptor, subject, set) {
288
292
  return buildDescriptorUpsertSparql(descriptor, subject, { set });
@@ -489,6 +493,42 @@ function bindingToValue(binding, field) {
489
493
  }
490
494
  return binding.value;
491
495
  }
496
+ function descriptorObjectFromTurtle(descriptor, subject, resourceUrl, turtle) {
497
+ const quads = new n3_1.Parser({ baseIRI: resourceUrl }).parse(turtle);
498
+ const object = {};
499
+ let hasDescriptorType = false;
500
+ for (const quad of quads) {
501
+ if (quad.subject.value !== subject)
502
+ continue;
503
+ if (quad.predicate.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type' &&
504
+ quad.object.value === descriptor.class) {
505
+ hasDescriptorType = true;
506
+ }
507
+ }
508
+ for (const [field, descriptorField] of Object.entries(descriptor.fields)) {
509
+ const quad = quads.find((item) => item.subject.value === subject &&
510
+ item.predicate.value === descriptorField.predicate);
511
+ if (!quad)
512
+ continue;
513
+ const value = bindingToValue({
514
+ type: quad.object.termType === 'NamedNode' ? 'uri' : 'literal',
515
+ value: quad.object.value,
516
+ datatype: 'datatype' in quad.object ? quad.object.datatype.value : undefined,
517
+ }, descriptorField);
518
+ if (value !== undefined) {
519
+ object[field] = descriptorField.secret ? '[redacted]' : value;
520
+ }
521
+ }
522
+ if (!hasDescriptorType && Object.keys(object).length === 0) {
523
+ return null;
524
+ }
525
+ return {
526
+ schema: descriptor.uri,
527
+ subject,
528
+ resourceUrl,
529
+ object,
530
+ };
531
+ }
492
532
  async function applyEtags(context, objects) {
493
533
  const cache = new Map();
494
534
  for (const object of objects) {
@@ -524,6 +564,12 @@ async function queryDescriptorObjects(context, selector) {
524
564
  },
525
565
  body: query,
526
566
  });
567
+ if (!response.ok) {
568
+ const fallback = await queryDescriptorObjectFromResource(context, selector);
569
+ if (fallback) {
570
+ return fallback;
571
+ }
572
+ }
527
573
  (0, resource_1.ensureOk)(response, 'obj_query_failed', `Failed to list objects for ${selector.descriptor.uri}`);
528
574
  const result = (await response.json());
529
575
  const objects = (result.results?.bindings ?? []).flatMap((binding) => {
@@ -549,6 +595,31 @@ async function queryDescriptorObjects(context, selector) {
549
595
  }
550
596
  return objects;
551
597
  }
598
+ async function queryDescriptorObjectFromResource(context, selector) {
599
+ if (!selector.subject)
600
+ return null;
601
+ if (Object.keys(selector.where).length > 0)
602
+ return null;
603
+ if (Object.keys(selector.relations).length > 0)
604
+ return null;
605
+ const resourceUrl = (0, rdf_1.documentResourceInput)(selector.subject);
606
+ const target = (0, resource_1.resolveResourceTarget)(context, resourceUrl);
607
+ const response = await (0, resource_1.fetchResource)(context, target, {
608
+ method: 'GET',
609
+ headers: { Accept: 'text/turtle' },
610
+ });
611
+ if (response.status === 404)
612
+ return [];
613
+ if (!response.ok)
614
+ return null;
615
+ const turtle = await response.text();
616
+ const object = descriptorObjectFromTurtle(selector.descriptor, selector.subject, target.resourceUrl, turtle);
617
+ const objects = object ? [object] : [];
618
+ if (selector.includeMetadata) {
619
+ await applyEtags(context, objects);
620
+ }
621
+ return objects;
622
+ }
552
623
  function jsonlForObjects(objects) {
553
624
  return `${objects.map((object, index) => JSON.stringify({
554
625
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../../src/cli/commands/obj.ts"],"names":[],"mappings":";;;AAiSA,8DAiCC;AAED,sDAEC;AAqDD,wDAMC;AAED,8DA+BC;AAED,sDAOC;AAED,4DAMC;AAED,kEAuBC;AAED,gEAEC;AAED,8DAEC;AAED,kEAEC;AAMD,sEAoBC;AAoID,gEAwCC;AA+XD,4DAmCC;AAED,kCA4DC;AAED,0DAIC;AAnoCD,2BAA4E;AAC5E,+BAAqC;AACrC,kDAO+B;AAC/B,sDAAgG;AAChG,gEAA2D;AAC3D,0CAAiG;AACjG,8CAMyB;AACzB,+BAAqE;AA+IrE,SAAS,UAAU,CAAI,KAAW;IAChC,OAAO,KAAK;SACT,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0BAA0B;KACxC,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,sBAAsB;KACpC,CAAuB,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAA4B,KAAW;IAC7D,OAAO,UAAU,CAAI,KAAK,CAAC;SACxB,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;SACnF,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;SACtG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;SAC3G,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;SAC7E,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;SAC3F,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+EAA+E,EAAE,CAAC;SAClI,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;SAC1H,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;SACxF,MAAM,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAuB,CAAC;AACxJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA+C;IACxE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAY;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,wBAAe,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAa;IACxC,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAA,iBAAY,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,OAAO,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;SAChC,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,MAAwB,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,wBAAe,CAAC,eAAe,EAAE,yBAAyB,KAAK,GAAG,CAAC,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA8B;IACvD,MAAM,SAAS,GAAG,UAAiC,CAAC;IACpD,OAAO,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAE,CAAC;AACnG,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA8B,EAAE,GAAW;IACvE,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC,GAAG,KAAK,GAAG;QAC3B,UAAU,CAAC,KAAK,KAAK,GAAG;QACxB,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAClE,wBAAwB,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,UAAU;QAC5E,wBAAwB,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU;QAC9E,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,KAAK,GAAG,kBAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QACpD,kBAA0F,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5H,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,OAAO,kBAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;AACjG,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,wBAAe,CAAC,gBAAgB,EAAE,iDAAiD,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,IAA4B;IACxE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC3E,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAAC,IAAa,EAAE,MAAe;IAC5E,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAA,+BAAgB,EAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,0BAA0B;YACjC,OAAO;YACP,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,EAAE;YACf,WAAW,EAAE;gBACX,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,0BAA0B;gBACjC,QAAQ,EAAE,oBAAoB;gBAC9B,OAAO,EAAE;oBACP,QAAQ,EAAE,EAAE;oBACZ,YAAY,EAAE,EAAE;iBACjB;aACF;YACD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC;oBACE,WAAW,EAAE,IAAI;oBACjB,UAAU;oBACV,cAAc,EAAE,4EAA4E,UAAU,8BAA8B;iBACrI;gBACH,CAAC,CAAC;oBACE,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,yFAAyF;iBAC3G,CAAC;SACP,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,IAAA,WAAI,EAAC,IAAA,mCAAe,GAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA8B,EAAE,UAAU,GAAG,qBAAqB,EAAE;IAChG,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,IAAA,mBAAc,EAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,wBAAe,CAAC,aAAa,EAAE,6BAA6B,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,KAA+B;IAClE,IAAI,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,wBAAe,CAAC,aAAa,EAAE,8BAA8B,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA8B,EAAE,MAA+B,EAAE,IAAI,GAAG,eAAe;IAChH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,wBAAe,CAAC,IAAI,EAAE,sCAAsC,UAAU,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA8B,EAAE,MAA+B;IAC3F,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,wBAAe,CAAC,oBAAoB,EAAE,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAA8B,EAAE,KAA8B;IACnG,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAE,GAAG,EAAE,IAAI,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,yBAAyB,CAAC,UAA8B;IACtE,MAAM,SAAS,GAAG,UAAiC,CAAC;IACpD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,GAAG;QACtB,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,YAAY;QAClE,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC;QACtC,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,EAAE;QAChC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI;QAC1C,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;aAC1E,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAE,KAAK,CAAE,EAAE,EAAE,CAAC,KAAK,CAAC;QAC5B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,IAAI,IAAI;QACxD,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;aAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrC,GAAG,CAAC,CAAC,CAAE,KAAK,CAAE,EAAE,EAAE,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI;QACtE,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CACnC,QAA6B,EAAE,EAC/B,cAA6C,kBAAS,CAAC,IAAI,EAAE;IAE7D,OAAO,WAAW;SACf,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAE,UAAkC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACnH,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,wBAAwB,CACtC,aAAqB,EACrB,cAA6C,kBAAS,CAAC,IAAI,EAAE;IAE7D,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IACzF,OAAO,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,SAAgB,2BAA2B,CAAC,UAA8B,EAAE,OAAe,EAAE,GAAmB;IAC9G,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAC1B,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrC,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,IAAI,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAC5F,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3C,eAAe,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CACvG,CAAC;IACF,MAAM,OAAO,GAAG;QACd,IAAI,OAAO,QAAQ,UAAU,CAAC,KAAK,GAAG;QACtC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACtB,MAAM,CAAC,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;aACpF,GAAG,CAAC,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,IAAI,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;KAC/G,CAAC;IAEF,OAAO,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACvI,CAAC;AAED,SAAgB,0BAA0B,CAAC,UAA8B,EAAE,OAAe,EAAE,GAA4B;IACtH,OAAO,2BAA2B,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAgB,yBAAyB,CAAC,OAAe,EAAE,SAAiB,EAAE,MAAc;IAC1F,OAAO,qBAAqB,OAAO,MAAM,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AAClF,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAe;IACzD,OAAO,gBAAgB,OAAO,6BAA6B,OAAO,cAAc,CAAC;AACnF,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,6BAA6B,CAAC,KAA8B;IAM1E,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC7B,MAAM,SAAS,GAA2D,EAAE,CAAC;IAE7E,KAAK,MAAM,GAAG,IAAI,CAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAW,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,wBAAe,CAAC,eAAe,EAAE,4BAA4B,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACtG,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA2B,EAC3B,QAA4B,EAC5B,GAAoC;IAEpC,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC9B,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,wBAAe,CAAC,mBAAmB,EAAE,eAAe,GAAG,2BAA2B,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC5D,KAAK,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,MAAM,IAAI,wBAAe,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,wBAAwB,EAAE,CAAC,CAAC,CAAC;gBACnG,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,wBAAe,CAAC,kBAAkB,EAAE,sCAAsC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,uBAAuB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,OAAuB,EAAE,OAAe;IAC/E,MAAM,MAAM,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,IAAA,2BAAqB,EAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE,MAAM,EAAE;QACpD,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;KACnC,CAAC,CAAC;IACH,IAAA,mBAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,EAAE,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACrI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,kBAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAChG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,wBAAe,CAAC,kBAAkB,EAAE,qEAAqE,EAAE,CAAC,EAAE;YACtH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,wBAAe,CAAC,iBAAiB,EAAE,iFAAiF,EAAE,CAAC,CAAC,CAAC;AACrI,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAAuB,EAAE,IAAqB;IACjF,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAErB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5D,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrD,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;IACD,MAAM,EACJ,KAAK,EACL,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,SAAS,GAChB,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE/C,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAClE,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACtE,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAA,gCAAqB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,IAAA,gCAAqB,EAAC,OAAO,EAAE,IAAA,2BAAqB,EAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;QAC7E,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,IAAA,gCAAqB,EAAC,OAAO,EAAE,IAAA,2BAAqB,EAAC,IAAI,CAAC,CAAC,CAAC,WAAW;YACzE,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,IAAA,2BAAqB,EAAC,UAAU,CAAC;gBACnC,CAAC,CAAC,SAAS,CAAC;IAElB,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC3B,CAAC,CAAC,UAAU;YACV,CAAC,CAAC,MAAM,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,wBAAe,CAAC,iBAAiB,EAAE,uGAAuG,EAAE,CAAC,CAAC,CAAC;IAC3J,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO,EAAE,UAAU;QACnB,WAAW;QACX,KAAK;QACL,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAA8B,EAAE,KAAc;IACrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,0BAA0B,CAAC,QAA6B;IACtE,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,CAAE,eAAe,UAAU,CAAC,KAAK,KAAK,CAAE,CAAC;IACzD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7J,CAAC;IAED,KAAK,MAAM,CAAE,KAAK,EAAE,eAAe,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,wBAAwB,eAAe,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,MAAM,CAAE,KAAK,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrG,OAAO,CAAC,IAAI,CAAC,aAAa,eAAe,CAAC,SAAS,KAAK,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,aAAa,eAAe,CAAC,SAAS,KAAK,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAE,KAAK,EAAE,SAAS,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,wBAAe,CAAC,mBAAmB,EAAE,6CAA6C,UAAU,CAAC,GAAG,KAAK,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7H,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,wBAAe,CAAC,wBAAwB,EAAE,qCAAqC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,aAAa,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzE,OAAO,mBAAmB,SAAS,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,QAAQ,CAAC,KAAK,EAAE,CAAC;AACvG,CAAC;AAED,SAAS,cAAc,CAAC,OAAkC,EAAE,KAA8B;IACxF,IAAI,CAAC,OAAO,EAAE,KAAK;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAAuB,EAAE,OAA2B;IAC5E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClE,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1E,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnF,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;QACnD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAAuB,EAAE,QAA6B;IAC1F,MAAM,QAAQ,GAAG,IAAA,2BAAqB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE;QAC5C,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,EAAE;QACD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,iCAAiC;YACzC,cAAc,EAAE,0BAA0B;SAC3C;QACD,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,IAAA,mBAAQ,EAAC,QAAQ,EAAE,kBAAkB,EAAE,8BAA8B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAEpC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAE,KAAK,EAAE,eAAe,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACpF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;YAChE,CAAC;QACH,CAAC;QACD,OAAO,CAAC;gBACN,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;gBAC/B,OAAO;gBACP,WAAW,EAAE,IAAA,2BAAqB,EAAC,OAAO,CAAC;gBAC3C,MAAM;aACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,OAA2B;IAClD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QACtD,KAAK;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,GAAG,MAAM;KACV,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAM3B;IACC,MAAM,MAAM,GAAG,IAAA,gCAAqB,EAAC,KAAK,CAAC,OAAO,EAAE,IAAA,2BAAqB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAa,EAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE;QAC1D,MAAM,EAAE,OAAO;QACf,OAAO;QACP,IAAI,EAAE,KAAK,CAAC,MAAM;KACnB,CAAC,CAAC;IACH,IAAA,mBAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,OAAO,IAAA,uBAAY,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,KASrB;IACC,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB;SACF;QACD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,OAAuB,EAAE,MAA0B,EAAE,OAAe;IAC9G,OAAO,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAkB;IACnD,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,0BAA0B,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,YAAY,CAAC;QACxB,WAAW,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;QACrC,OAAO;QACP,OAAO,EAAE,+BAA+B,UAAU,CAAC,YAAY,EAAE;QACjE,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,GAAG;QACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACtB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,CAAE,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAE;KAClD,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;QAClC,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAiB;IACjD,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACtE,CAAC,CAAC,MAAM,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,wBAAe,CAAC,mBAAmB,EAAE,+CAA+C,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,wBAAe,CAAC,wBAAwB,EAAE,qCAAqC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3G,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,YAAY,CAAC;QACxB,WAAW,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;QACpC,OAAO;QACP,OAAO,EAAE,4CAA4C;QACrD,OAAO;QACP,MAAM,EAAE,UAAU,EAAE,GAAG;QACvB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACtB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;QAClC,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAAmB;IACrD,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,YAAY,CAAC;QACxB,WAAW,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO;QACP,OAAO,EAAE,gCAAgC,UAAU,CAAC,YAAY,EAAE;QAClE,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,GAAG;QACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACtB,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;QAClC,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE,mBAAmB;KAC/B,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAuB,EAAE,GAAmB,EAAE,KAAa,EAAE,MAAe;IACvG,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,wBAAe,CAAC,iBAAiB,EAAE,oEAAoE,EAAE,CAAC,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;IAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,wBAAe,CAAC,0BAA0B,EAAE,yDAAyD,EAAE,CAAC,CAAC,CAAC;IACtH,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,2BAAqB,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,KAAK;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,wBAAe,CAAC,uBAAuB,EAAE,oCAAoC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,IAAiC,CAAC;IACtC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAA,uBAAY,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;QAChE,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,wBAAe,CAAC,eAAe,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE,MAAM,EAAE;QACpD,MAAM,EAAE,EAAE,CAAC,WAAW,EAAE;QACxB,OAAO;QACP,IAAI;KACL,CAAC,CAAC;IACH,IAAA,mBAAQ,EAAC,QAAQ,EAAE,mBAAmB,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAC;IAC7E,OAAO;QACL,KAAK;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,EAAE;QACb,GAAG,IAAA,uBAAY,EAAC,MAAM,EAAE,QAAQ,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAuB,EAAE,GAAmB,EAAE,KAAa,EAAE,MAAe;IAC9G,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAO,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC;IAC9B,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,wBAAe,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;QACxE,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,0BAA0B,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACxG,CAAC;YACD,OAAO;gBACL,KAAK;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBACzC,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,UAAU,CAAC,GAAG;gBACtB,OAAO;gBACP,GAAG,EAAE,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC;aAC7C,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,IAAI,wBAAe,CAAC,sBAAsB,EAAE,yCAAyC,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YAC1D,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAClC,MAAM,IAAI,wBAAe,CAAC,wBAAwB,EAAE,qCAAqC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,wBAAe,CAAC,mBAAmB,EAAE,+CAA+C,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YACpH,CAAC;YACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,OAAO;gBACL,KAAK;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBACzC,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,UAAU,CAAC,GAAG;gBACtB,OAAO;gBACP,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACzG,CAAC;YACD,OAAO;gBACL,KAAK;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBACzC,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,UAAU,CAAC,GAAG;gBACtB,OAAO;aACR,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,wBAAe,CAAC,uBAAuB,EAAE,iCAAiC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,IAAI,GAAG,wBAAwB,CAAC;QACpC,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG;KACJ,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,2BAA2B,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAMxC;IACC,MAAM,OAAO,GAAG,IAAA,yBAAgB,EAAC,IAAA,yCAAgC,EAAC,CAAE,KAAK,CAAC,UAAU,CAAE,CAAC,CAAC,CAAC;IACzF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;QAC/B,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAC5B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,wBAAe,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAiC,CAAC;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;QAC/C,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ;QACnC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;QAC5B,OAAO;QACP,WAAW,EAAE,IAAA,2BAAqB,EAAC,OAAO,CAAC;QAC3C,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;QAC1B,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU;QACtC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW;QACxC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,IAAI,IAAI;QACxD,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QACtE,GAAG,EAAE,sBAAsB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,KAKjC;IACC,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAE,KAAK,EAAE,WAAW,CAAE,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG;YACV,GAAG,WAAW;YACd,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa;SAClD,CAAC;QACF,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM;gBACrB,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,CAAC;gBACpE,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,qBAAqB,EAAE,CAAC;gBACjE,oBAAoB,CAAC;oBACnB,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,GAAG;oBACH,IAAI;iBACL,EAAE,UAAU,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,IAAI;oBACP,IAAI,EAAE,eAAe;oBACrB,YAAY,EAAE,IAAI;oBAClB,UAAU;oBACV,QAAQ,EAAE;wBACR,GAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAe;wBACrE,OAAO,CAAC,cAAc;qBACvB;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC7B,CAAC,CAAC;oBACE,GAAG,IAAI;oBACP,YAAY,EAAE,IAAI;oBAClB,QAAQ,EAAE;wBACR,GAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAe;wBACrE,OAAO,CAAC,eAAe;qBACxB;iBACF;gBACH,CAAC,CAAC,IAAI,CAAC,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,wBAAe;gBAC1C,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,wBAAe,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAmB,EAAE,MAAe;IAC1E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;QAAE,OAAO,eAAe,CAAC;IAChF,OAAO,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,KAAmB;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACjJ,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAA0C;IAC5D,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,wDAAwD;IAClE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAiB,KAAK,CAAC;SAC9B,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;IAC9G,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,eAAe,GAA2C;IAC9D,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EAAE,yDAAyD;IACnE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAkB,KAAK,CAAC;SAC/B,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAChH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,wBAAe,CAAC,gBAAgB,EAAE,iDAAiD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACjH,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAyC;IAC1D,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,qDAAqD;IAC/D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAgB,KAAK,CAAC;SAC7B,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;SAC/G,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;SAChG,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;SACpF,KAAK,CAAC,iBAAiB,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;gBAC9B,IAAI;gBACJ,IAAI,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;aAC7B,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAyC;IAC1D,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,qCAAqC;IAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAgB,KAAK,CAAC;SAC7B,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;SACvG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;SACzG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAChB,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;SAChG,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;SACpF,KAAK,CAAC,iBAAiB,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;gBAC9B,IAAI;gBACJ,IAAI,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG;gBACjD,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;aAC7B,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,WAAW,GAA2C;IAC1D,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,eAAe,CAAkB,KAAK,CAAC;SACpC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAC5G,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC;oBACd,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;oBAC/B,OAAO;iBACR,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAA2C;IAC5D,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EAAE,2CAA2C;IACrD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,eAAe,CAAkB,KAAK,CAAC;SACpC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,wEAAwE,EAAE,CAAC;SACrJ,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAE,OAAO,CAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;SAC1G,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAA,kBAAa,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC;oBACd,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;oBAC/B,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;oBACrB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;iBACjC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,GAAsC;IACpD,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,2CAA2C;IACrD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAa,KAAK,CAAC;SAC1B,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;SACnF,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACpH,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;SAC3E,MAAM,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;IACjI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE;gBACpD,GAAG,IAAI;gBACP,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,wBAAe,CAAC,kBAAkB,EAAE,qBAAqB,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;YACpD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAA,kBAAa,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;gBACnG,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,YAAY,GAAwC;IACxD,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,8CAA8C;IACxD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAe,KAAK,CAAC;SAC5B,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE,CAAC;SACzI,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACpH,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;SACnH,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACjG,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;SAC9F,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;SACzE,KAAK,CAAC,iBAAiB,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,WAAW,GAAuC;IACtD,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,kDAAkD;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAc,KAAK,CAAC;SAC3B,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uEAAuE,EAAE,CAAC;SAC1H,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACpH,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;SAC7G,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;SAC3F,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACjG,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;SAC9F,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;SACzE,KAAK,CAAC,iBAAiB,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAyC;IAC1D,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,yDAAyD;IACnE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,UAAU,CAAgB,KAAK,CAAC;SAC7B,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE,CAAC;SACzI,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACpH,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;SACjG,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;SAC9F,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;SACzE,KAAK,CAAC,iBAAiB,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1I,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,YAAY,GAA2C;IAC3D,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,4DAA4D;IACtE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,eAAe,CAAkB,KAAK,CAAC;SACpC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,wEAAwE,EAAE,CAAC;SACrJ,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAE,OAAO,CAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;SAChH,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IACnG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG;gBACf,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;gBACzB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,4FAA4F;aACtG,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAA,wBAAe,EAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,CAAE,KAAK,EAAE,MAAM,CAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,KAAK;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,UAAU;oBAClB,GAAG,MAAM;iBACV,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,uBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAC;AAEW,QAAA,UAAU,GAAmC;IACxD,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK;SACH,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,YAAY,CAAC;SACrB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,YAAY,CAAC;SACrB,aAAa,CAAC,CAAC,EAAE,qCAAqC,CAA8B;IACzF,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC","sourcesContent":["import type { Argv, CommandModule } from 'yargs';\nimport { appendFileSync, mkdirSync, readFileSync, writeFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport {\n createPodModelDescriptorRegistry,\n createPodStorage,\n podSchema,\n type PodModelDescriptor,\n type PodModelFieldDescriptor,\n type PodStorageMutationPlan,\n} from '@undefineds.co/models';\nimport { normalizeBaseUrl, requireAuthContext, type CliAuthContext } from '../lib/auth-context';\nimport { getSolidHomeDir } from '../lib/credentials-store';\nimport { CliCommandError, handleCliError, writeJsonItems, writeJsonResult } from '../lib/output';\nimport {\n ensureOk,\n fetchResource,\n readBodyFile,\n resolveResourceTarget,\n responseData,\n} from '../lib/resource';\nimport { documentResourceInput, resolveSparqlEndpoint } from './rdf';\n\ninterface ObjArgs {\n url?: string;\n json: boolean;\n}\n\ninterface ObjImportArgs extends ObjArgs {\n file: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjUpsertArgs extends ObjArgs {\n schema: string;\n from: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjSchemasArgs extends ObjArgs {\n domain?: string;\n}\n\ninterface ObjDescribeArgs extends ObjArgs {\n schema: string;\n}\n\ninterface ObjSelectorArgs extends ObjArgs {\n selector?: string;\n schema?: string;\n subject?: string;\n resource?: string;\n path?: string;\n where?: string;\n status?: string;\n relation?: string[];\n format: string;\n out?: string;\n limit: number;\n since?: string;\n 'include-metadata': boolean;\n}\n\ninterface ObjGetArgs extends ObjArgs {\n schema?: string;\n subject: string;\n out?: string;\n 'include-metadata': boolean;\n}\n\ninterface ObjPatchArgs extends ObjArgs {\n schema?: string;\n subject: string;\n set: string;\n 'if-match'?: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjLinkArgs extends ObjArgs {\n schema?: string;\n subject: string;\n predicate: string;\n object: string;\n 'if-match'?: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjDeleteArgs extends ObjArgs {\n schema?: string;\n subject: string;\n 'if-match'?: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjMutationRow {\n op?: string;\n schema?: string;\n match?: Record<string, unknown>;\n set?: Record<string, unknown>;\n subject?: string;\n path?: string;\n resource?: string;\n predicate?: string;\n object?: string;\n ifMatch?: string;\n body?: string;\n from?: string;\n contentType?: string;\n}\n\ninterface ResolvedObjSelector {\n descriptor: PodModelDescriptor;\n subject?: string;\n resourceUrl?: string;\n where: Record<string, unknown>;\n relations: Record<string, string>;\n limit: number;\n includeMetadata: boolean;\n}\n\ninterface DescriptorObject {\n schema: string;\n subject: string;\n resourceUrl: string;\n etag?: string | null;\n revision?: string | null;\n object: Record<string, unknown>;\n}\n\ntype SparqlBinding = {\n type?: string;\n value?: string;\n datatype?: string;\n};\n\ntype ItemResult = {\n index: number;\n ok: boolean;\n code: string;\n message?: string;\n [key: string]: unknown;\n};\ntype ObjMutationContext = CliAuthContext & {\n planningOnly?: boolean;\n planningWarning?: string;\n pendingOnly?: boolean;\n pendingWarning?: string;\n outboxPath?: string;\n};\n\ntype DiscoveryDescriptor = PodModelDescriptor & {\n aliases?: string[];\n domains?: string[];\n idSemantics?: Record<string, unknown>;\n relationFields?: string[];\n documentPathPolicy?: Record<string, unknown>;\n exampleInput?: Record<string, unknown>;\n};\n\nfunction objOptions<T>(yargs: Argv): Argv<T> {\n return yargs\n .option('url', {\n alias: 'u',\n type: 'string',\n description: 'Server base URL override',\n })\n .option('json', {\n type: 'boolean',\n default: false,\n description: 'Output JSON envelope',\n }) as unknown as Argv<T>;\n}\n\nfunction selectorOptions<T extends ObjSelectorArgs>(yargs: Argv): Argv<T> {\n return objOptions<T>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias' })\n .option('subject', { type: 'string', description: 'Exact object subject URI or Pod-relative subject' })\n .option('resource', { type: 'string', description: 'Exact RDF document/resource URI or Pod-relative path' })\n .option('path', { type: 'string', description: 'Pod-relative resource path' })\n .option('where', { type: 'string', description: 'JSON object of descriptor field filters' })\n .option('status', { type: 'string', description: 'Shortcut for --where {\"status\": \"...\"} when the descriptor has a status field' })\n .option('relation', { type: 'array', string: true, description: 'Descriptor URI relation filter, field=uri. Repeatable.' })\n .option('limit', { type: 'number', default: 100, description: 'Maximum number of rows' })\n .option('include-metadata', { type: 'boolean', default: true, description: 'Include etag/revision metadata when available' }) as unknown as Argv<T>;\n}\n\nfunction mutationModeCheck(argv: { 'dry-run'?: boolean; commit?: boolean }): true {\n if (argv['dry-run'] === argv.commit) {\n throw new Error('Specify exactly one of --dry-run or --commit.');\n }\n return true;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction parseJsonObject(value: string, code: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(value) as unknown;\n if (!isRecord(parsed)) {\n throw new Error('Expected a JSON object.');\n }\n return parsed;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new CliCommandError(code, message, 2);\n }\n}\n\nasync function readStdinText(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));\n }\n return Buffer.concat(chunks).toString('utf-8');\n}\n\nasync function readTextInput(input: string): Promise<string> {\n return input === '-' ? readStdinText() : readFileSync(input, 'utf-8');\n}\n\nasync function readJsonl(input: string): Promise<ObjMutationRow[]> {\n return (await readTextInput(input))\n .split(/\\r?\\n/u)\n .map((line) => line.trim())\n .filter(Boolean)\n .map((line, index) => {\n try {\n const parsed = JSON.parse(line) as unknown;\n if (!isRecord(parsed)) {\n throw new Error('Expected a JSON object.');\n }\n return parsed as ObjMutationRow;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new CliCommandError('invalid_jsonl', `Invalid JSONL at line ${index + 1}: ${message}`, 2);\n }\n });\n}\n\nfunction descriptorLocalName(value: string): string {\n return value.split(/[\\/#]/u).filter(Boolean).pop() ?? value;\n}\n\nfunction normalizeDescriptorAlias(value: string): string {\n return value.toLowerCase().replace(/[^a-z0-9]+/gu, '');\n}\n\nfunction descriptorAliases(descriptor: PodModelDescriptor): string[] {\n const discovery = descriptor as DiscoveryDescriptor;\n return discovery.aliases?.length ? discovery.aliases : [ descriptorLocalName(descriptor.class) ];\n}\n\nfunction descriptorMatchesRef(descriptor: PodModelDescriptor, ref: string): boolean {\n const normalized = normalizeDescriptorAlias(ref);\n return descriptor.uri === ref ||\n descriptor.class === ref ||\n descriptor.resourceKind.toLowerCase() === ref.trim().toLowerCase() ||\n normalizeDescriptorAlias(descriptorLocalName(descriptor.uri)) === normalized ||\n normalizeDescriptorAlias(descriptorLocalName(descriptor.class)) === normalized ||\n descriptorAliases(descriptor).some((alias) => normalizeDescriptorAlias(alias) === normalized);\n}\n\nfunction resolveDescriptorOrNull(schema: string): PodModelDescriptor | null {\n const exact = podSchema.describe({ schemaUri: schema }) ??\n (podSchema as unknown as { describe(input: { alias: string }): PodModelDescriptor | null }).describe?.({ alias: schema });\n if (exact) return exact;\n\n return podSchema.list().find((descriptor) => descriptorMatchesRef(descriptor, schema)) ?? null;\n}\n\nfunction resolveDescriptor(schema: string): PodModelDescriptor {\n const descriptor = resolveDescriptorOrNull(schema);\n if (!descriptor) {\n throw new CliCommandError('schema_unknown', `Schema is not known by @undefineds.co/models: ${schema}`, 2);\n }\n return descriptor;\n}\n\nfunction resourceUrlFromPlan(podRoot: string, plan: PodStorageMutationPlan): string {\n return new URL(plan.resourceUri.replace(/^\\/+/, ''), podRoot).toString();\n}\n\nexport async function resolveObjMutationContext(argv: ObjArgs, commit: boolean): Promise<ObjMutationContext> {\n try {\n return await requireAuthContext(argv);\n } catch (error) {\n const podRoot = normalizeBaseUrl(argv.url ?? 'https://pod.local/');\n const outboxPath = getObjLocalOutboxPath();\n return {\n baseUrl: podRoot,\n webId: 'urn:xpod:unauthenticated',\n podRoot,\n baseIri: podRoot,\n accessToken: '',\n credentials: {\n url: podRoot,\n webId: 'urn:xpod:unauthenticated',\n authType: 'client_credentials',\n secrets: {\n clientId: '',\n clientSecret: '',\n },\n },\n ...(commit\n ? {\n pendingOnly: true,\n outboxPath,\n pendingWarning: `No Solid credentials found; mutation was written to local xpod outbox at ${outboxPath} and was not saved to a Pod.`,\n }\n : {\n planningOnly: true,\n planningWarning: 'No Solid credentials found; this is an offline dry-run plan and was not saved to a Pod.',\n }),\n };\n }\n}\n\nexport function getObjLocalOutboxPath(): string {\n return join(getSolidHomeDir(), 'apps', 'xpod', 'outbox', 'obj-mutations.jsonl');\n}\n\nfunction appendObjLocalOutbox(entry: Record<string, unknown>, outboxPath = getObjLocalOutboxPath()): void {\n mkdirSync(dirname(outboxPath), { recursive: true });\n appendFileSync(outboxPath, `${JSON.stringify(entry)}\\n`, 'utf-8');\n}\n\nfunction varName(field: string): string {\n return `v_${field.replace(/[^A-Za-z0-9_]/gu, '_')}`;\n}\n\nfunction fieldVar(field: string): string {\n return `?${varName(field)}`;\n}\n\nfunction sparqlIri(value: string): string {\n if (!/^https?:\\/\\//iu.test(value)) {\n throw new CliCommandError('invalid_uri', `Expected an absolute URI: ${value}`, 2);\n }\n return `<${value.replace(/[<>]/gu, '')}>`;\n}\n\nfunction sparqlValue(value: unknown, field?: PodModelFieldDescriptor): string {\n if (field?.type === 'uri') {\n if (typeof value !== 'string') {\n throw new CliCommandError('invalid_uri', `Field expects a URI value: ${String(value)}`, 2);\n }\n return sparqlIri(value);\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return JSON.stringify(value);\n }\n if (field?.type === 'json') {\n return JSON.stringify(JSON.stringify(value));\n }\n return JSON.stringify(String(value));\n}\n\nfunction assertKnownFields(descriptor: PodModelDescriptor, values: Record<string, unknown>, code = 'field_unknown'): void {\n const unknown = Object.keys(values).filter((field) => !descriptor.fields[field]);\n if (unknown.length > 0) {\n throw new CliCommandError(code, `Fields are not known by descriptor ${descriptor.uri}: ${unknown.join(', ')}`, 2);\n }\n}\n\nfunction assertWritableFields(descriptor: PodModelDescriptor, values: Record<string, unknown>): void {\n assertKnownFields(descriptor, values);\n const invalid = Object.keys(values).filter((field) => !descriptor.writableFields.includes(field));\n if (invalid.length > 0) {\n throw new CliCommandError('invalid_set_fields', `Fields are not writable: ${invalid.join(', ')}`, 2);\n }\n}\n\nexport function redactDescriptorObject(descriptor: PodModelDescriptor, value: Record<string, unknown>): Record<string, unknown> {\n const redacted: Record<string, unknown> = {};\n for (const [ key, item ] of Object.entries(value)) {\n redacted[key] = descriptor.fields[key]?.secret ? '[redacted]' : item;\n }\n return redacted;\n}\n\nexport function serializeSchemaDescriptor(descriptor: PodModelDescriptor): Record<string, unknown> {\n const discovery = descriptor as DiscoveryDescriptor;\n return {\n schema: descriptor.uri,\n uri: descriptor.uri,\n alias: descriptorAliases(descriptor)[0] ?? descriptor.resourceKind,\n aliases: descriptorAliases(descriptor),\n domains: discovery.domains ?? [],\n version: descriptor.version,\n source: descriptor.source,\n trustLevel: descriptor.trustLevel,\n namespace: descriptor.namespace,\n class: descriptor.class,\n resourceKind: descriptor.resourceKind,\n description: descriptor.description,\n storage: descriptor.storage,\n idSemantics: discovery.idSemantics ?? null,\n relationFields: discovery.relationFields ?? Object.entries(descriptor.fields)\n .filter(([, field]) => field.type === 'uri')\n .map(([ field ]) => field),\n documentPathPolicy: discovery.documentPathPolicy ?? null,\n fields: descriptor.fields,\n requiredFields: Object.entries(descriptor.fields)\n .filter(([, field]) => field.required)\n .map(([ field ]) => field),\n uniqueBy: descriptor.uniqueBy,\n writableFields: descriptor.writableFields,\n mergePolicy: descriptor.mergePolicy,\n exampleInput: discovery.exampleInput ?? descriptor.examples[0] ?? null,\n examples: descriptor.examples,\n };\n}\n\nexport function listSchemaDescriptors(\n input: { domain?: string } = {},\n descriptors: readonly PodModelDescriptor[] = podSchema.list(),\n): Record<string, unknown>[] {\n return descriptors\n .filter((descriptor) => !input.domain || ((descriptor as DiscoveryDescriptor).domains ?? []).includes(input.domain))\n .map(serializeSchemaDescriptor);\n}\n\nexport function describeSchemaDescriptor(\n schemaOrAlias: string,\n descriptors: readonly PodModelDescriptor[] = podSchema.list(),\n): Record<string, unknown> | null {\n const descriptor = descriptors.find((item) => descriptorMatchesRef(item, schemaOrAlias));\n return descriptor ? serializeSchemaDescriptor(descriptor) : null;\n}\n\nexport function buildDescriptorUpsertSparql(descriptor: PodModelDescriptor, subject: string, row: ObjMutationRow): string {\n const fields = descriptor.fields;\n const match = row.match ?? {};\n const set = row.set ?? {};\n assertKnownFields(descriptor, match);\n assertWritableFields(descriptor, set);\n\n const merged = { ...match, ...set };\n const deleteFields = Object.keys(set).filter((field) => fields[field]);\n const deletes = deleteFields.map((field) =>\n `<${subject}> <${fields[field].predicate}> ?old_${field.replace(/[^A-Za-z0-9_]/gu, '_')} .`,\n );\n const optionals = deleteFields.map((field) =>\n `OPTIONAL { <${subject}> <${fields[field].predicate}> ?old_${field.replace(/[^A-Za-z0-9_]/gu, '_')} }`,\n );\n const inserts = [\n `<${subject}> a <${descriptor.class}>`,\n ...Object.entries(merged)\n .filter(([ field, value ]) => fields[field] && value !== undefined && value !== null)\n .map(([ field, value ]) => `<${subject}> <${fields[field].predicate}> ${sparqlValue(value, fields[field])}`),\n ];\n\n return `DELETE {\\n ${deletes.join('\\n ')}\\n}\\nINSERT {\\n ${inserts.join(' .\\n ')} .\\n}\\nWHERE {\\n ${optionals.join('\\n ')}\\n}`;\n}\n\nexport function buildDescriptorPatchSparql(descriptor: PodModelDescriptor, subject: string, set: Record<string, unknown>): string {\n return buildDescriptorUpsertSparql(descriptor, subject, { set });\n}\n\nexport function buildDescriptorLinkSparql(subject: string, predicate: string, object: string): string {\n return `INSERT DATA {\\n <${subject}> <${predicate}> ${sparqlIri(object)} .\\n}`;\n}\n\nexport function buildDescriptorDeleteSparql(subject: string): string {\n return `DELETE {\\n <${subject}> ?p ?o .\\n}\\nWHERE {\\n <${subject}> ?p ?o .\\n}`;\n}\n\nfunction parseWhere(where?: string): Record<string, unknown> {\n return where ? parseJsonObject(where, 'invalid_where') : {};\n}\n\nexport function extractReservedWhereSelectors(where: Record<string, unknown>): {\n where: Record<string, unknown>;\n subject?: string;\n resource?: string;\n path?: string;\n} {\n const filters = { ...where };\n const selectors: { subject?: string; resource?: string; path?: string } = {};\n\n for (const key of [ 'subject', 'resource', 'path' ] as const) {\n const value = filters[key];\n if (value === undefined) continue;\n if (typeof value !== 'string') {\n throw new CliCommandError('invalid_where', `Reserved selector field \"${key}\" must be a string.`, 2);\n }\n selectors[key] = value;\n delete filters[key];\n }\n\n return { where: filters, ...selectors };\n}\n\nfunction applyReservedSelector(\n current: string | undefined,\n reserved: string | undefined,\n key: 'subject' | 'resource' | 'path',\n): string | undefined {\n if (!reserved) return current;\n if (current && current !== reserved) {\n throw new CliCommandError('selector_conflict', `Conflicting ${key} selectors were provided.`, 2);\n }\n return reserved;\n}\n\nfunction parseRelations(input?: string[]): Record<string, string> {\n const relations: Record<string, string> = {};\n for (const item of input ?? []) {\n const trimmed = item.trim();\n if (!trimmed) continue;\n if (trimmed.startsWith('{')) {\n const parsed = parseJsonObject(trimmed, 'invalid_relation');\n for (const [ key, value ] of Object.entries(parsed)) {\n if (typeof value !== 'string') {\n throw new CliCommandError('invalid_relation', `Relation filter ${key} must be a URI string.`, 2);\n }\n relations[key] = value;\n }\n continue;\n }\n const eq = trimmed.indexOf('=');\n if (eq <= 0) {\n throw new CliCommandError('invalid_relation', `Relation filter must be field=uri: ${trimmed}`, 2);\n }\n relations[trimmed.slice(0, eq)] = trimmed.slice(eq + 1);\n }\n return relations;\n}\n\nfunction classifySelector(selector: string): 'schema' | 'subject' | 'resource' | 'path' {\n if (resolveDescriptorOrNull(selector)) return 'schema';\n if (selector.includes('#')) return 'subject';\n if (/^https?:\\/\\//iu.test(selector)) return 'resource';\n if (selector.includes('/')) return 'path';\n return 'schema';\n}\n\nasync function inferDescriptorForSubject(context: CliAuthContext, subject: string): Promise<PodModelDescriptor> {\n const target = resolveResourceTarget(context, documentResourceInput(subject));\n const response = await fetchResource(context, target, {\n method: 'GET',\n headers: { Accept: 'text/turtle' },\n });\n ensureOk(response, response.status === 404 ? 'resource_not_found' : 'schema_infer_failed', `Failed to infer schema from ${subject}`);\n const body = await response.text();\n const matches = podSchema.list().filter((descriptor) => body.includes(`<${descriptor.class}>`));\n if (matches.length === 1) {\n return matches[0];\n }\n if (matches.length > 1) {\n throw new CliCommandError('schema_ambiguous', 'Multiple known descriptor classes were found. Re-run with --schema.', 2, {\n schemas: matches.map((descriptor) => descriptor.uri),\n });\n }\n throw new CliCommandError('schema_required', 'Could not infer a known schema from the subject document. Re-run with --schema.', 2);\n}\n\nasync function resolveObjectSelector(context: CliAuthContext, argv: ObjSelectorArgs): Promise<ResolvedObjSelector> {\n let schema = argv.schema;\n let subject = argv.subject;\n let resource = argv.resource;\n let path = argv.path;\n\n if (argv.selector) {\n const kind = classifySelector(argv.selector);\n if (kind === 'schema' && !schema) schema = argv.selector;\n if (kind === 'subject' && !subject) subject = argv.selector;\n if (kind === 'resource' && !resource) resource = argv.selector;\n if (kind === 'path' && !path) path = argv.selector;\n }\n\n const parsedWhere = parseWhere(argv.where);\n if (argv.status !== undefined) {\n parsedWhere.status = argv.status;\n }\n const {\n where,\n subject: whereSubject,\n resource: whereResource,\n path: wherePath,\n } = extractReservedWhereSelectors(parsedWhere);\n\n subject = applyReservedSelector(subject, whereSubject, 'subject');\n resource = applyReservedSelector(resource, whereResource, 'resource');\n path = applyReservedSelector(path, wherePath, 'path');\n\n const subjectUrl = subject ? resolveResourceTarget(context, subject).resourceUrl : undefined;\n const resourceUrl = resource\n ? resolveResourceTarget(context, documentResourceInput(resource)).resourceUrl\n : path\n ? resolveResourceTarget(context, documentResourceInput(path)).resourceUrl\n : subjectUrl\n ? documentResourceInput(subjectUrl)\n : undefined;\n\n const descriptor = schema\n ? resolveDescriptor(schema)\n : subjectUrl\n ? await inferDescriptorForSubject(context, subjectUrl)\n : undefined;\n\n if (!descriptor) {\n throw new CliCommandError('schema_required', 'Object selectors require --schema, a schema selector, or an exact subject with an inferable RDF type.', 2);\n }\n\n return {\n descriptor,\n subject: subjectUrl,\n resourceUrl,\n where,\n relations: parseRelations(argv.relation),\n limit: Math.max(1, Math.min(argv.limit || 100, 10000)),\n includeMetadata: argv['include-metadata'] !== false,\n };\n}\n\nfunction queryFilterTerm(field: PodModelFieldDescriptor, value: unknown): string {\n if (Array.isArray(value)) {\n return value.map((item) => sparqlValue(item, field)).join(' ');\n }\n return sparqlValue(value, field);\n}\n\nexport function buildDescriptorObjectQuery(selector: ResolvedObjSelector): string {\n const descriptor = selector.descriptor;\n assertKnownFields(descriptor, selector.where);\n\n const triples = [ `?subject a <${descriptor.class}> .` ];\n if (selector.subject) {\n triples.push(`VALUES ?subject { <${selector.subject}> }`);\n }\n if (selector.resourceUrl) {\n triples.push(`FILTER(STR(?subject) = ${JSON.stringify(selector.resourceUrl)} || STRSTARTS(STR(?subject), ${JSON.stringify(`${selector.resourceUrl}#`)}))`);\n }\n\n for (const [ field, fieldDescriptor ] of Object.entries(descriptor.fields)) {\n triples.push(`OPTIONAL { ?subject <${fieldDescriptor.predicate}> ${fieldVar(field)} . }`);\n }\n\n for (const [ field, value ] of Object.entries(selector.where)) {\n const descriptorField = descriptor.fields[field];\n if (!descriptorField) continue;\n if (Array.isArray(value)) {\n triples.push(`VALUES ${fieldVar(`filter_${field}`)} { ${queryFilterTerm(descriptorField, value)} }`);\n triples.push(`?subject <${descriptorField.predicate}> ${fieldVar(`filter_${field}`)} .`);\n } else {\n triples.push(`?subject <${descriptorField.predicate}> ${queryFilterTerm(descriptorField, value)} .`);\n }\n }\n\n for (const [ field, objectUri ] of Object.entries(selector.relations)) {\n const descriptorField = descriptor.fields[field];\n if (!descriptorField) {\n throw new CliCommandError('predicate_unknown', `Relation field is not known by descriptor ${descriptor.uri}: ${field}`, 2);\n }\n if (descriptorField.type !== 'uri') {\n throw new CliCommandError('relation_field_not_uri', `Relation field is not URI-valued: ${field}`, 2);\n }\n triples.push(`?subject <${descriptorField.predicate}> ${sparqlIri(objectUri)} .`);\n }\n\n const fieldVars = Object.keys(descriptor.fields).map(fieldVar).join(' ');\n return `SELECT ?subject ${fieldVars} WHERE {\\n ${triples.join('\\n ')}\\n}\\nLIMIT ${selector.limit}`;\n}\n\nfunction bindingToValue(binding: SparqlBinding | undefined, field: PodModelFieldDescriptor): unknown {\n if (!binding?.value) return undefined;\n if (binding.type === 'uri') return binding.value;\n if (field.type === 'number') {\n const number = Number(binding.value);\n return Number.isNaN(number) ? binding.value : number;\n }\n if (field.type === 'boolean') {\n return binding.value === 'true' || binding.value === '1';\n }\n if (field.type === 'json') {\n try {\n return JSON.parse(binding.value);\n } catch {\n return binding.value;\n }\n }\n return binding.value;\n}\n\nasync function applyEtags(context: CliAuthContext, objects: DescriptorObject[]): Promise<void> {\n const cache = new Map<string, string | null>();\n for (const object of objects) {\n if (!cache.has(object.resourceUrl)) {\n try {\n const target = resolveResourceTarget(context, object.resourceUrl);\n const response = await fetchResource(context, target, { method: 'HEAD' });\n cache.set(object.resourceUrl, response.ok ? response.headers.get('etag') : null);\n } catch {\n cache.set(object.resourceUrl, null);\n }\n }\n const etag = cache.get(object.resourceUrl) ?? null;\n object.etag = etag;\n object.revision = etag;\n }\n}\n\nasync function queryDescriptorObjects(context: CliAuthContext, selector: ResolvedObjSelector): Promise<DescriptorObject[]> {\n const endpoint = resolveSparqlEndpoint(context.podRoot);\n const query = buildDescriptorObjectQuery(selector);\n const response = await fetchResource(context, {\n input: endpoint,\n resourceUrl: endpoint,\n webId: context.webId,\n podRoot: context.podRoot,\n baseIri: context.baseIri,\n }, {\n method: 'POST',\n headers: {\n Accept: 'application/sparql-results+json',\n 'Content-Type': 'application/sparql-query',\n },\n body: query,\n });\n ensureOk(response, 'obj_query_failed', `Failed to list objects for ${selector.descriptor.uri}`);\n const result = (await response.json()) as {\n results?: { bindings?: Array<Record<string, SparqlBinding>> };\n };\n\n const objects = (result.results?.bindings ?? []).flatMap((binding) => {\n const subject = binding.subject?.value;\n if (!subject) return [];\n const object: Record<string, unknown> = {};\n for (const [ field, descriptorField ] of Object.entries(selector.descriptor.fields)) {\n const value = bindingToValue(binding[varName(field)], descriptorField);\n if (value !== undefined) {\n object[field] = descriptorField.secret ? '[redacted]' : value;\n }\n }\n return [{\n schema: selector.descriptor.uri,\n subject,\n resourceUrl: documentResourceInput(subject),\n object,\n }];\n });\n\n if (selector.includeMetadata) {\n await applyEtags(context, objects);\n }\n return objects;\n}\n\nfunction jsonlForObjects(objects: DescriptorObject[]): string {\n return `${objects.map((object, index) => JSON.stringify({\n index,\n ok: true,\n code: 'ok',\n ...object,\n })).join('\\n')}${objects.length > 0 ? '\\n' : ''}`;\n}\n\nasync function patchSubject(input: {\n context: CliAuthContext;\n subject: string;\n sparql: string;\n ifMatch?: string;\n errorCode: string;\n}): Promise<ReturnType<typeof responseData>> {\n const target = resolveResourceTarget(input.context, documentResourceInput(input.subject));\n const headers: Record<string, string> = { 'Content-Type': 'application/sparql-update' };\n if (input.ifMatch) headers['If-Match'] = input.ifMatch;\n const response = await fetchResource(input.context, target, {\n method: 'PATCH',\n headers,\n body: input.sparql,\n });\n ensureOk(response, input.errorCode, `Failed to patch object ${input.subject}`);\n return responseData(target, response);\n}\n\nfunction mutationPlan(input: {\n operationId: string;\n context: CliAuthContext;\n summary: string;\n subject: string;\n schema?: string;\n etag?: string;\n change: string;\n diff?: unknown[];\n}): Record<string, unknown> {\n return {\n operationId: input.operationId,\n webId: input.context.webId,\n podRoot: input.context.podRoot,\n summary: input.summary,\n risk: 'normal',\n resources: [\n {\n subject: input.subject,\n schema: input.schema,\n etag: input.etag,\n change: input.change,\n },\n ],\n diff: input.diff ?? [],\n };\n}\n\nasync function resolveDescriptorForMutation(context: CliAuthContext, schema: string | undefined, subject: string): Promise<PodModelDescriptor> {\n return schema ? resolveDescriptor(schema) : inferDescriptorForSubject(context, subject);\n}\n\nasync function executePatchCommand(argv: ObjPatchArgs): Promise<Record<string, unknown>> {\n const context = await requireAuthContext(argv);\n const subject = resolveResourceTarget(context, argv.subject).resourceUrl;\n const descriptor = await resolveDescriptorForMutation(context, argv.schema, subject);\n const set = parseJsonObject(argv.set, 'invalid_set');\n const sparql = buildDescriptorPatchSparql(descriptor, subject, set);\n const plan = mutationPlan({\n operationId: `op_patch_${Date.now()}`,\n context,\n summary: `Patch one descriptor-backed ${descriptor.resourceKind}`,\n subject,\n schema: descriptor.uri,\n etag: argv['if-match'],\n change: 'patch',\n diff: [ redactDescriptorObject(descriptor, set) ],\n });\n if (argv['dry-run']) {\n return { plan };\n }\n const response = await patchSubject({\n context,\n subject,\n sparql,\n ifMatch: argv['if-match'],\n errorCode: 'obj_patch_failed',\n });\n return { ...response, plan };\n}\n\nasync function executeLinkCommand(argv: ObjLinkArgs): Promise<Record<string, unknown>> {\n const context = await requireAuthContext(argv);\n const subject = resolveResourceTarget(context, argv.subject).resourceUrl;\n const descriptor = argv.schema || !/^https?:\\/\\//iu.test(argv.predicate)\n ? await resolveDescriptorForMutation(context, argv.schema, subject)\n : undefined;\n let predicate = argv.predicate;\n if (!/^https?:\\/\\//iu.test(predicate)) {\n if (!descriptor?.fields[predicate]) {\n throw new CliCommandError('predicate_unknown', `Predicate field is not known by descriptor: ${predicate}`, 2);\n }\n const field = descriptor.fields[predicate];\n if (field.type !== 'uri') {\n throw new CliCommandError('relation_field_not_uri', `Relation field is not URI-valued: ${predicate}`, 2);\n }\n predicate = field.predicate;\n }\n const sparql = buildDescriptorLinkSparql(subject, predicate, argv.object);\n const plan = mutationPlan({\n operationId: `op_link_${Date.now()}`,\n context,\n summary: 'Link one descriptor-backed object relation',\n subject,\n schema: descriptor?.uri,\n etag: argv['if-match'],\n change: 'link',\n diff: [{ predicate, object: argv.object }],\n });\n if (argv['dry-run']) {\n return { plan };\n }\n const response = await patchSubject({\n context,\n subject,\n sparql,\n ifMatch: argv['if-match'],\n errorCode: 'obj_link_failed',\n });\n return { ...response, plan };\n}\n\nasync function executeDeleteCommand(argv: ObjDeleteArgs): Promise<Record<string, unknown>> {\n const context = await requireAuthContext(argv);\n const subject = resolveResourceTarget(context, argv.subject).resourceUrl;\n const descriptor = await resolveDescriptorForMutation(context, argv.schema, subject);\n const sparql = buildDescriptorDeleteSparql(subject);\n const plan = mutationPlan({\n operationId: `op_delete_${Date.now()}`,\n context,\n summary: `Delete one descriptor-backed ${descriptor.resourceKind}`,\n subject,\n schema: descriptor.uri,\n etag: argv['if-match'],\n change: 'delete',\n });\n if (argv['dry-run']) {\n return { plan };\n }\n const response = await patchSubject({\n context,\n subject,\n sparql,\n ifMatch: argv['if-match'],\n errorCode: 'obj_delete_failed',\n });\n return { ...response, plan };\n}\n\nasync function executeRawRow(context: CliAuthContext, row: ObjMutationRow, index: number, commit: boolean): Promise<ItemResult> {\n const op = row.op;\n if (!op) {\n throw new CliCommandError('schema_required', 'JSONL row without schema must declare an explicit raw resource op.', 2);\n }\n const targetInput = row.path ?? row.resource ?? row.subject;\n if (!targetInput) {\n throw new CliCommandError('explicit_target_required', 'Raw JSONL rows must declare path, resource, or subject.', 2);\n }\n const target = resolveResourceTarget(context, row.subject ? documentResourceInput(targetInput) : targetInput);\n if (!commit) {\n return {\n index,\n ok: true,\n code: 'plan_ready',\n operation: op,\n resourceUrl: target.resourceUrl,\n webId: context.webId,\n podRoot: context.podRoot,\n };\n }\n if (![ 'put', 'patch', 'delete' ].includes(op)) {\n throw new CliCommandError('unsupported_operation', `Unsupported raw JSONL operation: ${op}`, 2);\n }\n\n const headers: Record<string, string> = {};\n let body: Buffer | string | undefined;\n if (op !== 'delete') {\n if (row.from) {\n const file = readBodyFile(row.from);\n body = file.body;\n headers['Content-Type'] = row.contentType ?? file.contentType;\n } else if (row.body !== undefined) {\n body = row.body;\n headers['Content-Type'] = row.contentType ?? 'text/plain';\n } else {\n throw new CliCommandError('body_required', `Raw ${op} rows require body or from.`, 2);\n }\n }\n if (row.ifMatch) headers['If-Match'] = row.ifMatch;\n\n const response = await fetchResource(context, target, {\n method: op.toUpperCase(),\n headers,\n body,\n });\n ensureOk(response, 'raw_commit_failed', `Failed to commit raw row ${index}`);\n return {\n index,\n ok: true,\n code: 'committed',\n operation: op,\n ...responseData(target, response),\n };\n}\n\nasync function executeDescriptorRow(context: CliAuthContext, row: ObjMutationRow, index: number, commit: boolean): Promise<ItemResult> {\n const descriptor = resolveDescriptor(row.schema!);\n const op = row.op ?? 'upsert';\n if (op !== 'upsert') {\n if (!row.subject) {\n throw new CliCommandError('subject_required', `Object operation ${op} requires subject.`, 2);\n }\n const subject = resolveResourceTarget(context, row.subject).resourceUrl;\n if (op === 'patch') {\n const set = row.set ?? {};\n const sparql = buildDescriptorPatchSparql(descriptor, subject, set);\n if (commit) {\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_patch_failed' });\n }\n return {\n index,\n ok: true,\n code: commit ? 'committed' : 'plan_ready',\n operation: op,\n schema: descriptor.uri,\n subject,\n set: redactDescriptorObject(descriptor, set),\n };\n }\n if (op === 'link') {\n if (!row.predicate || !row.object) {\n throw new CliCommandError('link_target_required', 'Link rows require predicate and object.', 2);\n }\n const field = descriptor.fields[row.predicate];\n const predicate = field ? field.predicate : row.predicate;\n if (field && field.type !== 'uri') {\n throw new CliCommandError('relation_field_not_uri', `Relation field is not URI-valued: ${row.predicate}`, 2);\n }\n if (!field && !/^https?:\\/\\//iu.test(predicate)) {\n throw new CliCommandError('predicate_unknown', `Predicate field is not known by descriptor: ${row.predicate}`, 2);\n }\n const sparql = buildDescriptorLinkSparql(subject, predicate, row.object);\n if (commit) {\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_link_failed' });\n }\n return {\n index,\n ok: true,\n code: commit ? 'committed' : 'plan_ready',\n operation: op,\n schema: descriptor.uri,\n subject,\n predicate,\n object: row.object,\n };\n }\n if (op === 'delete') {\n const sparql = buildDescriptorDeleteSparql(subject);\n if (commit) {\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_delete_failed' });\n }\n return {\n index,\n ok: true,\n code: commit ? 'committed' : 'plan_ready',\n operation: op,\n schema: descriptor.uri,\n subject,\n };\n }\n throw new CliCommandError('unsupported_operation', `Unsupported object operation: ${op}`, 2);\n }\n\n const item = descriptorUpsertPlanItem({\n descriptor,\n index,\n commit,\n podRoot: context.podRoot,\n row,\n });\n const subject = String(item.subject);\n if (commit) {\n const sparql = buildDescriptorUpsertSparql(descriptor, subject, row);\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_commit_failed' });\n }\n\n return item;\n}\n\nexport function descriptorUpsertPlanItem(input: {\n descriptor: PodModelDescriptor;\n index: number;\n commit: boolean;\n podRoot: string;\n row: ObjMutationRow;\n}): ItemResult {\n const storage = createPodStorage(createPodModelDescriptorRegistry([ input.descriptor ]));\n const validation = storage.validate({\n schemaUri: input.descriptor.uri,\n operation: 'upsert',\n match: input.row.match ?? {},\n set: input.row.set ?? {},\n });\n if (!validation.ok) {\n throw new CliCommandError(validation.error.code, validation.error.message, 2);\n }\n\n const discovery = input.descriptor as DiscoveryDescriptor;\n const subject = resourceUrlFromPlan(input.podRoot, validation.plan);\n return {\n index: input.index,\n ok: true,\n code: input.commit ? 'committed' : 'plan_ready',\n operation: input.row.op ?? 'upsert',\n schema: input.descriptor.uri,\n subject,\n resourceUrl: documentResourceInput(subject),\n planId: validation.plan.id,\n resourceId: validation.plan.resourceId,\n resourceUri: validation.plan.resourceUri,\n documentPathPolicy: discovery.documentPathPolicy ?? null,\n match: redactDescriptorObject(input.descriptor, input.row.match ?? {}),\n set: redactDescriptorObject(input.descriptor, input.row.set ?? {}),\n };\n}\n\nexport async function executeRows(input: {\n argv: ObjArgs;\n rows: ObjMutationRow[];\n defaultSchema?: string;\n commit: boolean;\n}): Promise<ItemResult[]> {\n const context = await resolveObjMutationContext(input.argv, input.commit);\n const items: ItemResult[] = [];\n for (const [ index, originalRow ] of input.rows.entries()) {\n const row = {\n ...originalRow,\n schema: originalRow.schema ?? input.defaultSchema,\n };\n try {\n const shouldCommitToPod = input.commit && !context.pendingOnly;\n const item = row.schema\n ? await executeDescriptorRow(context, row, index, shouldCommitToPod)\n : await executeRawRow(context, row, index, shouldCommitToPod);\n if (context.pendingOnly && input.commit) {\n const outboxPath = context.outboxPath ?? getObjLocalOutboxPath();\n appendObjLocalOutbox({\n kind: 'xpod.obj.mutation',\n version: 1,\n status: 'pending',\n createdAt: new Date().toISOString(),\n webId: context.webId,\n podRoot: context.podRoot,\n row,\n item,\n }, outboxPath);\n items.push({\n ...item,\n code: 'pending_local',\n pendingLocal: true,\n outboxPath,\n warnings: [\n ...((Array.isArray(item.warnings) ? item.warnings : []) as unknown[]),\n context.pendingWarning,\n ],\n });\n continue;\n }\n items.push(context.planningOnly\n ? {\n ...item,\n planningOnly: true,\n warnings: [\n ...((Array.isArray(item.warnings) ? item.warnings : []) as unknown[]),\n context.planningWarning,\n ],\n }\n : item);\n } catch (error) {\n const err = error instanceof CliCommandError\n ? error\n : new CliCommandError('error', error instanceof Error ? error.message : String(error));\n items.push({ index, ok: false, code: err.code, message: err.message });\n }\n }\n return items;\n}\n\nexport function mutationItemsResultCode(items: ItemResult[], commit: boolean): 'plan_ready' | 'committed' | 'pending_local' | 'partial_failure' {\n if (!items.every((item) => item.ok)) return 'partial_failure';\n if (items.some((item) => item.code === 'pending_local')) return 'pending_local';\n return commit ? 'committed' : 'plan_ready';\n}\n\nfunction printItems(items: ItemResult[]): void {\n for (const item of items) {\n console.log(`${item.index}\\t${item.ok ? item.code : `ERROR ${item.code}`}\\t${String(item.subject ?? item.resourceUrl ?? item.message ?? '')}`);\n }\n}\n\nconst schemasCommand: CommandModule<object, ObjSchemasArgs> = {\n command: 'schemas',\n describe: 'List model-backed object schemas available to AI tools',\n builder: (yargs) =>\n objOptions<ObjSchemasArgs>(yargs)\n .option('domain', { type: 'string', description: 'Filter schemas by domain such as capture or symphony' }),\n handler: async (argv) => {\n try {\n const schemas = listSchemaDescriptors({ domain: argv.domain });\n if (argv.json) {\n writeJsonResult({ schemas }, 'schemas');\n return;\n }\n for (const descriptor of schemas) {\n console.log(`${String(descriptor.alias)}\\t${String(descriptor.schema)}\\t${String(descriptor.resourceKind)}`);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst describeCommand: CommandModule<object, ObjDescribeArgs> = {\n command: 'describe <schema>',\n describe: 'Describe one model-backed object schema by URI or alias',\n builder: (yargs) =>\n objOptions<ObjDescribeArgs>(yargs)\n .positional('schema', { type: 'string', demandOption: true, description: 'Schema URI or descriptor alias' }),\n handler: async (argv) => {\n try {\n const descriptor = describeSchemaDescriptor(argv.schema);\n if (!descriptor) {\n throw new CliCommandError('schema_unknown', `Schema is not known by @undefineds.co/models: ${argv.schema}`, 2);\n }\n if (argv.json) {\n writeJsonResult({ descriptor }, 'schema');\n return;\n }\n console.log(JSON.stringify(descriptor, null, 2));\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst importCommand: CommandModule<object, ObjImportArgs> = {\n command: 'import <file>',\n describe: 'Import descriptor-backed or explicit raw JSONL rows',\n builder: (yargs) =>\n objOptions<ObjImportArgs>(yargs)\n .positional('file', { type: 'string', demandOption: true, description: 'JSONL file to import, or - for stdin' })\n .option('dry-run', { type: 'boolean', description: 'Validate and print a plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the validated mutations' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const items = await executeRows({\n argv,\n rows: await readJsonl(argv.file),\n commit: argv.commit === true,\n });\n const code = mutationItemsResultCode(items, argv.commit === true);\n if (argv.json) {\n writeJsonItems(items, code);\n return;\n }\n printItems(items);\n if (!items.every((item) => item.ok)) process.exit(1);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst upsertCommand: CommandModule<object, ObjUpsertArgs> = {\n command: 'upsert',\n describe: 'Upsert descriptor-backed JSONL rows',\n builder: (yargs) =>\n objOptions<ObjUpsertArgs>(yargs)\n .option('schema', { type: 'string', demandOption: true, description: 'Schema URI or descriptor alias' })\n .option('from', { type: 'string', demandOption: true, description: 'JSONL file to read, or - for stdin' })\n .nargs('from', 1)\n .option('dry-run', { type: 'boolean', description: 'Validate and print a plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the validated mutations' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const items = await executeRows({\n argv,\n rows: await readJsonl(argv.from),\n defaultSchema: resolveDescriptor(argv.schema).uri,\n commit: argv.commit === true,\n });\n const code = mutationItemsResultCode(items, argv.commit === true);\n if (argv.json) {\n writeJsonItems(items, code);\n return;\n }\n printItems(items);\n if (!items.every((item) => item.ok)) process.exit(1);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst listCommand: CommandModule<object, ObjSelectorArgs> = {\n command: 'list',\n describe: 'List descriptor-backed objects',\n builder: (yargs) =>\n selectorOptions<ObjSelectorArgs>(yargs)\n .option('schema', { type: 'string', demandOption: true, description: 'Schema URI or descriptor alias' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, argv);\n const objects = await queryDescriptorObjects(context, selector);\n if (argv.json) {\n writeJsonResult({\n webId: context.webId,\n podRoot: context.podRoot,\n schema: selector.descriptor.uri,\n objects,\n });\n return;\n }\n for (const object of objects) {\n console.log(object.subject);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst exportCommand: CommandModule<object, ObjSelectorArgs> = {\n command: 'export <selector>',\n describe: 'Export descriptor-backed objects as JSONL',\n builder: (yargs) =>\n selectorOptions<ObjSelectorArgs>(yargs)\n .positional('selector', { type: 'string', demandOption: true, description: 'Schema URI/alias, subject, resource URL, or Pod-relative path selector' })\n .option('format', { type: 'string', choices: [ 'jsonl' ], default: 'jsonl', description: 'Export format' })\n .option('out', { type: 'string', description: 'Output file path' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, argv);\n const objects = await queryDescriptorObjects(context, selector);\n const jsonl = jsonlForObjects(objects);\n if (argv.out) {\n writeFileSync(argv.out, jsonl, 'utf-8');\n }\n if (argv.json) {\n writeJsonResult({\n webId: context.webId,\n podRoot: context.podRoot,\n schema: selector.descriptor.uri,\n count: objects.length,\n out: argv.out ?? null,\n ...(argv.out ? {} : { objects }),\n });\n return;\n }\n if (!argv.out) {\n process.stdout.write(jsonl);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst getCommand: CommandModule<object, ObjGetArgs> = {\n command: 'get',\n describe: 'Read one descriptor-backed object as JSON',\n builder: (yargs) =>\n objOptions<ObjGetArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('out', { type: 'string', description: 'Write JSON object to file' })\n .option('include-metadata', { type: 'boolean', default: true, description: 'Include etag/revision metadata when available' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, {\n ...argv,\n selector: undefined,\n limit: 1,\n format: 'jsonl',\n where: undefined,\n relation: undefined,\n status: undefined,\n });\n const objects = await queryDescriptorObjects(context, selector);\n const object = objects[0];\n if (!object) {\n throw new CliCommandError('object_not_found', `Object not found: ${argv.subject}`, 1);\n }\n const body = `${JSON.stringify(object, null, 2)}\\n`;\n if (argv.out) {\n writeFileSync(argv.out, body, 'utf-8');\n }\n if (argv.json) {\n writeJsonResult({ webId: context.webId, podRoot: context.podRoot, object, out: argv.out ?? null });\n return;\n }\n if (!argv.out) {\n process.stdout.write(body);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst patchCommand: CommandModule<object, ObjPatchArgs> = {\n command: 'patch',\n describe: 'Patch one descriptor-backed object field set',\n builder: (yargs) =>\n objOptions<ObjPatchArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias. Required if the subject document cannot be inferred.' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('set', { type: 'string', demandOption: true, description: 'JSON object of descriptor field values to set' })\n .option('if-match', { type: 'string', description: 'If-Match header for stale-write protection' })\n .option('dry-run', { type: 'boolean', description: 'Print the mutation plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the mutation' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const data = await executePatchCommand(argv);\n if (argv.json) {\n writeJsonResult(data, argv['dry-run'] ? 'plan_ready' : 'committed');\n return;\n }\n console.log(argv['dry-run'] ? JSON.stringify(data.plan, null, 2) : `PATCH ${String(data.resourceUrl)} -> HTTP ${String(data.status)}`);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst linkCommand: CommandModule<object, ObjLinkArgs> = {\n command: 'link',\n describe: 'Link one descriptor-backed object to another URI',\n builder: (yargs) =>\n objOptions<ObjLinkArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias when --predicate is a descriptor field' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('predicate', { type: 'string', demandOption: true, description: 'Predicate URI or descriptor field' })\n .option('object', { type: 'string', demandOption: true, description: 'Object URI to link' })\n .option('if-match', { type: 'string', description: 'If-Match header for stale-write protection' })\n .option('dry-run', { type: 'boolean', description: 'Print the mutation plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the mutation' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const data = await executeLinkCommand(argv);\n if (argv.json) {\n writeJsonResult(data, argv['dry-run'] ? 'plan_ready' : 'committed');\n return;\n }\n console.log(argv['dry-run'] ? JSON.stringify(data.plan, null, 2) : `LINK ${String(data.resourceUrl)} -> HTTP ${String(data.status)}`);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst deleteCommand: CommandModule<object, ObjDeleteArgs> = {\n command: 'delete',\n describe: 'Delete triples for one descriptor-backed object subject',\n builder: (yargs) =>\n objOptions<ObjDeleteArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias. Required if the subject document cannot be inferred.' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('if-match', { type: 'string', description: 'If-Match header for stale-write protection' })\n .option('dry-run', { type: 'boolean', description: 'Print the mutation plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the mutation' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const data = await executeDeleteCommand(argv);\n if (argv.json) {\n writeJsonResult(data, argv['dry-run'] ? 'plan_ready' : 'committed');\n return;\n }\n console.log(argv['dry-run'] ? JSON.stringify(data.plan, null, 2) : `DELETE ${String(data.resourceUrl)} -> HTTP ${String(data.status)}`);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst watchCommand: CommandModule<object, ObjSelectorArgs> = {\n command: 'watch <selector>',\n describe: 'Stream descriptor-backed object changes as JSONL snapshots',\n builder: (yargs) =>\n selectorOptions<ObjSelectorArgs>(yargs)\n .positional('selector', { type: 'string', demandOption: true, description: 'Schema URI/alias, subject, resource URL, or Pod-relative path selector' })\n .option('format', { type: 'string', choices: [ 'jsonl' ], default: 'jsonl', description: 'Watch stream format' })\n .option('since', { type: 'string', description: 'Opaque cursor from a previous watch stream' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, argv);\n const objects = await queryDescriptorObjects(context, selector);\n const metadata = {\n cursorDurable: false,\n since: argv.since ?? null,\n cursor: null,\n message: 'Durable object cursors are not available; reconcile with a fresh obj list/export snapshot.',\n };\n if (argv.json) {\n writeJsonResult({ metadata, objects }, 'watch_snapshot');\n return;\n }\n console.log(JSON.stringify({ ok: true, code: 'cursor_unavailable', metadata }));\n for (const [ index, object ] of objects.entries()) {\n console.log(JSON.stringify({\n index,\n ok: true,\n code: 'snapshot',\n change: 'snapshot',\n ...object,\n }));\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nexport const objCommand: CommandModule<object, ObjArgs> = {\n command: 'obj',\n describe: 'Descriptor-backed object transport',\n builder: (yargs) =>\n (yargs\n .command(schemasCommand)\n .command(describeCommand)\n .command(exportCommand)\n .command(importCommand)\n .command(getCommand)\n .command(listCommand)\n .command(upsertCommand)\n .command(patchCommand)\n .command(linkCommand)\n .command(deleteCommand)\n .command(watchCommand)\n .demandCommand(1, 'Please specify an object subcommand') as unknown as Argv<ObjArgs>),\n handler: () => {},\n};\n"]}
1
+ {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../../src/cli/commands/obj.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Argv, CommandModule } from 'yargs';\nimport { appendFileSync, mkdirSync, readFileSync, writeFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { Parser } from 'n3';\nimport {\n createPodModelDescriptorRegistry,\n createPodStorage,\n podSchema,\n type PodModelDescriptor,\n type PodModelFieldDescriptor,\n type PodStorageMutationPlan,\n} from '@undefineds.co/models';\nimport { normalizeBaseUrl, requireAuthContext, type CliAuthContext } from '../lib/auth-context';\nimport { getSolidHomeDir } from '../lib/credentials-store';\nimport { CliCommandError, handleCliError, writeJsonItems, writeJsonResult } from '../lib/output';\nimport {\n ensureOk,\n fetchResource,\n readBodyFile,\n resolveResourceTarget,\n responseData,\n} from '../lib/resource';\nimport { documentResourceInput, resolveSparqlEndpoint } from './rdf';\n\ninterface ObjArgs {\n url?: string;\n json: boolean;\n}\n\ninterface ObjImportArgs extends ObjArgs {\n file: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjUpsertArgs extends ObjArgs {\n schema: string;\n from: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjSchemasArgs extends ObjArgs {\n domain?: string;\n}\n\ninterface ObjDescribeArgs extends ObjArgs {\n schema: string;\n}\n\ninterface ObjSelectorArgs extends ObjArgs {\n selector?: string;\n schema?: string;\n subject?: string;\n resource?: string;\n path?: string;\n where?: string;\n status?: string;\n relation?: string[];\n format: string;\n out?: string;\n limit: number;\n since?: string;\n 'include-metadata': boolean;\n}\n\ninterface ObjGetArgs extends ObjArgs {\n schema?: string;\n subject: string;\n out?: string;\n 'include-metadata': boolean;\n}\n\ninterface ObjPatchArgs extends ObjArgs {\n schema?: string;\n subject: string;\n set: string;\n 'if-match'?: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjLinkArgs extends ObjArgs {\n schema?: string;\n subject: string;\n predicate: string;\n object: string;\n 'if-match'?: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjDeleteArgs extends ObjArgs {\n schema?: string;\n subject: string;\n 'if-match'?: string;\n 'dry-run'?: boolean;\n commit?: boolean;\n}\n\ninterface ObjMutationRow {\n op?: string;\n schema?: string;\n match?: Record<string, unknown>;\n set?: Record<string, unknown>;\n subject?: string;\n path?: string;\n resource?: string;\n predicate?: string;\n object?: string;\n ifMatch?: string;\n body?: string;\n from?: string;\n contentType?: string;\n}\n\ninterface ResolvedObjSelector {\n descriptor: PodModelDescriptor;\n subject?: string;\n resourceUrl?: string;\n where: Record<string, unknown>;\n relations: Record<string, string>;\n limit: number;\n includeMetadata: boolean;\n}\n\ninterface DescriptorObject {\n schema: string;\n subject: string;\n resourceUrl: string;\n etag?: string | null;\n revision?: string | null;\n object: Record<string, unknown>;\n}\n\ntype SparqlBinding = {\n type?: string;\n value?: string;\n datatype?: string;\n};\n\ntype ItemResult = {\n index: number;\n ok: boolean;\n code: string;\n message?: string;\n [key: string]: unknown;\n};\ntype ObjMutationContext = CliAuthContext & {\n planningOnly?: boolean;\n planningWarning?: string;\n pendingOnly?: boolean;\n pendingWarning?: string;\n outboxPath?: string;\n};\n\ntype DiscoveryDescriptor = PodModelDescriptor & {\n aliases?: string[];\n domains?: string[];\n idSemantics?: Record<string, unknown>;\n relationFields?: string[];\n documentPathPolicy?: Record<string, unknown>;\n exampleInput?: Record<string, unknown>;\n};\n\nfunction objOptions<T>(yargs: Argv): Argv<T> {\n return yargs\n .option('url', {\n alias: 'u',\n type: 'string',\n description: 'Server base URL override',\n })\n .option('json', {\n type: 'boolean',\n default: false,\n description: 'Output JSON envelope',\n }) as unknown as Argv<T>;\n}\n\nfunction selectorOptions<T extends ObjSelectorArgs>(yargs: Argv): Argv<T> {\n return objOptions<T>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias' })\n .option('subject', { type: 'string', description: 'Exact object subject URI or Pod-relative subject' })\n .option('resource', { type: 'string', description: 'Exact RDF document/resource URI or Pod-relative path' })\n .option('path', { type: 'string', description: 'Pod-relative resource path' })\n .option('where', { type: 'string', description: 'JSON object of descriptor field filters' })\n .option('status', { type: 'string', description: 'Shortcut for --where {\"status\": \"...\"} when the descriptor has a status field' })\n .option('relation', { type: 'array', string: true, description: 'Descriptor URI relation filter, field=uri. Repeatable.' })\n .option('limit', { type: 'number', default: 100, description: 'Maximum number of rows' })\n .option('include-metadata', { type: 'boolean', default: true, description: 'Include etag/revision metadata when available' }) as unknown as Argv<T>;\n}\n\nfunction mutationModeCheck(argv: { 'dry-run'?: boolean; commit?: boolean }): true {\n if (argv['dry-run'] === argv.commit) {\n throw new Error('Specify exactly one of --dry-run or --commit.');\n }\n return true;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction parseJsonObject(value: string, code: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(value) as unknown;\n if (!isRecord(parsed)) {\n throw new Error('Expected a JSON object.');\n }\n return parsed;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new CliCommandError(code, message, 2);\n }\n}\n\nasync function readStdinText(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));\n }\n return Buffer.concat(chunks).toString('utf-8');\n}\n\nasync function readTextInput(input: string): Promise<string> {\n return input === '-' ? readStdinText() : readFileSync(input, 'utf-8');\n}\n\nasync function readJsonl(input: string): Promise<ObjMutationRow[]> {\n return (await readTextInput(input))\n .split(/\\r?\\n/u)\n .map((line) => line.trim())\n .filter(Boolean)\n .map((line, index) => {\n try {\n const parsed = JSON.parse(line) as unknown;\n if (!isRecord(parsed)) {\n throw new Error('Expected a JSON object.');\n }\n return parsed as ObjMutationRow;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new CliCommandError('invalid_jsonl', `Invalid JSONL at line ${index + 1}: ${message}`, 2);\n }\n });\n}\n\nfunction descriptorLocalName(value: string): string {\n return value.split(/[\\/#]/u).filter(Boolean).pop() ?? value;\n}\n\nfunction normalizeDescriptorAlias(value: string): string {\n return value.toLowerCase().replace(/[^a-z0-9]+/gu, '');\n}\n\nfunction descriptorAliases(descriptor: PodModelDescriptor): string[] {\n const discovery = descriptor as DiscoveryDescriptor;\n return discovery.aliases?.length ? discovery.aliases : [ descriptorLocalName(descriptor.class) ];\n}\n\nfunction descriptorMatchesRef(descriptor: PodModelDescriptor, ref: string): boolean {\n const normalized = normalizeDescriptorAlias(ref);\n return descriptor.uri === ref ||\n descriptor.class === ref ||\n descriptor.resourceKind.toLowerCase() === ref.trim().toLowerCase() ||\n normalizeDescriptorAlias(descriptorLocalName(descriptor.uri)) === normalized ||\n normalizeDescriptorAlias(descriptorLocalName(descriptor.class)) === normalized ||\n descriptorAliases(descriptor).some((alias) => normalizeDescriptorAlias(alias) === normalized);\n}\n\nfunction resolveDescriptorOrNull(schema: string): PodModelDescriptor | null {\n const exact = podSchema.describe({ schemaUri: schema }) ??\n (podSchema as unknown as { describe(input: { alias: string }): PodModelDescriptor | null }).describe?.({ alias: schema });\n if (exact) return exact;\n\n return podSchema.list().find((descriptor) => descriptorMatchesRef(descriptor, schema)) ?? null;\n}\n\nfunction resolveDescriptor(schema: string): PodModelDescriptor {\n const descriptor = resolveDescriptorOrNull(schema);\n if (!descriptor) {\n throw new CliCommandError('schema_unknown', `Schema is not known by @undefineds.co/models: ${schema}`, 2);\n }\n return descriptor;\n}\n\nfunction resourceUrlFromPlan(podRoot: string, plan: PodStorageMutationPlan): string {\n return new URL(plan.resourceUri.replace(/^\\/+/, ''), podRoot).toString();\n}\n\nexport async function resolveObjMutationContext(argv: ObjArgs, commit: boolean): Promise<ObjMutationContext> {\n try {\n return await requireAuthContext(argv);\n } catch (error) {\n const podRoot = normalizeBaseUrl(argv.url ?? 'https://pod.local/');\n const outboxPath = getObjLocalOutboxPath();\n return {\n baseUrl: podRoot,\n webId: 'urn:xpod:unauthenticated',\n podRoot,\n baseIri: podRoot,\n accessToken: '',\n credentials: {\n url: podRoot,\n webId: 'urn:xpod:unauthenticated',\n authType: 'client_credentials',\n secrets: {\n clientId: '',\n clientSecret: '',\n },\n },\n ...(commit\n ? {\n pendingOnly: true,\n outboxPath,\n pendingWarning: `No Solid credentials found; mutation was written to local xpod outbox at ${outboxPath} and was not saved to a Pod.`,\n }\n : {\n planningOnly: true,\n planningWarning: 'No Solid credentials found; this is an offline dry-run plan and was not saved to a Pod.',\n }),\n };\n }\n}\n\nexport function getObjLocalOutboxPath(): string {\n return join(getSolidHomeDir(), 'apps', 'xpod', 'outbox', 'obj-mutations.jsonl');\n}\n\nfunction appendObjLocalOutbox(entry: Record<string, unknown>, outboxPath = getObjLocalOutboxPath()): void {\n mkdirSync(dirname(outboxPath), { recursive: true });\n appendFileSync(outboxPath, `${JSON.stringify(entry)}\\n`, 'utf-8');\n}\n\nfunction varName(field: string): string {\n return `v_${field.replace(/[^A-Za-z0-9_]/gu, '_')}`;\n}\n\nfunction fieldVar(field: string): string {\n return `?${varName(field)}`;\n}\n\nfunction sparqlIri(value: string): string {\n if (!/^https?:\\/\\//iu.test(value)) {\n throw new CliCommandError('invalid_uri', `Expected an absolute URI: ${value}`, 2);\n }\n return `<${value.replace(/[<>]/gu, '')}>`;\n}\n\nfunction sparqlValue(value: unknown, field?: PodModelFieldDescriptor): string {\n if (field?.type === 'uri') {\n if (typeof value !== 'string') {\n throw new CliCommandError('invalid_uri', `Field expects a URI value: ${String(value)}`, 2);\n }\n return sparqlIri(value);\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return JSON.stringify(value);\n }\n if (field?.type === 'json') {\n return JSON.stringify(JSON.stringify(value));\n }\n return JSON.stringify(String(value));\n}\n\nfunction assertKnownFields(descriptor: PodModelDescriptor, values: Record<string, unknown>, code = 'field_unknown'): void {\n const unknown = Object.keys(values).filter((field) => !descriptor.fields[field]);\n if (unknown.length > 0) {\n throw new CliCommandError(code, `Fields are not known by descriptor ${descriptor.uri}: ${unknown.join(', ')}`, 2);\n }\n}\n\nfunction assertWritableFields(descriptor: PodModelDescriptor, values: Record<string, unknown>): void {\n assertKnownFields(descriptor, values);\n const invalid = Object.keys(values).filter((field) => !descriptor.writableFields.includes(field));\n if (invalid.length > 0) {\n throw new CliCommandError('invalid_set_fields', `Fields are not writable: ${invalid.join(', ')}`, 2);\n }\n}\n\nexport function redactDescriptorObject(descriptor: PodModelDescriptor, value: Record<string, unknown>): Record<string, unknown> {\n const redacted: Record<string, unknown> = {};\n for (const [ key, item ] of Object.entries(value)) {\n redacted[key] = descriptor.fields[key]?.secret ? '[redacted]' : item;\n }\n return redacted;\n}\n\nexport function serializeSchemaDescriptor(descriptor: PodModelDescriptor): Record<string, unknown> {\n const discovery = descriptor as DiscoveryDescriptor;\n return {\n schema: descriptor.uri,\n uri: descriptor.uri,\n alias: descriptorAliases(descriptor)[0] ?? descriptor.resourceKind,\n aliases: descriptorAliases(descriptor),\n domains: discovery.domains ?? [],\n version: descriptor.version,\n source: descriptor.source,\n trustLevel: descriptor.trustLevel,\n namespace: descriptor.namespace,\n class: descriptor.class,\n resourceKind: descriptor.resourceKind,\n description: descriptor.description,\n storage: descriptor.storage,\n idSemantics: discovery.idSemantics ?? null,\n relationFields: discovery.relationFields ?? Object.entries(descriptor.fields)\n .filter(([, field]) => field.type === 'uri')\n .map(([ field ]) => field),\n documentPathPolicy: discovery.documentPathPolicy ?? null,\n fields: descriptor.fields,\n requiredFields: Object.entries(descriptor.fields)\n .filter(([, field]) => field.required)\n .map(([ field ]) => field),\n uniqueBy: descriptor.uniqueBy,\n writableFields: descriptor.writableFields,\n mergePolicy: descriptor.mergePolicy,\n exampleInput: discovery.exampleInput ?? descriptor.examples[0] ?? null,\n examples: descriptor.examples,\n };\n}\n\nexport function listSchemaDescriptors(\n input: { domain?: string } = {},\n descriptors: readonly PodModelDescriptor[] = podSchema.list(),\n): Record<string, unknown>[] {\n return descriptors\n .filter((descriptor) => !input.domain || ((descriptor as DiscoveryDescriptor).domains ?? []).includes(input.domain))\n .map(serializeSchemaDescriptor);\n}\n\nexport function describeSchemaDescriptor(\n schemaOrAlias: string,\n descriptors: readonly PodModelDescriptor[] = podSchema.list(),\n): Record<string, unknown> | null {\n const descriptor = descriptors.find((item) => descriptorMatchesRef(item, schemaOrAlias));\n return descriptor ? serializeSchemaDescriptor(descriptor) : null;\n}\n\nexport function buildDescriptorUpsertSparql(descriptor: PodModelDescriptor, subject: string, row: ObjMutationRow): string {\n const fields = descriptor.fields;\n const match = row.match ?? {};\n const set = row.set ?? {};\n assertKnownFields(descriptor, match);\n assertWritableFields(descriptor, set);\n\n const merged = { ...match, ...set };\n const deleteFields = Object.keys(set).filter((field) => fields[field]);\n const deletes = deleteFields.map((field) =>\n `DELETE WHERE {\\n <${subject}> <${fields[field].predicate}> ?old_${field.replace(/[^A-Za-z0-9_]/gu, '_')} .\\n}`,\n );\n const inserts = [\n `<${subject}> a <${descriptor.class}>`,\n ...Object.entries(merged)\n .filter(([ field, value ]) => fields[field] && value !== undefined && value !== null)\n .map(([ field, value ]) => `<${subject}> <${fields[field].predicate}> ${sparqlValue(value, fields[field])}`),\n ];\n\n return [\n ...deletes,\n `INSERT DATA {\\n ${inserts.join(' .\\n ')} .\\n}`,\n ].join(';\\n');\n}\n\nexport function buildDescriptorPatchSparql(descriptor: PodModelDescriptor, subject: string, set: Record<string, unknown>): string {\n return buildDescriptorUpsertSparql(descriptor, subject, { set });\n}\n\nexport function buildDescriptorLinkSparql(subject: string, predicate: string, object: string): string {\n return `INSERT DATA {\\n <${subject}> <${predicate}> ${sparqlIri(object)} .\\n}`;\n}\n\nexport function buildDescriptorDeleteSparql(subject: string): string {\n return `DELETE {\\n <${subject}> ?p ?o .\\n}\\nWHERE {\\n <${subject}> ?p ?o .\\n}`;\n}\n\nfunction parseWhere(where?: string): Record<string, unknown> {\n return where ? parseJsonObject(where, 'invalid_where') : {};\n}\n\nexport function extractReservedWhereSelectors(where: Record<string, unknown>): {\n where: Record<string, unknown>;\n subject?: string;\n resource?: string;\n path?: string;\n} {\n const filters = { ...where };\n const selectors: { subject?: string; resource?: string; path?: string } = {};\n\n for (const key of [ 'subject', 'resource', 'path' ] as const) {\n const value = filters[key];\n if (value === undefined) continue;\n if (typeof value !== 'string') {\n throw new CliCommandError('invalid_where', `Reserved selector field \"${key}\" must be a string.`, 2);\n }\n selectors[key] = value;\n delete filters[key];\n }\n\n return { where: filters, ...selectors };\n}\n\nfunction applyReservedSelector(\n current: string | undefined,\n reserved: string | undefined,\n key: 'subject' | 'resource' | 'path',\n): string | undefined {\n if (!reserved) return current;\n if (current && current !== reserved) {\n throw new CliCommandError('selector_conflict', `Conflicting ${key} selectors were provided.`, 2);\n }\n return reserved;\n}\n\nfunction parseRelations(input?: string[]): Record<string, string> {\n const relations: Record<string, string> = {};\n for (const item of input ?? []) {\n const trimmed = item.trim();\n if (!trimmed) continue;\n if (trimmed.startsWith('{')) {\n const parsed = parseJsonObject(trimmed, 'invalid_relation');\n for (const [ key, value ] of Object.entries(parsed)) {\n if (typeof value !== 'string') {\n throw new CliCommandError('invalid_relation', `Relation filter ${key} must be a URI string.`, 2);\n }\n relations[key] = value;\n }\n continue;\n }\n const eq = trimmed.indexOf('=');\n if (eq <= 0) {\n throw new CliCommandError('invalid_relation', `Relation filter must be field=uri: ${trimmed}`, 2);\n }\n relations[trimmed.slice(0, eq)] = trimmed.slice(eq + 1);\n }\n return relations;\n}\n\nfunction classifySelector(selector: string): 'schema' | 'subject' | 'resource' | 'path' {\n if (resolveDescriptorOrNull(selector)) return 'schema';\n if (selector.includes('#')) return 'subject';\n if (/^https?:\\/\\//iu.test(selector)) return 'resource';\n if (selector.includes('/')) return 'path';\n return 'schema';\n}\n\nasync function inferDescriptorForSubject(context: CliAuthContext, subject: string): Promise<PodModelDescriptor> {\n const target = resolveResourceTarget(context, documentResourceInput(subject));\n const response = await fetchResource(context, target, {\n method: 'GET',\n headers: { Accept: 'text/turtle' },\n });\n ensureOk(response, response.status === 404 ? 'resource_not_found' : 'schema_infer_failed', `Failed to infer schema from ${subject}`);\n const body = await response.text();\n const matches = podSchema.list().filter((descriptor) => body.includes(`<${descriptor.class}>`));\n if (matches.length === 1) {\n return matches[0];\n }\n if (matches.length > 1) {\n throw new CliCommandError('schema_ambiguous', 'Multiple known descriptor classes were found. Re-run with --schema.', 2, {\n schemas: matches.map((descriptor) => descriptor.uri),\n });\n }\n throw new CliCommandError('schema_required', 'Could not infer a known schema from the subject document. Re-run with --schema.', 2);\n}\n\nasync function resolveObjectSelector(context: CliAuthContext, argv: ObjSelectorArgs): Promise<ResolvedObjSelector> {\n let schema = argv.schema;\n let subject = argv.subject;\n let resource = argv.resource;\n let path = argv.path;\n\n if (argv.selector) {\n const kind = classifySelector(argv.selector);\n if (kind === 'schema' && !schema) schema = argv.selector;\n if (kind === 'subject' && !subject) subject = argv.selector;\n if (kind === 'resource' && !resource) resource = argv.selector;\n if (kind === 'path' && !path) path = argv.selector;\n }\n\n const parsedWhere = parseWhere(argv.where);\n if (argv.status !== undefined) {\n parsedWhere.status = argv.status;\n }\n const {\n where,\n subject: whereSubject,\n resource: whereResource,\n path: wherePath,\n } = extractReservedWhereSelectors(parsedWhere);\n\n subject = applyReservedSelector(subject, whereSubject, 'subject');\n resource = applyReservedSelector(resource, whereResource, 'resource');\n path = applyReservedSelector(path, wherePath, 'path');\n\n const subjectUrl = subject ? resolveResourceTarget(context, subject).resourceUrl : undefined;\n const resourceUrl = resource\n ? resolveResourceTarget(context, documentResourceInput(resource)).resourceUrl\n : path\n ? resolveResourceTarget(context, documentResourceInput(path)).resourceUrl\n : subjectUrl\n ? documentResourceInput(subjectUrl)\n : undefined;\n\n const descriptor = schema\n ? resolveDescriptor(schema)\n : subjectUrl\n ? await inferDescriptorForSubject(context, subjectUrl)\n : undefined;\n\n if (!descriptor) {\n throw new CliCommandError('schema_required', 'Object selectors require --schema, a schema selector, or an exact subject with an inferable RDF type.', 2);\n }\n\n return {\n descriptor,\n subject: subjectUrl,\n resourceUrl,\n where,\n relations: parseRelations(argv.relation),\n limit: Math.max(1, Math.min(argv.limit || 100, 10000)),\n includeMetadata: argv['include-metadata'] !== false,\n };\n}\n\nfunction queryFilterTerm(field: PodModelFieldDescriptor, value: unknown): string {\n if (Array.isArray(value)) {\n return value.map((item) => sparqlValue(item, field)).join(' ');\n }\n return sparqlValue(value, field);\n}\n\nexport function buildDescriptorObjectQuery(selector: ResolvedObjSelector): string {\n const descriptor = selector.descriptor;\n assertKnownFields(descriptor, selector.where);\n\n const triples = [ `?subject a <${descriptor.class}> .` ];\n if (selector.subject) {\n triples.push(`VALUES ?subject { <${selector.subject}> }`);\n }\n if (selector.resourceUrl) {\n triples.push(`FILTER(STR(?subject) = ${JSON.stringify(selector.resourceUrl)} || STRSTARTS(STR(?subject), ${JSON.stringify(`${selector.resourceUrl}#`)}))`);\n }\n\n for (const [ field, fieldDescriptor ] of Object.entries(descriptor.fields)) {\n triples.push(`OPTIONAL { ?subject <${fieldDescriptor.predicate}> ${fieldVar(field)} . }`);\n }\n\n for (const [ field, value ] of Object.entries(selector.where)) {\n const descriptorField = descriptor.fields[field];\n if (!descriptorField) continue;\n if (Array.isArray(value)) {\n triples.push(`VALUES ${fieldVar(`filter_${field}`)} { ${queryFilterTerm(descriptorField, value)} }`);\n triples.push(`?subject <${descriptorField.predicate}> ${fieldVar(`filter_${field}`)} .`);\n } else {\n triples.push(`?subject <${descriptorField.predicate}> ${queryFilterTerm(descriptorField, value)} .`);\n }\n }\n\n for (const [ field, objectUri ] of Object.entries(selector.relations)) {\n const descriptorField = descriptor.fields[field];\n if (!descriptorField) {\n throw new CliCommandError('predicate_unknown', `Relation field is not known by descriptor ${descriptor.uri}: ${field}`, 2);\n }\n if (descriptorField.type !== 'uri') {\n throw new CliCommandError('relation_field_not_uri', `Relation field is not URI-valued: ${field}`, 2);\n }\n triples.push(`?subject <${descriptorField.predicate}> ${sparqlIri(objectUri)} .`);\n }\n\n const fieldVars = Object.keys(descriptor.fields).map(fieldVar).join(' ');\n return `SELECT ?subject ${fieldVars} WHERE {\\n ${triples.join('\\n ')}\\n}\\nLIMIT ${selector.limit}`;\n}\n\nfunction bindingToValue(binding: SparqlBinding | undefined, field: PodModelFieldDescriptor): unknown {\n if (!binding?.value) return undefined;\n if (binding.type === 'uri') return binding.value;\n if (field.type === 'number') {\n const number = Number(binding.value);\n return Number.isNaN(number) ? binding.value : number;\n }\n if (field.type === 'boolean') {\n return binding.value === 'true' || binding.value === '1';\n }\n if (field.type === 'json') {\n try {\n return JSON.parse(binding.value);\n } catch {\n return binding.value;\n }\n }\n return binding.value;\n}\n\nexport function descriptorObjectFromTurtle(\n descriptor: PodModelDescriptor,\n subject: string,\n resourceUrl: string,\n turtle: string,\n): DescriptorObject | null {\n const quads = new Parser({ baseIRI: resourceUrl }).parse(turtle);\n const object: Record<string, unknown> = {};\n let hasDescriptorType = false;\n\n for (const quad of quads) {\n if (quad.subject.value !== subject) continue;\n if (\n quad.predicate.value === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type' &&\n quad.object.value === descriptor.class\n ) {\n hasDescriptorType = true;\n }\n }\n\n for (const [ field, descriptorField ] of Object.entries(descriptor.fields)) {\n const quad = quads.find((item) =>\n item.subject.value === subject &&\n item.predicate.value === descriptorField.predicate);\n if (!quad) continue;\n const value = bindingToValue({\n type: quad.object.termType === 'NamedNode' ? 'uri' : 'literal',\n value: quad.object.value,\n datatype: 'datatype' in quad.object ? quad.object.datatype.value : undefined,\n }, descriptorField);\n if (value !== undefined) {\n object[field] = descriptorField.secret ? '[redacted]' : value;\n }\n }\n\n if (!hasDescriptorType && Object.keys(object).length === 0) {\n return null;\n }\n return {\n schema: descriptor.uri,\n subject,\n resourceUrl,\n object,\n };\n}\n\nasync function applyEtags(context: CliAuthContext, objects: DescriptorObject[]): Promise<void> {\n const cache = new Map<string, string | null>();\n for (const object of objects) {\n if (!cache.has(object.resourceUrl)) {\n try {\n const target = resolveResourceTarget(context, object.resourceUrl);\n const response = await fetchResource(context, target, { method: 'HEAD' });\n cache.set(object.resourceUrl, response.ok ? response.headers.get('etag') : null);\n } catch {\n cache.set(object.resourceUrl, null);\n }\n }\n const etag = cache.get(object.resourceUrl) ?? null;\n object.etag = etag;\n object.revision = etag;\n }\n}\n\nasync function queryDescriptorObjects(context: CliAuthContext, selector: ResolvedObjSelector): Promise<DescriptorObject[]> {\n const endpoint = resolveSparqlEndpoint(context.podRoot);\n const query = buildDescriptorObjectQuery(selector);\n const response = await fetchResource(context, {\n input: endpoint,\n resourceUrl: endpoint,\n webId: context.webId,\n podRoot: context.podRoot,\n baseIri: context.baseIri,\n }, {\n method: 'POST',\n headers: {\n Accept: 'application/sparql-results+json',\n 'Content-Type': 'application/sparql-query',\n },\n body: query,\n });\n if (!response.ok) {\n const fallback = await queryDescriptorObjectFromResource(context, selector);\n if (fallback) {\n return fallback;\n }\n }\n ensureOk(response, 'obj_query_failed', `Failed to list objects for ${selector.descriptor.uri}`);\n const result = (await response.json()) as {\n results?: { bindings?: Array<Record<string, SparqlBinding>> };\n };\n\n const objects = (result.results?.bindings ?? []).flatMap((binding) => {\n const subject = binding.subject?.value;\n if (!subject) return [];\n const object: Record<string, unknown> = {};\n for (const [ field, descriptorField ] of Object.entries(selector.descriptor.fields)) {\n const value = bindingToValue(binding[varName(field)], descriptorField);\n if (value !== undefined) {\n object[field] = descriptorField.secret ? '[redacted]' : value;\n }\n }\n return [{\n schema: selector.descriptor.uri,\n subject,\n resourceUrl: documentResourceInput(subject),\n object,\n }];\n });\n\n if (selector.includeMetadata) {\n await applyEtags(context, objects);\n }\n return objects;\n}\n\nasync function queryDescriptorObjectFromResource(\n context: CliAuthContext,\n selector: ResolvedObjSelector,\n): Promise<DescriptorObject[] | null> {\n if (!selector.subject) return null;\n if (Object.keys(selector.where).length > 0) return null;\n if (Object.keys(selector.relations).length > 0) return null;\n\n const resourceUrl = documentResourceInput(selector.subject);\n const target = resolveResourceTarget(context, resourceUrl);\n const response = await fetchResource(context, target, {\n method: 'GET',\n headers: { Accept: 'text/turtle' },\n });\n if (response.status === 404) return [];\n if (!response.ok) return null;\n const turtle = await response.text();\n const object = descriptorObjectFromTurtle(selector.descriptor, selector.subject, target.resourceUrl, turtle);\n const objects = object ? [ object ] : [];\n if (selector.includeMetadata) {\n await applyEtags(context, objects);\n }\n return objects;\n}\n\nfunction jsonlForObjects(objects: DescriptorObject[]): string {\n return `${objects.map((object, index) => JSON.stringify({\n index,\n ok: true,\n code: 'ok',\n ...object,\n })).join('\\n')}${objects.length > 0 ? '\\n' : ''}`;\n}\n\nasync function patchSubject(input: {\n context: CliAuthContext;\n subject: string;\n sparql: string;\n ifMatch?: string;\n errorCode: string;\n}): Promise<ReturnType<typeof responseData>> {\n const target = resolveResourceTarget(input.context, documentResourceInput(input.subject));\n const headers: Record<string, string> = { 'Content-Type': 'application/sparql-update' };\n if (input.ifMatch) headers['If-Match'] = input.ifMatch;\n const response = await fetchResource(input.context, target, {\n method: 'PATCH',\n headers,\n body: input.sparql,\n });\n ensureOk(response, input.errorCode, `Failed to patch object ${input.subject}`);\n return responseData(target, response);\n}\n\nfunction mutationPlan(input: {\n operationId: string;\n context: CliAuthContext;\n summary: string;\n subject: string;\n schema?: string;\n etag?: string;\n change: string;\n diff?: unknown[];\n}): Record<string, unknown> {\n return {\n operationId: input.operationId,\n webId: input.context.webId,\n podRoot: input.context.podRoot,\n summary: input.summary,\n risk: 'normal',\n resources: [\n {\n subject: input.subject,\n schema: input.schema,\n etag: input.etag,\n change: input.change,\n },\n ],\n diff: input.diff ?? [],\n };\n}\n\nasync function resolveDescriptorForMutation(context: CliAuthContext, schema: string | undefined, subject: string): Promise<PodModelDescriptor> {\n return schema ? resolveDescriptor(schema) : inferDescriptorForSubject(context, subject);\n}\n\nasync function executePatchCommand(argv: ObjPatchArgs): Promise<Record<string, unknown>> {\n const context = await requireAuthContext(argv);\n const subject = resolveResourceTarget(context, argv.subject).resourceUrl;\n const descriptor = await resolveDescriptorForMutation(context, argv.schema, subject);\n const set = parseJsonObject(argv.set, 'invalid_set');\n const sparql = buildDescriptorPatchSparql(descriptor, subject, set);\n const plan = mutationPlan({\n operationId: `op_patch_${Date.now()}`,\n context,\n summary: `Patch one descriptor-backed ${descriptor.resourceKind}`,\n subject,\n schema: descriptor.uri,\n etag: argv['if-match'],\n change: 'patch',\n diff: [ redactDescriptorObject(descriptor, set) ],\n });\n if (argv['dry-run']) {\n return { plan };\n }\n const response = await patchSubject({\n context,\n subject,\n sparql,\n ifMatch: argv['if-match'],\n errorCode: 'obj_patch_failed',\n });\n return { ...response, plan };\n}\n\nasync function executeLinkCommand(argv: ObjLinkArgs): Promise<Record<string, unknown>> {\n const context = await requireAuthContext(argv);\n const subject = resolveResourceTarget(context, argv.subject).resourceUrl;\n const descriptor = argv.schema || !/^https?:\\/\\//iu.test(argv.predicate)\n ? await resolveDescriptorForMutation(context, argv.schema, subject)\n : undefined;\n let predicate = argv.predicate;\n if (!/^https?:\\/\\//iu.test(predicate)) {\n if (!descriptor?.fields[predicate]) {\n throw new CliCommandError('predicate_unknown', `Predicate field is not known by descriptor: ${predicate}`, 2);\n }\n const field = descriptor.fields[predicate];\n if (field.type !== 'uri') {\n throw new CliCommandError('relation_field_not_uri', `Relation field is not URI-valued: ${predicate}`, 2);\n }\n predicate = field.predicate;\n }\n const sparql = buildDescriptorLinkSparql(subject, predicate, argv.object);\n const plan = mutationPlan({\n operationId: `op_link_${Date.now()}`,\n context,\n summary: 'Link one descriptor-backed object relation',\n subject,\n schema: descriptor?.uri,\n etag: argv['if-match'],\n change: 'link',\n diff: [{ predicate, object: argv.object }],\n });\n if (argv['dry-run']) {\n return { plan };\n }\n const response = await patchSubject({\n context,\n subject,\n sparql,\n ifMatch: argv['if-match'],\n errorCode: 'obj_link_failed',\n });\n return { ...response, plan };\n}\n\nasync function executeDeleteCommand(argv: ObjDeleteArgs): Promise<Record<string, unknown>> {\n const context = await requireAuthContext(argv);\n const subject = resolveResourceTarget(context, argv.subject).resourceUrl;\n const descriptor = await resolveDescriptorForMutation(context, argv.schema, subject);\n const sparql = buildDescriptorDeleteSparql(subject);\n const plan = mutationPlan({\n operationId: `op_delete_${Date.now()}`,\n context,\n summary: `Delete one descriptor-backed ${descriptor.resourceKind}`,\n subject,\n schema: descriptor.uri,\n etag: argv['if-match'],\n change: 'delete',\n });\n if (argv['dry-run']) {\n return { plan };\n }\n const response = await patchSubject({\n context,\n subject,\n sparql,\n ifMatch: argv['if-match'],\n errorCode: 'obj_delete_failed',\n });\n return { ...response, plan };\n}\n\nasync function executeRawRow(context: CliAuthContext, row: ObjMutationRow, index: number, commit: boolean): Promise<ItemResult> {\n const op = row.op;\n if (!op) {\n throw new CliCommandError('schema_required', 'JSONL row without schema must declare an explicit raw resource op.', 2);\n }\n const targetInput = row.path ?? row.resource ?? row.subject;\n if (!targetInput) {\n throw new CliCommandError('explicit_target_required', 'Raw JSONL rows must declare path, resource, or subject.', 2);\n }\n const target = resolveResourceTarget(context, row.subject ? documentResourceInput(targetInput) : targetInput);\n if (!commit) {\n return {\n index,\n ok: true,\n code: 'plan_ready',\n operation: op,\n resourceUrl: target.resourceUrl,\n webId: context.webId,\n podRoot: context.podRoot,\n };\n }\n if (![ 'put', 'patch', 'delete' ].includes(op)) {\n throw new CliCommandError('unsupported_operation', `Unsupported raw JSONL operation: ${op}`, 2);\n }\n\n const headers: Record<string, string> = {};\n let body: Buffer | string | undefined;\n if (op !== 'delete') {\n if (row.from) {\n const file = readBodyFile(row.from);\n body = file.body;\n headers['Content-Type'] = row.contentType ?? file.contentType;\n } else if (row.body !== undefined) {\n body = row.body;\n headers['Content-Type'] = row.contentType ?? 'text/plain';\n } else {\n throw new CliCommandError('body_required', `Raw ${op} rows require body or from.`, 2);\n }\n }\n if (row.ifMatch) headers['If-Match'] = row.ifMatch;\n\n const response = await fetchResource(context, target, {\n method: op.toUpperCase(),\n headers,\n body,\n });\n ensureOk(response, 'raw_commit_failed', `Failed to commit raw row ${index}`);\n return {\n index,\n ok: true,\n code: 'committed',\n operation: op,\n ...responseData(target, response),\n };\n}\n\nasync function executeDescriptorRow(context: CliAuthContext, row: ObjMutationRow, index: number, commit: boolean): Promise<ItemResult> {\n const descriptor = resolveDescriptor(row.schema!);\n const op = row.op ?? 'upsert';\n if (op !== 'upsert') {\n if (!row.subject) {\n throw new CliCommandError('subject_required', `Object operation ${op} requires subject.`, 2);\n }\n const subject = resolveResourceTarget(context, row.subject).resourceUrl;\n if (op === 'patch') {\n const set = row.set ?? {};\n const sparql = buildDescriptorPatchSparql(descriptor, subject, set);\n if (commit) {\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_patch_failed' });\n }\n return {\n index,\n ok: true,\n code: commit ? 'committed' : 'plan_ready',\n operation: op,\n schema: descriptor.uri,\n subject,\n set: redactDescriptorObject(descriptor, set),\n };\n }\n if (op === 'link') {\n if (!row.predicate || !row.object) {\n throw new CliCommandError('link_target_required', 'Link rows require predicate and object.', 2);\n }\n const field = descriptor.fields[row.predicate];\n const predicate = field ? field.predicate : row.predicate;\n if (field && field.type !== 'uri') {\n throw new CliCommandError('relation_field_not_uri', `Relation field is not URI-valued: ${row.predicate}`, 2);\n }\n if (!field && !/^https?:\\/\\//iu.test(predicate)) {\n throw new CliCommandError('predicate_unknown', `Predicate field is not known by descriptor: ${row.predicate}`, 2);\n }\n const sparql = buildDescriptorLinkSparql(subject, predicate, row.object);\n if (commit) {\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_link_failed' });\n }\n return {\n index,\n ok: true,\n code: commit ? 'committed' : 'plan_ready',\n operation: op,\n schema: descriptor.uri,\n subject,\n predicate,\n object: row.object,\n };\n }\n if (op === 'delete') {\n const sparql = buildDescriptorDeleteSparql(subject);\n if (commit) {\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_delete_failed' });\n }\n return {\n index,\n ok: true,\n code: commit ? 'committed' : 'plan_ready',\n operation: op,\n schema: descriptor.uri,\n subject,\n };\n }\n throw new CliCommandError('unsupported_operation', `Unsupported object operation: ${op}`, 2);\n }\n\n const item = descriptorUpsertPlanItem({\n descriptor,\n index,\n commit,\n podRoot: context.podRoot,\n row,\n });\n const subject = String(item.subject);\n if (commit) {\n const sparql = buildDescriptorUpsertSparql(descriptor, subject, row);\n await patchSubject({ context, subject, sparql, ifMatch: row.ifMatch, errorCode: 'obj_commit_failed' });\n }\n\n return item;\n}\n\nexport function descriptorUpsertPlanItem(input: {\n descriptor: PodModelDescriptor;\n index: number;\n commit: boolean;\n podRoot: string;\n row: ObjMutationRow;\n}): ItemResult {\n const storage = createPodStorage(createPodModelDescriptorRegistry([ input.descriptor ]));\n const validation = storage.validate({\n schemaUri: input.descriptor.uri,\n operation: 'upsert',\n match: input.row.match ?? {},\n set: input.row.set ?? {},\n });\n if (!validation.ok) {\n throw new CliCommandError(validation.error.code, validation.error.message, 2);\n }\n\n const discovery = input.descriptor as DiscoveryDescriptor;\n const subject = resourceUrlFromPlan(input.podRoot, validation.plan);\n return {\n index: input.index,\n ok: true,\n code: input.commit ? 'committed' : 'plan_ready',\n operation: input.row.op ?? 'upsert',\n schema: input.descriptor.uri,\n subject,\n resourceUrl: documentResourceInput(subject),\n planId: validation.plan.id,\n resourceId: validation.plan.resourceId,\n resourceUri: validation.plan.resourceUri,\n documentPathPolicy: discovery.documentPathPolicy ?? null,\n match: redactDescriptorObject(input.descriptor, input.row.match ?? {}),\n set: redactDescriptorObject(input.descriptor, input.row.set ?? {}),\n };\n}\n\nexport async function executeRows(input: {\n argv: ObjArgs;\n rows: ObjMutationRow[];\n defaultSchema?: string;\n commit: boolean;\n}): Promise<ItemResult[]> {\n const context = await resolveObjMutationContext(input.argv, input.commit);\n const items: ItemResult[] = [];\n for (const [ index, originalRow ] of input.rows.entries()) {\n const row = {\n ...originalRow,\n schema: originalRow.schema ?? input.defaultSchema,\n };\n try {\n const shouldCommitToPod = input.commit && !context.pendingOnly;\n const item = row.schema\n ? await executeDescriptorRow(context, row, index, shouldCommitToPod)\n : await executeRawRow(context, row, index, shouldCommitToPod);\n if (context.pendingOnly && input.commit) {\n const outboxPath = context.outboxPath ?? getObjLocalOutboxPath();\n appendObjLocalOutbox({\n kind: 'xpod.obj.mutation',\n version: 1,\n status: 'pending',\n createdAt: new Date().toISOString(),\n webId: context.webId,\n podRoot: context.podRoot,\n row,\n item,\n }, outboxPath);\n items.push({\n ...item,\n code: 'pending_local',\n pendingLocal: true,\n outboxPath,\n warnings: [\n ...((Array.isArray(item.warnings) ? item.warnings : []) as unknown[]),\n context.pendingWarning,\n ],\n });\n continue;\n }\n items.push(context.planningOnly\n ? {\n ...item,\n planningOnly: true,\n warnings: [\n ...((Array.isArray(item.warnings) ? item.warnings : []) as unknown[]),\n context.planningWarning,\n ],\n }\n : item);\n } catch (error) {\n const err = error instanceof CliCommandError\n ? error\n : new CliCommandError('error', error instanceof Error ? error.message : String(error));\n items.push({ index, ok: false, code: err.code, message: err.message });\n }\n }\n return items;\n}\n\nexport function mutationItemsResultCode(items: ItemResult[], commit: boolean): 'plan_ready' | 'committed' | 'pending_local' | 'partial_failure' {\n if (!items.every((item) => item.ok)) return 'partial_failure';\n if (items.some((item) => item.code === 'pending_local')) return 'pending_local';\n return commit ? 'committed' : 'plan_ready';\n}\n\nfunction printItems(items: ItemResult[]): void {\n for (const item of items) {\n console.log(`${item.index}\\t${item.ok ? item.code : `ERROR ${item.code}`}\\t${String(item.subject ?? item.resourceUrl ?? item.message ?? '')}`);\n }\n}\n\nconst schemasCommand: CommandModule<object, ObjSchemasArgs> = {\n command: 'schemas',\n describe: 'List model-backed object schemas available to AI tools',\n builder: (yargs) =>\n objOptions<ObjSchemasArgs>(yargs)\n .option('domain', { type: 'string', description: 'Filter schemas by domain such as capture or symphony' }),\n handler: async (argv) => {\n try {\n const schemas = listSchemaDescriptors({ domain: argv.domain });\n if (argv.json) {\n writeJsonResult({ schemas }, 'schemas');\n return;\n }\n for (const descriptor of schemas) {\n console.log(`${String(descriptor.alias)}\\t${String(descriptor.schema)}\\t${String(descriptor.resourceKind)}`);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst describeCommand: CommandModule<object, ObjDescribeArgs> = {\n command: 'describe <schema>',\n describe: 'Describe one model-backed object schema by URI or alias',\n builder: (yargs) =>\n objOptions<ObjDescribeArgs>(yargs)\n .positional('schema', { type: 'string', demandOption: true, description: 'Schema URI or descriptor alias' }),\n handler: async (argv) => {\n try {\n const descriptor = describeSchemaDescriptor(argv.schema);\n if (!descriptor) {\n throw new CliCommandError('schema_unknown', `Schema is not known by @undefineds.co/models: ${argv.schema}`, 2);\n }\n if (argv.json) {\n writeJsonResult({ descriptor }, 'schema');\n return;\n }\n console.log(JSON.stringify(descriptor, null, 2));\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst importCommand: CommandModule<object, ObjImportArgs> = {\n command: 'import <file>',\n describe: 'Import descriptor-backed or explicit raw JSONL rows',\n builder: (yargs) =>\n objOptions<ObjImportArgs>(yargs)\n .positional('file', { type: 'string', demandOption: true, description: 'JSONL file to import, or - for stdin' })\n .option('dry-run', { type: 'boolean', description: 'Validate and print a plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the validated mutations' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const items = await executeRows({\n argv,\n rows: await readJsonl(argv.file),\n commit: argv.commit === true,\n });\n const code = mutationItemsResultCode(items, argv.commit === true);\n if (argv.json) {\n writeJsonItems(items, code);\n return;\n }\n printItems(items);\n if (!items.every((item) => item.ok)) process.exit(1);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst upsertCommand: CommandModule<object, ObjUpsertArgs> = {\n command: 'upsert',\n describe: 'Upsert descriptor-backed JSONL rows',\n builder: (yargs) =>\n objOptions<ObjUpsertArgs>(yargs)\n .option('schema', { type: 'string', demandOption: true, description: 'Schema URI or descriptor alias' })\n .option('from', { type: 'string', demandOption: true, description: 'JSONL file to read, or - for stdin' })\n .nargs('from', 1)\n .option('dry-run', { type: 'boolean', description: 'Validate and print a plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the validated mutations' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const items = await executeRows({\n argv,\n rows: await readJsonl(argv.from),\n defaultSchema: resolveDescriptor(argv.schema).uri,\n commit: argv.commit === true,\n });\n const code = mutationItemsResultCode(items, argv.commit === true);\n if (argv.json) {\n writeJsonItems(items, code);\n return;\n }\n printItems(items);\n if (!items.every((item) => item.ok)) process.exit(1);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst listCommand: CommandModule<object, ObjSelectorArgs> = {\n command: 'list',\n describe: 'List descriptor-backed objects',\n builder: (yargs) =>\n selectorOptions<ObjSelectorArgs>(yargs)\n .option('schema', { type: 'string', demandOption: true, description: 'Schema URI or descriptor alias' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, argv);\n const objects = await queryDescriptorObjects(context, selector);\n if (argv.json) {\n writeJsonResult({\n webId: context.webId,\n podRoot: context.podRoot,\n schema: selector.descriptor.uri,\n objects,\n });\n return;\n }\n for (const object of objects) {\n console.log(object.subject);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst exportCommand: CommandModule<object, ObjSelectorArgs> = {\n command: 'export <selector>',\n describe: 'Export descriptor-backed objects as JSONL',\n builder: (yargs) =>\n selectorOptions<ObjSelectorArgs>(yargs)\n .positional('selector', { type: 'string', demandOption: true, description: 'Schema URI/alias, subject, resource URL, or Pod-relative path selector' })\n .option('format', { type: 'string', choices: [ 'jsonl' ], default: 'jsonl', description: 'Export format' })\n .option('out', { type: 'string', description: 'Output file path' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, argv);\n const objects = await queryDescriptorObjects(context, selector);\n const jsonl = jsonlForObjects(objects);\n if (argv.out) {\n writeFileSync(argv.out, jsonl, 'utf-8');\n }\n if (argv.json) {\n writeJsonResult({\n webId: context.webId,\n podRoot: context.podRoot,\n schema: selector.descriptor.uri,\n count: objects.length,\n out: argv.out ?? null,\n ...(argv.out ? {} : { objects }),\n });\n return;\n }\n if (!argv.out) {\n process.stdout.write(jsonl);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst getCommand: CommandModule<object, ObjGetArgs> = {\n command: 'get',\n describe: 'Read one descriptor-backed object as JSON',\n builder: (yargs) =>\n objOptions<ObjGetArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('out', { type: 'string', description: 'Write JSON object to file' })\n .option('include-metadata', { type: 'boolean', default: true, description: 'Include etag/revision metadata when available' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, {\n ...argv,\n selector: undefined,\n limit: 1,\n format: 'jsonl',\n where: undefined,\n relation: undefined,\n status: undefined,\n });\n const objects = await queryDescriptorObjects(context, selector);\n const object = objects[0];\n if (!object) {\n throw new CliCommandError('object_not_found', `Object not found: ${argv.subject}`, 1);\n }\n const body = `${JSON.stringify(object, null, 2)}\\n`;\n if (argv.out) {\n writeFileSync(argv.out, body, 'utf-8');\n }\n if (argv.json) {\n writeJsonResult({ webId: context.webId, podRoot: context.podRoot, object, out: argv.out ?? null });\n return;\n }\n if (!argv.out) {\n process.stdout.write(body);\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst patchCommand: CommandModule<object, ObjPatchArgs> = {\n command: 'patch',\n describe: 'Patch one descriptor-backed object field set',\n builder: (yargs) =>\n objOptions<ObjPatchArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias. Required if the subject document cannot be inferred.' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('set', { type: 'string', demandOption: true, description: 'JSON object of descriptor field values to set' })\n .option('if-match', { type: 'string', description: 'If-Match header for stale-write protection' })\n .option('dry-run', { type: 'boolean', description: 'Print the mutation plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the mutation' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const data = await executePatchCommand(argv);\n if (argv.json) {\n writeJsonResult(data, argv['dry-run'] ? 'plan_ready' : 'committed');\n return;\n }\n console.log(argv['dry-run'] ? JSON.stringify(data.plan, null, 2) : `PATCH ${String(data.resourceUrl)} -> HTTP ${String(data.status)}`);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst linkCommand: CommandModule<object, ObjLinkArgs> = {\n command: 'link',\n describe: 'Link one descriptor-backed object to another URI',\n builder: (yargs) =>\n objOptions<ObjLinkArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias when --predicate is a descriptor field' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('predicate', { type: 'string', demandOption: true, description: 'Predicate URI or descriptor field' })\n .option('object', { type: 'string', demandOption: true, description: 'Object URI to link' })\n .option('if-match', { type: 'string', description: 'If-Match header for stale-write protection' })\n .option('dry-run', { type: 'boolean', description: 'Print the mutation plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the mutation' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const data = await executeLinkCommand(argv);\n if (argv.json) {\n writeJsonResult(data, argv['dry-run'] ? 'plan_ready' : 'committed');\n return;\n }\n console.log(argv['dry-run'] ? JSON.stringify(data.plan, null, 2) : `LINK ${String(data.resourceUrl)} -> HTTP ${String(data.status)}`);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst deleteCommand: CommandModule<object, ObjDeleteArgs> = {\n command: 'delete',\n describe: 'Delete triples for one descriptor-backed object subject',\n builder: (yargs) =>\n objOptions<ObjDeleteArgs>(yargs)\n .option('schema', { type: 'string', description: 'Schema URI or descriptor alias. Required if the subject document cannot be inferred.' })\n .option('subject', { type: 'string', demandOption: true, description: 'Object subject URI or Pod-relative subject' })\n .option('if-match', { type: 'string', description: 'If-Match header for stale-write protection' })\n .option('dry-run', { type: 'boolean', description: 'Print the mutation plan without writing' })\n .option('commit', { type: 'boolean', description: 'Commit the mutation' })\n .check(mutationModeCheck),\n handler: async (argv) => {\n try {\n const data = await executeDeleteCommand(argv);\n if (argv.json) {\n writeJsonResult(data, argv['dry-run'] ? 'plan_ready' : 'committed');\n return;\n }\n console.log(argv['dry-run'] ? JSON.stringify(data.plan, null, 2) : `DELETE ${String(data.resourceUrl)} -> HTTP ${String(data.status)}`);\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nconst watchCommand: CommandModule<object, ObjSelectorArgs> = {\n command: 'watch <selector>',\n describe: 'Stream descriptor-backed object changes as JSONL snapshots',\n builder: (yargs) =>\n selectorOptions<ObjSelectorArgs>(yargs)\n .positional('selector', { type: 'string', demandOption: true, description: 'Schema URI/alias, subject, resource URL, or Pod-relative path selector' })\n .option('format', { type: 'string', choices: [ 'jsonl' ], default: 'jsonl', description: 'Watch stream format' })\n .option('since', { type: 'string', description: 'Opaque cursor from a previous watch stream' }),\n handler: async (argv) => {\n try {\n const context = await requireAuthContext(argv);\n const selector = await resolveObjectSelector(context, argv);\n const objects = await queryDescriptorObjects(context, selector);\n const metadata = {\n cursorDurable: false,\n since: argv.since ?? null,\n cursor: null,\n message: 'Durable object cursors are not available; reconcile with a fresh obj list/export snapshot.',\n };\n if (argv.json) {\n writeJsonResult({ metadata, objects }, 'watch_snapshot');\n return;\n }\n console.log(JSON.stringify({ ok: true, code: 'cursor_unavailable', metadata }));\n for (const [ index, object ] of objects.entries()) {\n console.log(JSON.stringify({\n index,\n ok: true,\n code: 'snapshot',\n change: 'snapshot',\n ...object,\n }));\n }\n } catch (error) {\n handleCliError(error, argv.json);\n }\n },\n};\n\nexport const objCommand: CommandModule<object, ObjArgs> = {\n command: 'obj',\n describe: 'Descriptor-backed object transport',\n builder: (yargs) =>\n (yargs\n .command(schemasCommand)\n .command(describeCommand)\n .command(exportCommand)\n .command(importCommand)\n .command(getCommand)\n .command(listCommand)\n .command(upsertCommand)\n .command(patchCommand)\n .command(linkCommand)\n .command(deleteCommand)\n .command(watchCommand)\n .demandCommand(1, 'Please specify an object subcommand') as unknown as Argv<ObjArgs>),\n handler: () => {},\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@undefineds.co/xpod",
3
- "version": "0.3.57",
3
+ "version": "0.3.58",
4
4
  "description": "Xpod is an extended Community Solid Server, offering rich-feature, production-level Solid Pod and identity management.",
5
5
  "repository": "https://github.com/undefinedsco/xpod",
6
6
  "author": "developer@undefineds.co",