@fragment-dev/cli 2026.7.23-5 → 2026.7.24-1

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.
@@ -27,10 +27,10 @@ import {
27
27
  } from "./chunk-OAJCTIWT.js";
28
28
  import {
29
29
  VerifySchema
30
- } from "./chunk-5CRS5UWP.js";
30
+ } from "./chunk-VQMJIFLZ.js";
31
31
  import {
32
32
  GenGraphQL
33
- } from "./chunk-7M4MZK3I.js";
33
+ } from "./chunk-N6E4REXI.js";
34
34
  import {
35
35
  GetSchema
36
36
  } from "./chunk-7TNXITUF.js";
@@ -4681,6 +4681,31 @@ var BaseSchema = z.object({
4681
4681
  // ../../libs/schema-validation/utils/transformers/coa.ts
4682
4682
  init_cjs_shims();
4683
4683
 
4684
+ // ../../libs/schema-validation/utils/accountCategory.ts
4685
+ init_cjs_shims();
4686
+ var AccountCategoryMutualExclusionError = class extends Error {
4687
+ constructor(message) {
4688
+ super(message);
4689
+ this.name = "AccountCategoryMutualExclusionError";
4690
+ }
4691
+ };
4692
+ var getSchemaAccountCategory = ({
4693
+ payment,
4694
+ linkedAccount,
4695
+ clearing
4696
+ }) => {
4697
+ if ([payment, linkedAccount, clearing].filter(Boolean).length > 1) {
4698
+ throw new AccountCategoryMutualExclusionError();
4699
+ }
4700
+ if (payment)
4701
+ return "Payment" /* Payment */;
4702
+ if (linkedAccount)
4703
+ return "Linked" /* Linked */;
4704
+ if (clearing)
4705
+ return "Clearing" /* Clearing */;
4706
+ return "BaseLedger" /* BaseLedger */;
4707
+ };
4708
+
4684
4709
  // ../../libs/schema-validation/utils/consistencyValidation.ts
4685
4710
  init_cjs_shims();
4686
4711
  var isTotalBalanceSchema = (defaultConsistencyConfig) => {
@@ -4798,6 +4823,191 @@ var getEntryTypeVersion = ({
4798
4823
 
4799
4824
  // ../../libs/schema-validation/utils/transformers/account.ts
4800
4825
  init_cjs_shims();
4826
+
4827
+ // ../../node_modules/ts-pattern/dist/index.js
4828
+ init_cjs_shims();
4829
+ var t = Symbol.for("@ts-pattern/matcher");
4830
+ var e = Symbol.for("@ts-pattern/isVariadic");
4831
+ var n = "@ts-pattern/anonymous-select-key";
4832
+ var r = (t2) => Boolean(t2 && "object" == typeof t2);
4833
+ var i = (e2) => e2 && !!e2[t];
4834
+ var s = (n2, o2, c2) => {
4835
+ if (i(n2)) {
4836
+ const e2 = n2[t](), { matched: r2, selections: i2 } = e2.match(o2);
4837
+ return r2 && i2 && Object.keys(i2).forEach((t2) => c2(t2, i2[t2])), r2;
4838
+ }
4839
+ if (r(n2)) {
4840
+ if (!r(o2))
4841
+ return false;
4842
+ if (Array.isArray(n2)) {
4843
+ if (!Array.isArray(o2))
4844
+ return false;
4845
+ let t2 = [], r2 = [], a = [];
4846
+ for (const s2 of n2.keys()) {
4847
+ const o3 = n2[s2];
4848
+ i(o3) && o3[e] ? a.push(o3) : a.length ? r2.push(o3) : t2.push(o3);
4849
+ }
4850
+ if (a.length) {
4851
+ if (a.length > 1)
4852
+ throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");
4853
+ if (o2.length < t2.length + r2.length)
4854
+ return false;
4855
+ const e2 = o2.slice(0, t2.length), n3 = 0 === r2.length ? [] : o2.slice(-r2.length), i2 = o2.slice(t2.length, 0 === r2.length ? Infinity : -r2.length);
4856
+ return t2.every((t3, n4) => s(t3, e2[n4], c2)) && r2.every((t3, e3) => s(t3, n3[e3], c2)) && (0 === a.length || s(a[0], i2, c2));
4857
+ }
4858
+ return n2.length === o2.length && n2.every((t3, e2) => s(t3, o2[e2], c2));
4859
+ }
4860
+ return Reflect.ownKeys(n2).every((e2) => {
4861
+ const r2 = n2[e2];
4862
+ return (e2 in o2 || i(a = r2) && "optional" === a[t]().matcherType) && s(r2, o2[e2], c2);
4863
+ var a;
4864
+ });
4865
+ }
4866
+ return Object.is(o2, n2);
4867
+ };
4868
+ var o = (e2) => {
4869
+ var n2, s2, a;
4870
+ return r(e2) ? i(e2) ? null != (n2 = null == (s2 = (a = e2[t]()).getSelectionKeys) ? void 0 : s2.call(a)) ? n2 : [] : Array.isArray(e2) ? c(e2, o) : c(Object.values(e2), o) : [];
4871
+ };
4872
+ var c = (t2, e2) => t2.reduce((t3, n2) => t3.concat(e2(n2)), []);
4873
+ function u(t2) {
4874
+ return Object.assign(t2, { optional: () => h(t2), and: (e2) => m(t2, e2), or: (e2) => d(t2, e2), select: (e2) => void 0 === e2 ? y(t2) : y(e2, t2) });
4875
+ }
4876
+ function h(e2) {
4877
+ return u({ [t]: () => ({ match: (t2) => {
4878
+ let n2 = {};
4879
+ const r2 = (t3, e3) => {
4880
+ n2[t3] = e3;
4881
+ };
4882
+ return void 0 === t2 ? (o(e2).forEach((t3) => r2(t3, void 0)), { matched: true, selections: n2 }) : { matched: s(e2, t2, r2), selections: n2 };
4883
+ }, getSelectionKeys: () => o(e2), matcherType: "optional" }) });
4884
+ }
4885
+ function m(...e2) {
4886
+ return u({ [t]: () => ({ match: (t2) => {
4887
+ let n2 = {};
4888
+ const r2 = (t3, e3) => {
4889
+ n2[t3] = e3;
4890
+ };
4891
+ return { matched: e2.every((e3) => s(e3, t2, r2)), selections: n2 };
4892
+ }, getSelectionKeys: () => c(e2, o), matcherType: "and" }) });
4893
+ }
4894
+ function d(...e2) {
4895
+ return u({ [t]: () => ({ match: (t2) => {
4896
+ let n2 = {};
4897
+ const r2 = (t3, e3) => {
4898
+ n2[t3] = e3;
4899
+ };
4900
+ return c(e2, o).forEach((t3) => r2(t3, void 0)), { matched: e2.some((e3) => s(e3, t2, r2)), selections: n2 };
4901
+ }, getSelectionKeys: () => c(e2, o), matcherType: "or" }) });
4902
+ }
4903
+ function p(e2) {
4904
+ return { [t]: () => ({ match: (t2) => ({ matched: Boolean(e2(t2)) }) }) };
4905
+ }
4906
+ function y(...e2) {
4907
+ const r2 = "string" == typeof e2[0] ? e2[0] : void 0, i2 = 2 === e2.length ? e2[1] : "string" == typeof e2[0] ? void 0 : e2[0];
4908
+ return u({ [t]: () => ({ match: (t2) => {
4909
+ let e3 = { [null != r2 ? r2 : n]: t2 };
4910
+ return { matched: void 0 === i2 || s(i2, t2, (t3, n2) => {
4911
+ e3[t3] = n2;
4912
+ }), selections: e3 };
4913
+ }, getSelectionKeys: () => [null != r2 ? r2 : n].concat(void 0 === i2 ? [] : o(i2)) }) });
4914
+ }
4915
+ function v(t2) {
4916
+ return "number" == typeof t2;
4917
+ }
4918
+ function b(t2) {
4919
+ return "string" == typeof t2;
4920
+ }
4921
+ function w(t2) {
4922
+ return "bigint" == typeof t2;
4923
+ }
4924
+ var S = u(p(function(t2) {
4925
+ return true;
4926
+ }));
4927
+ var j = (t2) => Object.assign(u(t2), { startsWith: (e2) => {
4928
+ return j(m(t2, (n2 = e2, p((t3) => b(t3) && t3.startsWith(n2)))));
4929
+ var n2;
4930
+ }, endsWith: (e2) => {
4931
+ return j(m(t2, (n2 = e2, p((t3) => b(t3) && t3.endsWith(n2)))));
4932
+ var n2;
4933
+ }, minLength: (e2) => j(m(t2, ((t3) => p((e3) => b(e3) && e3.length >= t3))(e2))), length: (e2) => j(m(t2, ((t3) => p((e3) => b(e3) && e3.length === t3))(e2))), maxLength: (e2) => j(m(t2, ((t3) => p((e3) => b(e3) && e3.length <= t3))(e2))), includes: (e2) => {
4934
+ return j(m(t2, (n2 = e2, p((t3) => b(t3) && t3.includes(n2)))));
4935
+ var n2;
4936
+ }, regex: (e2) => {
4937
+ return j(m(t2, (n2 = e2, p((t3) => b(t3) && Boolean(t3.match(n2))))));
4938
+ var n2;
4939
+ } });
4940
+ var K = j(p(b));
4941
+ var x = (t2) => Object.assign(u(t2), { between: (e2, n2) => x(m(t2, ((t3, e3) => p((n3) => v(n3) && t3 <= n3 && e3 >= n3))(e2, n2))), lt: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 < t3))(e2))), gt: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 > t3))(e2))), lte: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 <= t3))(e2))), gte: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 >= t3))(e2))), int: () => x(m(t2, p((t3) => v(t3) && Number.isInteger(t3)))), finite: () => x(m(t2, p((t3) => v(t3) && Number.isFinite(t3)))), positive: () => x(m(t2, p((t3) => v(t3) && t3 > 0))), negative: () => x(m(t2, p((t3) => v(t3) && t3 < 0))) });
4942
+ var E = x(p(v));
4943
+ var A = (t2) => Object.assign(u(t2), { between: (e2, n2) => A(m(t2, ((t3, e3) => p((n3) => w(n3) && t3 <= n3 && e3 >= n3))(e2, n2))), lt: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 < t3))(e2))), gt: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 > t3))(e2))), lte: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 <= t3))(e2))), gte: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 >= t3))(e2))), positive: () => A(m(t2, p((t3) => w(t3) && t3 > 0))), negative: () => A(m(t2, p((t3) => w(t3) && t3 < 0))) });
4944
+ var P = A(p(w));
4945
+ var T = u(p(function(t2) {
4946
+ return "boolean" == typeof t2;
4947
+ }));
4948
+ var B = u(p(function(t2) {
4949
+ return "symbol" == typeof t2;
4950
+ }));
4951
+ var _ = u(p(function(t2) {
4952
+ return null == t2;
4953
+ }));
4954
+ var k = u(p(function(t2) {
4955
+ return null != t2;
4956
+ }));
4957
+ var W = class extends Error {
4958
+ constructor(t2) {
4959
+ let e2;
4960
+ try {
4961
+ e2 = JSON.stringify(t2);
4962
+ } catch (n2) {
4963
+ e2 = t2;
4964
+ }
4965
+ super(`Pattern matching error: no pattern matches value ${e2}`), this.input = void 0, this.input = t2;
4966
+ }
4967
+ };
4968
+ var $ = { matched: false, value: void 0 };
4969
+ function z2(t2) {
4970
+ return new I(t2, $);
4971
+ }
4972
+ var I = class _I {
4973
+ constructor(t2, e2) {
4974
+ this.input = void 0, this.state = void 0, this.input = t2, this.state = e2;
4975
+ }
4976
+ with(...t2) {
4977
+ if (this.state.matched)
4978
+ return this;
4979
+ const e2 = t2[t2.length - 1], r2 = [t2[0]];
4980
+ let i2;
4981
+ 3 === t2.length && "function" == typeof t2[1] ? i2 = t2[1] : t2.length > 2 && r2.push(...t2.slice(1, t2.length - 1));
4982
+ let o2 = false, c2 = {};
4983
+ const a = (t3, e3) => {
4984
+ o2 = true, c2[t3] = e3;
4985
+ }, u2 = !r2.some((t3) => s(t3, this.input, a)) || i2 && !Boolean(i2(this.input)) ? $ : { matched: true, value: e2(o2 ? n in c2 ? c2[n] : c2 : this.input, this.input) };
4986
+ return new _I(this.input, u2);
4987
+ }
4988
+ when(t2, e2) {
4989
+ if (this.state.matched)
4990
+ return this;
4991
+ const n2 = Boolean(t2(this.input));
4992
+ return new _I(this.input, n2 ? { matched: true, value: e2(this.input, this.input) } : $);
4993
+ }
4994
+ otherwise(t2) {
4995
+ return this.state.matched ? this.state.value : t2(this.input);
4996
+ }
4997
+ exhaustive() {
4998
+ if (this.state.matched)
4999
+ return this.state.value;
5000
+ throw new W(this.input);
5001
+ }
5002
+ run() {
5003
+ return this.exhaustive();
5004
+ }
5005
+ returnType() {
5006
+ return this;
5007
+ }
5008
+ };
5009
+
5010
+ // ../../libs/schema-validation/utils/transformers/account.ts
4801
5011
  var validateAccountCurrency = ({
4802
5012
  currency,
4803
5013
  currencyMode,
@@ -4903,25 +5113,91 @@ var validateAccountLinkedAccount = ({
4903
5113
  }
4904
5114
  return errors;
4905
5115
  };
4906
- var validateAccountClearing = ({
4907
- clearing,
4908
- linkedAccount,
4909
- key,
4910
- name,
5116
+ var validateAccountPayment = ({
5117
+ account,
5118
+ isTemplateChild,
4911
5119
  path
4912
5120
  }) => {
4913
5121
  const errors = [];
4914
- if (!clearing) {
5122
+ const {
5123
+ payment,
5124
+ type,
5125
+ template,
5126
+ currencyMode,
5127
+ currency,
5128
+ children,
5129
+ key,
5130
+ name
5131
+ } = account;
5132
+ if (!payment) {
4915
5133
  return errors;
4916
5134
  }
4917
- if (linkedAccount) {
5135
+ if (type !== "asset") {
4918
5136
  errors.push({
4919
- message: `Clearing accounts cannot be Linked Ledger Accounts (key: ${key}, name: ${name})`,
4920
- path: [...path, "clearing"]
5137
+ message: `Payment Accounts must be asset accounts (key: ${key}, name: ${name})`,
5138
+ path: [...path, "payment"]
5139
+ });
5140
+ }
5141
+ if (template || isTemplateChild) {
5142
+ errors.push({
5143
+ message: `Payment Accounts cannot be Template Accounts or children of Template Accounts (key: ${key}, name: ${name})`,
5144
+ path: [...path, "payment"]
5145
+ });
5146
+ }
5147
+ if (currencyMode === "multi") {
5148
+ errors.push({
5149
+ message: `Payment Accounts must be single-currency (key: ${key}, name: ${name})`,
5150
+ path: [...path, "payment"]
5151
+ });
5152
+ } else if (currency?.code !== "USD") {
5153
+ errors.push({
5154
+ message: `Payment Accounts must use USD (key: ${key}, name: ${name})`,
5155
+ path: [...path, "payment"]
5156
+ });
5157
+ }
5158
+ if ((children ?? []).length > 0) {
5159
+ errors.push({
5160
+ message: `Payment Accounts cannot have children (key: ${key}, name: ${name})`,
5161
+ path: [...path, "payment"]
4921
5162
  });
4922
5163
  }
4923
5164
  return errors;
4924
5165
  };
5166
+ var validateAccountCategory = ({
5167
+ account,
5168
+ isTemplateChild,
5169
+ path
5170
+ }) => {
5171
+ let category;
5172
+ try {
5173
+ category = getSchemaAccountCategory(account);
5174
+ } catch (e2) {
5175
+ if (e2 instanceof AccountCategoryMutualExclusionError) {
5176
+ return [
5177
+ {
5178
+ message: `Ledger Account can only be one of payment, linked, or clearing (key: ${account.key}, name: ${account.name})`,
5179
+ path
5180
+ }
5181
+ ];
5182
+ }
5183
+ throw e2;
5184
+ }
5185
+ return z2(category).with(
5186
+ "Payment" /* Payment */,
5187
+ () => validateAccountPayment({ account, isTemplateChild, path })
5188
+ ).with(
5189
+ "Linked" /* Linked */,
5190
+ () => validateAccountLinkedAccount({
5191
+ linkedAccount: account.linkedAccount,
5192
+ children: account.children,
5193
+ template: account.template,
5194
+ isTemplateChild,
5195
+ key: account.key,
5196
+ name: account.name,
5197
+ path
5198
+ })
5199
+ ).with("Clearing" /* Clearing */, () => []).with("BaseLedger" /* BaseLedger */, () => []).exhaustive();
5200
+ };
4925
5201
  var validateAccountKey = ({
4926
5202
  key,
4927
5203
  name,
@@ -4984,17 +5260,6 @@ var validateAccount = ({
4984
5260
  path: [...path, "type"]
4985
5261
  });
4986
5262
  }
4987
- errors.push(
4988
- ...validateAccountLinkedAccount({
4989
- linkedAccount: account.linkedAccount,
4990
- children: account.children,
4991
- template: account.template,
4992
- isTemplateChild,
4993
- key: account.key,
4994
- name: account.name,
4995
- path
4996
- })
4997
- );
4998
5263
  errors.push(
4999
5264
  ...validateAccountCurrency({
5000
5265
  currency: account.currency,
@@ -5005,11 +5270,9 @@ var validateAccount = ({
5005
5270
  })
5006
5271
  );
5007
5272
  errors.push(
5008
- ...validateAccountClearing({
5009
- clearing: account.clearing,
5010
- linkedAccount: account.linkedAccount,
5011
- key: account.key,
5012
- name: account.name,
5273
+ ...validateAccountCategory({
5274
+ account,
5275
+ isTemplateChild,
5013
5276
  path
5014
5277
  })
5015
5278
  );
@@ -5175,10 +5438,7 @@ var validateAccountConsistencyType = ({
5175
5438
  });
5176
5439
  }
5177
5440
  if (account.children && account.children.length > 0) {
5178
- walkAccounts(account.children, [
5179
- ...accountPath,
5180
- "children"
5181
- ]);
5441
+ walkAccounts(account.children, [...accountPath, "children"]);
5182
5442
  }
5183
5443
  });
5184
5444
  };
@@ -5216,33 +5476,35 @@ var transformAndValidateAccounts = ({
5216
5476
  isTotalBalance
5217
5477
  });
5218
5478
  errors.push(...accountConsistencyTypeErrors);
5219
- const seenAccountPaths = /* @__PURE__ */ new Map();
5220
- const walk = (account, objPath, depth, path) => {
5221
- if (depth > MAX_COA_DEPTH) {
5222
- errors.push({
5223
- message: `You attempted to add an account (key: ${account.key}), which exceeds the allowed maximum depth of 10 nested accounts. Path: ${path}`,
5224
- path: objPath
5225
- });
5226
- }
5227
- if (path) {
5228
- if (seenAccountPaths.has(path)) {
5229
- seenAccountPaths.get(path).push(objPath);
5230
- } else {
5231
- seenAccountPaths.set(path, [objPath]);
5232
- }
5233
- }
5234
- account.children?.forEach(
5479
+ const walk = (account, objPath, depth, accountPath) => [
5480
+ { account, objPath, accountPath, depth },
5481
+ ...(account.children ?? []).flatMap(
5235
5482
  (child, idx) => walk(
5236
5483
  child,
5237
5484
  [...objPath, "children", idx],
5238
5485
  depth + 1,
5239
- `${path}/${child.key}`
5486
+ `${accountPath}/${child.key}`
5240
5487
  )
5241
- );
5242
- };
5243
- filledIn.accounts.forEach(
5488
+ )
5489
+ ];
5490
+ const walkedNodes = filledIn.accounts.flatMap(
5244
5491
  (account, idx) => walk(account, ["accounts", idx], 1, account.key)
5245
5492
  );
5493
+ walkedNodes.filter(({ depth }) => depth > MAX_COA_DEPTH).forEach(
5494
+ ({ account, objPath, accountPath }) => errors.push({
5495
+ message: `You attempted to add an account (key: ${account.key}), which exceeds the allowed maximum depth of 10 nested accounts. Path: ${accountPath}`,
5496
+ path: objPath
5497
+ })
5498
+ );
5499
+ const seenAccountPaths = /* @__PURE__ */ new Map();
5500
+ walkedNodes.forEach(({ accountPath, objPath }) => {
5501
+ if (accountPath) {
5502
+ seenAccountPaths.set(accountPath, [
5503
+ ...seenAccountPaths.get(accountPath) ?? [],
5504
+ objPath
5505
+ ]);
5506
+ }
5507
+ });
5246
5508
  seenAccountPaths.forEach((coaPaths, accountPath) => {
5247
5509
  if (coaPaths.length > 1) {
5248
5510
  coaPaths.forEach(
@@ -5254,6 +5516,24 @@ var transformAndValidateAccounts = ({
5254
5516
  );
5255
5517
  }
5256
5518
  });
5519
+ const paymentAccounts = walkedNodes.filter(({ account }) => {
5520
+ try {
5521
+ return getSchemaAccountCategory(account) === "Payment" /* Payment */;
5522
+ } catch (e2) {
5523
+ if (e2 instanceof AccountCategoryMutualExclusionError) {
5524
+ return false;
5525
+ }
5526
+ throw e2;
5527
+ }
5528
+ });
5529
+ if (paymentAccounts.length > 1) {
5530
+ paymentAccounts.forEach(
5531
+ ({ account, objPath }) => errors.push({
5532
+ message: `Only one Payment Account is allowed per schema (key: ${account.key})`,
5533
+ path: [...objPath, "payment"]
5534
+ })
5535
+ );
5536
+ }
5257
5537
  return { filledIn, errors };
5258
5538
  };
5259
5539
  var transformAndValidateCoA = ({
@@ -5310,189 +5590,6 @@ var transformAndValidateCoA = ({
5310
5590
  // ../../libs/schema-validation/utils/transformers/entries.ts
5311
5591
  init_cjs_shims();
5312
5592
 
5313
- // ../../node_modules/ts-pattern/dist/index.js
5314
- init_cjs_shims();
5315
- var t = Symbol.for("@ts-pattern/matcher");
5316
- var e = Symbol.for("@ts-pattern/isVariadic");
5317
- var n = "@ts-pattern/anonymous-select-key";
5318
- var r = (t2) => Boolean(t2 && "object" == typeof t2);
5319
- var i = (e2) => e2 && !!e2[t];
5320
- var s = (n2, o2, c2) => {
5321
- if (i(n2)) {
5322
- const e2 = n2[t](), { matched: r2, selections: i2 } = e2.match(o2);
5323
- return r2 && i2 && Object.keys(i2).forEach((t2) => c2(t2, i2[t2])), r2;
5324
- }
5325
- if (r(n2)) {
5326
- if (!r(o2))
5327
- return false;
5328
- if (Array.isArray(n2)) {
5329
- if (!Array.isArray(o2))
5330
- return false;
5331
- let t2 = [], r2 = [], a = [];
5332
- for (const s2 of n2.keys()) {
5333
- const o3 = n2[s2];
5334
- i(o3) && o3[e] ? a.push(o3) : a.length ? r2.push(o3) : t2.push(o3);
5335
- }
5336
- if (a.length) {
5337
- if (a.length > 1)
5338
- throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");
5339
- if (o2.length < t2.length + r2.length)
5340
- return false;
5341
- const e2 = o2.slice(0, t2.length), n3 = 0 === r2.length ? [] : o2.slice(-r2.length), i2 = o2.slice(t2.length, 0 === r2.length ? Infinity : -r2.length);
5342
- return t2.every((t3, n4) => s(t3, e2[n4], c2)) && r2.every((t3, e3) => s(t3, n3[e3], c2)) && (0 === a.length || s(a[0], i2, c2));
5343
- }
5344
- return n2.length === o2.length && n2.every((t3, e2) => s(t3, o2[e2], c2));
5345
- }
5346
- return Reflect.ownKeys(n2).every((e2) => {
5347
- const r2 = n2[e2];
5348
- return (e2 in o2 || i(a = r2) && "optional" === a[t]().matcherType) && s(r2, o2[e2], c2);
5349
- var a;
5350
- });
5351
- }
5352
- return Object.is(o2, n2);
5353
- };
5354
- var o = (e2) => {
5355
- var n2, s2, a;
5356
- return r(e2) ? i(e2) ? null != (n2 = null == (s2 = (a = e2[t]()).getSelectionKeys) ? void 0 : s2.call(a)) ? n2 : [] : Array.isArray(e2) ? c(e2, o) : c(Object.values(e2), o) : [];
5357
- };
5358
- var c = (t2, e2) => t2.reduce((t3, n2) => t3.concat(e2(n2)), []);
5359
- function u(t2) {
5360
- return Object.assign(t2, { optional: () => h(t2), and: (e2) => m(t2, e2), or: (e2) => d(t2, e2), select: (e2) => void 0 === e2 ? y(t2) : y(e2, t2) });
5361
- }
5362
- function h(e2) {
5363
- return u({ [t]: () => ({ match: (t2) => {
5364
- let n2 = {};
5365
- const r2 = (t3, e3) => {
5366
- n2[t3] = e3;
5367
- };
5368
- return void 0 === t2 ? (o(e2).forEach((t3) => r2(t3, void 0)), { matched: true, selections: n2 }) : { matched: s(e2, t2, r2), selections: n2 };
5369
- }, getSelectionKeys: () => o(e2), matcherType: "optional" }) });
5370
- }
5371
- function m(...e2) {
5372
- return u({ [t]: () => ({ match: (t2) => {
5373
- let n2 = {};
5374
- const r2 = (t3, e3) => {
5375
- n2[t3] = e3;
5376
- };
5377
- return { matched: e2.every((e3) => s(e3, t2, r2)), selections: n2 };
5378
- }, getSelectionKeys: () => c(e2, o), matcherType: "and" }) });
5379
- }
5380
- function d(...e2) {
5381
- return u({ [t]: () => ({ match: (t2) => {
5382
- let n2 = {};
5383
- const r2 = (t3, e3) => {
5384
- n2[t3] = e3;
5385
- };
5386
- return c(e2, o).forEach((t3) => r2(t3, void 0)), { matched: e2.some((e3) => s(e3, t2, r2)), selections: n2 };
5387
- }, getSelectionKeys: () => c(e2, o), matcherType: "or" }) });
5388
- }
5389
- function p(e2) {
5390
- return { [t]: () => ({ match: (t2) => ({ matched: Boolean(e2(t2)) }) }) };
5391
- }
5392
- function y(...e2) {
5393
- const r2 = "string" == typeof e2[0] ? e2[0] : void 0, i2 = 2 === e2.length ? e2[1] : "string" == typeof e2[0] ? void 0 : e2[0];
5394
- return u({ [t]: () => ({ match: (t2) => {
5395
- let e3 = { [null != r2 ? r2 : n]: t2 };
5396
- return { matched: void 0 === i2 || s(i2, t2, (t3, n2) => {
5397
- e3[t3] = n2;
5398
- }), selections: e3 };
5399
- }, getSelectionKeys: () => [null != r2 ? r2 : n].concat(void 0 === i2 ? [] : o(i2)) }) });
5400
- }
5401
- function v(t2) {
5402
- return "number" == typeof t2;
5403
- }
5404
- function b(t2) {
5405
- return "string" == typeof t2;
5406
- }
5407
- function w(t2) {
5408
- return "bigint" == typeof t2;
5409
- }
5410
- var S = u(p(function(t2) {
5411
- return true;
5412
- }));
5413
- var j = (t2) => Object.assign(u(t2), { startsWith: (e2) => {
5414
- return j(m(t2, (n2 = e2, p((t3) => b(t3) && t3.startsWith(n2)))));
5415
- var n2;
5416
- }, endsWith: (e2) => {
5417
- return j(m(t2, (n2 = e2, p((t3) => b(t3) && t3.endsWith(n2)))));
5418
- var n2;
5419
- }, minLength: (e2) => j(m(t2, ((t3) => p((e3) => b(e3) && e3.length >= t3))(e2))), length: (e2) => j(m(t2, ((t3) => p((e3) => b(e3) && e3.length === t3))(e2))), maxLength: (e2) => j(m(t2, ((t3) => p((e3) => b(e3) && e3.length <= t3))(e2))), includes: (e2) => {
5420
- return j(m(t2, (n2 = e2, p((t3) => b(t3) && t3.includes(n2)))));
5421
- var n2;
5422
- }, regex: (e2) => {
5423
- return j(m(t2, (n2 = e2, p((t3) => b(t3) && Boolean(t3.match(n2))))));
5424
- var n2;
5425
- } });
5426
- var K = j(p(b));
5427
- var x = (t2) => Object.assign(u(t2), { between: (e2, n2) => x(m(t2, ((t3, e3) => p((n3) => v(n3) && t3 <= n3 && e3 >= n3))(e2, n2))), lt: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 < t3))(e2))), gt: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 > t3))(e2))), lte: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 <= t3))(e2))), gte: (e2) => x(m(t2, ((t3) => p((e3) => v(e3) && e3 >= t3))(e2))), int: () => x(m(t2, p((t3) => v(t3) && Number.isInteger(t3)))), finite: () => x(m(t2, p((t3) => v(t3) && Number.isFinite(t3)))), positive: () => x(m(t2, p((t3) => v(t3) && t3 > 0))), negative: () => x(m(t2, p((t3) => v(t3) && t3 < 0))) });
5428
- var E = x(p(v));
5429
- var A = (t2) => Object.assign(u(t2), { between: (e2, n2) => A(m(t2, ((t3, e3) => p((n3) => w(n3) && t3 <= n3 && e3 >= n3))(e2, n2))), lt: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 < t3))(e2))), gt: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 > t3))(e2))), lte: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 <= t3))(e2))), gte: (e2) => A(m(t2, ((t3) => p((e3) => w(e3) && e3 >= t3))(e2))), positive: () => A(m(t2, p((t3) => w(t3) && t3 > 0))), negative: () => A(m(t2, p((t3) => w(t3) && t3 < 0))) });
5430
- var P = A(p(w));
5431
- var T = u(p(function(t2) {
5432
- return "boolean" == typeof t2;
5433
- }));
5434
- var B = u(p(function(t2) {
5435
- return "symbol" == typeof t2;
5436
- }));
5437
- var _ = u(p(function(t2) {
5438
- return null == t2;
5439
- }));
5440
- var k = u(p(function(t2) {
5441
- return null != t2;
5442
- }));
5443
- var W = class extends Error {
5444
- constructor(t2) {
5445
- let e2;
5446
- try {
5447
- e2 = JSON.stringify(t2);
5448
- } catch (n2) {
5449
- e2 = t2;
5450
- }
5451
- super(`Pattern matching error: no pattern matches value ${e2}`), this.input = void 0, this.input = t2;
5452
- }
5453
- };
5454
- var $ = { matched: false, value: void 0 };
5455
- function z2(t2) {
5456
- return new I(t2, $);
5457
- }
5458
- var I = class _I {
5459
- constructor(t2, e2) {
5460
- this.input = void 0, this.state = void 0, this.input = t2, this.state = e2;
5461
- }
5462
- with(...t2) {
5463
- if (this.state.matched)
5464
- return this;
5465
- const e2 = t2[t2.length - 1], r2 = [t2[0]];
5466
- let i2;
5467
- 3 === t2.length && "function" == typeof t2[1] ? i2 = t2[1] : t2.length > 2 && r2.push(...t2.slice(1, t2.length - 1));
5468
- let o2 = false, c2 = {};
5469
- const a = (t3, e3) => {
5470
- o2 = true, c2[t3] = e3;
5471
- }, u2 = !r2.some((t3) => s(t3, this.input, a)) || i2 && !Boolean(i2(this.input)) ? $ : { matched: true, value: e2(o2 ? n in c2 ? c2[n] : c2 : this.input, this.input) };
5472
- return new _I(this.input, u2);
5473
- }
5474
- when(t2, e2) {
5475
- if (this.state.matched)
5476
- return this;
5477
- const n2 = Boolean(t2(this.input));
5478
- return new _I(this.input, n2 ? { matched: true, value: e2(this.input, this.input) } : $);
5479
- }
5480
- otherwise(t2) {
5481
- return this.state.matched ? this.state.value : t2(this.input);
5482
- }
5483
- exhaustive() {
5484
- if (this.state.matched)
5485
- return this.state.value;
5486
- throw new W(this.input);
5487
- }
5488
- run() {
5489
- return this.exhaustive();
5490
- }
5491
- returnType() {
5492
- return this;
5493
- }
5494
- };
5495
-
5496
5593
  // ../../libs/accounting-validation/index.ts
