@cardano-sdk/tx-construction 0.18.7 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/cjs/createTransactionInternals.d.ts +6 -2
  2. package/dist/cjs/createTransactionInternals.d.ts.map +1 -1
  3. package/dist/cjs/createTransactionInternals.js +11 -3
  4. package/dist/cjs/createTransactionInternals.js.map +1 -1
  5. package/dist/cjs/input-selection/selectionConstraints.d.ts +14 -3
  6. package/dist/cjs/input-selection/selectionConstraints.d.ts.map +1 -1
  7. package/dist/cjs/input-selection/selectionConstraints.js +61 -4
  8. package/dist/cjs/input-selection/selectionConstraints.js.map +1 -1
  9. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  10. package/dist/cjs/tx-builder/GreedyTxEvaluator.d.ts +8 -0
  11. package/dist/cjs/tx-builder/GreedyTxEvaluator.d.ts.map +1 -0
  12. package/dist/cjs/tx-builder/GreedyTxEvaluator.js +39 -0
  13. package/dist/cjs/tx-builder/GreedyTxEvaluator.js.map +1 -0
  14. package/dist/cjs/tx-builder/OutputBuilder.d.ts +2 -1
  15. package/dist/cjs/tx-builder/OutputBuilder.d.ts.map +1 -1
  16. package/dist/cjs/tx-builder/OutputBuilder.js +14 -2
  17. package/dist/cjs/tx-builder/OutputBuilder.js.map +1 -1
  18. package/dist/cjs/tx-builder/TxBuilder.d.ts +5 -1
  19. package/dist/cjs/tx-builder/TxBuilder.d.ts.map +1 -1
  20. package/dist/cjs/tx-builder/TxBuilder.js +168 -42
  21. package/dist/cjs/tx-builder/TxBuilder.js.map +1 -1
  22. package/dist/cjs/tx-builder/costModels.d.ts +11 -0
  23. package/dist/cjs/tx-builder/costModels.d.ts.map +1 -0
  24. package/dist/cjs/tx-builder/costModels.js +77 -0
  25. package/dist/cjs/tx-builder/costModels.js.map +1 -0
  26. package/dist/cjs/tx-builder/index.d.ts +1 -0
  27. package/dist/cjs/tx-builder/index.d.ts.map +1 -1
  28. package/dist/cjs/tx-builder/index.js +1 -0
  29. package/dist/cjs/tx-builder/index.js.map +1 -1
  30. package/dist/cjs/tx-builder/initializeTx.d.ts.map +1 -1
  31. package/dist/cjs/tx-builder/initializeTx.js +18 -6
  32. package/dist/cjs/tx-builder/initializeTx.js.map +1 -1
  33. package/dist/cjs/tx-builder/types.d.ts +23 -0
  34. package/dist/cjs/tx-builder/types.d.ts.map +1 -1
  35. package/dist/cjs/tx-builder/utils.d.ts +23 -0
  36. package/dist/cjs/tx-builder/utils.d.ts.map +1 -0
  37. package/dist/cjs/tx-builder/utils.js +134 -0
  38. package/dist/cjs/tx-builder/utils.js.map +1 -0
  39. package/dist/cjs/types.d.ts +9 -1
  40. package/dist/cjs/types.d.ts.map +1 -1
  41. package/dist/esm/createTransactionInternals.d.ts +6 -2
  42. package/dist/esm/createTransactionInternals.d.ts.map +1 -1
  43. package/dist/esm/createTransactionInternals.js +11 -3
  44. package/dist/esm/createTransactionInternals.js.map +1 -1
  45. package/dist/esm/input-selection/selectionConstraints.d.ts +14 -3
  46. package/dist/esm/input-selection/selectionConstraints.d.ts.map +1 -1
  47. package/dist/esm/input-selection/selectionConstraints.js +62 -5
  48. package/dist/esm/input-selection/selectionConstraints.js.map +1 -1
  49. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  50. package/dist/esm/tx-builder/GreedyTxEvaluator.d.ts +8 -0
  51. package/dist/esm/tx-builder/GreedyTxEvaluator.d.ts.map +1 -0
  52. package/dist/esm/tx-builder/GreedyTxEvaluator.js +35 -0
  53. package/dist/esm/tx-builder/GreedyTxEvaluator.js.map +1 -0
  54. package/dist/esm/tx-builder/OutputBuilder.d.ts +2 -1
  55. package/dist/esm/tx-builder/OutputBuilder.d.ts.map +1 -1
  56. package/dist/esm/tx-builder/OutputBuilder.js +14 -2
  57. package/dist/esm/tx-builder/OutputBuilder.js.map +1 -1
  58. package/dist/esm/tx-builder/TxBuilder.d.ts +5 -1
  59. package/dist/esm/tx-builder/TxBuilder.d.ts.map +1 -1
  60. package/dist/esm/tx-builder/TxBuilder.js +169 -43
  61. package/dist/esm/tx-builder/TxBuilder.js.map +1 -1
  62. package/dist/esm/tx-builder/costModels.d.ts +11 -0
  63. package/dist/esm/tx-builder/costModels.d.ts.map +1 -0
  64. package/dist/esm/tx-builder/costModels.js +72 -0
  65. package/dist/esm/tx-builder/costModels.js.map +1 -0
  66. package/dist/esm/tx-builder/index.d.ts +1 -0
  67. package/dist/esm/tx-builder/index.d.ts.map +1 -1
  68. package/dist/esm/tx-builder/index.js +1 -0
  69. package/dist/esm/tx-builder/index.js.map +1 -1
  70. package/dist/esm/tx-builder/initializeTx.d.ts.map +1 -1
  71. package/dist/esm/tx-builder/initializeTx.js +18 -6
  72. package/dist/esm/tx-builder/initializeTx.js.map +1 -1
  73. package/dist/esm/tx-builder/types.d.ts +23 -0
  74. package/dist/esm/tx-builder/types.d.ts.map +1 -1
  75. package/dist/esm/tx-builder/utils.d.ts +23 -0
  76. package/dist/esm/tx-builder/utils.d.ts.map +1 -0
  77. package/dist/esm/tx-builder/utils.js +122 -0
  78. package/dist/esm/tx-builder/utils.js.map +1 -0
  79. package/dist/esm/types.d.ts +9 -1
  80. package/dist/esm/types.d.ts.map +1 -1
  81. package/package.json +7 -7
