@odatano/core 0.3.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.
Files changed (98) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +212 -0
  3. package/cds-plugin.js +5 -0
  4. package/config/preview/cardano-node/alonzo-genesis.json +196 -0
  5. package/config/preview/cardano-node/byron-genesis.json +117 -0
  6. package/config/preview/cardano-node/config.json +118 -0
  7. package/config/preview/cardano-node/conway-genesis.json +297 -0
  8. package/config/preview/cardano-node/shelley-genesis.json +68 -0
  9. package/config/preview/cardano-node/topology.json +19 -0
  10. package/db/schema.cds +1318 -0
  11. package/package.json +125 -0
  12. package/src/index.d.ts.map +1 -0
  13. package/src/index.js +96 -0
  14. package/src/index.js.map +1 -0
  15. package/src/plugin.d.ts.map +1 -0
  16. package/src/plugin.js +92 -0
  17. package/src/plugin.js.map +1 -0
  18. package/srv/blockchain/backends/blockfrost-backend.d.ts.map +1 -0
  19. package/srv/blockchain/backends/blockfrost-backend.js +398 -0
  20. package/srv/blockchain/backends/blockfrost-backend.js.map +1 -0
  21. package/srv/blockchain/backends/cardano-backend.d.ts.map +1 -0
  22. package/srv/blockchain/backends/cardano-backend.js +12 -0
  23. package/srv/blockchain/backends/cardano-backend.js.map +1 -0
  24. package/srv/blockchain/backends/koios-backend.d.ts.map +1 -0
  25. package/srv/blockchain/backends/koios-backend.js +537 -0
  26. package/srv/blockchain/backends/koios-backend.js.map +1 -0
  27. package/srv/blockchain/backends/ogmios-backend.d.ts.map +1 -0
  28. package/srv/blockchain/backends/ogmios-backend.js +516 -0
  29. package/srv/blockchain/backends/ogmios-backend.js.map +1 -0
  30. package/srv/blockchain/cardano-client.d.ts.map +1 -0
  31. package/srv/blockchain/cardano-client.js +377 -0
  32. package/srv/blockchain/cardano-client.js.map +1 -0
  33. package/srv/blockchain/cardano-indexer.d.ts.map +1 -0
  34. package/srv/blockchain/cardano-indexer.js +542 -0
  35. package/srv/blockchain/cardano-indexer.js.map +1 -0
  36. package/srv/blockchain/cardano-tx-builder.d.ts.map +1 -0
  37. package/srv/blockchain/cardano-tx-builder.js +232 -0
  38. package/srv/blockchain/cardano-tx-builder.js.map +1 -0
  39. package/srv/blockchain/circuit-breaker.d.ts.map +1 -0
  40. package/srv/blockchain/circuit-breaker.js +110 -0
  41. package/srv/blockchain/circuit-breaker.js.map +1 -0
  42. package/srv/blockchain/signing/external-signer.d.ts.map +1 -0
  43. package/srv/blockchain/signing/external-signer.js +302 -0
  44. package/srv/blockchain/signing/external-signer.js.map +1 -0
  45. package/srv/blockchain/signing/signature-verifier.d.ts.map +1 -0
  46. package/srv/blockchain/signing/signature-verifier.js +249 -0
  47. package/srv/blockchain/signing/signature-verifier.js.map +1 -0
  48. package/srv/blockchain/transaction-building/buildooor-tx.d.ts.map +1 -0
  49. package/srv/blockchain/transaction-building/buildooor-tx.js +636 -0
  50. package/srv/blockchain/transaction-building/buildooor-tx.js.map +1 -0
  51. package/srv/blockchain/transaction-building/cardano-tx.d.ts.map +1 -0
  52. package/srv/blockchain/transaction-building/cardano-tx.js +3 -0
  53. package/srv/blockchain/transaction-building/cardano-tx.js.map +1 -0
  54. package/srv/blockchain/transaction-building/csl-tx.d.ts.map +1 -0
  55. package/srv/blockchain/transaction-building/csl-tx.js +766 -0
  56. package/srv/blockchain/transaction-building/csl-tx.js.map +1 -0
  57. package/srv/blockchain/transaction-building/tx-builder-registry.d.ts.map +1 -0
  58. package/srv/blockchain/transaction-building/tx-builder-registry.js +67 -0
  59. package/srv/blockchain/transaction-building/tx-builder-registry.js.map +1 -0
  60. package/srv/cardano-service.cds +179 -0
  61. package/srv/cardano-service.d.ts.map +1 -0
  62. package/srv/cardano-service.js +227 -0
  63. package/srv/cardano-service.js.map +1 -0
  64. package/srv/cardano-tx-service.cds +298 -0
  65. package/srv/cardano-tx-service.d.ts.map +1 -0
  66. package/srv/cardano-tx-service.js +646 -0
  67. package/srv/cardano-tx-service.js.map +1 -0
  68. package/srv/cardano-ui.cds +2949 -0
  69. package/srv/server.d.ts.map +1 -0
  70. package/srv/server.js +212 -0
  71. package/srv/server.js.map +1 -0
  72. package/srv/utils/backend-request-handler.d.ts.map +1 -0
  73. package/srv/utils/backend-request-handler.js +47 -0
  74. package/srv/utils/backend-request-handler.js.map +1 -0
  75. package/srv/utils/const.d.ts.map +1 -0
  76. package/srv/utils/const.js +86 -0
  77. package/srv/utils/const.js.map +1 -0
  78. package/srv/utils/error-codes.d.ts.map +1 -0
  79. package/srv/utils/error-codes.js +49 -0
  80. package/srv/utils/error-codes.js.map +1 -0
  81. package/srv/utils/errors.d.ts.map +1 -0
  82. package/srv/utils/errors.js +389 -0
  83. package/srv/utils/errors.js.map +1 -0
  84. package/srv/utils/mappers.d.ts.map +1 -0
  85. package/srv/utils/mappers.js +723 -0
  86. package/srv/utils/mappers.js.map +1 -0
  87. package/srv/utils/signing-helper.d.ts.map +1 -0
  88. package/srv/utils/signing-helper.js +128 -0
  89. package/srv/utils/signing-helper.js.map +1 -0
  90. package/srv/utils/tx-build-helper.d.ts.map +1 -0
  91. package/srv/utils/tx-build-helper.js +135 -0
  92. package/srv/utils/tx-build-helper.js.map +1 -0
  93. package/srv/utils/types.d.ts.map +1 -0
  94. package/srv/utils/types.js +36 -0
  95. package/srv/utils/types.js.map +1 -0
  96. package/srv/utils/validators.d.ts.map +1 -0
  97. package/srv/utils/validators.js +382 -0
  98. package/srv/utils/validators.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csl-tx.js","sourceRoot":"","sources":["csl-tx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-builder-registry.d.ts","sourceRoot":"","sources":["tx-builder-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAGzC;IAEH;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAQ7C;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,gBAAgB;IAaxC;;;OAGG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG1C"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TxBuilderRegistry = void 0;