5497
5594
  init_cjs_shims();
5498
5595
  import assert from "assert";
@@ -6213,6 +6310,18 @@ var validateLineAccount = (entryType, lineKey, accountPath, accountPathToAccount
6213
6310
  path: ["account", "path"]
6214
6311
  });
6215
6312
  }
6313
+ try {
6314
+ if (account && getSchemaAccountCategory(account) === "Payment" /* Payment */) {
6315
+ validationResults.push({
6316
+ message: `Ledger Entries cannot post to Payment Accounts. (entry: ${entryType} | line key: ${lineKey} | account path: ${accountPath})`,
6317
+ path: ["account", "path"]
6318
+ });
6319
+ }
6320
+ } catch (e2) {
6321
+ if (!(e2 instanceof AccountCategoryMutualExclusionError)) {
6322
+ throw e2;
6323
+ }
6324
+ }
6216
6325
  return validationResults;
6217
6326
  };
6218
6327
  var validateLineCurrency = (currency, accountPath, accountPathToAccount, entryParameters, lineKey, entryType) => {
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  Schema,
9
9
  parseWithError
10
- } from "./chunk-74LOI6K4.js";
10
+ } from "./chunk-N5BMALHB.js";
11
11
  import {
12
12
  formatValidationErrors,
13
13
  logValidationErrors
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Schema,
3
3
  parseWithError
4
- } from "./chunk-74LOI6K4.js";
4
+ } from "./chunk-N5BMALHB.js";
5
5
  import {
6
6
  formatValidationErrors
7
7
  } from "./chunk-G4RVTAYC.js";
