@milaboratories/pl-middle-layer 1.29.1 → 1.29.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -32,16 +32,16 @@ import { AnyChannel as Se, StableChannel as ce, InitialBlockSettings as zt, bloc
32
32
  export * from "@milaboratories/pl-model-middle-layer";
33
33
  export * from "@milaboratories/pl-deployments";
34
34
  import { request as Ft, RetryAgent as Ds } from "undici";
35
- import { RegistryV1 as pe, tryLoadPackDescription as vt, BlockPackMetaEmbedAbsoluteBytes as Ns, RegistryV2Reader as Bs, folderReaderByUrl as xs, loadPackDescription as qt } from "@platforma-sdk/block-tools";
35
+ import { RegistryV1 as pe, tryLoadPackDescription as vt, BlockPackMetaEmbedAbsoluteBytes as Ns, RegistryV2Reader as Bs, folderReaderByUrl as xs, loadPackDescription as Xt } from "@platforma-sdk/block-tools";
36
36
  import Y from "node:fs";
37
37
  import _ from "node:path";
38
38
  import js from "yaml";
39
39
  import { assertNever as K, notEmpty as B, ConsoleLoggerAdapter as Vs, ConcurrencyLimitingExecutor as Us, HmacSha256Signer as Gr } from "@milaboratories/ts-helpers";
40
40
  import * as Mr from "node:fs/promises";
41
41
  import { tryResolve as Js } from "@milaboratories/resolve-helper";
42
- import { resourceTypesEqual as le, field as x, Pl as A, PlClient as Gs, isNullResourceId as Xe, ensureResourceIdNotNull as yt, isResource as Ms, isResourceRef as _s, isNotNullResourceId as Xt, resourceType as Le, resourceTypeToString as Ks, resourceIdToString as _r, isNotFoundError as Hs, isTimeoutOrCancelError as Ws, toGlobalResourceId as zs, plAddressToConfig as qs, UnauthenticatedPlClient as Yt } from "@milaboratories/pl-client";
42
+ import { resourceTypesEqual as le, field as x, Pl as A, PlClient as Gs, isNullResourceId as qe, ensureResourceIdNotNull as yt, isResource as Ms, isResourceRef as _s, isNotNullResourceId as qt, resourceType as Le, resourceTypeToString as Ks, resourceIdToString as _r, isNotFoundError as Hs, isTimeoutOrCancelError as Ws, toGlobalResourceId as zs, plAddressToConfig as Xs, UnauthenticatedPlClient as Yt } from "@milaboratories/pl-client";
43
43
  export * from "@milaboratories/pl-client";
44
- import { SynchronizedTreeState as Kr, PlError as Xs, isPlTreeNodeAccessor as Ys } from "@milaboratories/pl-tree";
44
+ import { SynchronizedTreeState as Kr, PlError as qs, isPlTreeNodeAccessor as Ys } from "@milaboratories/pl-tree";
45
45
  import { Computable as J, ChangeSource as Qt, PollComputablePool as Qs, WatchableValue as Zs } from "@milaboratories/computable";
46
46
  import { randomUUID as Ie, createHash as De } from "node:crypto";
47
47
  import { parseTemplate as eo, PlTemplateV1 as ae, PlTemplateOverrideV1 as at, PlTemplateLibV1 as je, PlTemplateSoftwareV1 as be } from "@milaboratories/pl-model-backend";
@@ -65,12 +65,12 @@ async function er(s) {
65
65
  throw e;
66
66
  }
67
67
  }