@@ -1,14 +1,25 @@
1
1
  import { Cardano } from '@cardano-sdk/core';
2
- import { ComputeMinimumCoinQuantity, ComputeSelectionLimit, EstimateTxFee, ProtocolParametersForInputSelection, ProtocolParametersRequiredByInputSelection, SelectionConstraints, SelectionSkeleton, TokenBundleSizeExceedsLimit } from '@cardano-sdk/input-selection';
2
+ import { ComputeMinimumCoinQuantity, ComputeSelectionLimit, EstimateTxCosts, ProtocolParametersForInputSelection, ProtocolParametersRequiredByInputSelection, SelectionConstraints, SelectionSkeleton, TokenBundleSizeExceedsLimit } from '@cardano-sdk/input-selection';
3
+ import { TxEvaluator, TxIdWithIndex } from '../tx-builder';
3
4
  export declare const MAX_U64 = 18446744073709551615n;
4
5
  export declare type BuildTx = (selection: SelectionSkeleton) => Promise<Cardano.Tx>;
6
+ export interface RedeemersByType {
7
+ spend?: Map<TxIdWithIndex, Cardano.Redeemer>;
8
+ mint?: Array<Cardano.Redeemer>;
9
+ certificate?: Array<Cardano.Redeemer>;
10
+ withdrawal?: Array<Cardano.Redeemer>;
11
+ propose?: Array<Cardano.Redeemer>;
12
+ vote?: Array<Cardano.Redeemer>;
13
+ }
5
14
  export interface DefaultSelectionConstraintsProps {
6
15
  protocolParameters: ProtocolParametersForInputSelection;
7
16
  buildTx: BuildTx;
17
+ redeemersByType: RedeemersByType;
18
+ txEvaluator: TxEvaluator;
8
19
  }