@@ -2,7 +2,7 @@ import {
2
2
  extractSchemaMetadata,
3
3
  isJsonParseError,
4
4
  validateSchemaStructure
5
- } from "./chunk-OMTTMIGX.js";
5
+ } from "./chunk-PFYNG7AN.js";
6
6
  import {
7
7
  DEFAULT_SCHEMA_PATH
8
8
  } from "./chunk-A4BSWX5D.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  GenGraphQL
3
- } from "../chunk-7M4MZK3I.js";
3
+ } from "../chunk-N6E4REXI.js";
4
4
  import "../chunk-R4VQQVMW.js";
5
5
  import "../chunk-FMY4RHS4.js";
6
6
  import "../chunk-ZMFGVGZP.js";
7
- import "../chunk-74LOI6K4.js";
7
+ import "../chunk-N5BMALHB.js";
8
8
  import "../chunk-G4RVTAYC.js";
9
9
  import "../chunk-3SJ5Q54F.js";
10
10
  import "../chunk-IMNKQNDI.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  VerifySchema
3
- } from "../chunk-5CRS5UWP.js";
4
- import "../chunk-OMTTMIGX.js";
3
+ } from "../chunk-VQMJIFLZ.js";
4
+ import "../chunk-PFYNG7AN.js";
5
5
  import "../chunk-A4BSWX5D.js";
