@fougere/core 0.5.0-alpha.1 → 0.6.0-alpha.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/dist/boot/Emissions.d.ts +2 -2
- package/dist/boot/Emissions.d.ts.map +1 -1
- package/dist/boot/Emissions.js +1 -1
- package/dist/boot/HandlerFacade.d.ts +1 -1
- package/dist/boot/HandlerFacade.d.ts.map +1 -1
- package/dist/boot/HandlerFacade.js +1 -1
- package/dist/boot/HandlerFacade.js.map +1 -1
- package/dist/boot/auth.d.ts +6 -6
- package/dist/boot/auth.d.ts.map +1 -1
- package/dist/boot/boot.d.ts +2 -2
- package/dist/boot/boot.d.ts.map +1 -1
- package/dist/boot/boot.js +1 -1
- package/dist/boot/boot.js.map +1 -1
- package/dist/boot/bootstrap.d.ts.map +1 -1
- package/dist/boot/bootstrap.js +47 -38
- package/dist/boot/bootstrap.js.map +1 -1
- package/dist/boot/card.d.ts +21 -0
- package/dist/boot/card.d.ts.map +1 -0
- package/dist/boot/card.js +100 -0
- package/dist/boot/card.js.map +1 -0
- package/dist/boot/frame.d.ts +3 -3
- package/dist/boot/frame.d.ts.map +1 -1
- package/dist/boot/frame.js +7 -7
- package/dist/boot/frame.js.map +1 -1
- package/dist/boot/hosted.d.ts +8 -2
- package/dist/boot/hosted.d.ts.map +1 -1
- package/dist/boot/hosted.js +10 -10
- package/dist/boot/hosted.js.map +1 -1
- package/dist/boot/ownership.d.ts +7 -5
- package/dist/boot/ownership.d.ts.map +1 -1
- package/dist/boot/ownership.js +9 -14
- package/dist/boot/ownership.js.map +1 -1
- package/dist/boot/ports.d.ts +2 -2
- package/dist/boot/ports.d.ts.map +1 -1
- package/dist/boot/ports.js +1 -1
- package/dist/boot/runner.d.ts +28 -0
- package/dist/boot/runner.d.ts.map +1 -0
- package/dist/boot/runner.js +26 -0
- package/dist/boot/runner.js.map +1 -0
- package/dist/boot/seed.d.ts +2 -2
- package/dist/boot/seed.d.ts.map +1 -1
- package/dist/boot/seed.js +5 -5
- package/dist/boot/seed.js.map +1 -1
- package/dist/boot/statement-drift.d.ts +2 -1
- package/dist/boot/statement-drift.d.ts.map +1 -1
- package/dist/boot/statement-drift.js.map +1 -1
- package/dist/boot/together.d.ts +4 -4
- package/dist/boot/together.d.ts.map +1 -1
- package/dist/boot/together.js +17 -19
- package/dist/boot/together.js.map +1 -1
- package/dist/boot/types.d.ts +12 -11
- package/dist/boot/types.d.ts.map +1 -1
- package/dist/contract/CallLog.d.ts +2 -2
- package/dist/contract/CallLog.d.ts.map +1 -1
- package/dist/contract/RouteAddress.d.ts +2 -0
- package/dist/contract/RouteAddress.d.ts.map +1 -1
- package/dist/contract/RouteAddress.js.map +1 -1
- package/dist/{scan/declare.d.ts → declare.d.ts} +3 -3
- package/dist/declare.d.ts.map +1 -0
- package/dist/{scan/declare.js → declare.js} +3 -3
- package/dist/declare.js.map +1 -0
- package/dist/{scan → descriptor}/Fronds.d.ts +6 -7
- package/dist/descriptor/Fronds.d.ts.map +1 -0
- package/dist/{scan → descriptor}/Fronds.js +6 -7
- package/dist/descriptor/Fronds.js.map +1 -0
- package/dist/{scan → descriptor}/frond.d.ts +7 -47
- package/dist/descriptor/frond.d.ts.map +1 -0
- package/dist/{scan → descriptor}/frond.js.map +1 -1
- package/dist/dispatch/ArgumentResolver.d.ts +5 -2
- package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
- package/dist/dispatch/ArgumentResolver.js +48 -3
- package/dist/dispatch/ArgumentResolver.js.map +1 -1
- package/dist/dispatch/DispatchEvent.d.ts +1 -1
- package/dist/dispatch/DispatchEvent.d.ts.map +1 -1
- package/dist/dispatch/PresenterArgumentResolver.d.ts +1 -1
- package/dist/dispatch/PresenterArgumentResolver.d.ts.map +1 -1
- package/dist/dispatch/PresenterArgumentResolver.js +1 -1
- package/dist/dispatch/Route.d.ts +1 -2
- package/dist/dispatch/Route.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.d.ts +2 -2
- package/dist/dispatch/StorageGuard.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.js +7 -7
- package/dist/dispatch/StorageGuard.js.map +1 -1
- package/dist/effective-operation.d.ts +29 -3
- package/dist/effective-operation.d.ts.map +1 -1
- package/dist/effective-operation.js +52 -1
- package/dist/effective-operation.js.map +1 -1
- package/dist/emit.d.ts +1 -1
- package/dist/frond-config.d.ts +2 -2
- package/dist/graph.d.ts +1 -1
- package/dist/graph.d.ts.map +1 -1
- package/dist/imports.d.ts +1 -1
- package/dist/imports.d.ts.map +1 -1
- package/dist/index.d.ts +15 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/dist/prefab/collector.d.ts +2 -2
- package/dist/prefab/collector.js +2 -2
- package/dist/prefab/crud.d.ts +5 -5
- package/dist/prefab/crud.d.ts.map +1 -1
- package/dist/prefab/crud.js +12 -12
- package/dist/prefab/crud.js.map +1 -1
- package/dist/prefab/mirror.d.ts +5 -5
- package/dist/prefab/mirror.d.ts.map +1 -1
- package/dist/prefab/mirror.js +5 -5
- package/dist/prefab/mirror.js.map +1 -1
- package/dist/prefab/presenter.d.ts +2 -2
- package/dist/prefab/presenter.js +2 -2
- package/dist/prefab/repository.d.ts +14 -14
- package/dist/prefab/repository.d.ts.map +1 -1
- package/dist/prefab/repository.js +19 -19
- package/dist/prefab/repository.js.map +1 -1
- package/dist/rows.d.ts +40 -0
- package/dist/rows.d.ts.map +1 -0
- package/dist/rows.js +146 -0
- package/dist/rows.js.map +1 -0
- package/dist/scan/emit.d.ts +1 -1
- package/dist/scan/emit.d.ts.map +1 -1
- package/dist/scan/emit.js +1 -1
- package/dist/scan/emit.js.map +1 -1
- package/dist/scan/handler-parser.d.ts +11 -56
- package/dist/scan/handler-parser.d.ts.map +1 -1
- package/dist/scan/handler-parser.js +2 -2
- package/dist/scan/handler-parser.js.map +1 -1
- package/dist/scan/result.d.ts +41 -0
- package/dist/scan/result.d.ts.map +1 -0
- package/dist/scan/result.js +2 -0
- package/dist/scan/result.js.map +1 -0
- package/dist/scan/scanner.d.ts +1 -1
- package/dist/scan/scanner.d.ts.map +1 -1
- package/dist/scan/scanner.js +17 -17
- package/dist/scan/scanner.js.map +1 -1
- package/dist/scan/statement.d.ts +1 -1
- package/dist/scan/statement.d.ts.map +1 -1
- package/dist/scan/statement.js.map +1 -1
- package/dist/{orm.d.ts → storage.d.ts} +98 -16
- package/dist/storage.d.ts.map +1 -0
- package/dist/{orm.js → storage.js} +53 -5
- package/dist/storage.js.map +1 -0
- package/dist/verify.d.ts +1 -1
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +2 -2
- package/dist/verify.js.map +1 -1
- package/dist/{boot → wire}/binding.d.ts +2 -10
- package/dist/wire/binding.d.ts.map +1 -0
- package/dist/{boot → wire}/binding.js +0 -52
- package/dist/wire/binding.js.map +1 -0
- package/dist/wire/call.d.ts +2 -40
- package/dist/wire/call.d.ts.map +1 -1
- package/dist/wire/call.js +0 -125
- package/dist/wire/call.js.map +1 -1
- package/dist/wire/operation.d.ts +5 -31
- package/dist/wire/operation.d.ts.map +1 -1
- package/dist/wire/operation.js +0 -51
- package/dist/wire/operation.js.map +1 -1
- package/dist/wire/signature.d.ts +58 -0
- package/dist/wire/signature.d.ts.map +1 -0
- package/dist/wire/signature.js +2 -0
- package/dist/wire/signature.js.map +1 -0
- package/package.json +3 -3
- package/src/boot/Emissions.ts +2 -2
- package/src/boot/HandlerFacade.ts +3 -3
- package/src/boot/auth.ts +6 -6
- package/src/boot/boot.ts +3 -3
- package/src/boot/bootstrap.ts +50 -39
- package/src/boot/card.ts +113 -0
- package/src/boot/frame.ts +7 -7
- package/src/boot/hosted.ts +11 -14
- package/src/boot/ownership.ts +14 -15
- package/src/boot/ports.ts +2 -2
- package/src/boot/runner.ts +34 -0
- package/src/boot/seed.ts +6 -6
- package/src/boot/statement-drift.ts +5 -4
- package/src/boot/together.ts +24 -25
- package/src/boot/types.ts +12 -11
- package/src/contract/CallLog.ts +2 -2
- package/src/contract/RouteAddress.ts +3 -0
- package/src/{scan/declare.ts → declare.ts} +5 -5
- package/src/{scan → descriptor}/Fronds.ts +6 -7
- package/src/{scan → descriptor}/frond.ts +7 -48
- package/src/dispatch/ArgumentResolver.ts +53 -7
- package/src/dispatch/DispatchEvent.ts +1 -1
- package/src/dispatch/PresenterArgumentResolver.ts +2 -2
- package/src/dispatch/Route.ts +1 -3
- package/src/dispatch/StorageGuard.ts +7 -7
- package/src/effective-operation.ts +63 -11
- package/src/emit.ts +1 -1
- package/src/frond-config.ts +2 -2
- package/src/graph.ts +1 -1
- package/src/imports.ts +1 -1
- package/src/index.ts +15 -13
- package/src/prefab/collector.ts +2 -2
- package/src/prefab/crud.ts +18 -18
- package/src/prefab/mirror.ts +8 -8
- package/src/prefab/presenter.ts +2 -2
- package/src/prefab/repository.ts +32 -32
- package/src/rows.ts +155 -0
- package/src/scan/emit.ts +3 -5
- package/src/scan/handler-parser.ts +14 -67
- package/src/scan/result.ts +42 -0
- package/src/scan/scanner.ts +22 -21
- package/src/scan/statement.ts +2 -1
- package/src/{orm.ts → storage.ts} +126 -17
- package/src/verify.ts +3 -3
- package/src/{boot → wire}/binding.ts +2 -66
- package/src/wire/call.ts +1 -129
- package/src/wire/operation.ts +5 -62
- package/src/wire/signature.ts +59 -0
- package/dist/boot/binding.d.ts.map +0 -1
- package/dist/boot/binding.js.map +0 -1
- package/dist/orm.d.ts.map +0 -1
- package/dist/orm.js.map +0 -1
- package/dist/scan/Fronds.d.ts.map +0 -1
- package/dist/scan/Fronds.js.map +0 -1
- package/dist/scan/declare.d.ts.map +0 -1
- package/dist/scan/declare.js.map +0 -1
- package/dist/scan/frond.d.ts.map +0 -1
- /package/dist/{scan → descriptor}/frond.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/scan/statement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/scan/statement.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,8 +37,8 @@ export declare function assertListOptions(options: object | undefined, entity: s
|
|
|
37
37
|
export interface SelectOption {
|
|
38
38
|
select?: SchemaView;
|
|
39
39
|
}
|
|
40
|
-
/** Per-entity
|
|
41
|
-
export interface
|
|
40
|
+
/** Per-entity storage — scoped CRUD operations on a single entity type. */
|
|
41
|
+
export interface Storage<T = Record<string, unknown>> {
|
|
42
42
|
list(options?: ListOptions & SelectOption): Promise<ListResult<T>>;
|
|
43
43
|
findById(id: string, options?: SelectOption): Promise<T | undefined>;
|
|
44
44
|
/**
|
|
@@ -47,7 +47,7 @@ export interface EntityOrm<T = Record<string, unknown>> {
|
|
|
47
47
|
*
|
|
48
48
|
* Both existed on the SQL implementation from the start and neither was declared here.
|
|
49
49
|
* A port that hides what it offers is a port nobody can use: `auth-better` cast its way
|
|
50
|
-
* in (`
|
|
50
|
+
* in (`storage as StorageWithFindBy`), a presenter that needed the lines of an order read the
|
|
51
51
|
* whole table instead, and the GraphQL relation resolver passed criteria to `list()`
|
|
52
52
|
* — which drops what it does not know.
|
|
53
53
|
*/
|
|
@@ -106,15 +106,15 @@ export interface EntityOrm<T = Record<string, unknown>> {
|
|
|
106
106
|
upsertAll(inputs: readonly Partial<T>[], options?: SelectOption): Promise<number>;
|
|
107
107
|
update(id: string, input: Partial<T>, options?: SelectOption): Promise<T>;
|
|
108
108
|
delete(id: string): Promise<boolean>;
|
|
109
|
-
/** Returns a scoped
|
|
110
|
-
output(schema: SchemaView):
|
|
109
|
+
/** Returns a scoped storage that restricts all read results to the fields of the given schema. */
|
|
110
|
+
output(schema: SchemaView): Storage<T>;
|
|
111
111
|
/**
|
|
112
|
-
* What this
|
|
112
|
+
* What this storage wraps — the Kysely instance for the SQL one, something else elsewhere.
|
|
113
113
|
*
|
|
114
|
-
* Every judge sits on the
|
|
114
|
+
* Every judge sits on the storage's own methods, so a statement issued here meets none of
|
|
115
115
|
* them: a value the entity refuses lands in the table without a word. It is the port's
|
|
116
116
|
* own escape hatch rather than a handle on the side, so it keeps the scope the container
|
|
117
|
-
* gave you — `
|
|
117
|
+
* gave you — `productStorage.client` reaches the products, not the whole database.
|
|
118
118
|
*
|
|
119
119
|
* `unknown` on purpose: the client belongs to the implementation, and narrowing it is
|
|
120
120
|
* the caller saying out loud which one they are standing on.
|
|
@@ -122,12 +122,87 @@ export interface EntityOrm<T = Record<string, unknown>> {
|
|
|
122
122
|
readonly client: unknown;
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
|
-
* Factory that creates
|
|
125
|
+
* Factory that creates a Storage for a given entity.
|
|
126
126
|
* Called by bootstrap for every scanned entity.
|
|
127
127
|
*/
|
|
128
|
-
export type
|
|
128
|
+
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
129
129
|
/**
|
|
130
|
-
*
|
|
130
|
+
* A place rows live, whatever realizes it.
|
|
131
|
+
*
|
|
132
|
+
* `StorageFactory` plus its lifecycle, which is why it lives beside it. Three of the four
|
|
133
|
+
* gestures are optional and ABSENCE IS THE ANSWER: no `transacted` and a frame compensates
|
|
134
|
+
* instead of transacting (`boot/together.ts`), no `migrate` and there is no shape to bring
|
|
135
|
+
* up to date. What a source is MADE OF is not here — `adapter/sql` states `dialect`, `db`
|
|
136
|
+
* and `sink` on its own `SqlSource`, reached by narrowing, the rule {@link Storage.client}
|
|
137
|
+
* already obeys one level down.
|
|
138
|
+
*/
|
|
139
|
+
export interface Source {
|
|
140
|
+
storageFactory: StorageFactory;
|
|
141
|
+
/** Bring the shape of what lives here up to date. */
|
|
142
|
+
migrate?(view: SourceView): Promise<void>;
|
|
143
|
+
/** Run `fn` as ONE unit of work, with a factory bound to it. */
|
|
144
|
+
transacted?<R>(fn: (factory: StorageFactory) => Promise<R>): Promise<R>;
|
|
145
|
+
close?(): Promise<void>;
|
|
146
|
+
/** What distinguishes it when a query is reported. */
|
|
147
|
+
name?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The app as ONE source sees it: what lives there, and the NAMES of what does not.
|
|
151
|
+
*
|
|
152
|
+
* The second half is what lets a DDL stop lying. A batch holding every entity cannot tell
|
|
153
|
+
* a cross-source target from a typo, so a `ref()` falls back to a derived table name and
|
|
154
|
+
* the constraint is emitted against a table that may not exist. `elsewhere` says which
|
|
155
|
+
* misses are legitimate — and a target in neither list is a mistake, out loud.
|
|
156
|
+
*/
|
|
157
|
+
export interface SourceView {
|
|
158
|
+
fronds: readonly {
|
|
159
|
+
readonly name: string;
|
|
160
|
+
readonly entities: readonly {
|
|
161
|
+
readonly name: string;
|
|
162
|
+
}[];
|
|
163
|
+
}[];
|
|
164
|
+
/** The auth provider's own entities, when they ride with this source. */
|
|
165
|
+
auth?: unknown;
|
|
166
|
+
elsewhere: readonly string[];
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* What a config file can carry about a source — values, never a live driver.
|
|
170
|
+
*
|
|
171
|
+
* `source` names the ADAPTER, and everything else belongs to the adapter it named:
|
|
172
|
+
* `adapter/sql` reads `dialect`, a file one reads `path`. That is the shape
|
|
173
|
+
* `EntityAdapters` already has — addressed by adapter, and what sits below is the
|
|
174
|
+
* adapter's own. Which is why the level `schema` owns is not repeated here.
|
|
175
|
+
*/
|
|
176
|
+
export interface SourceConfig {
|
|
177
|
+
/** The adapter that realizes it. Absent means the conventional one. */
|
|
178
|
+
source?: string;
|
|
179
|
+
/** The entities whose rows live here. Absent on the default source: it holds the rest. */
|
|
180
|
+
entities?: string[];
|
|
181
|
+
[key: string]: unknown;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Which adapter answers a source name — one per process, no subject to hold.
|
|
185
|
+
*
|
|
186
|
+
* The shape `Generators` already has, and the refusal `resolveStorage` already made: only
|
|
187
|
+
* `sqlite` could be resolved from its name, because it was the one driver `defaults`
|
|
188
|
+
* depended on. That refusal had no owner — it lived in the package that happened to import
|
|
189
|
+
* the driver — so a second adapter had nowhere to say it exists. Here it does, and an
|
|
190
|
+
* unknown name is refused naming what this process answers.
|
|
191
|
+
*
|
|
192
|
+
* Registered at IMPORT by each adapter, so nothing central lists them.
|
|
193
|
+
*/
|
|
194
|
+
export declare class Sources {
|
|
195
|
+
private static readonly registry;
|
|
196
|
+
static register(name: string, build: (conf: SourceConfig) => Source): void;
|
|
197
|
+
/** The source this name stands for, refused by name when nothing does. */
|
|
198
|
+
static resolve(name: string, conf: SourceConfig): Source;
|
|
199
|
+
/** Whether a name is answered, for a caller that must not throw to find out. */
|
|
200
|
+
static answers(name: string): boolean;
|
|
201
|
+
/** What this process answers — what a refusal elsewhere prints. */
|
|
202
|
+
static answered(): string[];
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Container key of an entity's storage — 'reading' → 'ReadingStorage'.
|
|
131
206
|
*
|
|
132
207
|
* The twin of {@link repositoryKeyOf} and of `facadeKeyOf`: the key of a thing
|
|
133
208
|
* lives with the thing. This one was spelled by hand in four places in
|
|
@@ -135,11 +210,18 @@ export type OrmFactory = (entity: SchemaView, name: string) => EntityOrm;
|
|
|
135
210
|
* constructor asks for. Two readers of one convention, neither of them naming it,
|
|
136
211
|
* so a rename would have moved one and left the other resolving to nothing.
|
|
137
212
|
*/
|
|
138
|
-
export declare function
|
|
213
|
+
export declare function storageKeyOf(entity: string): string;
|
|
214
|
+
/**
|
|
215
|
+
* The entity behind a storage key, or `undefined` when the key is not one.
|
|
216
|
+
*
|
|
217
|
+
* The dual of the line above, for the reason `membersOfTogetherKey` is. `known` is what the
|
|
218
|
+
* suffix alone cannot answer: `FileStorage` is an ordinary class name.
|
|
219
|
+
*/
|
|
220
|
+
export declare function entityOfStorageKey(key: string, known: (entity: string) => boolean): string | undefined;
|
|
139
221
|
/**
|
|
140
222
|
* `Together<[Account, Ledger]>` — writes that stand or fall as one.
|
|
141
223
|
*
|
|
142
|
-
* `
|
|
224
|
+
* `Storage` is the port whose every gesture is ONE statement, and one statement is
|
|
143
225
|
* atomic in every engine. This is the port whose unit is a BLOCK: what the callback did
|
|
144
226
|
* happens entirely, or not at all. Nothing else separates them — the arity of the unit
|
|
145
227
|
* of work is the whole distinction, which is why this lives here and not in a file of
|
|
@@ -155,7 +237,7 @@ export declare function ormKeyOf(entity: string): string;
|
|
|
155
237
|
* ```
|
|
156
238
|
*
|
|
157
239
|
* **The second list is providers**, rebuilt inside the frame so that what THEY write is
|
|
158
|
-
* covered too — a `Mirror` writes its pages through `
|
|
240
|
+
* covered too — a `Mirror` writes its pages through `Storage<T>`, so naming it puts
|
|
159
241
|
* them under the same unwind, with no locator and no second injection path:
|
|
160
242
|
*
|
|
161
243
|
* ```ts
|
|
@@ -179,7 +261,7 @@ export declare function ormKeyOf(entity: string): string;
|
|
|
179
261
|
*/
|
|
180
262
|
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
181
263
|
run<R>(fn: (entities: {
|
|
182
|
-
[K in keyof E]:
|
|
264
|
+
[K in keyof E]: Storage<E[K]>;
|
|
183
265
|
}, providers: P) => Promise<R>): Promise<R>;
|
|
184
266
|
}
|
|
185
267
|
/**
|
|
@@ -204,4 +286,4 @@ export declare function membersOfTogetherKey(key: string): {
|
|
|
204
286
|
entities: string[];
|
|
205
287
|
providers: string[];
|
|
206
288
|
} | undefined;
|
|
207
|
-
//# sourceMappingURL=
|
|
289
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { upperFirst } from '@fougere/schema';
|
|
1
|
+
import { upperFirst, lowerFirst } from '@fougere/schema';
|
|
2
2
|
/**
|
|
3
3
|
* The keys `list()` answers to. Anything else is a mistake, and saying so is the point:
|
|
4
4
|
* the façade refuses an unknown key in a CLIENT's input (`Unknown field`) — this applies the
|
|
@@ -20,7 +20,41 @@ export function assertListOptions(options, entity) {
|
|
|
20
20
|
`Known options are ${LIST_OPTION_KEYS.join(', ')} — to filter, pass \`where: { ${strangers[0]}: … }\`.`);
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Which adapter answers a source name — one per process, no subject to hold.
|
|
24
|
+
*
|
|
25
|
+
* The shape `Generators` already has, and the refusal `resolveStorage` already made: only
|
|
26
|
+
* `sqlite` could be resolved from its name, because it was the one driver `defaults`
|
|
27
|
+
* depended on. That refusal had no owner — it lived in the package that happened to import
|
|
28
|
+
* the driver — so a second adapter had nowhere to say it exists. Here it does, and an
|
|
29
|
+
* unknown name is refused naming what this process answers.
|
|
30
|
+
*
|
|
31
|
+
* Registered at IMPORT by each adapter, so nothing central lists them.
|
|
32
|
+
*/
|
|
33
|
+
export class Sources {
|
|
34
|
+
static registry = new Map();
|
|
35
|
+
static register(name, build) {
|
|
36
|
+
this.registry.set(name, build);
|
|
37
|
+
}
|
|
38
|
+
/** The source this name stands for, refused by name when nothing does. */
|
|
39
|
+
static resolve(name, conf) {
|
|
40
|
+
const build = this.registry.get(name);
|
|
41
|
+
if (build)
|
|
42
|
+
return build(conf);
|
|
43
|
+
throw new Error(`Unknown source '${name}' — import the adapter that answers it, or register one with `
|
|
44
|
+
+ `Sources.register('${name}', build). This process answers `
|
|
45
|
+
+ `${[...this.registry.keys()].join(', ') || 'nothing yet'}.`);
|
|
46
|
+
}
|
|
47
|
+
/** Whether a name is answered, for a caller that must not throw to find out. */
|
|
48
|
+
static answers(name) {
|
|
49
|
+
return this.registry.has(name);
|
|
50
|
+
}
|
|
51
|
+
/** What this process answers — what a refusal elsewhere prints. */
|
|
52
|
+
static answered() {
|
|
53
|
+
return [...this.registry.keys()];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Container key of an entity's storage — 'reading' → 'ReadingStorage'.
|
|
24
58
|
*
|
|
25
59
|
* The twin of {@link repositoryKeyOf} and of `facadeKeyOf`: the key of a thing
|
|
26
60
|
* lives with the thing. This one was spelled by hand in four places in
|
|
@@ -28,9 +62,23 @@ export function assertListOptions(options, entity) {
|
|
|
28
62
|
* constructor asks for. Two readers of one convention, neither of them naming it,
|
|
29
63
|
* so a rename would have moved one and left the other resolving to nothing.
|
|
30
64
|
*/
|
|
31
|
-
export function
|
|
32
|
-
return `${upperFirst(entity)}
|
|
65
|
+
export function storageKeyOf(entity) {
|
|
66
|
+
return `${upperFirst(entity)}${HELD}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The entity behind a storage key, or `undefined` when the key is not one.
|
|
70
|
+
*
|
|
71
|
+
* The dual of the line above, for the reason `membersOfTogetherKey` is. `known` is what the
|
|
72
|
+
* suffix alone cannot answer: `FileStorage` is an ordinary class name.
|
|
73
|
+
*/
|
|
74
|
+
export function entityOfStorageKey(key, known) {
|
|
75
|
+
if (key.length <= HELD.length || !key.endsWith(HELD))
|
|
76
|
+
return undefined;
|
|
77
|
+
const entity = lowerFirst(key.slice(0, -HELD.length));
|
|
78
|
+
return storageKeyOf(entity) === key && known(entity) ? entity : undefined;
|
|
33
79
|
}
|
|
80
|
+
/** What a holder keeps, said in the key it is registered under. */
|
|
81
|
+
const HELD = 'Storage';
|
|
34
82
|
/**
|
|
35
83
|
* The container key of a frame — `[['Account', 'Ledger'], ['RateMirror']]` →
|
|
36
84
|
* 'Account+Ledger|RateMirrorTogether'.
|
|
@@ -63,4 +111,4 @@ export function membersOfTogetherKey(key) {
|
|
|
63
111
|
const split = (list) => list.split(SEPARATOR).filter(Boolean);
|
|
64
112
|
return { entities: split(entities), providers: split(providers) };
|
|
65
113
|
}
|
|
66
|
-
//# sourceMappingURL=
|
|
114
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/verify.d.ts
CHANGED
package/dist/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAO7D;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAwCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE;IAAE,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,GAAG,SAAS,EAAE,CAiF/E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,GAAG,IAAI,CAKlF"}
|
package/dist/verify.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { lowerFirst } from '@fougere/schema';
|
|
2
2
|
import { repositoryKeyOf } from './prefab/repository.js';
|
|
3
|
-
import {
|
|
3
|
+
import { storageKeyOf } from './storage.js';
|
|
4
4
|
import { presenterKeyOf } from './prefab/presenter.js';
|
|
5
5
|
import { collectorKeyOf } from './prefab/collector.js';
|
|
6
6
|
/**
|
|
@@ -21,7 +21,7 @@ function registrationsOf(frond) {
|
|
|
21
21
|
for (const c of frond.collectors)
|
|
22
22
|
put(collectorKeyOf(c.typeName), 'collector');
|
|
23
23
|
for (const e of frond.entities) {
|
|
24
|
-
put(
|
|
24
|
+
put(storageKeyOf(e.name), 'storage');
|
|
25
25
|
put(repositoryKeyOf(e.name), 'repository');
|
|
26
26
|
}
|
|
27
27
|
return out;
|
package/dist/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
* be repeated here too, and it had already lost `Fact` — the one whose position is
|
|
7
7
|
* load-bearing, since the fall-through would otherwise hand it the caller's body.
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
10
|
-
import type { InvocationContext } from '../contract/Invocation.js';
|
|
9
|
+
import type { Param } from './signature.js';
|
|
11
10
|
type ParamSource = {
|
|
12
11
|
kind: 'collector';
|
|
13
12
|
typeName: string;
|
|
@@ -48,13 +47,6 @@ export type BindingPlan = ParamBinding[];
|
|
|
48
47
|
* @param params - Parsed parameter list from AST
|
|
49
48
|
* @param collectorTypeNames - Registration keys of the types a Collector answers for
|
|
50
49
|
*/
|
|
51
|
-
export declare function computeBindingPlan(params:
|
|
52
|
-
export interface CollectorResolver {
|
|
53
|
-
collect(ctx: InvocationContext): Promise<unknown>;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Resolve handler arguments from a BindingPlan + InvocationContext.
|
|
57
|
-
*/
|
|
58
|
-
export declare function resolveArgs(plan: BindingPlan, ctx: InvocationContext, resolveCollector?: (typeName: string) => CollectorResolver | undefined): Promise<unknown[]>;
|
|
50
|
+
export declare function computeBindingPlan(params: Param[], collectorTypeNames: Set<string>): BindingPlan;
|
|
59
51
|
export {};
|
|
60
52
|
//# sourceMappingURL=binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/wire/binding.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAK5C,KAAK,WAAW,GACZ;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACzC;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,2EAA2E;GACzE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC;AAczC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,EAAE,EACf,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC9B,WAAW,CA0Db"}
|
|
@@ -69,56 +69,4 @@ export function computeBindingPlan(params, collectorTypeNames) {
|
|
|
69
69
|
};
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Resolve handler arguments from a BindingPlan + InvocationContext.
|
|
74
|
-
*/
|
|
75
|
-
export async function resolveArgs(plan, ctx, resolveCollector) {
|
|
76
|
-
const args = [];
|
|
77
|
-
for (const binding of plan) {
|
|
78
|
-
switch (binding.source.kind) {
|
|
79
|
-
case 'collector': {
|
|
80
|
-
const collector = resolveCollector?.(binding.source.typeName);
|
|
81
|
-
args.push(collector ? await collector.collect(ctx) : undefined);
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
case 'context': {
|
|
85
|
-
args.push(ctx);
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
case 'param': {
|
|
89
|
-
// `null` is a value, not a miss. Nullish coalescing used to make an explicit
|
|
90
|
-
// nullable path/GraphQL argument fall through to query (or become undefined),
|
|
91
|
-
// collapsing `T | null` into `T | undefined`. Only undefined means absent.
|
|
92
|
-
const fromParams = ctx.params[binding.source.name];
|
|
93
|
-
let val = fromParams === undefined
|
|
94
|
-
? ctx.query[binding.source.name]
|
|
95
|
-
: fromParams;
|
|
96
|
-
if (val != null && binding.source.coerce === 'number')
|
|
97
|
-
val = Number(val);
|
|
98
|
-
if (val != null && binding.source.coerce === 'boolean')
|
|
99
|
-
val = val === 'true' || val === '1' || val === true;
|
|
100
|
-
args.push(val);
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
case 'fact': {
|
|
104
|
-
// A fact IS the payload — the whole of what happened, never a piece of it.
|
|
105
|
-
// Identical to `body` today, and deliberately not sharing its branch: the two
|
|
106
|
-
// agree by coincidence, not by rule, and the day `body` learns to look up a
|
|
107
|
-
// value by parameter name a subscriber would receive ONE FIELD of the fact it
|
|
108
|
-
// subscribed to. Splitting it costs nothing and removes that trap.
|
|
109
|
-
args.push(ctx.body);
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
case 'body': {
|
|
113
|
-
args.push(ctx.body);
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
case 'query': {
|
|
117
|
-
args.push(ctx.query);
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return args;
|
|
123
|
-
}
|
|
124
72
|
//# sourceMappingURL=binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/wire/binding.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6B7C,iDAAiD;AAEjD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5D,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iDAAiD;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,kBAA+B;IAE/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,8EAA8E;QAC9E,iFAAiF;QACjF,mFAAmF;QACnF,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAErC,oFAAoF;QACpF,qFAAqF;QACrF,iCAAiC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC/D,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;aAClC,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACzD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;aAClC,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE;gBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;aAClC,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE;oBACN,IAAI,EAAE,OAAgB;oBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;iBAC9B;gBACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;aAClC,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE;YACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/wire/call.d.ts
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { type SchemaDescriptor } from '@fougere/schema';
|
|
10
10
|
import type { InvocationContext } from '../contract/Invocation.js';
|
|
11
|
-
import type { App } from '../boot/types.js';
|
|
12
11
|
/** Target of a call — which façade operation, wherever it lives. */
|
|
13
12
|
export interface FrondCall {
|
|
14
13
|
/** Frond name, when the caller knows it. Routing hint only. */
|
|
@@ -173,8 +172,9 @@ export interface TopologyReport {
|
|
|
173
172
|
* only where one is consumed.
|
|
174
173
|
*/
|
|
175
174
|
export declare function assertIdentityCard(value: unknown, source: string): IdentityCard;
|
|
175
|
+
/** A façade as the runtime holds it: op names to functions, nothing typed about them. */
|
|
176
176
|
/**
|
|
177
|
-
* The door built in front of a handler — the framework's second port, after `
|
|
177
|
+
* The door built in front of a handler — the framework's second port, after `Storage`.
|
|
178
178
|
*
|
|
179
179
|
* `Facade<PostHandler>` is what a neighbouring frond injects. It names what ARRIVES
|
|
180
180
|
* rather than what is written: never the handler (nobody injects it, and its methods take
|
|
@@ -211,42 +211,4 @@ export declare function facadeKeyOf(entityName: string, surface?: string): strin
|
|
|
211
211
|
* audience.
|
|
212
212
|
*/
|
|
213
213
|
export declare function contractsKeyOf(entityName: string, surface?: string): string;
|
|
214
|
-
/**
|
|
215
|
-
* Serialize what the app hosts, for one audience. Served on `rpc.discover`,
|
|
216
|
-
* cached by callers.
|
|
217
|
-
*
|
|
218
|
-
* Hosting means answering: an entity with no façade declares no operation, so
|
|
219
|
-
* it is not among the DOORS — publishing its shape would hand an anonymous caller
|
|
220
|
-
* the structure of tables it can never reach (the auth tables, typically), and
|
|
221
|
-
* `fougere sync` would rebuild a schema with nothing to call on it.
|
|
222
|
-
*
|
|
223
|
-
* `facts` is the one thing that shape-without-a-door rule does not cover, and the
|
|
224
|
-
* reason is the opposite of a leak: an entity nobody exposed is silent, whereas a
|
|
225
|
-
* fact was explicitly declared to leave.
|
|
226
|
-
*
|
|
227
|
-
* `surface` makes that sentence audience-aware rather than app-wide: a door
|
|
228
|
-
* answers with what IT serves. Nothing falls back to the full façade — under a
|
|
229
|
-
* named surface, an entity with no façade of its own is simply not there.
|
|
230
|
-
*/
|
|
231
|
-
export declare function identityCardOf(app: App, surface?: string): IdentityCard;
|
|
232
|
-
/**
|
|
233
|
-
* Build the local runner — the reference realization of Transport.
|
|
234
|
-
*
|
|
235
|
-
* Resolves strictly from the app's own container: a call that lands here is
|
|
236
|
-
* judged here. A miss is a typed NOT_FOUND, never a forward to another remote.
|
|
237
|
-
*/
|
|
238
|
-
export declare function createLocalRunner(app: App, surface?: string): Transport;
|
|
239
|
-
/**
|
|
240
|
-
* Build the app runner — same judgment, but resolution follows the app's
|
|
241
|
-
* topology: local façades and remote doublures alike. This is the runner
|
|
242
|
-
* an app's own entry points (browser endpoint, bridges) stand on.
|
|
243
|
-
*
|
|
244
|
-
* `surface` is the audience this runner serves, and it belongs to the DOOR that
|
|
245
|
-
* builds the runner, never to the call: a caller cannot name its own audience
|
|
246
|
-
* any more than it can name its own identity (`state` is stamped server-side
|
|
247
|
-
* for the same reason). Reaching the admin door IS the proof. So `FrondCall`
|
|
248
|
-
* gains nothing and the wire format gains nothing — a remote frond's audience
|
|
249
|
-
* is simply which URL `remotes:` points at.
|
|
250
|
-
*/
|
|
251
|
-
export declare function createAppRunner(app: App, surface?: string): Transport;
|
|
252
214
|
//# sourceMappingURL=call.d.ts.map
|
package/dist/wire/call.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/wire/call.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAQ,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/wire/call.ts"],"names":[],"mappings":"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"}
|