@bsv/overlay 0.1.0-alpha.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 (119) hide show
  1. package/LICENSE.txt +28 -0
  2. package/README.md +220 -0
  3. package/dist/cjs/mod.js +43 -0
  4. package/dist/cjs/mod.js.map +1 -0
  5. package/dist/cjs/package.json +53 -0
  6. package/dist/cjs/src/AdmittanceInstructions.js +3 -0
  7. package/dist/cjs/src/AdmittanceInstructions.js.map +1 -0
  8. package/dist/cjs/src/Engine.js +361 -0
  9. package/dist/cjs/src/Engine.js.map +1 -0
  10. package/dist/cjs/src/LookupAnswer.js +3 -0
  11. package/dist/cjs/src/LookupAnswer.js.map +1 -0
  12. package/dist/cjs/src/LookupFormula.js +3 -0
  13. package/dist/cjs/src/LookupFormula.js.map +1 -0
  14. package/dist/cjs/src/LookupQuestion.js +3 -0
  15. package/dist/cjs/src/LookupQuestion.js.map +1 -0
  16. package/dist/cjs/src/LookupService.js +3 -0
  17. package/dist/cjs/src/LookupService.js.map +1 -0
  18. package/dist/cjs/src/Output.js +3 -0
  19. package/dist/cjs/src/Output.js.map +1 -0
  20. package/dist/cjs/src/STEAK.js +3 -0
  21. package/dist/cjs/src/STEAK.js.map +1 -0
  22. package/dist/cjs/src/TaggedBEEF.js +3 -0
  23. package/dist/cjs/src/TaggedBEEF.js.map +1 -0
  24. package/dist/cjs/src/TopicManager.js +3 -0
  25. package/dist/cjs/src/TopicManager.js.map +1 -0
  26. package/dist/cjs/src/storage/Storage.js +3 -0
  27. package/dist/cjs/src/storage/Storage.js.map +1 -0
  28. package/dist/cjs/src/storage/knex/KnexStorage.js +76 -0
  29. package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -0
  30. package/dist/cjs/src/storage/knex/all-migrations.js +11 -0
  31. package/dist/cjs/src/storage/knex/all-migrations.js.map +1 -0
  32. package/dist/cjs/src/storage/knex/migrations/2024-05-18-001-initial.js +33 -0
  33. package/dist/cjs/src/storage/knex/migrations/2024-05-18-001-initial.js.map +1 -0
  34. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  35. package/dist/esm/mod.js +17 -0
  36. package/dist/esm/mod.js.map +1 -0
  37. package/dist/esm/src/AdmittanceInstructions.js +2 -0
  38. package/dist/esm/src/AdmittanceInstructions.js.map +1 -0
  39. package/dist/esm/src/Engine.js +357 -0
  40. package/dist/esm/src/Engine.js.map +1 -0
  41. package/dist/esm/src/LookupAnswer.js +2 -0
  42. package/dist/esm/src/LookupAnswer.js.map +1 -0
  43. package/dist/esm/src/LookupFormula.js +2 -0
  44. package/dist/esm/src/LookupFormula.js.map +1 -0
  45. package/dist/esm/src/LookupQuestion.js +2 -0
  46. package/dist/esm/src/LookupQuestion.js.map +1 -0
  47. package/dist/esm/src/LookupService.js +2 -0
  48. package/dist/esm/src/LookupService.js.map +1 -0
  49. package/dist/esm/src/Output.js +2 -0
  50. package/dist/esm/src/Output.js.map +1 -0
  51. package/dist/esm/src/STEAK.js +2 -0
  52. package/dist/esm/src/STEAK.js.map +1 -0
  53. package/dist/esm/src/TaggedBEEF.js +2 -0
  54. package/dist/esm/src/TaggedBEEF.js.map +1 -0
  55. package/dist/esm/src/TopicManager.js +2 -0
  56. package/dist/esm/src/TopicManager.js.map +1 -0
  57. package/dist/esm/src/storage/Storage.js +2 -0
  58. package/dist/esm/src/storage/Storage.js.map +1 -0
  59. package/dist/esm/src/storage/knex/KnexStorage.js +74 -0
  60. package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -0
  61. package/dist/esm/src/storage/knex/all-migrations.js +9 -0
  62. package/dist/esm/src/storage/knex/all-migrations.js.map +1 -0
  63. package/dist/esm/src/storage/knex/migrations/2024-05-18-001-initial.js +28 -0
  64. package/dist/esm/src/storage/knex/migrations/2024-05-18-001-initial.js.map +1 -0
  65. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  66. package/dist/types/mod.d.ts +14 -0
  67. package/dist/types/mod.d.ts.map +1 -0
  68. package/dist/types/src/AdmittanceInstructions.d.ts +14 -0
  69. package/dist/types/src/AdmittanceInstructions.d.ts.map +1 -0
  70. package/dist/types/src/Engine.d.ts +92 -0
  71. package/dist/types/src/Engine.d.ts.map +1 -0
  72. package/dist/types/src/LookupAnswer.d.ts +15 -0
  73. package/dist/types/src/LookupAnswer.d.ts.map +1 -0
  74. package/dist/types/src/LookupFormula.d.ts +25 -0
  75. package/dist/types/src/LookupFormula.d.ts.map +1 -0
  76. package/dist/types/src/LookupQuestion.d.ts +15 -0
  77. package/dist/types/src/LookupQuestion.d.ts.map +1 -0
  78. package/dist/types/src/LookupService.d.ts +52 -0
  79. package/dist/types/src/LookupService.d.ts.map +1 -0
  80. package/dist/types/src/Output.d.ts +30 -0
  81. package/dist/types/src/Output.d.ts.map +1 -0
  82. package/dist/types/src/STEAK.d.ts +10 -0
  83. package/dist/types/src/STEAK.d.ts.map +1 -0
  84. package/dist/types/src/TaggedBEEF.d.ts +11 -0
  85. package/dist/types/src/TaggedBEEF.d.ts.map +1 -0
  86. package/dist/types/src/TopicManager.d.ts +27 -0
  87. package/dist/types/src/TopicManager.d.ts.map +1 -0
  88. package/dist/types/src/storage/Storage.d.ts +66 -0
  89. package/dist/types/src/storage/Storage.d.ts.map +1 -0
  90. package/dist/types/src/storage/knex/KnexStorage.d.ts +24 -0
  91. package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -0
  92. package/dist/types/src/storage/knex/all-migrations.d.ts +10 -0
  93. package/dist/types/src/storage/knex/all-migrations.d.ts.map +1 -0
  94. package/dist/types/src/storage/knex/migrations/2024-05-18-001-initial.d.ts +4 -0
  95. package/dist/types/src/storage/knex/migrations/2024-05-18-001-initial.d.ts.map +1 -0
  96. package/dist/types/tsconfig.types.tsbuildinfo +1 -0
  97. package/docs/API.md +621 -0
  98. package/docs/README.md +8 -0
  99. package/docs/concepts/README.md +4 -0
  100. package/docs/examples/README.md +5 -0
  101. package/docs/examples/gs-wip.md +105 -0
  102. package/docs/internal/README.md +4 -0
  103. package/mod.ts +18 -0
  104. package/package.json +78 -0
  105. package/src/AdmittanceInstructions.ts +14 -0
  106. package/src/Engine.ts +419 -0
  107. package/src/LookupAnswer.ts +14 -0
  108. package/src/LookupFormula.ts +26 -0
  109. package/src/LookupQuestion.ts +15 -0
  110. package/src/LookupService.ts +52 -0
  111. package/src/Output.ts +29 -0
  112. package/src/STEAK.ts +10 -0
  113. package/src/TaggedBEEF.ts +10 -0
  114. package/src/TopicManager.ts +23 -0
  115. package/src/__tests/Engine.test.ts +792 -0
  116. package/src/storage/Storage.ts +72 -0
  117. package/src/storage/knex/KnexStorage.ts +90 -0
  118. package/src/storage/knex/all-migrations.ts +14 -0
  119. package/src/storage/knex/migrations/2024-05-18-001-initial.ts +30 -0
