@rawsql-ts/sql-contract 0.1.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.
- package/LICENSE +21 -0
- package/README.md +476 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/mapper/index.d.ts +192 -0
- package/dist/mapper/index.js +691 -0
- package/dist/mapper/index.js.map +1 -0
- package/dist/query-params.d.ts +2 -0
- package/dist/query-params.js +3 -0
- package/dist/query-params.js.map +1 -0
- package/dist/writer/index.d.ts +52 -0
- package/dist/writer/index.js +155 -0
- package/dist/writer/index.js.map +1 -0
- package/dist/writer/presets.d.ts +25 -0
- package/dist/writer/presets.js +67 -0
- package/dist/writer/presets.js.map +1 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 MSugiura
|
|
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
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
# @rawsql-ts/sql-contract
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
@rawsql-ts/sql-contract is a lightweight library designed to reduce the repetitive, mechanical code commonly encountered when working with handwritten SQL.
|
|
6
|
+
|
|
7
|
+
It improves the following aspects of the development experience:
|
|
8
|
+
|
|
9
|
+
- Mapping query results to models
|
|
10
|
+
- Writing simple INSERT, UPDATE, and DELETE statements
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
* Zero runtime dependencies
|
|
17
|
+
(pure JavaScript; no external packages required at runtime)
|
|
18
|
+
* Zero DBMS dependency
|
|
19
|
+
(tested with PostgreSQL, MySQL, SQL Server, and SQLite)
|
|
20
|
+
* Zero database client dependency
|
|
21
|
+
(works with any client that executes SQL and returns rows)
|
|
22
|
+
* Zero framework and ORM dependency
|
|
23
|
+
(fits into any application architecture that uses raw SQL)
|
|
24
|
+
* No schema models or metadata required
|
|
25
|
+
(tables, columns, and relationships are defined only in SQL)
|
|
26
|
+
* Result mapping helpers that operate on any SQL returning rows
|
|
27
|
+
(including SELECT queries and CUD statements with RETURNING or aggregate results)
|
|
28
|
+
* Simple builders for common INSERT, UPDATE, and DELETE cases, without query inference
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Philosophy
|
|
33
|
+
|
|
34
|
+
sql-contract treats SQL?especially SELECT statements?as a language for expressing domain requirements.
|
|
35
|
+
|
|
36
|
+
In SQL development, it is essential to iterate quickly through the cycle of design, writing, verification, and refinement. To achieve this, a SQL client is indispensable. SQL must remain SQL, directly executable and verifiable; it cannot be adequately replaced by a DSL without breaking this feedback loop.
|
|
37
|
+
|
|
38
|
+
Based on this philosophy, this library intentionally does not provide query construction features for SELECT statements. Queries should be written by humans, as raw SQL, and validated directly against the database.
|
|
39
|
+
|
|
40
|
+
At the same time, writing SQL inevitably involves mechanical tasks. In particular, mapping returned rows to application-level models is not part of the domain logic, yet it often becomes verbose and error-prone. sql-contract focuses on reducing this burden.
|
|
41
|
+
|
|
42
|
+
By contrast, write operations such as INSERT, UPDATE, and DELETE generally do not carry the same level of domain significance as SELECT statements. They are often repetitive, consisting of short and predictable patterns such as primary-key-based updates.
|
|
43
|
+
|
|
44
|
+
To address this, the library provides minimal builder helpers for common cases only.
|
|
45
|
+
|
|
46
|
+
It deliberately goes no further than this.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Getting Started
|
|
51
|
+
|
|
52
|
+
### Installation
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
pnpm add @rawsql-ts/sql-contract
|
|
56
|
+
```
|
|
57
|
+
### Minimal CRUD sample
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { Pool } from 'pg'
|
|
61
|
+
import { insert, update, remove } from '@rawsql-ts/sql-contract/writer'
|
|
62
|
+
import {
|
|
63
|
+
createMapperFromExecutor,
|
|
64
|
+
mapperPresets,
|
|
65
|
+
type QueryParams,
|
|
66
|
+
} from '@rawsql-ts/sql-contract/mapper'
|
|
67
|
+
|
|
68
|
+
type Customer = {
|
|
69
|
+
customerId: number
|
|
70
|
+
customerName: string
|
|
71
|
+
customerStatus: string
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function main() {
|
|
75
|
+
// Prepare an executor that runs SQL and returns rows.
|
|
76
|
+
// sql-contract remains DBMS- and driver-agnostic by depending only on this function.
|
|
77
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL })
|
|
78
|
+
|
|
79
|
+
const executor = async (sql: string, params: QueryParams) => {
|
|
80
|
+
const result = await pool.query(sql, params as unknown[])
|
|
81
|
+
return result.rows
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// SELECT:
|
|
85
|
+
// Map snake_case SQL columns to a typed DTO without writing per-column mapping code.
|
|
86
|
+
const mapper = createMapperFromExecutor(executor, mapperPresets.appLike())
|
|
87
|
+
const rows = await mapper.query<Customer>(
|
|
88
|
+
`
|
|
89
|
+
select
|
|
90
|
+
customer_id,
|
|
91
|
+
customer_name,
|
|
92
|
+
customer_status
|
|
93
|
+
from customers
|
|
94
|
+
where customer_id = $1
|
|
95
|
+
`,
|
|
96
|
+
[42],
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
// INSERT:
|
|
100
|
+
// Simplify repetitive SQL for common write operations.
|
|
101
|
+
const insertResult = insert('customers', {
|
|
102
|
+
name: 'alice',
|
|
103
|
+
status: 'pending',
|
|
104
|
+
})
|
|
105
|
+
await executor(insertResult.sql, insertResult.params)
|
|
106
|
+
|
|
107
|
+
// UPDATE:
|
|
108
|
+
// Simplify repetitive SQL for common write operations.
|
|
109
|
+
const updateResult = update(
|
|
110
|
+
'customers',
|
|
111
|
+
{ status: 'active' },
|
|
112
|
+
{ id: 42 },
|
|
113
|
+
)
|
|
114
|
+
await executor(updateResult.sql, updateResult.params)
|
|
115
|
+
|
|
116
|
+
// DELETE:
|
|
117
|
+
// Simplify repetitive SQL for common write operations.
|
|
118
|
+
const deleteResult = remove('customers', { id: 17 })
|
|
119
|
+
await executor(deleteResult.sql, deleteResult.params)
|
|
120
|
+
|
|
121
|
+
await pool.end()
|
|
122
|
+
void rows
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
void main()
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Executor: DBMS / Driver Integration
|
|
131
|
+
|
|
132
|
+
`sql-contract` is designed as a reusable, DBMS-agnostic library.
|
|
133
|
+
To integrate it with a specific database or driver, **you must define a small executor function**.
|
|
134
|
+
|
|
135
|
+
An executor receives a SQL string and parameters, executes them using your DB driver, and returns the resulting rows as `Row[]`.
|
|
136
|
+
By doing so, `sql-contract` can consume query results without knowing anything about the underlying database or driver.
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
const executor = async (sql: string, params: QueryParams) => {
|
|
140
|
+
const result = await pool.query(sql, params as unknown[])
|
|
141
|
+
return result.rows
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
This function is the single integration point between `sql-contract` and the DBMS.
|
|
146
|
+
Connection pooling, transactions, retries, error handling, and other DBMS- or driver-specific concerns should all be handled within the executor.
|
|
147
|
+
|
|
148
|
+
The `params` argument uses the exported `QueryParams` type.
|
|
149
|
+
It supports both positional arrays and named records, allowing executors to work with positional, anonymous, or named parameter styles depending on the driver.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
## Mapper: Query Result Mapping (R)
|
|
153
|
+
|
|
154
|
+
The mapper is responsible for projecting query results (`Row[]`) into DTOs.
|
|
155
|
+
|
|
156
|
+
R looks like this:
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
const reader = mapper.bind(customerMapping)
|
|
160
|
+
await reader.one('SELECT ...', [42])
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
In a typical application, a mapper is created once and reused across queries.
|
|
164
|
+
It defines application-wide mapping behavior, while individual queries decide how results are projected.
|
|
165
|
+
|
|
166
|
+
The mapper operates purely on returned rows and never inspects SQL, parameters, or execution behavior.
|
|
167
|
+
To keep mapping predictable, it does not guess column semantics or relationships.
|
|
168
|
+
All transformations are applied through explicit configuration.
|
|
169
|
+
|
|
170
|
+
```ts
|
|
171
|
+
import {
|
|
172
|
+
createMapperFromExecutor,
|
|
173
|
+
mapperPresets,
|
|
174
|
+
} from '@rawsql-ts/sql-contract/mapper'
|
|
175
|
+
|
|
176
|
+
// `executor` is defined according to the Executor section above.
|
|
177
|
+
const mapper = createMapperFromExecutor(
|
|
178
|
+
executor,
|
|
179
|
+
mapperPresets.appLike(),
|
|
180
|
+
)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
This example shows a typical mapper setup.
|
|
184
|
+
|
|
185
|
+
For read-heavy flows you can also call `createReader(executor)`, which aliases the same factory and applies `mapperPresets.appLike()` by default so you get camelCase mapping with minimal setup.
|
|
186
|
+
|
|
187
|
+
`createMapperFromExecutor` binds an executor to a mapper and accepts optional mapping options.
|
|
188
|
+
These options control how column names are normalized, how values are coerced, and how identifiers are treated.
|
|
189
|
+
|
|
190
|
+
For convenience, `mapperPresets` provide reusable configurations for common scenarios:
|
|
191
|
+
|
|
192
|
+
| Preset | Description |
|
|
193
|
+
| ------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
194
|
+
| `mapperPresets.appLike()` | Applies common application-friendly defaults, such as snake_case to camelCase conversion and date coercion. |
|
|
195
|
+
| `mapperPresets.safe()` | Leaves column names and values untouched, suitable for exploratory queries or legacy schemas. |
|
|
196
|
+
|
|
197
|
+
When a specific query needs fine-grained control, you can also provide a custom options object.
|
|
198
|
+
This allows localized adjustments without changing the preset used elsewhere.
|
|
199
|
+
|
|
200
|
+
```ts
|
|
201
|
+
const mapper = createMapperFromExecutor(executor, {
|
|
202
|
+
keyTransform: 'snake_to_camel',
|
|
203
|
+
coerceDates: true,
|
|
204
|
+
idKeysAsString: true,
|
|
205
|
+
typeHints: {
|
|
206
|
+
createdAt: 'date',
|
|
207
|
+
},
|
|
208
|
+
})
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
This form mirrors `mapperPresets.appLike()` while allowing targeted overrides for a specific mapping.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### Duck-typed mapping (no model definitions)
|
|
216
|
+
|
|
217
|
+
For lightweight or localized use cases, the mapper supports duck-typed projections without defining any schema or mapping models.
|
|
218
|
+
|
|
219
|
+
In duck-typed mapping, the mapper applies no additional structural assumptions beyond its configured defaults.
|
|
220
|
+
The shape of the result is defined locally at the query site, either by providing a TypeScript type or by relying on the raw row shape.
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
// Explicitly typed projection
|
|
224
|
+
const rows = await mapper.query<{ customerId: number }>(
|
|
225
|
+
'select customer_id from customers limit 1',
|
|
226
|
+
)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Although not recommended, you can omit the DTO type for quick exploration:
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
const rows = await mapper.query(
|
|
233
|
+
'select customer_id from customers limit 1',
|
|
234
|
+
)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Duck-typed mapping is intentionally minimal and local.
|
|
238
|
+
If the shape of the query results is important or reused throughout your application, consider moving to explicit row mapping.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### Mapping to a Single Model
|
|
243
|
+
|
|
244
|
+
sql-contract allows you to map query results to typed DTOs.
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
type Customer = {
|
|
248
|
+
customerId: number
|
|
249
|
+
customerName: string
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const rows = await mapper.query<Customer>(
|
|
253
|
+
`
|
|
254
|
+
select
|
|
255
|
+
customer_id,
|
|
256
|
+
customer_name
|
|
257
|
+
from customers
|
|
258
|
+
where customer_id = $1
|
|
259
|
+
`,
|
|
260
|
+
[42],
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
// rows[0].customerName is type-safe
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
The normalization rules applied during mapping are controlled by the selected mapper preset.
|
|
267
|
+
|
|
268
|
+
You can also define one-off mapping rules using columnMap.
|
|
269
|
+
|
|
270
|
+
```ts
|
|
271
|
+
const customerMapping = rowMapping<Customer>({
|
|
272
|
+
columnMap: {
|
|
273
|
+
customerId: 'customer_id',
|
|
274
|
+
customerName: 'customer_name',
|
|
275
|
+
},
|
|
276
|
+
})
|
|
277
|
+
|
|
278
|
+
const rows = await mapper.query<Customer>(
|
|
279
|
+
`
|
|
280
|
+
select
|
|
281
|
+
customer_id,
|
|
282
|
+
customer_name
|
|
283
|
+
from customers
|
|
284
|
+
where customer_id = $1
|
|
285
|
+
`,
|
|
286
|
+
[42],
|
|
287
|
+
customerMapping, // explicitly specify the mapping rule
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
// rows[0].customerName is type-safe
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
The `rowMapping()` helper replaces the previous `entity()` alias. The old name is still supported for now but is deprecated in favor of `rowMapping()`.
|
|
294
|
+
|
|
295
|
+
When a query includes JOINs or relationships, explicit row mappings are required.
|
|
296
|
+
The structure for such mappings is explained in the next section.
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
### Mapping to multiple models (joined rows)
|
|
301
|
+
|
|
302
|
+
The mapper also supports mapping joined result sets into multiple related models.
|
|
303
|
+
|
|
304
|
+
Relations are explicitly defined and never inferred.
|
|
305
|
+
|
|
306
|
+
```ts
|
|
307
|
+
const orderMapping = rowMapping({
|
|
308
|
+
name: 'order',
|
|
309
|
+
key: 'orderId',
|
|
310
|
+
prefix: 'order_',
|
|
311
|
+
}).belongsTo('customer', customerMapping, 'customerId')
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Joined queries remain transparent and deterministic:
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
const mapper = createMapperFromExecutor(executor)
|
|
318
|
+
|
|
319
|
+
const rows = await mapper.query(
|
|
320
|
+
`
|
|
321
|
+
select
|
|
322
|
+
o.order_id,
|
|
323
|
+
o.order_total,
|
|
324
|
+
c.customer_id,
|
|
325
|
+
c.customer_name
|
|
326
|
+
from orders o
|
|
327
|
+
join customers c on c.customer_id = o.customer_id
|
|
328
|
+
where o.order_id = $1
|
|
329
|
+
`,
|
|
330
|
+
[123],
|
|
331
|
+
orderMapping,
|
|
332
|
+
)
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Writer: emitting simple C / U / D statements
|
|
338
|
+
|
|
339
|
+
The writer helpers provide a small, opinionated DSL for common
|
|
340
|
+
INSERT, UPDATE, and DELETE statements.
|
|
341
|
+
|
|
342
|
+
They accept table names and plain objects of column-value pairs, and deterministically emit `{ sql, params }`.
|
|
343
|
+
|
|
344
|
+
The writer focuses on *construction*, not execution.
|
|
345
|
+
|
|
346
|
+
### Writer basics
|
|
347
|
+
|
|
348
|
+
Writer helpers are intentionally limited:
|
|
349
|
+
|
|
350
|
+
* `undefined` values are omitted
|
|
351
|
+
* identifiers are validated against ASCII-safe patterns unless explicitly allowed
|
|
352
|
+
* WHERE clauses are limited to equality-based AND fragments
|
|
353
|
+
* no inference, no joins, no multi-table logic
|
|
354
|
+
|
|
355
|
+
If `returning` is provided, a `RETURNING` clause is appended.
|
|
356
|
+
Using `'all'` maps to `RETURNING *`; otherwise, column names are sorted alphabetically.
|
|
357
|
+
|
|
358
|
+
The writer never checks backend support for `RETURNING`.
|
|
359
|
+
It emits SQL exactly as specified so that success or failure remains observable at execution time.
|
|
360
|
+
|
|
361
|
+
### INSERT
|
|
362
|
+
|
|
363
|
+
```ts
|
|
364
|
+
await writer.insert(
|
|
365
|
+
'projects',
|
|
366
|
+
{ name: 'Apollo', owner_id: 7 },
|
|
367
|
+
{ returning: ['project_id'] },
|
|
368
|
+
)
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### UPDATE
|
|
372
|
+
|
|
373
|
+
```ts
|
|
374
|
+
await writer.update(
|
|
375
|
+
'projects',
|
|
376
|
+
{ name: 'Apollo' },
|
|
377
|
+
{ project_id: 1 },
|
|
378
|
+
)
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### DELETE
|
|
382
|
+
|
|
383
|
+
```ts
|
|
384
|
+
await writer.remove(
|
|
385
|
+
'projects',
|
|
386
|
+
{ project_id: 1 },
|
|
387
|
+
)
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Statements can also be built without execution:
|
|
391
|
+
|
|
392
|
+
```ts
|
|
393
|
+
const built = writer.build.insert(
|
|
394
|
+
'projects',
|
|
395
|
+
{ name: 'Apollo', owner_id: 7 },
|
|
396
|
+
{ returning: ['project_id'] },
|
|
397
|
+
)
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Writer presets and placeholder strategies
|
|
401
|
+
|
|
402
|
+
Advanced usage flows through `createWriter` (aliasing the historic `createWriterFromExecutor`), which binds an executor to a concrete placeholder strategy.
|
|
403
|
+
|
|
404
|
+
A writer preset defines:
|
|
405
|
+
|
|
406
|
+
1. how placeholders are formatted,
|
|
407
|
+
2. whether parameters are positional or named,
|
|
408
|
+
3. how parameters are ordered and bound.
|
|
409
|
+
|
|
410
|
+
```ts
|
|
411
|
+
import { createWriter, writerPresets } from '@rawsql-ts/sql-contract/writer'
|
|
412
|
+
|
|
413
|
+
const writer = createWriter(
|
|
414
|
+
executor,
|
|
415
|
+
writerPresets.named({
|
|
416
|
+
formatPlaceholder: (paramName) => ':' + paramName,
|
|
417
|
+
}),
|
|
418
|
+
)
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### Named placeholders
|
|
422
|
+
|
|
423
|
+
Named presets derive parameter names from column names.
|
|
424
|
+
|
|
425
|
+
Each bind increments a counter and produces deterministic names such as
|
|
426
|
+
`name_1`, `owner_id_2`.
|
|
427
|
+
|
|
428
|
+
```ts
|
|
429
|
+
await writer.insert('projects', { name: 'Apollo', owner_id: 7 })
|
|
430
|
+
// SQL: INSERT INTO projects (name, owner_id) VALUES (:name_1, :owner_id_2)
|
|
431
|
+
// params: { name_1: 'Apollo', owner_id_2: 7 }
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## DBMS and driver differences
|
|
437
|
+
|
|
438
|
+
`sql-contract` does not normalize SQL dialects or placeholder styles.
|
|
439
|
+
|
|
440
|
+
Write SQL using the placeholder syntax required by your driver, and bind parameters exactly as that driver expects.
|
|
441
|
+
Whether parameters are positional or named is a concern of the executor and driver, not `sql-contract`.
|
|
442
|
+
|
|
443
|
+
Examples of common placeholder styles:
|
|
444
|
+
|
|
445
|
+
| DBMS / driver | Placeholder style |
|
|
446
|
+
| --------------------------------- | ------------------ |
|
|
447
|
+
| PostgreSQL / Neon (node-postgres) | `$1`, `$2`, ... |
|
|
448
|
+
| PostgreSQL / pg-promise | `$/name/` |
|
|
449
|
+
| MySQL / SQLite | `?` |
|
|
450
|
+
| SQL Server | `@p1`, `@p2`, ... |
|
|
451
|
+
| Oracle | `:1`, `:name`, ... |
|
|
452
|
+
|
|
453
|
+
```ts
|
|
454
|
+
await executor(
|
|
455
|
+
'select * from customers where customer_id = $1',
|
|
456
|
+
[42],
|
|
457
|
+
)
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
```ts
|
|
461
|
+
await executor(
|
|
462
|
+
'select * from customers where customer_id = :customerId',
|
|
463
|
+
{ customerId: 42 },
|
|
464
|
+
)
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
All DBMS- and driver-specific concerns live in the executor.
|
|
468
|
+
Both writer and mapper remain independent of these differences.
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## Influences / Related Ideas
|
|
473
|
+
|
|
474
|
+
Sql-contract is inspired by minimal mapping libraries such as Dapper and other thin contracts that keep SQL visible while wiring rows to typed results. These projects demonstrate the value of stopping short of a full ORM and instead providing a predictable, testable layer for purely mechanical concerns.
|
|
475
|
+
|
|
476
|
+
Sql-contract adopts that lesson within the rawsql-ts ecosystem: SQL remains the domain language, and this package automates only the tedious bridging work around it.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/query-params.ts","../src/mapper/index.ts","../src/writer/presets.ts","../src/writer/index.ts","../src/index.ts","../../../node_modules/.pnpm/@types+benchmark@2.1.5/node_modules/@types/benchmark/index.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.18.7/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.d.ts","../../../node_modules/.pnpm/pg-protocol@1.10.3/node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/.pnpm/pg-protocol@1.10.3/node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/.pnpm/pg-protocol@1.10.3/node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/.pnpm/pg-protocol@1.10.3/node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/.pnpm/@types+pg@8.15.6/node_modules/@types/pg/lib/type-overrides.d.ts","../../../node_modules/.pnpm/@types+pg@8.15.6/node_modules/@types/pg/index.d.ts"],"fileIdsList":[[57,106],[57,103,106],[57,105,106],[106],[57,106,111,140],[57,106,107,112,117,125,137,148],[57,106,107,108,117,125],[52,53,54,57,106],[57,106,109,149],[57,106,110,111,118,126],[57,106,111,137,145],[57,106,112,114,117,125],[57,105,106,113],[57,106,114,115],[57,106,116,117],[57,105,106,117],[57,106,117,118,119,137,148],[57,106,117,118,119,132,137,140],[57,99,106,114,117,120,125,137,148],[57,106,117,118,120,121,125,137,145,148],[57,106,120,122,137,145,148],[55,56,57,58,59,60,61,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154],[57,106,117,123],[57,106,124,148],[57,106,114,117,125,137],[57,106,126],[57,106,127],[57,105,106,128],[57,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154],[57,106,130],[57,106,131],[57,106,117,132,133],[57,106,132,134,149,151],[57,106,117,137,138,140],[57,106,139,140],[57,106,137,138],[57,106,140],[57,106,141],[57,103,106,137,142],[57,106,117,143,144],[57,106,143,144],[57,106,111,125,137,145],[57,106,146],[57,106,125,147],[57,106,120,131,148],[57,106,111,149],[57,106,137,150],[57,106,124,151],[57,106,152],[57,99,106],[57,99,106,117,119,128,137,140,148,150,151,153],[57,106,137,154],[57,106,117,137,145,155,156,157,160,161,162],[57,106,162],[57,106,155,157,158,159],[57,106,155],[57,106,137,155,157],[57,71,75,106,148],[57,71,106,137,148],[57,66,106],[57,68,71,106,145,148],[57,106,125,145],[57,66,106,155],[57,68,71,106,125,148],[57,63,64,67,70,106,117,137,148],[57,71,78,106],[57,63,69,106],[57,71,92,93,106],[57,67,71,106,140,148,155],[57,92,106,155],[57,65,66,106,155],[57,71,106],[57,65,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,106],[57,71,86,106],[57,71,78,79,106],[57,69,71,79,80,106],[57,70,106],[57,63,66,71,106],[57,71,75,79,80,106],[57,75,106],[57,69,71,74,106,148],[57,63,68,71,78,106],[57,106,137],[57,66,71,92,106,153,155],[47,49,57,106],[46,57,106],[46,48,57,106],[46,49,57,106]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"11efede98fb20dc886d6b360ffff640681d863a0da7e24da4fa112b5f9be1482","signature":"12dc2a6c0ab83c0da3f87d95e354e38976fe192c9b0afb4183dc9559385ce585"},{"version":"437ff0b7086f9a2c93e3c25264895d856ed8b0bb051855de3842a21905decb27","signature":"e47b071b341110c4045230967474a45095072923028eeb03586ab7e4bbbf0429"},{"version":"0e9dcf8e1071e6908300d691fbd5d39242d801394328386ffdd545f673024d79","signature":"c307a66302665c099b7182fadd9e244b5d492d87ea6067744951b72d520d2e8b"},{"version":"c814bd87437b33ff71bed90933743ded6ed0f1811eb9f95ed2dd41c36343179e","signature":"1b05802189bcd3391ebe43027954f7e2b98b9468d0e7d0ccb74d507114113728"},{"version":"4f3237a23fc4af0afaa80cc03a58c31a8ea2dd949c454201cda5854f631f04fc","signature":"ecadbd046f840a0f86f17c4c4be19307c413b8e32a149fab0bca5b5f7c7b1802"},{"version":"d64fc2b6e71cc0aa542509bf15c62001e4b57a2a45a22c730fafbb58e192a91c","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb4105d0ea2ab2bfcb4f77ff8585691d5569c90ae15f4fa8d5ff9fb42b910b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"df48adbf5b82b79ed989ec3bef2979d988b94978907fd86b4f30ba2b668e49de","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"7b988bc259155186e6b09dd8b32856d9e45c8d261e63c19abaf590bb6550f922","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe7b52f993f9336b595190f3c1fcc259bb2cf6dcb4ac8fdb1e0454cc5df7301e","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"81711af669f63d43ccb4c08e15beda796656dd46673d0def001c7055db53852d","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"bdba81959361810be44bcfdd283f4d601e406ab5ad1d2bdff0ed480cf983c9d7","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"a912401ec6f333808ae72660e6860ba4e72185ffd7dbb658cd41064936e34b62","affectsGlobalScope":true,"impliedFormat":1},{"version":"c8420c7c2b778b334587a4c0311833b5212ff2f684ea37b2f0e2b117f1d7210d","impliedFormat":1},{"version":"b6b08215821c9833b0e8e30ea1ed178009f2f3ff5d7fae3865ee42f97cc87784","impliedFormat":1},{"version":"3f735210f444dc3fd2d4d2f020d195fe827dad5e30a6d743807c5d1de3a2be73","impliedFormat":1},{"version":"73cf6cc19f16c0191e4e9d497ab0c11c7b38f1ca3f01ad0f09a3a5a971aac4b8","impliedFormat":1},{"version":"3e81d8b837057db6f9c82263e0ef7e5b9a55437342e7028eb8003199ccc69604","impliedFormat":1},{"version":"ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9727a118ce60808e62457c89762fe5a4e2be8e9fd0112d12432d1bafdba942f","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"3a90b9beac4c2bfdf6517faae0940a042b81652badf747df0a7c7593456f6ebe","impliedFormat":1},{"version":"8302157cd431b3943eed09ad439b4441826c673d9f870dcb0e1f48e891a4211e","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"cee74f5970ffc01041e5bffc3f324c20450534af4054d2c043cb49dbbd4ec8f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a654e0d950353614ba4637a8de4f9d367903a0692b748e11fccf8c880c99735","affectsGlobalScope":true,"impliedFormat":1},{"version":"42da246c46ca3fd421b6fd88bb4466cda7137cf33e87ba5ceeded30219c428bd","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"c760027bae5a6188fee611641e37bede79caae3f3f7cc78ca5ce8ac1083e01bb","affectsGlobalScope":true,"impliedFormat":1},{"version":"db3d77167a7da6c5ba0c51c5b654820e3464093f21724ccd774c0b9bc3f81bc0","impliedFormat":1},{"version":"bdf1feb266c87edbee61f12ceaaef60ab0e2e5dba70ca19360b6448911c53d52","impliedFormat":1},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"9b4f7ff9681448c72abe38ea8eefd7ffe0c3aefe495137f02012a08801373f71","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"6ded4be4f8a693d0c1646dfa2f1b6582e34b73c66ce334cb5e86c7bf8c2e52b7","impliedFormat":1}],"root":[[46,50]],"options":{"composite":true,"declaration":true,"declarationDir":"./","esModuleInterop":true,"module":1,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[51,1],[103,2],[104,2],[105,3],[57,4],[106,5],[107,6],[108,7],[52,1],[55,8],[53,1],[54,1],[109,9],[110,10],[111,11],[112,12],[113,13],[114,14],[115,14],[116,15],[117,16],[118,17],[119,18],[58,1],[56,1],[120,19],[121,20],[122,21],[155,22],[123,23],[124,24],[125,25],[126,26],[127,27],[128,28],[129,29],[130,30],[131,31],[132,32],[133,32],[134,33],[135,1],[136,1],[137,34],[139,35],[138,36],[140,37],[141,38],[142,39],[143,40],[144,41],[145,42],[146,43],[147,44],[148,45],[149,46],[150,47],[151,48],[152,49],[59,1],[60,1],[61,1],[100,50],[101,1],[102,1],[153,51],[154,52],[162,53],[161,54],[62,1],[160,55],[157,56],[159,57],[158,1],[156,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[19,1],[4,1],[20,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[35,1],[32,1],[33,1],[34,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[78,58],[88,59],[77,58],[98,60],[69,61],[68,62],[97,56],[91,63],[96,64],[71,65],[85,66],[70,67],[94,68],[66,69],[65,56],[95,70],[67,71],[72,72],[73,1],[76,72],[63,1],[99,73],[89,74],[80,75],[81,76],[83,77],[79,78],[82,79],[92,56],[74,80],[75,81],[84,82],[64,83],[87,74],[86,72],[90,1],[93,84],[50,85],[47,86],[46,1],[49,87],[48,88]],"latestChangedDtsFile":"./writer/index.d.ts","version":"5.9.2"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./mapper"), exports);
|
|
18
|
+
__exportStar(require("./writer"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB"}
|