9
- export declare const computeMinimumCost: ({ minFeeCoefficient, minFeeConstant, prices }: Pick<ProtocolParametersRequiredByInputSelection, 'minFeeCoefficient' | 'minFeeConstant' | 'prices'>, buildTx: BuildTx) => EstimateTxFee;
20
+ export declare const computeMinimumCost: ({ minFeeCoefficient, minFeeConstant, prices }: Pick<ProtocolParametersRequiredByInputSelection, 'minFeeCoefficient' | 'minFeeConstant' | 'prices'>, buildTx: BuildTx, txEvaluator: TxEvaluator, redeemersByType: RedeemersByType) => EstimateTxCosts;
10
21
  export declare const computeMinimumCoinQuantity: (coinsPerUtxoByte: ProtocolParametersRequiredByInputSelection['coinsPerUtxoByte']) => ComputeMinimumCoinQuantity;
11
22
  export declare const tokenBundleSizeExceedsLimit: (maxValueSize: ProtocolParametersRequiredByInputSelection['maxValueSize']) => TokenBundleSizeExceedsLimit;
12
23
  export declare const computeSelectionLimit: (maxTxSize: ProtocolParametersRequiredByInputSelection['maxTxSize'], buildTx: BuildTx) => ComputeSelectionLimit;
13
- export declare const defaultSelectionConstraints: ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx }: DefaultSelectionConstraintsProps) => SelectionConstraints;
24
+ export declare const defaultSelectionConstraints: ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx, redeemersByType, txEvaluator }: DefaultSelectionConstraintsProps) => SelectionConstraints;
14
25
  //# sourceMappingURL=selectionConstraints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectionConstraints.d.ts","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiD,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,mCAAmC,EACnC,0CAA0C,EAC1C,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,OAAO,wBAA8B,CAAC;AAEnD,oBAAY,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,EAAE,mCAAmC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,kDAMxB,KAAK,0CAA0C,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CAAC,WAC7F,OAAO,KACf,aAKF,CAAC;AAEJ,eAAO,MAAM,0BAA0B,qBAClB,0CAA0C,CAAC,kBAAkB,CAAC,KAAG,0BAElC,CAAC;AAErD,eAAO,MAAM,2BAA2B,iBACvB,0CAA0C,CAAC,cAAc,CAAC,KAAG,2BAU3E,CAAC;AAWJ,eAAO,MAAM,qBAAqB,cACpB,0CAA0C,CAAC,WAAW,CAAC,WAAW,OAAO,KAAG,qBAQvF,CAAC;AAEJ,eAAO,MAAM,2BAA2B,8HAGrC,gCAAgC,KAAG,oBAYrC,CAAC"}
1
+ {"version":3,"file":"selectionConstraints.d.ts","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiD,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,mCAAmC,EACnC,0CAA0C,EAC1C,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAE5B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAsB,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE/E,eAAO,MAAM,OAAO,wBAA8B,CAAC;AAEnD,oBAAY,OAAO,GAAG,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,EAAE,mCAAmC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAwED,eAAO,MAAM,kBAAkB,kDAMxB,KAAK,0CAA0C,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CAAC,WAC7F,OAAO,eACH,WAAW,mBACP,eAAe,KAC/B,eAgBF,CAAC;AAEJ,eAAO,MAAM,0BAA0B,qBAClB,0CAA0C,CAAC,kBAAkB,CAAC,KAAG,0BAElC,CAAC;AAErD,eAAO,MAAM,2BAA2B,iBACvB,0CAA0C,CAAC,cAAc,CAAC,KAAG,2BAU3E,CAAC;AAWJ,eAAO,MAAM,qBAAqB,cACpB,0CAA0C,CAAC,WAAW,CAAC,WAAW,OAAO,KAAG,qBAQvF,CAAC;AAEJ,eAAO,MAAM,2BAA2B,4JAKrC,gCAAgC,KAAG,oBAiBrC,CAAC"}
@@ -1,9 +1,66 @@
1
- import { InvalidProtocolParametersError, Serialization } from '@cardano-sdk/core';
1
+ import { Cardano, InvalidProtocolParametersError, Serialization } from '@cardano-sdk/core';
2
+ import { sortTxIn } from '@cardano-sdk/input-selection';
2
3
  import { MinFeeCoefficient, MinFeeConstant, minAdaRequired, minFee } from '../fees';