6
- import "../chunk-74LOI6K4.js";
6
+ import "../chunk-N5BMALHB.js";
7
7
  import "../chunk-G4RVTAYC.js";
8
8
  import "../chunk-3SJ5Q54F.js";
9
9
  import "../chunk-IMNKQNDI.js";
package/dist/commands.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  COMMANDS
3
- } from "./chunk-NX7PBVPZ.js";
3
+ } from "./chunk-EMJEVEQO.js";
4
4
  import "./chunk-SH5YJD4P.js";
5
5
  import "./chunk-624X4WQX.js";
6
6
  import "./chunk-4CEBCA46.js";
@@ -10,14 +10,14 @@ import "./chunk-QNGMAK7L.js";
10
10
  import "./chunk-KT3DLGYI.js";
11
11
  import "./chunk-NAO73VDE.js";
12
12
  import "./chunk-OAJCTIWT.js";
13
- import "./chunk-5CRS5UWP.js";
14
- import "./chunk-OMTTMIGX.js";
13
+ import "./chunk-VQMJIFLZ.js";
14
+ import "./chunk-PFYNG7AN.js";
15
15
  import "./chunk-A4BSWX5D.js";
16
- import "./chunk-7M4MZK3I.js";
16
+ import "./chunk-N6E4REXI.js";
17
17
  import "./chunk-R4VQQVMW.js";