package/LICENSE.txt ADDED
@@ -0,0 +1,28 @@
1
+ Open BSV License version 4
2
+
3
+ Copyright (c) 2023 BSV Blockchain Association ("Bitcoin Association")
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ 1 - The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ 2 - The Software, and any software that is derived from the Software or parts thereof,
16
+ can only be used on the Bitcoin SV blockchains. The Bitcoin SV blockchains are defined,
17
+ for purposes of this license, as the Bitcoin blockchain containing block height #556767
18
+ with the hash "000000000000000001d956714215d96ffc00e0afda4cd0a96c96f8d802b1662b" and
19
+ that contains the longest persistent chain of blocks accepted by this Software and which are valid under the rules set forth in the Bitcoin white paper (S. Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, posted online October 2008) and the latest version of this Software available in this repository or another repository designated by Bitcoin Association,
20
+ as well as the test blockchains that contain the longest persistent chains of blocks accepted by this Software and which are valid under the rules set forth in the Bitcoin whitepaper (S. Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, posted online October 2008) and the latest version of this Software available in this repository, or another repository designated by Bitcoin Association
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,220 @@
1
+ # BSV Overlay Services Engine
2
+
3
+ BSV BLOCKCHAIN | Overlay Services Engine
4
+
5
+ The Overlay Services Engine enables dynamic tracking and management of UTXO-based systems that work on top of the BSV blockchain.
6
+
7
+ ## Table of Contents
8
+
9
+ 1. [Objective](#objective)
10
+ 2. [Getting Started](#getting-started)
11
+ 3. [Features & Deliverables](#features--deliverables)
12
+ 4. [Documentation](#documentation)
13
+ 5. [Contribution Guidelines](#contribution-guidelines)
14
+ 6. [Support & Contacts](#support--contacts)
15
+
16
+ ## Objective
17
+
18
+ - Enable a general-purpose system for tracking UTXOs
19
+ - Let each service decide what UTXOs get into the system
20
+ - Provide an efficient global storage engine for UTXO data
21
+ - Let each lookup service dynamically respond to different types of queries
22
+ - Let each lookup service have its own, specialized storage engine for its unique needs
23
+
24
+ ## Getting Started
25
+
26
+ ### Installation
27
+
28
+ You'll usually want to wrap the Engine within an HTTP server. To get set up with Express, create a new project and install everything you'll need:
29
+
30
+ ```
31
+ npm i express body-parser @bsv/sdk @bsv/overlay hello-services knex
32
+ ```
33
+
34
+ ### Basic Usage
35
+
36
+ In your server's main file, you can set everything up. Create a new Engine to run the overlay services you want, then expose some routes over HTTP. For example:
37
+
38
+ ```js
39
+ const express = require('express')
40
+ const bodyparser = require('body-parser')
41
+ const { Engine, KnexStorage, HelloTopicManager, HelloLookupService, HelloStorageEngine } = require('@bsv/overlay')
42
+ const { WoChain } = require('@bsv/sdk')
43
+ // Populate a Knexfile with your database credentials
44
+ const knex = require('knex')(require('../knexfile.js'))
45
+ const app = express()
46
+ app.use(bodyparser.json({ limit: '1gb', type: 'application/json' }))
47
+
48
+ const engine = new Engine(
49
+ {
50
+ hello: new HelloTopicManager(),
51
+ },
52
+ {
53
+ hello: new HelloLookupService({
54
+ storageEngine: new HelloStorageEngine({
55
+ knex
56
+ })
57
+ }),
58
+ },
59
+ new KnexStorageEngine({
60
+ knex
61
+ })
62
+ )
63
+
64
+ // This allows the API to be used everywhere when CORS is enforced
65
+ app.use((req, res, next) => {
66
+ res.header('Access-Control-Allow-Origin', '*')
67
+ res.header('Access-Control-Allow-Headers', '*')
68
+ res.header('Access-Control-Allow-Methods', '*')
69
+ res.header('Access-Control-Expose-Headers', '*')
70
+ res.header('Access-Control-Allow-Private-Network', 'true')
71
+ if (req.method === 'OPTIONS') {
72
+ res.sendStatus(200)
73
+ } else {
74
+ next()
75
+ }
76
+ })
77
+
78
+ // Serve a static documentstion site, if you have one.
79
+ app.use(express.static('public'))
80
+
81
+ // List hosted topic managers and lookup services
82
+ app.get(`/listTopicManagers`, async (req, res) => {
83
+ try {
84
+ const result = await engine.listTopicManagers()
85
+ return res.status(200).json(result)
86
+ } catch (error) {
87
+ return res.status(400).json({
88
+ status: 'error',
89
+ code: error.code,
90
+ description: error.message
91
+ })
92
+ }
93
+ })
94
+ app.get(`/listLookupServiceProviders`, async (req, res) => {
95
+ try {
96
+ const result = await engine.listLookupServiceProviders()
97
+ return res.status(200).json(result)
98
+ } catch (error) {
99
+ return res.status(400).json({
100
+ status: 'error',
101
+ code: error.code,
102
+ description: error.message
103
+ })
104
+ }
105
+ })
106
+
107
+ // Host documentation for the services
108
+ app.get(`/getDocumentationForTopicManager`, async (req, res) => {
109
+ try {
110
+ const result = await engine.getDocumentationForTopicManger(req.query.manager)
111
+ return res.status(200).json(result)
112
+ } catch (error) {
113
+ return res.status(400).json({
114
+ status: 'error',
115
+ code: error.code,
116
+ description: error.message
117
+ })
118
+ }
119
+ })
120
+ app.get(`/getDocumentationForLookupServiceProvider`, async (req, res) => {
121
+ try {
122
+ const result = await engine.getDocumentationForLookupServiceProvider(req.query.lookupServices)
123
+ return res.status(200).json(result)
124
+ } catch (error) {
125
+ return res.status(400).json({
126
+ status: 'error',
127
+ code: error.code,
128
+ description: error.message
129
+ })
130
+ }
131
+ })
132
+
133
+ // Submit transactions and facilitate lookup requests
134
+ app.post(`/submit`, async (req, res) => {
135
+ try {
136
+ const result = await engine.submit(req.body)
137
+ return res.status(200).json(result)
138
+ } catch (error) {
139
+ return res.status(400).json({
140
+ status: 'error',
141
+ code: error.code,
142
+ description: error.message
143
+ })
144
+ }
145
+ })
146
+ app.post(`/lookup`, async (req, res) => {
147
+ try {
148
+ const result = await engine.lookup(req.body)
149
+ return res.status(200).json(result)
150
+ } catch (error) {
151
+ return res.status(400).json({
152
+ status: 'error',
153
+ code: error.code,
154
+ description: error.message
155
+ })
156
+ }
157
+ })
158
+
159
+ // 404, all other routes are not found.
160
+ app.use((req, res) => {
161
+ console.log('404', req.url)
162
+ res.status(404).json({
163
+ status: 'error',
164
+ code: 'ERR_ROUTE_NOT_FOUND',
165
+ description: 'Route not found.'
166
+ })
167
+ })
168
+
169
+ // Start your Engines!
170
+ app.listen(8080, () => {
171
+ console.log('BSV Overlay Services Engine is listening on port', 8080)
172
+ })
173
+ ```
174
+
175
+ For more detailed tutorials and examples, check out the [full documentation](#documentation).
176
+
177
+ The Overlay Services Engine is also richly documented with code-level annotations. This should show up well within editors like VSCode.
178
+
179
+ <!-- ## Documentation
180
+
181
+ [links to conceptsexamples and internals] -->
182
+
183
+ ## Features & Deliverables
184
+
185
+ - UTXO Tracking
186
+ - History management and state tracking
187
+ - Lookup Services
188
+ - Storage engine abstractions
189
+ - [WIP] Examples, HTTP wrapper and Docs
190
+ - [WIP] Arc Proof Acquisition
191
+ - [WIP] Distributed Overlay Availability Advertisements
192
+ - [WIP] Federated Transaction Synchronization
193
+
194
+ ## Contribution Guidelines
195
+
196
+ We're always looking for contributors to help us improve the Engine. Whether it's bug reports, feature requests, or pull requests - all contributions are welcome.
197
+
198
+ 1. **Fork & Clone**: Fork this repository and clone it to your local machine.
199
+ 2. **Set Up**: Run `npm i` to install all dependencies.
200
+ 3. **Make Changes**: Create a new branch and make your changes.
201
+ 4. **Test**: Ensure all tests pass by running `npm test`.
202
+ 5. **Commit**: Commit your changes and push to your fork.
203
+ 6. **Pull Request**: Open a pull request from your fork to this repository.
204
+ For more details, check the [contribution guidelines](./CONTRIBUTING.md).
205
+
206
+ For information on past releases, check out the [changelog](./CHANGELOG.md). For future plans, check the [roadmap](./ROADMAP.md)!
207
+
208
+ ## Support & Contacts
209
+
210
+ Project Owners: Thomas Giacomo, Darren Kellenschwiler, Jake Jones
211
+
212
+ Development Team Lead: Ty Everett
213
+
214
+ For questions, bug reports, or feature requests, please open an issue on GitHub or contact us directly.
215
+
216
+ ## License
217
+
218
+ The license for the code in this repository is the Open BSV License. Refer to [LICENSE.txt](./LICENSE.txt) for the license text.
219
+
220
+ Thank you for being a part of the BSV Blockchain Overlay Services Project. Let's build the future of BSV Blockchain together!
@@ -0,0 +1,43 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.KnexStorageMigrations = exports.KnexStorage = exports.LookupAnswer = exports.LookupFormula = exports.LookupQuestion = exports.STEAK = exports.TaggedBEEF = exports.AdmittanceInstructions = exports.Output = exports.Storage = exports.TopicManager = exports.LookupService = exports.Engine = void 0;
27
+ // Fundamentals
28
+ exports.Engine = __importStar(require("./src/Engine.js"));
29
+ exports.LookupService = __importStar(require("./src/LookupService.js"));
30
+ exports.TopicManager = __importStar(require("./src/TopicManager.js"));
31
+ // Interfaces and structures
32
+ exports.Storage = __importStar(require("./src/storage/Storage.js"));
33
+ exports.Output = __importStar(require("./src/Output.js"));
34
+ exports.AdmittanceInstructions = __importStar(require("./src/AdmittanceInstructions.js"));
35
+ exports.TaggedBEEF = __importStar(require("./src/TaggedBEEF.js"));
36
+ exports.STEAK = __importStar(require("./src/STEAK.js"));
37
+ exports.LookupQuestion = __importStar(require("./src/LookupQuestion.js"));
38
+ exports.LookupFormula = __importStar(require("./src/LookupFormula.js"));
39
+ exports.LookupAnswer = __importStar(require("./src/LookupAnswer.js"));
40
+ // The Knex storage system
41
+ exports.KnexStorage = __importStar(require("./src/storage/knex/KnexStorage.js"));
42
+ exports.KnexStorageMigrations = __importStar(require("./src/storage/knex/all-migrations.js"));
43
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,0DAAyC;AACzC,wEAAuD;AACvD,sEAAqD;AAErD,4BAA4B;AAC5B,oEAAmD;AACnD,0DAAyC;AACzC,0FAAyE;AACzE,kEAAiD;AACjD,wDAAuC;AACvC,0EAAyD;AACzD,wEAAuD;AACvD,sEAAqD;AAErD,0BAA0B;AAC1B,iFAAgE;AAChE,8FAA6E"}
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@bsv/overlay",
3
+ "version": "0.1.0-alpha.1",
4
+ "type": "commonjs",
5
+ "description": "BSV Blockchain Overlay Services Engine",
6
+ "files": [
7
+ "dist",
8
+ "src",
9
+ "docs",
10
+ "mod.ts",
11
+ "LICENSE.txt"
12
+ ],
13
+ "scripts": {
14
+ "test": "npm run build && jest",
15
+ "test:watch": "npm run build && jest --watch",
16
+ "test:coverage": "npm run build && jest --coverage",
17
+ "lint": "ts-standard --fix src/**/*.ts",
18
+ "build": "tsc -b && tsconfig-to-dual-package tsconfig.cjs.json",
19
+ "dev": "tsc -b -w",
20
+ "prepublish": "npm run build",
21
+ "doc": "ts2md --inputFilename=mod.ts --outputFilename=docs/API.md --filenameSubstring=API --firstHeadingLevel=1"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/bitcoin-sv/overlay-services.git"
26
+ },
27
+ "keywords": [
28
+ "BSV",
29
+ "Blockchain",
30
+ "Overlay",
31
+ "Bitcoin",
32
+ "SV"
33
+ ],
34
+ "author": "BSV Association",
35
+ "license": "SEE LICENSE IN LICENSE.txt",
36
+ "bugs": {
37
+ "url": "https://github.com/bitcoin-sv/overlay-services/issues"
38
+ },
39
+ "homepage": "https://github.com/bitcoin-sv/overlay-services#readme",
40
+ "devDependencies": {
41
+ "@types/jest": "^29.5.12",
42
+ "jest": "^29.7.0",
43
+ "ts-jest": "^29.1.1",
44
+ "ts-standard": "^12.0.2",
45
+ "ts2md": "^0.2.0",
46
+ "tsconfig-to-dual-package": "^1.2.0",
47
+ "typescript": "^5.2.2"
48
+ },
49
+ "dependencies": {
50
+ "@bsv/sdk": "^1.0.20",
51
+ "knex": "^3.1.0"
52
+ }
53
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AdmittanceInstructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdmittanceInstructions.js","sourceRoot":"","sources":["../../../src/AdmittanceInstructions.ts"],"names":[],"mappings":""}