3
4
  export const MAX_U64 = 18446744073709551615n;
4
- export const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant, prices }, buildTx) => async (selection) => {
5
+ const updateRedeemers = (evaluation, redeemersByType, txInputs) => {
6
+ const result = [];
7
+ const redeemersMap = {
8
+ [Cardano.RedeemerPurpose.spend]: redeemersByType.spend,
9
+ [Cardano.RedeemerPurpose.mint]: redeemersByType.mint,
10
+ [Cardano.RedeemerPurpose.certificate]: redeemersByType.certificate,
11
+ [Cardano.RedeemerPurpose.withdrawal]: redeemersByType.withdrawal,
12
+ [Cardano.RedeemerPurpose.propose]: redeemersByType.propose,
13
+ [Cardano.RedeemerPurpose.vote]: redeemersByType.vote
14
+ };
15
+ for (const txEval of evaluation) {
16
+ const redeemers = redeemersMap[txEval.purpose];
17
+ if (!redeemers)
18
+ throw new Error(`No redeemers found for ${txEval.purpose} purpose`);
19
+ let knownRedeemer;
20
+ if (txEval.purpose === Cardano.RedeemerPurpose.spend) {
21
+ const input = txInputs[txEval.index];
22
+ knownRedeemer = redeemers.get(`${input.txId}#${input.index}`);
23
+ if (!knownRedeemer)
24
+ throw new Error(`Known Redeemer not found for tx id ${input.txId} and index ${input.index}`);
25
+ }
26
+ else {
27
+ const redeemerList = redeemers;
28
+ knownRedeemer = redeemerList.find((redeemer) => redeemer.index === txEval.index);
29
+ if (!knownRedeemer)
30
+ throw new Error(`Known Redeemer not found for index ${txEval.index}`);
31
+ }
32
+ result.push({ ...knownRedeemer, executionUnits: txEval.budget });
33
+ }
34
+ return result;
35
+ };
36
+ const reorgRedeemers = (redeemerByType, witness, txInputs) => {
37
+ let redeemers = [];
38
+ if (witness.redeemers) {
39
+ redeemers = witness.redeemers.filter((redeemer) => redeemer.purpose !== Cardano.RedeemerPurpose.spend);
40
+ if (redeemerByType.spend) {
41
+ for (const [key, value] of redeemerByType.spend) {
42
+ const index = txInputs.findIndex((input) => key === `${input.txId}#${input.index}`);
43
+ if (index < 0)
44
+ throw new Error(`Redeemer not found for tx id ${key}`);
45
+ value.index = index;
46
+ redeemers.push({ ...value });
47
+ }
48
+ }
49
+ }
50
+ return redeemers;
51
+ };
52
+ export const computeMinimumCost = ({ minFeeCoefficient, minFeeConstant, prices }, buildTx, txEvaluator, redeemersByType) => async (selection) => {
5
53
  const tx = await buildTx(selection);
6
- return minFee(tx, prices, MinFeeConstant(minFeeConstant), MinFeeCoefficient(minFeeCoefficient));
54
+ const utxos = [...selection.inputs];
55
+ const txIns = utxos.map((utxo) => utxo[0]).sort(sortTxIn);
56
+ if (tx.witness && tx.witness.redeemers && tx.witness.redeemers.length > 0) {
57
+ tx.witness.redeemers = reorgRedeemers(redeemersByType, tx.witness, txIns);
58
+ tx.witness.redeemers = updateRedeemers(await txEvaluator.evaluate(tx, utxos), redeemersByType, txIns);
59
+ }
60
+ return {
61
+ fee: minFee(tx, prices, MinFeeConstant(minFeeConstant), MinFeeCoefficient(minFeeCoefficient)),
62
+ redeemers: tx.witness.redeemers
63
+ };
7
64
  };
8
65
  export const computeMinimumCoinQuantity = (coinsPerUtxoByte) => (output) => minAdaRequired(output, BigInt(coinsPerUtxoByte));
9
66
  export const tokenBundleSizeExceedsLimit = (maxValueSize) => (tokenBundle) => {
@@ -23,13 +80,13 @@ export const computeSelectionLimit = (maxTxSize, buildTx) => async (selectionSke
23
80
  }
24
81
  return selectionSkeleton.inputs.size - 1;
25
82
  };
26
- export const defaultSelectionConstraints = ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx }) => {
83
+ export const defaultSelectionConstraints = ({ protocolParameters: { coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices }, buildTx, redeemersByType, txEvaluator }) => {
27
84
  if (!coinsPerUtxoByte || !maxTxSize || !maxValueSize || !minFeeCoefficient || !minFeeConstant || !prices) {
28
85
  throw new InvalidProtocolParametersError('Missing one of: coinsPerUtxoByte, maxTxSize, maxValueSize, minFeeCoefficient, minFeeConstant, prices');
29
86
  }
30
87
  return {
31
88
  computeMinimumCoinQuantity: computeMinimumCoinQuantity(coinsPerUtxoByte),
32
- computeMinimumCost: computeMinimumCost({ minFeeCoefficient, minFeeConstant, prices }, buildTx),
89
+ computeMinimumCost: computeMinimumCost({ minFeeCoefficient, minFeeConstant, prices }, buildTx, txEvaluator, redeemersByType),
33
90
  computeSelectionLimit: computeSelectionLimit(maxTxSize, buildTx),
34
91
  tokenBundleSizeExceedsLimit: tokenBundleSizeExceedsLimit(maxValueSize)
35
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,8BAA8B,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAW3F,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,CAAC,MAAM,OAAO,GAAG,qBAA2B,CAAC;AASnD,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CACE,EACE,iBAAiB,EACjB,cAAc,EACd,MAAM,EAC8F,EACtG,OAAgB,EACD,EAAE,CACnB,KAAK,EAAE,SAAS,EAAE,EAAE;IAClB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAClG,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,0BAA0B,GACrC,CAAC,gBAAgF,EAA8B,EAAE,CACjH,CAAC,MAAM,EAAE,EAAE,CACT,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,2BAA2B,GACtC,CAAC,YAAwE,EAA+B,EAAE,CAC1G,CAAC,WAAW,EAAE,EAAE;IACd,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC;AAClD,CAAC,CAAC;AAEJ,MAAM,SAAS,GAAG,CAAC,EAA6B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AAS5F,MAAM,CAAC,MAAM,qBAAqB,GAChC,CAAC,SAAkE,EAAE,OAAgB,EAAyB,EAAE,CAChH,KAAK,EAAE,iBAAiB,EAAE,EAAE;IAC1B,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,IAAI,SAAS,EAAE;QACvB,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;KACtC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,kBAAkB,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,EAC5G,OAAO,EAC0B,EAAwB,EAAE;IAC3D,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE;QACxG,MAAM,IAAI,8BAA8B,CACtC,sGAAsG,CACvG,CAAC;KACH;IACD,OAAO;QACL,0BAA0B,EAAE,0BAA0B,CAAC,gBAAgB,CAAC;QACxE,kBAAkB,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;QAC9F,qBAAqB,EAAE,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC;QAChE,2BAA2B,EAAE,2BAA2B,CAAC,YAAY,CAAC;KACvE,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"selectionConstraints.js","sourceRoot":"","sources":["../../../src/input-selection/selectionConstraints.ts"],"names":[],"mappings":"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"}