18
18
  import "./chunk-FMY4RHS4.js";
19
19
  import "./chunk-ZMFGVGZP.js";
20
- import "./chunk-74LOI6K4.js";
20
+ import "./chunk-N5BMALHB.js";
21
21
  import "./chunk-G4RVTAYC.js";
22
22
  import "./chunk-3SJ5Q54F.js";
23
23
  import "./chunk-IMNKQNDI.js";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  COMMANDS
3
- } from "./chunk-NX7PBVPZ.js";
3
+ } from "./chunk-EMJEVEQO.js";
4
4
  import "./chunk-SH5YJD4P.js";
5
5
  import "./chunk-624X4WQX.js";
6
6
  import "./chunk-4CEBCA46.js";
@@ -10,14 +10,14 @@ import "./chunk-QNGMAK7L.js";
10
10
  import "./chunk-KT3DLGYI.js";
11
11
  import "./chunk-NAO73VDE.js";
12
12
  import "./chunk-OAJCTIWT.js";
13
- import "./chunk-5CRS5UWP.js";
14
- import "./chunk-OMTTMIGX.js";
13
+ import "./chunk-VQMJIFLZ.js";
14
+ import "./chunk-PFYNG7AN.js";
15
15
  import "./chunk-A4BSWX5D.js";
16
- import "./chunk-7M4MZK3I.js";
16
+ import "./chunk-N6E4REXI.js";
17
17
  import "./chunk-R4VQQVMW.js";