7
+ const buildooor_tx_1 = require("./buildooor-tx");
8
+ const csl_tx_1 = require("./csl-tx");
9
+ const errors_1 = require("../../utils/errors");
10
+ const cds_1 = __importDefault(require("@sap/cds"));
11
+ const logger = cds_1.default.log(`TxBuilderRegistry`);
12
+ /**
13
+ * TxBuilderRegistry - Central registry for creating and managing transaction builder instances
14
+ *
15
+ * Provides factory methods for creating transaction builder instances based on configuration
16
+ */
17
+ class TxBuilderRegistry {
18
+ static TX_BUILDER_FACTORIES = new Map([
19
+ ['buildooor', () => new buildooor_tx_1.BuildooorTxBuilder()],
20
+ ['csl', () => new csl_tx_1.CSLTxBuilder()],
21
+ ]);
22
+ /**
23
+ * Create a single transaction builder instance by name
24
+ * @param name transaction builder name
25
+ * @returns {CardanoTxBuilder} transaction builder instance
26
+ */
27
+ static create(name) {
28
+ const factory = this.TX_BUILDER_FACTORIES.get(name);
29
+ if (!factory) {
30
+ throw new errors_1.ConfigError(`Unknown transaction builder: ${name}`);
31
+ }
32
+ return factory();
33
+ }
34
+ /**
35
+ * Create default transaction builder from configuration
36
+ * @returns {CardanoTxBuilder} default transaction builder instance
37
+ */
38
+ static createDefault() {
39
+ // Read directly from environment to allow dynamic switching in tests
40
+ // (CONFIG.transactionBuilders is cached at module load time)
41
+ const buildersEnv = process.env.TX_BUILDERS || 'csl';
42
+ const configuredBuilders = buildersEnv
43
+ .split(',')
44
+ .map(b => b.trim().toLowerCase())
45
+ .filter(b => ['csl', 'buildooor'].includes(b));
46
+ const defaultBuilder = configuredBuilders.length > 0 ? configuredBuilders[0] : 'csl';
47
+ logger.info(`Creating default transaction builder: ${defaultBuilder}`);
48
+ return this.create(defaultBuilder);
49
+ }
50
+ /**
51
+ * Get all available transaction builder names
52
+ * @returns {string[]} array of available transaction builder names
53
+ */
54
+ static getAvailableBuilders() {
55
+ return Array.from(this.TX_BUILDER_FACTORIES.keys());
56
+ }
57
+ /**
58
+ * Check if a transaction builder is available
59
+ * @param name transaction builder name
60
+ * @returns {boolean} true if the builder is available
61
+ */
62
+ static isAvailable(name) {
63
+ return this.TX_BUILDER_FACTORIES.has(name);
64
+ }
65
+ }
66
+ exports.TxBuilderRegistry = TxBuilderRegistry;
67
+ //# sourceMappingURL=tx-builder-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-builder-registry.js","sourceRoot":"","sources":["tx-builder-registry.ts"],"names":[],"mappings":";;;;;;AACA,iDAAoD;AACpD,qCAAwC;AACxC,+CAAiD;AACjD,mDAA2B;AAE3B,MAAM,MAAM,GAAG,aAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAG5C;;;;GAIG;AACH,MAAa,iBAAiB;IACpB,MAAM,CAAU,oBAAoB,GAAG,IAAI,GAAG,CAAiC;QACrF,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,iCAAkB,EAAE,CAAC;QAC7C,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAY,EAAE,CAAC;KAClC,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAW,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa;QAClB,qEAAqE;QACrE,6DAA6D;QAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;QACrD,MAAM,kBAAkB,GAAG,WAAW;aACnC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,yCAAyC,cAAc,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,oBAAoB;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;;AAnDH,8CAoDC"}
@@ -0,0 +1,179 @@
1
+ using {odatano.cardano as db} from '../db/schema';
2
+
3
+ service CardanoODataService @(impl: 'srv/cardano-service') {
4
+
5
+ // ---------------------------------------------------------------------------
6
+ // Entity Projections
7
+ // ---------------------------------------------------------------------------
8
+
9
+ @title : 'Network Information'
10
+ @description: 'Projection for Network Information'
11
+ entity NetworkInformation as projection on db.NetworkInformation;
12
+
13
+ @title : 'Blocks'
14
+ @description: 'Projection for Blocks'
15
+ entity Blocks as projection on db.Blocks;
16
+
17
+ @title : 'Epochs'
18
+ @description: 'Projection for Epochs'
19
+ entity Epochs as projection on db.Epochs;
20
+
21
+ @title : 'Pools'
22
+ @description: 'Projection for Pools'
23
+ entity Pools as projection on db.Pools;
24
+
25
+ @title : 'Dreps'
26
+ @description: 'Projection for Dreps'
27
+ entity Dreps as projection on db.Dreps;
28
+
29
+ @title : 'Transactions'
30
+ @description: 'Projection for Transactions'
31
+ entity Transactions as projection on db.Transactions;
32
+
33
+ @title : 'Transaction Inputs'
34
+ @description: 'Projection for Transaction Inputs'
35
+ entity TransactionInputs as projection on db.TransactionInputs;
36
+
37
+ @title : 'Transaction Outputs'
38
+ @description: 'Projection for Transaction Outputs'
39
+ entity TransactionOutputs as projection on db.TransactionOutputs;
40
+
41
+ @title : 'Transaction Input Assets'
42
+ @description: 'Projection for Transaction Input Assets'
43
+ entity TransactionInputAssets as projection on db.TransactionInputAssets;
44
+
45
+ @title : 'Transaction Output Assets'
46
+ @description: 'Projection for Transaction Output Assets'
47
+ entity TransactionOutputAssets as projection on db.TransactionOutputAssets;
48
+
49
+ @title : 'Accounts'
50
+ @description: 'Projection for Accounts'
51
+ entity Accounts as projection on db.Accounts;
52
+
53
+ @title : 'Addresses'
54
+ @description: 'Projection for Addresses'
55
+ entity Addresses as projection on db.Addresses;
56
+
57
+ @title : 'Address Assets'
58
+ @description: 'Projection for Address Assets'
59
+ entity AddressAssets as projection on db.AddressAssets;
60
+
61
+ @title : 'Address UTxOs'
62
+ @description: 'Projection for Address UTxOs'
63
+ entity AddressUTxOs as projection on db.AddressUTxOs;
64
+
65
+ @title : 'Address Transactions'
66
+ @description: 'Projection for Address Transactions'
67
+ entity AddressTransactions as projection on db.AddressTransactions;
68
+
69
+ @title : 'UTxO Assets'
70
+ @description: 'Projection for UTxO Assets'
71
+ entity UTxOAssets as projection on db.UTxOAssets;
72
+
73
+ @title : 'Transaction Metadata'
74
+ @description: 'Projection for Transaction Metadata'
75
+ entity TransactionMetadata as projection on db.TransactionMetadata;
76
+
77
+ @title : 'Ledger Protocol Parameters'
78
+ @description: 'Projection for Ledger Protocol Parameters'
79
+ entity LedgerProtocolParameters as projection on db.LedgerProtocolParameters;
80
+
81
+ // ---------------------------------------------------------------------------
82
+ // Actions
83
+ // ---------------------------------------------------------------------------
84
+ @title : 'Get Network Information'
85
+ @description: 'Retrieve current network information including network type and genesis hash'
86
+ action GetNetworkInformation() returns NetworkInformation;
87
+
88
+ @title : 'Get Blocks by Block Hash'
89
+ @description: 'Retrieve block information using the Block Hash'
90
+ action GetBlockByHash(
91
+ @title: 'Block Hash'
92
+ @description: 'The unique identifier of the block'
93
+ hash: db.Blake2b256) returns Blocks;
94
+
95
+ @title : 'Get Epochs by Epoch Number'
96
+ @description: 'Retrieve epoch information using the Epoch Number'
97
+ action GetEpochByNumber(
98
+ @title: 'Epoch Number'
99
+ @description: 'The sequential number of the epoch'
100
+ epochNumber: Integer) returns Epochs;
101
+
102
+ @title : 'Get Pools by Pool Id'
103
+ @description: 'Retrieve pool information using the Pool Id'
104
+ action GetPoolById(
105
+ @title: 'Pool Id'
106
+ @description: 'The unique identifier of the stake pool'
107
+ poolId: String) returns Pools;
108
+
109
+ @title : 'Get Dreps by Drep Id'
110
+ @description: 'Retrieve drep information using the Drep Id'
111
+ action GetDrepById(
112
+ @title: 'Drep Id'
113
+ @description: 'The unique identifier of the drep'
114
+ drepId: String) returns Dreps;
115
+
116
+ @title : 'Get Accounts by Stake Address'
117
+ @description: 'Retrieve account information using the Bech32 Stake Address'
118
+ action GetAccountByStakeAddress(
119
+ @title: 'Stake Address'
120
+ @description: 'The Bech32 encoded stake address'
121
+ stakeAddress: db.Bech32) returns Accounts;
122
+
123
+ @title : 'Get Transactions by Tx Hash'
124
+ @description: 'Retrieve transaction information using the Transaction Hash'
125
+ action GetTransactionByHash(
126
+ @title: 'Transaction Hash'
127
+ @description: 'The unique identifier of the transaction'
128
+ hash: db.Blake2b256) returns Transactions;
129
+
130
+ @title : 'Get Transaction Metadata by Tx Hash'
131
+ @description: 'Retrieve transaction metadata using the Transaction Hash'
132
+ action GetMetadataByTxHash(
133
+ @title: 'Transaction Hash'
134
+ @description: 'The unique identifier of the transaction'
135
+ tx_hash: db.Blake2b256) returns many TransactionMetadata;
136
+
137
+ @title : 'Get Addresses by Bech32 Address'
138
+ @description: 'Retrieve address information using the Bech32 Address'
139
+ action GetAddressByBech32(
140
+ @title: 'Bech32 Address'
141
+ @description: 'The Bech32 encoded address'
142
+ address: db.Bech32) returns Addresses;
143
+
144
+ @title : 'Get UTxOs by Bech32 Address'
145
+ @description: 'Retrieve UTxO information using the Bech32 Address'
146
+ action GetUTxOsByAddress(
147
+ @title: 'Bech32 Address'
148
+ @description: 'The Bech32 encoded address'
149
+ address: db.Bech32) returns many AddressUTxOs;
150
+
151
+ @title : 'Get Assets by Bech32 Address'
152
+ @description: 'Retrieve asset information using the Bech32 Address'
153
+ action GetAssetsByAddress(
154
+ @title: 'Bech32 Address'
155
+ @description: 'The Bech32 encoded address'
156
+ address: db.Bech32) returns many AddressAssets;
157
+
158
+ @title : 'Get latest Transactions by Bech32 Address'
159
+ @description: 'Retrieve the latest transactions from the Bech32 Address'
160
+ action GetLatestTransactionsByAddress(
161
+ @title: 'Bech32 Address'
162
+ @description: 'The Bech32 encoded address'
163
+ address: db.Bech32,
164
+ @title: 'Limit'
165
+ @description: 'The maximum number of transactions to retrieve'
166
+ limit: Integer) returns many AddressTransactions;
167
+
168
+ @title : 'Get Latest Block'
169
+ @description: 'Retrieve the latest block information'
170
+ action GetLatestBlock() returns Blocks;
171
+
172
+ @title : 'Get Latest Epoch'
173
+ @description: 'Retrieve the latest epoch information'
174
+ action GetLatestEpoch() returns Epochs;
175
+
176
+ @title : 'Get Ledger Protocol Parameters'
177
+ @description: 'Retrieve the current ledger protocol parameters'
178
+ action GetLedgerProtocolParameters() returns LedgerProtocolParameters;
179
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-service.d.ts","sourceRoot":"","sources":["cardano-service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cds_1 = __importDefault(require("@sap/cds"));
7
+ const server_1 = require("./server");
8
+ const validators_1 = require("./utils/validators");
9
+ const errors_1 = require("./utils/errors");
10
+ const backend_request_handler_1 = require("./utils/backend-request-handler");
11
+ const { SELECT } = cds_1.default.ql;
12
+ const logger = cds_1.default.log(`CardanoService`);
13
+ /**
14
+ * Factory: READ handler with index-on-miss behavior.
15
+ * If a key is provided, checks cache first; indexes if missing.
16
+ * If no key, passes through to generic req.query.
17
+ */
18
+ function indexOnMissRead(entity, reqKeyField, validate, indexFn, options) {
19
+ const dbKey = options?.entityKeyField || reqKeyField;
20
+ const errMsg = options?.errorMessage || `Invalid ${reqKeyField} format`;
21
+ return async (req) => {
22
+ const key = req.data?.[reqKeyField];
23
+ if (key && validate && !validate(key))
24
+ (0, errors_1.rejectInvalid)(req, dbKey, errMsg, reqKeyField);
25
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
26
+ if (key) {
27
+ const existing = await db.run(SELECT.one.from(entity).where({ [dbKey]: key }));
28
+ if (!existing)
29
+ return await indexFn(db, key);
30
+ return existing;
31
+ }
32
+ return db.run(req.query);
33
+ });
34
+ };
35
+ }
36
+ /**
37
+ * Factory: Action handler with required key validation and index-on-miss.
38
+ */
39
+ function indexOnMissAction(actionName, entity, reqKeyField, validate, indexFn, options) {
40
+ const dbKey = options?.entityKeyField || reqKeyField;
41
+ const errMsg = options?.errorMessage || `Invalid ${reqKeyField} format`;
42
+ return async (req) => {
43
+ const key = req.data?.[reqKeyField];
44
+ if (key == null)
45
+ (0, errors_1.rejectMissing)(req, actionName, reqKeyField);
46
+ if (!validate(key))
47
+ (0, errors_1.rejectInvalid)(req, actionName, errMsg, reqKeyField);
48
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
49
+ const existing = await db.run(SELECT.one.from(entity).where({ [dbKey]: key }));
50
+ if (!existing)
51
+ return await indexFn(db, key);
52
+ return existing;
53
+ });
54
+ };
55
+ }
56
+ /**
57
+ * Factory: Simple passthrough READ handler (just runs req.query).
58
+ */
59
+ function passthroughRead() {
60
+ return async (req) => (0, backend_request_handler_1.handleRequest)(req, (db) => db.run(req.query));
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // Service Registration
64
+ // ---------------------------------------------------------------------------
65
+ /**
66
+ * Cardano Service Implementation
67
+ * Handles various Cardano blockchain data queries with index-on-miss behavior.
68
+ */
69
+ module.exports = (srv) => {
70
+ logger.debug('[CardanoService] Module loaded - registering handlers');
71
+ const { NetworkInformation, Blocks, Epochs, Addresses, AddressAssets, AddressUTxOs, Transactions, TransactionInputs, TransactionOutputs, TransactionInputAssets, TransactionOutputAssets, TransactionMetadata, Pools, Accounts, Dreps, LedgerProtocolParameters, AddressTransactions } = require('#cds-models/CardanoODataService');
72
+ // Helper: shorthand for indexer access
73
+ const indexer = () => (0, server_1.getCardanoIndexer)();
74
+ // ---------------------------------------------------------------------------
75
+ // Network Information (singleton - no key field)
76
+ // ---------------------------------------------------------------------------
77
+ srv.on('READ', NetworkInformation, async (req) => {
78
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
79
+ const existing = await db.run(SELECT.one.from(NetworkInformation));
80
+ if (!existing)
81
+ return await indexer().indexNetworkInformation(db);
82
+ return existing;
83
+ });
84
+ });
85
+ srv.on('GetNetworkInformation', async (req) => {
86
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
87
+ const existing = await db.run(SELECT.one.from(NetworkInformation));
88
+ if (!existing)
89
+ return await indexer().indexNetworkInformation(db);
90
+ return existing;
91
+ });
92
+ });
93
+ // ---------------------------------------------------------------------------
94
+ // Blocks
95
+ // ---------------------------------------------------------------------------
96
+ srv.on('READ', Blocks, indexOnMissRead(Blocks, 'hash', validators_1.isBlockHash, (db, h) => indexer().indexBlock(db, h)));
97
+ srv.on('GetBlockByHash', indexOnMissAction('GetBlockByHash', Blocks, 'hash', validators_1.isBlockHash, (db, h) => indexer().indexBlock(db, h)));
98
+ srv.on('GetLatestBlock', async (req) => {
99
+ return (0, backend_request_handler_1.handleRequest)(req, (db) => indexer().indexLatestBlock(db));
100
+ });
101
+ // ---------------------------------------------------------------------------
102
+ // Epochs
103
+ // ---------------------------------------------------------------------------
104
+ srv.on('READ', Epochs, indexOnMissRead(Epochs, 'epoch', validators_1.isEpochNumber, (db, e) => indexer().indexEpoch(db, e), { errorMessage: 'epochNumber has invalid format' }));
105
+ srv.on('GetEpochByNumber', indexOnMissAction('GetEpochByNumber', Epochs, 'epochNumber', validators_1.isEpochNumber, (db, e) => indexer().indexEpoch(db, e), { entityKeyField: 'epoch', errorMessage: 'epochNumber has invalid format' }));
106
+ srv.on('GetLatestEpoch', async (req) => {
107
+ return (0, backend_request_handler_1.handleRequest)(req, (db) => indexer().indexLatestEpoch(db));
108
+ });
109
+ // ---------------------------------------------------------------------------
110
+ // Pools
111
+ // ---------------------------------------------------------------------------
112
+ srv.on('READ', Pools, indexOnMissRead(Pools, 'poolId', validators_1.isValidPoolId, (db, p) => indexer().indexPool(db, p)));
113
+ srv.on('GetPoolById', indexOnMissAction('GetPoolById', Pools, 'poolId', validators_1.isValidPoolId, (db, p) => indexer().indexPool(db, p)));
114
+ // ---------------------------------------------------------------------------
115
+ // Accounts
116
+ // ---------------------------------------------------------------------------
117
+ srv.on('READ', Accounts, indexOnMissRead(Accounts, 'stakeAddress', validators_1.isValidBech32StakeAddress, (db, s) => indexer().indexAccount(db, s)));
118
+ srv.on('GetAccountByStakeAddress', indexOnMissAction('GetAccountByStakeAddress', Accounts, 'stakeAddress', validators_1.isValidBech32StakeAddress, (db, s) => indexer().indexAccount(db, s)));
119
+ // ---------------------------------------------------------------------------
120
+ // Dreps
121
+ // ---------------------------------------------------------------------------
122
+ srv.on('READ', Dreps, indexOnMissRead(Dreps, 'drepId', validators_1.isValidDrepId, (db, d) => indexer().indexDrep(db, d)));
123
+ srv.on('GetDrepById', indexOnMissAction('GetDrepById', Dreps, 'drepId', validators_1.isValidDrepId, (db, d) => indexer().indexDrep(db, d)));
124
+ // ---------------------------------------------------------------------------
125
+ // Addresses
126
+ // ---------------------------------------------------------------------------
127
+ srv.on('READ', Addresses, indexOnMissRead(Addresses, 'address', validators_1.isValidBech32Address, (db, a) => indexer().indexAddress(db, a), { errorMessage: 'Invalid bech32 address format' }));
128
+ srv.on('GetAddressByBech32', indexOnMissAction('GetAddressByBech32', Addresses, 'address', validators_1.isValidBech32Address, (db, a) => indexer().indexAddress(db, a), { errorMessage: 'Invalid bech32 address format' }));
129
+ srv.on('READ', AddressAssets, passthroughRead());
130
+ srv.on('READ', AddressUTxOs, passthroughRead());
131
+ /**
132
+ * Action: GetAssetsByAddress - indexes parent address if needed, then queries child assets.
133
+ */
134
+ srv.on('GetAssetsByAddress', async (req) => {
135
+ const { address } = req.data;
136
+ if (!address)
137
+ (0, errors_1.rejectMissing)(req, 'GetAssetsByAddress', 'address');
138
+ if (!(0, validators_1.isValidBech32Address)(address))
139
+ (0, errors_1.rejectInvalid)(req, 'GetAssetsByAddress', 'Invalid bech32 address format', 'address');
140
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
141
+ const existing = await db.run(SELECT.one.from(Addresses).where({ address }));
142
+ if (!existing)
143
+ await indexer().indexAddress(db, address);
144
+ return db.run(SELECT.from(AddressAssets).where({ address_address: address }));
145
+ });
146
+ });
147
+ /**
148
+ * Action: GetUTxOsByAddress - indexes parent address if needed, then queries child UTxOs.
149
+ */
150
+ srv.on('GetUTxOsByAddress', async (req) => {
151
+ const { address } = req.data;
152
+ if (!address)
153
+ (0, errors_1.rejectMissing)(req, 'GetUTxOsByAddress', 'address');
154
+ if (!(0, validators_1.isValidBech32Address)(address))
155
+ (0, errors_1.rejectInvalid)(req, 'GetUTxOsByAddress', 'Invalid bech32 address format', 'address');
156
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
157
+ const existing = await db.run(SELECT.one.from(Addresses).where({ address }));
158
+ if (!existing)
159
+ await indexer().indexAddress(db, address);
160
+ return db.run(SELECT.from(AddressUTxOs).where({ address_address: address }));
161
+ });
162
+ });
163
+ // ---------------------------------------------------------------------------
164
+ // Transactions
165
+ // ---------------------------------------------------------------------------
166
+ srv.on('READ', Transactions, indexOnMissRead(Transactions, 'hash', validators_1.isTxHash, (db, h) => indexer().indexTransaction(db, h), { errorMessage: 'Invalid transaction hash format' }));
167
+ srv.on('GetTransactionByHash', indexOnMissAction('GetTransactionByHash', Transactions, 'hash', validators_1.isTxHash, (db, h) => indexer().indexTransaction(db, h), { errorMessage: 'Invalid transaction hash format' }));
168
+ srv.on('READ', TransactionInputs, passthroughRead());
169
+ srv.on('READ', TransactionOutputs, passthroughRead());
170
+ srv.on('READ', TransactionInputAssets, passthroughRead());
171
+ srv.on('READ', TransactionOutputAssets, passthroughRead());
172
+ // ---------------------------------------------------------------------------
173
+ // Transaction Metadata
174
+ // ---------------------------------------------------------------------------
175
+ srv.on('READ', TransactionMetadata, indexOnMissRead(TransactionMetadata, 'tx_hash', validators_1.isTxHash, (db, h) => indexer().indexTransactionMetadata(db, h), { errorMessage: 'Invalid transaction hash format' }));
176
+ /**
177
+ * Action: GetMetadataByTxHash - returns multiple metadata rows (uses SELECT.from, not SELECT.one).
178
+ */
179
+ srv.on('GetMetadataByTxHash', async (req) => {
180
+ const { tx_hash } = req.data;
181
+ if (!tx_hash)
182
+ (0, errors_1.rejectMissing)(req, 'GetMetadataByTxHash', 'tx_hash');
183
+ if (!(0, validators_1.isTxHash)(tx_hash))
184
+ (0, errors_1.rejectInvalid)(req, 'GetMetadataByTxHash', 'Invalid transaction hash format', 'tx_hash');
185
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
186
+ const existing = await db.run(SELECT.from(TransactionMetadata).where({ tx_hash }));
187
+ if (!existing || existing.length === 0) {
188
+ return await indexer().indexTransactionMetadata(db, tx_hash);
189
+ }
190
+ return existing;
191
+ });
192
+ });
193
+ // ---------------------------------------------------------------------------
194
+ // Protocol Parameters (singleton)
195
+ // ---------------------------------------------------------------------------
196
+ srv.on('READ', LedgerProtocolParameters, async (req) => {
197
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
198
+ const existing = await db.run(SELECT.one.from(LedgerProtocolParameters));
199
+ if (!existing)
200
+ return indexer().indexProtocolParameters(db);
201
+ return existing;
202
+ });
203
+ });
204
+ srv.on('GetLedgerProtocolParameters', async (req) => {
205
+ return (0, backend_request_handler_1.handleRequest)(req, (db) => indexer().indexProtocolParameters(db));
206
+ });
207
+ // ---------------------------------------------------------------------------
208
+ // Address Transactions
209
+ // ---------------------------------------------------------------------------
210
+ srv.on('GetLatestTransactionsByAddress', async (req) => {
211
+ const { address, limit } = req.data;
212
+ if (!address)
213
+ (0, errors_1.rejectMissing)(req, 'GetLatestTransactionsByAddress', 'address');
214
+ if (!(0, validators_1.isValidBech32Address)(address))
215
+ (0, errors_1.rejectInvalid)(req, 'GetLatestTransactionsByAddress', 'Invalid bech32 address format', 'address');
216
+ const txLimit = limit && limit > 0 ? limit : 10;
217
+ return (0, backend_request_handler_1.handleRequest)(req, async (db) => {
218
+ const existing = await db.run(SELECT.from(AddressTransactions).where({ address }).limit(txLimit));
219
+ if (!existing || existing.length === 0) {
220
+ return indexer().indexAddressTransactions(db, address, txLimit);
221
+ }
222
+ return existing;
223
+ });
224
+ });
225
+ logger.debug('All handlers registered');
226
+ };
227
+ //# sourceMappingURL=cardano-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-service.js","sourceRoot":"","sources":["cardano-service.ts"],"names":[],"mappings":";;;;;AAAA,mDAAwC;AACxC,qCAA6C;AAC7C,mDAAyJ;AACzJ,2CAA8D;AAC9D,6EAAgE;AAEhE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAG,CAAC,EAAE,CAAC;AAE1B,MAAM,MAAM,GAAG,aAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AASzC;;;;GAIG;AACH,SAAS,eAAe,CACtB,MAAW,EACX,WAAmB,EACnB,QAA2B,EAC3B,OAAgB,EAChB,OAA4D;IAE5D,MAAM,KAAK,GAAG,OAAO,EAAE,cAAc,IAAI,WAAW,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,EAAE,YAAY,IAAI,WAAW,WAAW,SAAS,CAAC;IACxE,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAI,GAAG,CAAC,IAAY,EAAE,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnC,IAAA,sBAAa,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAEjD,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/E,IAAI,CAAC,QAAQ;oBAAE,OAAO,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7C,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,UAAkB,EAClB,MAAW,EACX,WAAmB,EACnB,QAAoB,EACpB,OAAgB,EAChB,OAA4D;IAE5D,MAAM,KAAK,GAAG,OAAO,EAAE,cAAc,IAAI,WAAW,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,EAAE,YAAY,IAAI,WAAW,WAAW,SAAS,CAAC;IACxE,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAI,GAAG,CAAC,IAAY,EAAE,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,IAAI;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAExE,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,QAAQ;gBAAE,OAAO,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE,CAAC,IAAA,uCAAa,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,OAAO,GAAG,CAAC,GAAgB,EAAE,EAAE;IACpC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAEtE,MAAM,EACJ,kBAAkB,EAClB,MAAM,EACN,MAAM,EACN,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,wBAAwB,EACxB,mBAAmB,EACpB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAE/C,uCAAuC;IACvC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,0BAAiB,GAAE,CAAC;IAE1C,8EAA8E;IAC9E,iDAAiD;IACjD,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QACxD,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ;gBAAE,OAAO,MAAM,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QACrD,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ;gBAAE,OAAO,MAAM,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,SAAS;IACT,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,wBAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnI,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC9C,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,SAAS;IACT,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,0BAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,gCAAgC,EAAE,CAAC,CAAC,CAAC;IACpK,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,0BAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,gCAAgC,EAAE,CAAC,CAAC,CAAC;IAE7N,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC9C,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,QAAQ;IACR,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,0BAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,0BAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/H,8EAA8E;IAC9E,WAAW;IACX,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,sCAAyB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzI,GAAG,CAAC,EAAE,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,QAAQ,EAAE,cAAc,EAAE,sCAAyB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjL,8EAA8E;IAC9E,QAAQ;IACR,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,0BAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,0BAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/H,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,iCAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;IACpL,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,iCAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;IAE/M,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC;IAEhD;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAClD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAA4B,CAAC;QACrD,IAAI,CAAC,OAAO;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,IAAA,iCAAoB,EAAC,OAAO,CAAC;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,SAAS,CAAC,CAAC;QAEzH,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ;gBAAE,MAAM,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAA4B,CAAC;QACrD,IAAI,CAAC,OAAO;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,IAAA,iCAAoB,EAAC,OAAO,CAAC;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,SAAS,CAAC,CAAC;QAExH,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ;gBAAE,MAAM,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,eAAe;IACf,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;IACjL,GAAG,CAAC,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;IAE7M,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,CAAC;IACrD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,eAAe,EAAE,CAAC,CAAC;IAC1D,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,CAAC,CAAC;IAE3D,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,EAAE,SAAS,EAAE,qBAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;IAE1M;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QACnD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAA4B,CAAC;QACrD,IAAI,CAAC,OAAO;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,IAAA,qBAAQ,EAAC,OAAO,CAAC;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,SAAS,CAAC,CAAC;QAEhH,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,MAAM,OAAO,EAAE,CAAC,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,kCAAkC;IAClC,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC9D,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ;gBAAE,OAAO,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,6BAA6B,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC3D,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAE9E,GAAG,CAAC,EAAE,CAAC,gCAAgC,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;QAC9D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAA4C,CAAC;QAC5E,IAAI,CAAC,OAAO;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,gCAAgC,EAAE,SAAS,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAA,iCAAoB,EAAC,OAAO,CAAC;YAAE,IAAA,sBAAa,EAAC,GAAG,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,SAAS,CAAC,CAAC;QACrI,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhD,OAAO,IAAA,uCAAa,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAClG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,OAAO,EAAE,CAAC,wBAAwB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC1C,CAAC,CAAC"}