68
- const yo = [pe.PlPackageYamlConfigFile], So = [pe.PlPackageJsonConfigFile], It = ["backend", "dist", "tengo", "tpl", "main.plj.gz"], At = ["config", "dist", "config.json"], qr = ["frontend", "dist"], tr = "block-model/dist/config.json", wo = "block-ui/package.json", bo = [
68
+ const yo = [pe.PlPackageYamlConfigFile], So = [pe.PlPackageJsonConfigFile], It = ["backend", "dist", "tengo", "tpl", "main.plj.gz"], At = ["config", "dist", "config.json"], Xr = ["frontend", "dist"], tr = "block-model/dist/config.json", wo = "block-ui/package.json", bo = [
69
69
  It,
70
70
  At,
71
71
  yo,
72
72
  So,
73
- qr
73
+ Xr
74
74
  ];
75
75
  async function Ro(s) {
76
76
  return await er(_.join(s, ...At)) !== void 0 || await er(_.join(s, ...It)) !== void 0;
@@ -85,7 +85,7 @@ async function rr(s, e) {
85
85
  return {
86
86
  workflow: _.join(s, ...It),
87
87
  config: _.join(s, ...At),
88
- ui: _.join(s, ...qr)
88
+ ui: _.join(s, ...Xr)
89
89
  };
90
90
  {
91
91
  const t = ct(s, tr), r = ct(s, tr), o = ct(s, wo);
@@ -110,7 +110,7 @@ async function Eo(s) {
110
110
  throw e;
111
111
  }
112
112
  }
113
- async function Xr(s) {
113
+ async function qr(s) {
114
114
  let e = 0n;
115
115
  for (const t of bo) {
116
116
  const r = _.join(s, ...t), o = await Eo(r);
@@ -190,7 +190,7 @@ class Ql {
190
190
  _.join(n, pe.PlPackageYamlConfigFile)
191
191
  );
192
192
  if (i !== void 0) {
193
- const a = pe.PlPackageConfigData.parse(js.parse(i)), c = await Xr(n), u = {
193
+ const a = pe.PlPackageConfigData.parse(js.parse(i)), c = await qr(n), u = {
194
194
  organization: a.organization,
195
195
  name: a.package,
196
196
  version: "DEV"
@@ -389,7 +389,7 @@ function zo(s, e) {
389
389
  const t = eo(e.content), r = t.type;
390
390
  switch (r) {
391
391
  case "pl.tengo-template.v2":
392
- return qo(s, t);
392
+ return Xo(s, t);
393
393
  default:
394
394
  K(r);
395
395
  }
@@ -454,7 +454,7 @@ const nr = {
454
454
  return e.createField(n, "Service"), e.setField(n, r), e.lock(o), o;
455
455
  }
456
456
  };
457
- function qo(s, e) {
457
+ function Xo(s, e) {
458
458
  const t = /* @__PURE__ */ new Map(), r = (o, n) => {
459
459
  const i = De("sha256");
460
460
  n.hash(o, i);
@@ -467,7 +467,7 @@ function qo(s, e) {
467
467
  };
468
468
  return r(e, ts);
469
469
  }
470
- const Xo = { name: "TengoTemplateGet", version: "1" }, Yo = "registry", Qo = "templateURI", Zo = "template", ru = { name: "TengoTemplatePack", version: "1" }, su = {
470
+ const qo = { name: "TengoTemplateGet", version: "1" }, Yo = "registry", Qo = "templateURI", Zo = "template", ru = { name: "TengoTemplatePack", version: "1" }, su = {
471
471
  name: "TengoTemplatePackConvert",
472
472
  version: "1"
473
473
  }, ou = "templatePack", nu = "template";
@@ -486,7 +486,7 @@ async function en(s) {
486
486
  }
487
487
  }
488
488
  function tn(s, e) {
489
- const t = s.createStruct(Xo), r = x(t, Yo), o = x(t, Qo), n = x(t, Zo);
489
+ const t = s.createStruct(qo), r = x(t, Yo), o = x(t, Qo), n = x(t, Zo);
490
490
  return s.setField(r, s.createValue(A.JsonString, Buffer.from(JSON.stringify(e.registry)))), s.setField(o, s.createValue(A.JsonString, Buffer.from(JSON.stringify(e.path)))), n;
491
491
  }
492
492
  function Dt(s, e) {
@@ -554,7 +554,7 @@ class nn {
554
554
  return JSON.parse(r);
555
555
  }
556
556
  case "dev-v2": {
557
- const t = await qt(e.folder), r = await Y.promises.readFile(t.components.model.file, {
557
+ const t = await Xt(e.folder), r = await Y.promises.readFile(t.components.model.file, {
558
558
  encoding: "utf-8"
559
559
  });
560
560
  return JSON.parse(r);
@@ -595,7 +595,7 @@ class nn {
595
595
  };
596
596
  }
597
597
  case "dev-v2": {
598
- const t = await qt(e.folder), r = JSON.parse(
598
+ const t = await Xt(e.folder), r = JSON.parse(
599
599
  await Y.promises.readFile(t.components.model.file, {
600
600
  encoding: "utf-8"
601
601
  })
@@ -750,7 +750,7 @@ function Pt(s) {
750
750
  }
751
751
  return t !== void 0 && (t.downstream = /* @__PURE__ */ new Set()), new is(e);
752
752
  }
753
- function qe(s, e) {
753
+ function Xe(s, e) {
754
754
  const t = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set();
755
755
  for (const { id: o } of oe(s)) {
756
756
  const n = e(o);
@@ -920,13 +920,13 @@ class Qe {
920
920
  return this.stagingGraph === void 0 && (this.stagingGraph = Pt(this.struct)), this.stagingGraph;
921
921
  }
922
922
  getPendingProductionGraph() {
923
- return this.pendingProductionGraph === void 0 && (this.pendingProductionGraph = qe(
923
+ return this.pendingProductionGraph === void 0 && (this.pendingProductionGraph = Xe(
924
924
  this.struct,
925
925
  (e) => this.getBlockInfo(e).currentInputs
926
926
  )), this.pendingProductionGraph;
927
927
  }
928
928
  getActualProductionGraph() {
929
- return this.actualProductionGraph === void 0 && (this.actualProductionGraph = qe(
929
+ return this.actualProductionGraph === void 0 && (this.actualProductionGraph = Xe(
930
930
  this.struct,
931
931
  (e) => this.getBlockInfo(e).actualProductionInputs
932
932
  )), this.actualProductionGraph;
@@ -1079,7 +1079,7 @@ class Qe {
1079
1079
  //
1080
1080
  /** Very generic method, better check for more specialized case-specific methods first. */
1081
1081
  updateStructure(e, t = pn) {
1082
- const r = this.getStagingGraph(), o = this.getActualProductionGraph(), n = Pt(e), i = qe(
1082
+ const r = this.getStagingGraph(), o = this.getActualProductionGraph(), n = Pt(e), i = Xe(
1083
1083
  e,
1084
1084
  (u) => {
1085
1085
  var l;
@@ -1308,16 +1308,16 @@ class Qe {
1308
1308
  y === void 0 && (y = {
1309
1309
  id: m.blockId,
1310
1310
  fields: {}
1311
- }, $.set(m.blockId, y)), y.fields[m.fieldName] = Xe(p.value) ? { modCount: 0 } : { modCount: 0, ref: p.value };
1311
+ }, $.set(m.blockId, y)), y.fields[m.fieldName] = qe(p.value) ? { modCount: 0 } : { modCount: 0, ref: p.value };
1312
1312
  }
1313
1313
  const G = await as(), fe = Ct(G.hash), L = d.fields.find(
1314
1314
  (p) => p.name === fe
1315
1315
  );
1316
- let q;
1317
- L !== void 0 ? q = yt(L.value) : (q = A.wrapInHolder(e, Dt(e, G.spec)), e.createField(
1316
+ let X;
1317
+ L !== void 0 ? X = yt(L.value) : (X = A.wrapInHolder(e, Dt(e, G.spec)), e.createField(
1318
1318
  x(t, Ct(G.hash)),
1319
1319
  "Dynamic",
1320
- q
1320
+ X
1321
1321
  ));
1322
1322
  const ie = { stagingRefreshTimestamp: D }, W = new Set(T), M = /* @__PURE__ */ new Map();
1323
1323
  for (const p of j) {
@@ -1335,17 +1335,17 @@ class Qe {
1335
1335
  });
1336
1336
  for (const [p, m] of V) {
1337
1337
  const y = await m;
1338
- p.value = y.data, Xt(y.error) ? p.status = "Error" : y.resourceReady || Xt(y.originalResourceId) ? p.status = "Ready" : p.status = "NotReady";
1338
+ p.value = y.data, qt(y.error) ? p.status = "Error" : y.resourceReady || qt(y.originalResourceId) ? p.status = "Ready" : p.status = "NotReady";
1339
1339
  }
1340
- const X = /* @__PURE__ */ new Map();
1341
- $.forEach(({ id: p, fields: m }) => X.set(p, new lr(p, m)));
1340
+ const q = /* @__PURE__ */ new Map();
1341
+ $.forEach(({ id: p, fields: m }) => q.set(p, new lr(p, m)));
1342
1342
  const ge = /* @__PURE__ */ new Set();
1343
1343
  for (const p of oe(g)) {
1344
- if (!X.has(p.id))
1344
+ if (!q.has(p.id))
1345
1345
  throw new Error(`Inconsistent project structure: no inputs for ${p.id}`);
1346
1346
  ge.add(p.id);
1347
1347
  }
1348
- X.forEach((p) => {
1348
+ q.forEach((p) => {
1349
1349
  if (!ge.has(p.id))
1350
1350
  throw new Error(`Inconsistent project structure: no structure entry for ${p.id}`);
1351
1351
  p.check();
@@ -1360,9 +1360,9 @@ class Qe {
1360
1360
  g,
1361
1361
  ie,
1362
1362
  W,
1363
- X,
1363
+ q,
1364
1364
  M,
1365
- q
1365
+ X
1366
1366
  );
1367
1367
  return v.fixProblemsAndMigrate(), v;
1368
1368
  }
@@ -1549,7 +1549,7 @@ function Rn(s, e) {
1549
1549
  }
1550
1550
  function Cn(s, e) {
1551
1551
  const t = De("sha256");
1552
- return t.update(Z(s)), t.update(String(Xe(e.originalId) ? e.id : e.originalId)), t.digest().toString("hex");
1552
+ return t.update(Z(s)), t.update(String(qe(e.originalId) ? e.id : e.originalId)), t.digest().toString("hex");
1553
1553
  }
1554
1554
  function dr(s, e) {
1555
1555
  return Z({ __isRef: !0, blockId: s, name: e });
@@ -1606,7 +1606,7 @@ function Pn(s, e = !0, t = "", r) {
1606
1606
  throw new Error(`no data for key ${i}`);
1607
1607
  const c = a.data();
1608
1608
  if (c === void 0) throw new Error(`no data for key ${i}`);
1609
- if (!c.ok) throw new Xs(c.error);
1609
+ if (!c.ok) throw new qs(c.error);
1610
1610
  n[i] = {
1611
1611
  id: r.length === 0 ? Cn(a.spec, c.value) : En(r, i),
1612
1612
  spec: a.spec,
@@ -2073,13 +2073,13 @@ const Gn = (s) => P(s), Mn = (s) => {
2073
2073
  type: "ScheduleComputable",
2074
2074
  computable: r.blobToURLDriver.extractArchiveAndGetURL(t, s)
2075
2075
  });
2076
- }, qn = (s) => {
2076
+ }, Xn = (s) => {
2077
2077
  const e = s.source;
2078
2078
  return e === void 0 ? P(void 0) : ({ drivers: t }) => ({
2079
2079
  type: "ScheduleComputable",
2080
2080
  computable: t.uploadDriver.getProgressId(e)
2081
2081
  });
2082
- }, Xn = (s) => (e) => {
2082
+ }, qn = (s) => (e) => {
2083
2083
  const t = e.source;
2084
2084
  return t === void 0 ? P(void 0) : ({ drivers: r }) => ({
2085
2085
  type: "ScheduleComputable",
@@ -2272,7 +2272,7 @@ function k(s, e) {
2272
2272
  case "GetImportProgress":
2273
2273
  return () => ({
2274
2274
  type: "ScheduleSubroutine",
2275
- subroutine: qn,
2275
+ subroutine: Xn,
2276
2276
  args: {
2277
2277
  source: k(s, e.source)
2278
2278
  }
@@ -2280,7 +2280,7 @@ function k(s, e) {
2280
2280
  case "GetLastLogs":
2281
2281
  return () => ({
2282
2282
  type: "ScheduleSubroutine",
2283
- subroutine: Xn(e.lines),
2283
+ subroutine: qn(e.lines),
2284
2284
  args: {
2285
2285
  source: k(s, e.source)
2286
2286
  }
@@ -2993,7 +2993,7 @@ function li(s, e, t) {
2993
2993
  o.getKeyValueAsJson(Ye)
2994
2994
  ), l = /* @__PURE__ */ new Map();
2995
2995
  for (const { id: L } of oe(c)) {
2996
- const q = o.traverse({
2996
+ const X = o.traverse({
2997
2997
  field: U(L, "currentArgs"),
2998
2998
  assertFieldType: "Dynamic",
2999
2999
  errorIfFieldNotSet: !0
@@ -3016,21 +3016,21 @@ function li(s, e, t) {
3016
3016
  });
3017
3017
  ie = {
3018
3018
  arguments: W.getDataAsJson(),
3019
- stale: q.id !== W.id,
3019
+ stale: X.id !== W.id,
3020
3020
  outputError: M.error !== void 0 || V.error !== void 0 || ((C = M.value) == null ? void 0 : C.getError()) !== void 0 || ((g = V.value) == null ? void 0 : g.getError()) !== void 0,
3021
3021
  outputsError: ((D = M.error) == null ? void 0 : D.getDataAsString()) ?? ((j = (T = M.value) == null ? void 0 : T.getError()) == null ? void 0 : j.getDataAsString()),
3022
3022
  exportsError: (($ = V.error) == null ? void 0 : $.getDataAsString()) ?? ((fe = (G = V.value) == null ? void 0 : G.getError()) == null ? void 0 : fe.getDataAsString()),
3023
3023
  finished: (M.value !== void 0 && M.value.getIsReadyOrError() || M.error !== void 0 && M.error.getIsReadyOrError()) && (V.value !== void 0 && V.value.getIsReadyOrError() || V.error !== void 0 && V.error.getIsReadyOrError())
3024
3024
  };
3025
3025
  }
3026
- l.set(L, { currentArguments: q.getDataAsJson(), prod: ie });
3026
+ l.set(L, { currentArguments: X.getDataAsJson(), prod: ie });
3027
3027
  }
3028
- const d = qe(c, (L) => l.get(L).currentArguments), f = new Set(u.blocksInLimbo), h = [...oe(c)].map(({ id: L, label: q, renderingMode: ie }) => {
3028
+ const d = Xe(c, (L) => l.get(L).currentArguments), f = new Set(u.blocksInLimbo), h = [...oe(c)].map(({ id: L, label: X, renderingMode: ie }) => {
3029
3029
  var S, R, O, E, I;
3030
3030
  const W = B(l.get(L)), M = B(d.nodes.get(L));
3031
3031
  let V = "NotCalculated";
3032
3032
  W.prod !== void 0 && (f.has(L) ? V = "Limbo" : V = W.prod.finished ? "Done" : "Running");
3033
- const X = tt(o, L), { sections: ge, title: v, inputsValid: p, sdkVersion: m } = Oe(X, ({ bpId: N, cfg: F }) => {
3033
+ const q = tt(o, L), { sections: ge, title: v, inputsValid: p, sdkVersion: m } = Oe(q, ({ bpId: N, cfg: F }) => {
3034
3034
  const ne = Bt(s, L);
3035
3035
  return {
3036
3036
  sections: $e(
@@ -3064,13 +3064,13 @@ function li(s, e, t) {
3064
3064
  assertFieldType: "Dynamic",
3065
3065
  errorIfFieldNotSet: !0
3066
3066
  }).getDataAsJson(), b = Oe(
3067
- X,
3067
+ q,
3068
3068
  ({ info: N }) => t.blockUpdateWatcher.get({ currentSpec: N.source, settings: y })
3069
3069
  );
3070
3070
  return {
3071
3071
  id: L,
3072
- label: v ?? q,
3073
- title: v ?? q,
3072
+ label: v ?? X,
3073
+ title: v ?? X,
3074
3074
  renderingMode: ie,
3075
3075
  stale: ((S = W.prod) == null ? void 0 : S.stale) !== !1 || V === "Limbo",
3076
3076
  missingReference: M.missingReferences,
@@ -3084,7 +3084,7 @@ function li(s, e, t) {
3084
3084
  sections: ge,
3085
3085
  inputsValid: p,
3086
3086
  updateInfo: {},
3087
- currentBlockPack: (I = X == null ? void 0 : X.info) == null ? void 0 : I.source,
3087
+ currentBlockPack: (I = q == null ? void 0 : q.info) == null ? void 0 : I.source,
3088
3088
  updates: b,
3089
3089
  sdkVersion: m,
3090
3090
  navigationState: e.getState(L)
@@ -3847,8 +3847,8 @@ const Mi = H, _i = (s, e) => new Mi(s, e).major;
3847
3847
  var Ki = _i;
3848
3848
  const Hi = H, Wi = (s, e) => new Hi(s, e).minor;
3849
3849
  var zi = Wi;
3850
- const qi = H, Xi = (s, e) => new qi(s, e).patch;
3851
- var Yi = Xi;
3850
+ const Xi = H, qi = (s, e) => new Xi(s, e).patch;
3851
+ var Yi = qi;
3852
3852
  const Qi = we, Zi = (s, e) => {
3853
3853
  const t = Qi(s, e);
3854
3854
  return t && t.prerelease.length ? t.prerelease : null;
@@ -4001,7 +4001,7 @@ function te() {
4001
4001
  if (b)
4002
4002
  return b;
4003
4003
  const S = this.options.loose, R = S ? c[u.HYPHENRANGELOOSE] : c[u.HYPHENRANGE];
4004
- p = p.replace(R, X(this.options.includePrerelease)), i("hyphen replace", p), p = p.replace(c[u.COMPARATORTRIM], l), i("comparator trim", p), p = p.replace(c[u.TILDETRIM], d), i("tilde trim", p), p = p.replace(c[u.CARETTRIM], f), i("caret trim", p);
4004
+ p = p.replace(R, q(this.options.includePrerelease)), i("hyphen replace", p), p = p.replace(c[u.COMPARATORTRIM], l), i("comparator trim", p), p = p.replace(c[u.TILDETRIM], d), i("tilde trim", p), p = p.replace(c[u.CARETTRIM], f), i("caret trim", p);
4005
4005
  let O = p.split(" ").map((F) => j(F, this.options)).join(" ").split(/\s+/).map((F) => V(F, this.options));
4006
4006
  S && (O = O.filter((F) => (i("loose invalid filter", F, this.options), !!F.match(c[u.COMPARATORLOOSE])))), i("range list", O);
4007
4007
  const E = /* @__PURE__ */ new Map(), I = O.map((F) => new n(F, this.options));
@@ -4056,7 +4056,7 @@ function te() {
4056
4056
  let E;
4057
4057
  return $(b) ? E = "" : $(S) ? E = `>=${b}.0.0 <${+b + 1}.0.0-0` : $(R) ? E = `>=${b}.${S}.0 <${b}.${+S + 1}.0-0` : O ? (i("replaceTilde pr", O), E = `>=${b}.${S}.${R}-${O} <${b}.${+S + 1}.0-0`) : E = `>=${b}.${S}.${R} <${b}.${+S + 1}.0-0`, i("tilde return", E), E;
4058
4058
  });
4059
- }, L = (v, p) => v.trim().split(/\s+/).map((m) => q(m, p)).join(" "), q = (v, p) => {
4059
+ }, L = (v, p) => v.trim().split(/\s+/).map((m) => X(m, p)).join(" "), X = (v, p) => {
4060
4060
  i("caret", v, p);
4061
4061
  const m = p.loose ? c[u.CARETLOOSE] : c[u.CARET], y = p.includePrerelease ? "-0" : "";
4062
4062
  return v.replace(m, (b, S, R, O, E) => {
@@ -4072,7 +4072,7 @@ function te() {
4072
4072
  const I = $(S), N = I || $(R), F = N || $(O), ne = F;
4073
4073
  return b === "=" && ne && (b = ""), E = p.includePrerelease ? "-0" : "", I ? b === ">" || b === "<" ? y = "<0.0.0-0" : y = "*" : b && ne ? (N && (R = 0), O = 0, b === ">" ? (b = ">=", N ? (S = +S + 1, R = 0, O = 0) : (R = +R + 1, O = 0)) : b === "<=" && (b = "<", N ? S = +S + 1 : R = +R + 1), b === "<" && (E = "-0"), y = `${b + S}.${R}.${O}${E}`) : N ? y = `>=${S}.0.0${E} <${+S + 1}.0.0-0` : F && (y = `>=${S}.${R}.0${E} <${S}.${+R + 1}.0-0`), i("xRange return", y), y;
4074
4074
  });
4075
- }, M = (v, p) => (i("replaceStars", v, p), v.trim().replace(c[u.STAR], "")), V = (v, p) => (i("replaceGTE0", v, p), v.trim().replace(c[p.includePrerelease ? u.GTE0PRE : u.GTE0], "")), X = (v) => (p, m, y, b, S, R, O, E, I, N, F, ne) => ($(y) ? m = "" : $(b) ? m = `>=${y}.0.0${v ? "-0" : ""}` : $(S) ? m = `>=${y}.${b}.0${v ? "-0" : ""}` : R ? m = `>=${m}` : m = `>=${m}${v ? "-0" : ""}`, $(I) ? E = "" : $(N) ? E = `<${+I + 1}.0.0-0` : $(F) ? E = `<${I}.${+N + 1}.0-0` : ne ? E = `<=${I}.${N}.${F}-${ne}` : v ? E = `<${I}.${N}.${+F + 1}-0` : E = `<=${E}`, `${m} ${E}`.trim()), ge = (v, p, m) => {
4075
+ }, M = (v, p) => (i("replaceStars", v, p), v.trim().replace(c[u.STAR], "")), V = (v, p) => (i("replaceGTE0", v, p), v.trim().replace(c[p.includePrerelease ? u.GTE0PRE : u.GTE0], "")), q = (v) => (p, m, y, b, S, R, O, E, I, N, F, ne) => ($(y) ? m = "" : $(b) ? m = `>=${y}.0.0${v ? "-0" : ""}` : $(S) ? m = `>=${y}.${b}.0${v ? "-0" : ""}` : R ? m = `>=${m}` : m = `>=${m}${v ? "-0" : ""}`, $(I) ? E = "" : $(N) ? E = `<${+I + 1}.0.0-0` : $(F) ? E = `<${I}.${+N + 1}.0-0` : ne ? E = `<=${I}.${N}.${F}-${ne}` : v ? E = `<${I}.${N}.${+F + 1}-0` : E = `<=${E}`, `${m} ${E}`.trim()), ge = (v, p, m) => {
4076
4076
  for (let y = 0; y < v.length; y++)
4077
4077
  if (!v[y].test(p))
4078
4078
  return !1;
@@ -4159,15 +4159,15 @@ const Ka = H, Ha = te(), Wa = (s, e, t) => {
4159
4159
  }), r;
4160
4160
  };
4161
4161
  var za = Wa;
4162
- const qa = H, Xa = te(), Ya = (s, e, t) => {
4162
+ const Xa = H, qa = te(), Ya = (s, e, t) => {
4163
4163
  let r = null, o = null, n = null;
4164
4164
  try {
4165
- n = new Xa(e, t);
4165
+ n = new qa(e, t);
4166
4166
  } catch {
4167
4167
  return null;
4168
4168
  }
4169
4169
  return s.forEach((i) => {
4170
- n.test(i) && (!r || o.compare(i) === 1) && (r = i, o = new qa(r, t));
4170
+ n.test(i) && (!r || o.compare(i) === 1) && (r = i, o = new Xa(r, t));
4171
4171
  }), r;
4172
4172
  };
4173
4173
  var Qa = Ya;
@@ -4338,7 +4338,7 @@ const Ir = te(), _t = nt(), { ANY: ft } = _t, Re = it, Kt = ee, Cc = (s, e, t =
4338
4338
  return r < 0 ? s : r > 0 || e.operator === "<" && s.operator === "<=" ? e : s;
4339
4339
  };
4340
4340
  var kc = Cc;
4341
- const gt = Ne, Dr = rt, Oc = H, Nr = ws, $c = we, Fc = Ni, Ic = ji, Ac = Ui, Tc = Gi, Lc = Ki, Dc = zi, Nc = Yi, Bc = ea, xc = ee, jc = oa, Vc = aa, Uc = Vt, Jc = da, Gc = fa, Mc = ot, _c = Ut, Kc = bs, Hc = Rs, Wc = Jt, zc = Gt, qc = Cs, Xc = xa, Yc = nt(), Qc = te(), Zc = it, el = _a, tl = za, rl = Qa, sl = tc, ol = oc, nl = Mt, il = fc, al = vc, cl = Sc, ll = Rc, ul = kc;
4341
+ const gt = Ne, Dr = rt, Oc = H, Nr = ws, $c = we, Fc = Ni, Ic = ji, Ac = Ui, Tc = Gi, Lc = Ki, Dc = zi, Nc = Yi, Bc = ea, xc = ee, jc = oa, Vc = aa, Uc = Vt, Jc = da, Gc = fa, Mc = ot, _c = Ut, Kc = bs, Hc = Rs, Wc = Jt, zc = Gt, Xc = Cs, qc = xa, Yc = nt(), Qc = te(), Zc = it, el = _a, tl = za, rl = Qa, sl = tc, ol = oc, nl = Mt, il = fc, al = vc, cl = Sc, ll = Rc, ul = kc;
4342
4342
  var dl = {
4343
4343
  parse: $c,
4344
4344
  valid: Fc,
@@ -4361,8 +4361,8 @@ var dl = {
4361
4361
  neq: Hc,
4362
4362
  gte: Wc,
4363
4363
  lte: zc,
4364
- cmp: qc,
4365
- coerce: Xc,
4364
+ cmp: Xc,
4365
+ coerce: qc,
4366
4366
  Comparator: Yc,
4367
4367
  Range: Qc,
4368
4368
  satisfies: Zc,
@@ -4415,7 +4415,7 @@ class gl extends Qs {
4415
4415
  switch (n.type) {
4416
4416
  case "dev-v1":
4417
4417
  try {
4418
- const i = await Xr(n.folder);
4418
+ const i = await qr(n.folder);
4419
4419
  return i === n.mtime ? { suggestions: [] } : { mainSuggestion: { ...n, mtime: i }, suggestions: [] };
4420
4420
  } catch (i) {
4421
4421
  return this.logger.warn(i), { suggestions: [] };
@@ -4709,29 +4709,39 @@ class Sl {
4709
4709
  super(), this.pFrames = n;
4710
4710
  }
4711
4711
  createNewResource(n) {
4712
- const i = n.pFrameHandle, a = o.run(async () => {
4713
- if (se().logPFrameRequests && t.info(
4714
- `PTable creation (pTableHandle = ${this.calculateParamsKey(n)}): ${JSON.stringify(n, Pe)}`
4715
- ), se().usePFrameRs && xr(n.def.filters))
4716
- return await this.pFrames.getByKey(i).rustPFrame.createTable({
4717
- src: de(n.def.src),
4718
- filters: Ee(n.def.filters)
4719
- }, n.signal);
4720
- var c = [];
4712
+ const i = n.pFrameHandle;
4713
+ se().logPFrameRequests && t.info(
4714
+ `PTable creation (pTableHandle = ${this.calculateParamsKey(n)}): ${JSON.stringify(n, Pe)}`
4715
+ );
4716
+ const a = (async () => se().usePFrameRs && xr(n.def.filters) ? this.pFrames.getByKey(i).rustPFrame.createTable({
4717
+ src: de(n.def.src),
4718
+ filters: Ee(n.def.filters)
4719
+ }, n.signal).then(async (c) => {
4720
+ if (n.def.sorting.length > 0) {
4721
+ const u = await c.sort(n.def.sorting, n.signal);
4722
+ return c.dispose(), u;
4723
+ }
4724
+ return c;
4725
+ }) : o.run(async () => {
4726
+ var u = [];
4721
4727
  try {
4722
- const f = Be(c, this.pFrames.getByKey(i).disposableDataPFrame);
4723
- return await f.dataPFrame.createTable({
4728
+ const c = Be(u, this.pFrames.getByKey(i).disposableDataPFrame);
4729
+ return await c.dataPFrame.createTable({
4724
4730
  src: de(n.def.src),
4725
4731
  filters: Ee(n.def.filters)
4726
4732
  }, n.signal);
4727
- } catch (u) {
4728
- var l = u, d = !0;
4733
+ } catch (l) {
4734
+ var d = l, f = !0;
4729
4735
  } finally {
4730
- xe(c, l, d);
4736
+ xe(u, d, f);
4731
4737
  }
4732
- }).then(
4733
- async (c) => n.def.sorting.length !== 0 ? await c.sort(n.def.sorting, n.signal) : c
4734
- );
4738
+ }).then(async (c) => {
4739
+ if (n.def.sorting.length > 0) {
4740
+ const u = await o.run(async () => await c.sort(n.def.sorting, n.signal));
4741
+ return c.dispose(), u;
4742
+ }
4743
+ return c;
4744
+ }))();
4735
4745
  return new yl(a);
4736
4746
  }
4737
4747
  calculateParamsKey(n) {
@@ -4789,40 +4799,51 @@ class Sl {
4789
4799
  return await this.pFrames.getByKey(e).rustPFrame.listColumns();
4790
4800
  }
4791
4801
  async calculateTableData(e, t, r) {
4792
- let o = await this.concurrencyLimiter.run(async () => {
4793
- if (se().logPFrameRequests && this.logger.info(
4794
- `Call calculateTableData, handle = ${e}, request = ${JSON.stringify(t, Pe)}`
4795
- ), se().usePFrameRs && xr(t.filters))
4796
- return await this.pFrames.getByKey(e).rustPFrame.createTable({
4797
- src: de(t.src),
4798
- filters: Ee(t.filters)
4799
- }, r);
4800
- var a = [];
4802
+ return se().logPFrameRequests && this.logger.info(
4803
+ `Call calculateTableData, handle = ${e}, request = ${JSON.stringify(t, Pe)}`
4804
+ ), se().usePFrameRs && xr(t.filters) ? await this.pFrames.getByKey(e).rustPFrame.createTable({
4805
+ src: de(t.src),
4806
+ filters: Ee(t.filters)
4807
+ }, r).then(async (o) => {
4808
+ if (t.sorting.length > 0) {
4809
+ const n = await o.sort(t.sorting, r);
4810
+ return o.dispose(), n;
4811
+ }
4812
+ return o;
4813
+ }).then(async (o) => {
4814
+ const n = o.getSpec(), i = await o.getData([...n.keys()]);
4815
+ return o.dispose(), n.map((a, c) => ({
4816
+ spec: a,
4817
+ data: i[c]
4818
+ }));
4819
+ }) : await this.concurrencyLimiter.run(async () => {
4820
+ var n = [];
4801
4821
  try {
4802
- const d = Be(a, this.pFrames.getByKey(e).disposableDataPFrame);
4803
- return await d.dataPFrame.createTable({
4822
+ const o = Be(n, this.pFrames.getByKey(e).disposableDataPFrame);
4823
+ return await o.dataPFrame.createTable({
4804
4824
  src: de(t.src),
4805
4825
  filters: Ee(t.filters)
4806
4826
  }, r);
4807
- } catch (c) {
4808
- var u = c, l = !0;
4827
+ } catch (i) {
4828
+ var a = i, c = !0;
4809
4829
  } finally {
4810
- xe(a, u, l);
4830
+ xe(n, a, c);
4811
4831
  }
4812
- });
4813
- if (t.sorting.length > 0) {
4814
- const a = await this.concurrencyLimiter.run(
4815
- async () => await o.sort(t.sorting, r)
4832
+ }).then(async (o) => {
4833
+ if (t.sorting.length > 0) {
4834
+ const n = await this.concurrencyLimiter.run(async () => await o.sort(t.sorting, r));
4835
+ return o.dispose(), n;
4836
+ }
4837
+ return o;
4838
+ }).then(async (o) => {
4839
+ const n = o.getSpec(), i = await this.concurrencyLimiter.run(
4840
+ async () => await o.getData([...n.keys()])
4816
4841
  );
4817
- o.dispose(), o = a;
4818
- }
4819
- const n = o.getSpec(), i = await this.concurrencyLimiter.run(
4820
- async () => await o.getData([...n.keys()])
4821
- );
4822
- return o.dispose(), n.map((a, c) => ({
4823
- spec: a,
4824
- data: i[c]
4825
- }));
4842
+ return o.dispose(), n.map((a, c) => ({
4843
+ spec: a,
4844
+ data: i[c]
4845
+ }));
4846
+ });
4826
4847
  }
4827
4848
  async getUniqueValues(e, t, r) {
4828
4849
  return await this.concurrencyLimiter.run(async () => {
@@ -5017,7 +5038,7 @@ class Ps {
5017
5038
  async projectIdToResourceId(e) {
5018
5039
  return await this.pl.withReadTx("Project id to resource id", async (t) => {
5019
5040
  const r = (await t.getField(x(this.projectListResourceId, e))).value;
5020
- if (Xe(r)) throw new Error("Unexpected project list structure.");
5041
+ if (qe(r)) throw new Error("Unexpected project list structure.");
5021
5042
  return r;
5022
5043
  });
5023
5044
  }
@@ -5070,7 +5091,7 @@ class Ps {
5070
5091
  const D = x(g.clientRoot, xo);
5071
5092
  g.createField(D, "Dynamic");
5072
5093
  const T = await g.getField(D);
5073
- if (Xe(T.value)) {
5094
+ if (qe(T.value)) {
5074
5095
  const j = g.createEphemeral(Zr);
5075
5096
  return g.lock(j), g.setField(D, j), await g.commit(), await j.globalId;
5076
5097
  } else
@@ -5191,7 +5212,7 @@ async function iu(s, e = {}) {
5191
5212
  blockRegistryUiChecks: [],
5192
5213
  blockGARegistryUiChecks: [],
5193
5214
  autoUpdateCdnChecks: []
5194
- }, n = qs(s, { defaultRequestTimeout: t.pingTimeoutMs });
5215
+ }, n = Xs(s, { defaultRequestTimeout: t.pingTimeoutMs });
5195
5216
  o.plPings = await ve(t.pingCheckDurationMs, t.maxPingsPerSecond, async () => {
5196
5217
  const u = await new Yt(n).ping();
5197
5218
  return JSON.stringify(u).slice(0, t.bodyLimit) + "...";
@@ -5333,7 +5354,7 @@ export {
5333
5354
  rs as FrontendFromUrlResourceType,
5334
5355
  Ps as MiddleLayer,
5335
5356
  xt as Project,
5336
- Xo as TengoTemplateGet,
5357
+ qo as TengoTemplateGet,
5337
5358
  Yo as TengoTemplateGetRegistry,
5338
5359
  Zo as TengoTemplateGetTemplate,
5339
5360
  Qo as TengoTemplateGetTemplateURI,
@@ -5346,7 +5367,7 @@ export {
5346
5367
  Po as V2RegistryProvider,
5347
5368
  iu as checkNetwork,
5348
5369
  es as createRenderTemplate,
5349
- Xr as getDevV1PacketMtime,
5370
+ qr as getDevV1PacketMtime,
5350
5371
  Tt as getDevV2PacketMtime,
5351
5372
  Rl as initDriverKit,
5352
5373
  Dt as loadTemplate,