18
18
  import "./chunk-FMY4RHS4.js";
19
19
  import "./chunk-ZMFGVGZP.js";
20
- import "./chunk-74LOI6K4.js";
20
+ import "./chunk-N5BMALHB.js";
21
21
  import "./chunk-G4RVTAYC.js";
22
22
  import "./chunk-3SJ5Q54F.js";
23
23
  import "./chunk-IMNKQNDI.js";
@@ -3,8 +3,8 @@ import {
3
3
  extractSchemaMetadata,
4
4
  isJsonParseError,
5
5
  validateSchemaStructure
6
- } from "../chunk-OMTTMIGX.js";
7
- import "../chunk-74LOI6K4.js";
6
+ } from "../chunk-PFYNG7AN.js";
7
+ import "../chunk-N5BMALHB.js";
8
8
  import "../chunk-G4RVTAYC.js";
9
9
  import "../chunk-3SJ5Q54F.js";
10
10
  import "../chunk-IMNKQNDI.js";
@@ -1096,5 +1096,5 @@
1096
1096
  "help": "Generate GraphQL queries from your Schema for your SDK."
1097
1097
  }
1098
1098
  },
1099
- "version": "2026.7.23-5"
1099
+ "version": "2026.7.24-1"
1100
1100
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fragment-dev/cli",
3
- "version": "2026.7.23-5",
3
+ "version": "2026.7.24-1",
4
4
  "description": "FRAGMENT CLI",
5
5
  "author": "hello@fragment.dev",
6
6
  "bin": {