@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
package/package.json ADDED
@@ -0,0 +1,125 @@
1
+ {
2
+ "name": "@odatano/core",
3
+ "version": "0.3.1",
4
+ "description": "SAP CAP plugin for Cardano blockchain OData V4 integration",
5
+ "imports": {
6
+ "#cds-models/*": "./@cds-models/*/index.js"
7
+ },
8
+ "main": "src/index.js",
9
+ "types": "src/index.d.ts",
10
+ "peerDependencies": {
11
+ "@sap/cds": ">=9"
12
+ },
13
+ "dependencies": {
14
+ "@blockfrost/blockfrost-js": "^6.0.0",
15
+ "@cardano-ogmios/client": "^6.14.0",
16
+ "@emurgo/cardano-serialization-lib-nodejs": "^15.0.3",
17
+ "@harmoniclabs/buildooor": "^0.1.21",
18
+ "axios": "^1.13.2",
19
+ "bech32": "^2.0.0"
20
+ },
21
+ "devDependencies": {
22
+ "@cap-js/cds-test": "^0.4.1",
23
+ "@cap-js/cds-typer": "^0.38.0",
24
+ "@cap-js/cds-types": "^0.15.0",
25
+ "@cap-js/hana": "^2",
26
+ "@cap-js/sqlite": "^2",
27
+ "@sap/cds": "^9",
28
+ "@sap/cds-dk": "^9.4.3",
29
+ "@sap/eslint-plugin-cds": "^4",
30
+ "@sap/xssec": "^4",
31
+ "@types/blake2b": "^2.1.3",
32
+ "@types/jest": "^29.5.14",
33
+ "@types/nock": "^10.0.3",
34
+ "@types/node": "^22.19.7",
35
+ "@typescript-eslint/eslint-plugin": "^8.50.1",
36
+ "@typescript-eslint/parser": "^8.50.1",
37
+ "concurrently": "^9.2.1",
38
+ "dotenv": "^16.3.1",
39
+ "eslint": "^9.39.2",
40
+ "express": "^4",
41
+ "jest": "^29.6.1",
42
+ "mock-socket": "^9.3.1",
43
+ "nock": "^14.0.10",
44
+ "ts-jest": "^29.4.5",
45
+ "ts-node": "^10.9.2",
46
+ "tsx": "^4.21.0",
47
+ "typescript": "^5.9.3"
48
+ },
49
+ "cds": {
50
+ "requires": {
51
+ "db": {
52
+ "kind": "sqlite",
53
+ "credentials": {
54
+ "url": "db.sqlite"
55
+ }
56
+ },
57
+ "[production]": {
58
+ "db": {
59
+ "kind": "hana",
60
+ "pool": {
61
+ "acquireTimeoutMillis": 30000,
62
+ "min": 0,
63
+ "max": 10
64
+ }
65
+ },
66
+ "auth": "xsuaa"
67
+ }
68
+ }
69
+ },
70
+ "scripts": {
71
+ "build": "npm run cds:types && tsc",
72
+ "build:plugin": "npm run cds:types && tsc -p tsconfig.build.json",
73
+ "prepublishOnly": "npm run build:plugin",
74
+ "start": "cds-serve",
75
+ "cds:watch": "cds watch",
76
+ "cds:serve": "cds serve --with-mocks",
77
+ "cds:types": "cds-typer \"*\" --outputDirectory @cds-models",
78
+ "lint": "eslint .",
79
+ "typecheck": "tsc --noEmit",
80
+ "db:deploy": "cds deploy",
81
+ "pretest": "npm run cds:types && npm run db:deploy",
82
+ "test": "jest --runInBand",
83
+ "test:coverage": "jest --runInBand --coverage",
84
+ "test:ci": "jest --runInBand --testPathIgnorePatterns=core-ogmios.test.ts",
85
+ "test:ci:coverage": "jest --runInBand --coverage --testPathIgnorePatterns=core-ogmios.test.ts",
86
+ "test:integration": "npm test -- --testPathPattern=integration",
87
+ "test:integration:blockfrost": "npm test -- --testPathPattern=core.blockfrost.test.ts",
88
+ "test:integration:koios": "npm test -- --testPathPattern=core.koios.test.ts",
89
+ "test:integration:ogmios": "npm test -- --testPathPattern=core-ogmios.test.ts",
90
+ "test:integration:both": "npm run test:integration:blockfrost && npm run test:integration:koios",
91
+ "test:unit": "npm test -- --testPathPattern=unit",
92
+ "watch-odatano": "cds watch --open odatano/index.html?sap-ui-xx-viewCache=false --livereload false",
93
+ "watch-wallet-viewer": "concurrently --names \"CAP,UI5\" -c \"blue,green\" \"cds watch\" \"npm start --workspace=wallet-viewer\""
94
+ },
95
+ "workspaces": [
96
+ "app/*"
97
+ ],
98
+ "sapux": [
99
+ "app/odatano"
100
+ ],
101
+ "directories": {
102
+ "doc": "docs",
103
+ "test": "test"
104
+ },
105
+ "repository": {
106
+ "type": "git",
107
+ "url": "git+https://github.com/ODATANO/ODATANO.git"
108
+ },
109
+ "keywords": [
110
+ "CAP",
111
+ "CDS",
112
+ "plugin",
113
+ "Cardano",
114
+ "blockchain",
115
+ "OData",
116
+ "SAP"
117
+ ],
118
+ "author": "Maximilian Weber",
119
+ "license": "Apache-2.0",
120
+ "type": "commonjs",
121
+ "bugs": {
122
+ "url": "https://github.com/ODATANO/ODATANO/issues"
123
+ },
124
+ "homepage": "https://github.com/ODATANO/ODATANO#readme"
125
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1H,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAGjF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD;AAED;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAW3F"}
package/src/index.js ADDED
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.shutdownAppContext = exports.loadConfigFromEnv = exports.getCardanoTxBuilder = exports.getCardanoClient = exports.getCardanoIndexer = exports.getAppContext = exports.CardanoTransactionBuilder = exports.CardanoIndexer = exports.CardanoClient = void 0;
40
+ exports.initialize = initialize;
41
+ exports.shutdown = shutdown;
42
+ exports.getStatus = getStatus;
43
+ const cds_1 = __importDefault(require("@sap/cds"));
44
+ const logger = cds_1.default.log('ODATANO');
45
+ // Re-export key types and classes for programmatic consumers
46
+ var cardano_client_1 = require("../srv/blockchain/cardano-client");
47
+ Object.defineProperty(exports, "CardanoClient", { enumerable: true, get: function () { return cardano_client_1.CardanoClient; } });
48
+ var cardano_indexer_1 = require("../srv/blockchain/cardano-indexer");
49
+ Object.defineProperty(exports, "CardanoIndexer", { enumerable: true, get: function () { return cardano_indexer_1.CardanoIndexer; } });
50
+ var cardano_tx_builder_1 = require("../srv/blockchain/cardano-tx-builder");
51
+ Object.defineProperty(exports, "CardanoTransactionBuilder", { enumerable: true, get: function () { return cardano_tx_builder_1.CardanoTransactionBuilder; } });
52
+ // Re-export server accessors
53
+ var server_1 = require("../srv/server");
54
+ Object.defineProperty(exports, "getAppContext", { enumerable: true, get: function () { return server_1.getAppContext; } });
55
+ Object.defineProperty(exports, "getCardanoIndexer", { enumerable: true, get: function () { return server_1.getCardanoIndexer; } });
56
+ Object.defineProperty(exports, "getCardanoClient", { enumerable: true, get: function () { return server_1.getCardanoClient; } });
57
+ Object.defineProperty(exports, "getCardanoTxBuilder", { enumerable: true, get: function () { return server_1.getCardanoTxBuilder; } });
58
+ Object.defineProperty(exports, "loadConfigFromEnv", { enumerable: true, get: function () { return server_1.loadConfigFromEnv; } });
59
+ Object.defineProperty(exports, "shutdownAppContext", { enumerable: true, get: function () { return server_1.shutdownAppContext; } });
60
+ /**
61
+ * Initialize the ODATANO plugin.
62
+ * Loads configuration from cds.env.requires["odatano-core"] OR environment variables,
63
+ * then initializes all blockchain components.
64
+ */
65
+ async function initialize() {
66
+ const { loadConfigFromEnv, initializeFromConfig } = await Promise.resolve().then(() => __importStar(require('../srv/server')));
67
+ const config = loadConfigFromEnv();
68
+ await initializeFromConfig(config);
69
+ logger.info('ODATANO core initialized');
70
+ }
71
+ /**
72
+ * Shutdown the ODATANO plugin.
73
+ * Cleans up all backend connections (especially Ogmios WebSocket).
74
+ */
75
+ async function shutdown() {
76
+ const { shutdownAppContext } = await Promise.resolve().then(() => __importStar(require('../srv/server')));
77
+ await shutdownAppContext();
78
+ logger.info('ODATANO core shutdown');
79
+ }
80
+ /**
81
+ * Get the current status of the plugin.
82
+ */
83
+ function getStatus() {
84
+ try {
85
+ const { getAppContext } = require('../srv/server');
86
+ const ctx = getAppContext();
87
+ return {
88
+ initialized: true,
89
+ network: ctx.cardanoClient.network,
90
+ };
91
+ }
92
+ catch {
93
+ return { initialized: false };
94
+ }
95
+ }
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,gCAKC;AAMD,4BAIC;AAKD,8BAWC;AAxDD,mDAA2B;AAE3B,MAAM,MAAM,GAAG,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAElC,6DAA6D;AAC7D,mEAAiE;AAAxD,+GAAA,aAAa,OAAA;AAEtB,qEAAmE;AAA1D,iHAAA,cAAc,OAAA;AACvB,2EAAiF;AAAxE,+HAAA,yBAAyB,OAAA;AAElC,6BAA6B;AAC7B,wCAOuB;AANrB,uGAAA,aAAa,OAAA;AACb,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,6GAAA,mBAAmB,OAAA;AACnB,2GAAA,iBAAiB,OAAA;AACjB,4GAAA,kBAAkB,OAAA;AAGpB;;;;GAIG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;IAClF,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,QAAQ;IAC5B,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;IAC7D,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;SACnC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["plugin.ts"],"names":[],"mappings":"AA8DA,OAAO,EAAE,CAAC"}
package/src/plugin.js ADDED
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const cds_1 = __importDefault(require("@sap/cds"));
40
+ const logger = cds_1.default.log('ODATANO');
41
+ let initialized = false;
42
+ /**
43
+ * CAP Plugin registration for @odatano/core
44
+ * This is executed when the plugin is loaded via cds-plugin.js
45
+ */
46
+ // Register service kinds so consumer apps can configure via cds.env.requires
47
+ if (!cds_1.default.env.requires) {
48
+ cds_1.default.env.requires = {};
49
+ }
50
+ if (!cds_1.default.env.requires.kinds) {
51
+ cds_1.default.env.requires.kinds = {};
52
+ }
53
+ cds_1.default.env.requires.kinds['odatano-core'] = {
54
+ impl: '@odatano/core',
55
+ };
56
+ logger.debug('Plugin registered');
57
+ /**
58
+ * Initialize blockchain components when services are served
59
+ */
60
+ cds_1.default.on('served', async () => {
61
+ if (initialized)
62
+ return;
63
+ logger.debug('Plugin activation triggered');
64
+ try {
65
+ const core = await Promise.resolve().then(() => __importStar(require('./index')));
66
+ await core.initialize();
67
+ logger.info('Plugin initialized successfully');
68
+ initialized = true;
69
+ }
70
+ catch (err) {
71
+ // Don't throw - plugin failure shouldn't crash the host app
72
+ logger.error('Failed to initialize plugin:', err);
73
+ }
74
+ });
75
+ /**
76
+ * Graceful shutdown handler
77
+ */
78
+ cds_1.default.on('shutdown', async () => {
79
+ if (!initialized)
80
+ return;
81
+ try {
82
+ logger.debug('Shutting down...');
83
+ const core = await Promise.resolve().then(() => __importStar(require('./index')));
84
+ await core.shutdown();
85
+ initialized = false;
86
+ logger.info('Plugin shutdown complete');
87
+ }
88
+ catch (err) {
89
+ logger.error('Error during shutdown:', err);
90
+ }
91
+ });
92
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA2B;AAE3B,MAAM,MAAM,GAAG,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAElC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;GAGG;AAEH,6EAA6E;AAC7E,IAAI,CAAC,aAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACrB,aAAG,CAAC,GAA8C,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpE,CAAC;AAED,IAAI,CAAE,aAAG,CAAC,GAAG,CAAC,QAAoC,CAAC,KAAK,EAAE,CAAC;IACxD,aAAG,CAAC,GAAG,CAAC,QAAgD,CAAC,KAAK,GAAG,EAAE,CAAC;AACvE,CAAC;AAEA,aAAG,CAAC,GAAG,CAAC,QAAgD,CAAC,KAAM,CAAC,cAAc,CAAC,GAAG;IACjF,IAAI,EAAE,eAAe;CACtB,CAAC;AAEF,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAElC;;GAEG;AACH,aAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC1B,IAAI,WAAW;QAAE,OAAO;IAExB,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,wDAAa,SAAS,GAAC,CAAC;QACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,4DAA4D;QAC5D,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,aAAG,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;IAC5B,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,wDAAa,SAAS,GAAC,CAAC;QACrC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,WAAW,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockfrost-backend.d.ts","sourceRoot":"","sources":["blockfrost-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,IAAI,EACJ,kBAAkB,EAClB,SAAS,EAET,eAAe,EACf,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAgB,IAAI,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;gBACS,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IASlE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAW9B;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAa1D;;;;OAIG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBrD;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBvD;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmDxD;;;;OAIG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAmBzE;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BnD;;;;OAIG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAerF;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAkBvD;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyBhD;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmBhD;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2B5D;;;;OAIG;IACG,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9D;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IA8ChE;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC;IAqB1C;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC;CAoB3C"}