@antelopejs/interface-core 0.1.0 → 0.2.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.
Files changed (42) hide show
  1. package/dist/caller-binding.d.ts +11 -0
  2. package/dist/caller-binding.js +97 -0
  3. package/dist/caller-binding.js.map +1 -0
  4. package/dist/config.d.ts +15 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/errors.d.ts +1 -1
  7. package/dist/errors.js +1 -1
  8. package/dist/errors.js.map +1 -1
  9. package/dist/internal.d.ts +8 -10
  10. package/dist/internal.js +1 -2
  11. package/dist/internal.js.map +1 -1
  12. package/dist/modules.d.ts +7 -0
  13. package/dist/modules.js +14 -2
  14. package/dist/modules.js.map +1 -1
  15. package/dist/proxies.d.ts +17 -16
  16. package/dist/proxies.js +86 -174
  17. package/dist/proxies.js.map +1 -1
  18. package/dist/tests/caller-context.test.js +139 -0
  19. package/dist/tests/caller-context.test.js.map +1 -0
  20. package/dist/tests/generation-cleanup.test.js +0 -2
  21. package/dist/tests/generation-cleanup.test.js.map +1 -1
  22. package/dist/tests/provider-context.test.js +0 -8
  23. package/dist/tests/provider-context.test.js.map +1 -1
  24. package/dist/tests/queue-and-cleanup.test.js +20 -5
  25. package/dist/tests/queue-and-cleanup.test.js.map +1 -1
  26. package/dist/tests/release-owner.test.d.ts +1 -0
  27. package/dist/tests/release-owner.test.js +34 -0
  28. package/dist/tests/release-owner.test.js.map +1 -0
  29. package/dist/tests/responsible-module.test.js +2 -2
  30. package/dist/tests/responsible-module.test.js.map +1 -1
  31. package/dist/tests/runtime-protocol.test.js +8 -11
  32. package/dist/tests/runtime-protocol.test.js.map +1 -1
  33. package/dist/tests/single-provider.test.d.ts +1 -0
  34. package/dist/tests/single-provider.test.js +55 -0
  35. package/dist/tests/single-provider.test.js.map +1 -0
  36. package/docs/2.proxies.md +20 -7
  37. package/docs/5.modules.md +1 -3
  38. package/docs/7.configuration.md +10 -7
  39. package/package.json +2 -2
  40. package/dist/tests/provider-routing.test.js +0 -78
  41. package/dist/tests/provider-routing.test.js.map +0 -1
  42. /package/dist/tests/{provider-routing.test.d.ts → caller-context.test.d.ts} +0 -0
package/dist/proxies.js CHANGED
@@ -8,10 +8,11 @@ exports.RunWithResponsibleModule = RunWithResponsibleModule;
8
8
  exports.InterfaceFunction = InterfaceFunction;
9
9
  exports.GetResponsibleModule = GetResponsibleModule;
10
10
  const responsible_module_1 = require("./responsible-module");
11
+ const caller_binding_1 = require("./caller-binding");
11
12
  const errors_1 = require("./errors");
12
13
  const internal_1 = require("./internal");
13
14
  const PROXY_BRAND = Symbol.for("@antelopejs/interface-core/proxy");
14
- const DEFAULT_PROVIDER = "@antelopejs/interface-core/default-provider";
15
+ const DEFAULT_OWNER = "@antelopejs/interface-core/default-provider";
15
16
  function createIdentity(kind, identity) {
16
17
  if (identity) {
17
18
  return `${kind}:${identity}`;
@@ -19,18 +20,6 @@ function createIdentity(kind, identity) {
19
20
  const nextIdentity = internal_1.internal.nextProxyIdentity++;
20
21
  return `${kind}:anonymous:${nextIdentity}`;
21
22
  }
22
- function getProxyState(brand, create) {
23
- const existing = internal_1.internal.proxyStates.get(brand.identity);
24
- if (existing && existing.kind !== brand.kind) {
25
- throw new Error(`Proxy identity ${brand.identity} has conflicting kinds.`);
26
- }
27
- if (existing) {
28
- return existing.value;
29
- }
30
- const value = create();
31
- internal_1.internal.proxyStates.set(brand.identity, { kind: brand.kind, value });
32
- return value;
33
- }
34
23
  function createBrand(kind, identity) {
35
24
  return Object.freeze({
36
25
  protocol: internal_1.RUNTIME_PROTOCOL_VERSION,
@@ -53,19 +42,17 @@ function IsInterfaceProxy(value, kind) {
53
42
  const brand = readBrand(value);
54
43
  return Boolean(brand && (!kind || brand.kind === kind));
55
44
  }
56
- /** Returns the stable identity used to bind a proxy to a provider route. */
45
+ /** Returns the identity a proxy was declared with, for diagnostics. */
57
46
  function GetInterfaceProxyIdentity(value) {
58
47
  return readBrand(value)?.identity;
59
48
  }
60
- function getAttachmentRoute(manualDetach) {
49
+ function getAttachmentOwner(manualDetach) {
61
50
  const context = (0, internal_1.getModuleContext)();
62
51
  const responsible = manualDetach || context?.module ? undefined : GetResponsibleModule();
63
- const owner = context?.owner ?? context?.module ?? responsible ?? DEFAULT_PROVIDER;
64
- return { owner, provider: context?.provider ?? owner };
52
+ return context?.owner ?? context?.module ?? responsible ?? DEFAULT_OWNER;
65
53
  }
66
- function getRequestedProvider(proxyIdentity) {
67
- const context = (0, internal_1.getModuleContext)();
68
- return context?.providerRoutes?.[proxyIdentity] ?? context?.provider;
54
+ function createLease(owner) {
55
+ return { owner, generation: internal_1.internal.nextLeaseGeneration++ };
69
56
  }
70
57
  function bindProviderCallback(callback) {
71
58
  const context = (0, internal_1.captureModuleContext)();
@@ -82,19 +69,6 @@ function getExecutionOwnership() {
82
69
  const module = GetResponsibleModule();
83
70
  return { module, owner: module };
84
71
  }
85
- function selectProvider(callbacks, proxyIdentity, requested) {
86
- if (requested) {
87
- const callback = callbacks.get(requested);
88
- if (!callback && callbacks.size > 0) {
89
- throw new errors_1.MissingProviderError(`Interface proxy ${proxyIdentity} has no provider for route ${requested}.`);
90
- }
91
- return callback;
92
- }
93
- if (callbacks.size <= 1) {
94
- return callbacks.values().next().value;
95
- }
96
- throw new errors_1.AmbiguousProviderError(proxyIdentity, [...callbacks.keys()]);
97
- }
98
72
  function reportRuntimeError(error, operation, proxyIdentity, module, registrationId) {
99
73
  internal_1.internal.runtimeErrorReporter?.(error, {
100
74
  operation,
@@ -115,68 +89,53 @@ function InvalidateResponsibleModule(module) {
115
89
  function RunWithResponsibleModule(module, callback) {
116
90
  return (0, internal_1.runWithModuleContext)({ module }, callback);
117
91
  }
118
- /** Proxy for an asynchronous interface function. */
92
+ /** Proxy for an asynchronous interface function, served by a single provider. */
119
93
  class AsyncProxy {
120
94
  [PROXY_BRAND];
121
- state;
95
+ attachment;
96
+ queue = [];
122
97
  constructor(identity) {
123
98
  this[PROXY_BRAND] = createBrand("async", identity);
124
- this.state = getProxyState(this[PROXY_BRAND], () => ({
125
- callbacks: new Map(),
126
- queue: [],
127
- }));
128
99
  }
129
- /** Attaches a provider callback and replays compatible queued calls. */
100
+ /** Attaches the provider callback, replacing any previous one, and replays queued calls. */
130
101
  onCall(callback, manualDetach) {
131
- const route = getAttachmentRoute(manualDetach);
132
- const lease = { ...route, generation: internal_1.internal.nextLeaseGeneration++ };
102
+ const lease = createLease(getAttachmentOwner(manualDetach));
133
103
  const providerCallback = bindProviderCallback(callback);
134
- this.state.callbacks.set(route.provider, {
135
- callback: providerCallback,
136
- ...lease,
137
- });
104
+ this.attachment = { callback: providerCallback, ...lease };
138
105
  if (!manualDetach) {
139
- internal_1.internal.addAsyncProxy(route.owner, {
106
+ internal_1.internal.addAsyncProxy(lease.owner, {
140
107
  cleanup: () => this.detach(lease),
141
108
  });
142
109
  }
143
- this.replayQueue(route.provider, providerCallback);
110
+ this.replayQueue(providerCallback);
144
111
  return lease;
145
112
  }
146
- /** Detaches one leased provider, or every provider when called without a lease. */
113
+ /** Detaches the leased attachment, or the current one when called without a lease. */
147
114
  detach(lease) {
148
- if (!lease) {
149
- this.state.callbacks.clear();
150
- return;
151
- }
152
- const current = this.state.callbacks.get(lease.provider);
153
- if (current?.generation === lease.generation &&
154
- current.owner === lease.owner) {
155
- this.state.callbacks.delete(lease.provider);
115
+ if (!lease || matchesLease(this.attachment, lease)) {
116
+ this.attachment = undefined;
156
117
  }
157
118
  }
158
- /** Calls the provider selected by the current module execution context. */
119
+ /** Calls the provider, or queues the call until a provider attaches. */
159
120
  call(...args) {
160
- let requested;
161
- let attachment;
121
+ let callerArgs;
162
122
  try {
163
- requested = getRequestedProvider(this[PROXY_BRAND].identity);
164
- attachment = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, requested);
123
+ callerArgs = (0, caller_binding_1.bindCallerArguments)(args);
165
124
  }
166
125
  catch (error) {
167
126
  return Promise.reject(error);
168
127
  }
169
- if (attachment) {
170
- return this.invoke(attachment.callback, args);
128
+ if (this.attachment) {
129
+ return this.invoke(this.attachment.callback, callerArgs);
171
130
  }
172
131
  if (internal_1.internal.testStubMode) {
173
132
  return Promise.reject(new errors_1.MissingProviderError());
174
133
  }
175
- if (this.state.queue.length >= internal_1.internal.maxPendingOperations) {
134
+ if (this.queue.length >= internal_1.internal.maxPendingOperations) {
176
135
  return Promise.reject(new errors_1.ProviderQueueFullError(this[PROXY_BRAND].identity, internal_1.internal.maxPendingOperations));
177
136
  }
178
137
  return new Promise((resolve, reject) => {
179
- this.state.queue.push({ args, provider: requested, resolve, reject });
138
+ this.queue.push({ args: callerArgs, resolve, reject });
180
139
  });
181
140
  }
182
141
  invoke(callback, args) {
@@ -187,16 +146,12 @@ class AsyncProxy {
187
146
  return Promise.reject(error);
188
147
  }
189
148
  }
190
- replayQueue(provider, callback) {
191
- const remaining = [];
192
- for (const pending of this.state.queue) {
193
- if (pending.provider && pending.provider !== provider) {
194
- remaining.push(pending);
195
- continue;
196
- }
197
- this.invoke(callback, pending.args).then(pending.resolve, pending.reject);
149
+ replayQueue(callback) {
150
+ const pending = this.queue;
151
+ this.queue = [];
152
+ for (const call of pending) {
153
+ this.invoke(callback, call.args).then(call.resolve, call.reject);
198
154
  }
199
- this.state.queue = remaining;
200
155
  }
201
156
  }
202
157
  exports.AsyncProxy = AsyncProxy;
@@ -207,109 +162,81 @@ function InterfaceFunction(identity) {
207
162
  func.proxy = proxy;
208
163
  return func;
209
164
  }
210
- /** Proxy for provider-aware register and unregister handlers. */
165
+ /** Proxy for register and unregister handlers, served by a single provider. */
211
166
  class RegisteringProxy {
212
167
  [PROXY_BRAND];
213
- state;
168
+ handlers = {};
169
+ registered = new Map();
214
170
  constructor(identity) {
215
171
  this[PROXY_BRAND] = createBrand("registering", identity);
216
- this.state = getProxyState(this[PROXY_BRAND], () => ({
217
- callbacks: new Map(),
218
- registered: new Map(),
219
- }));
220
172
  internal_1.internal.registeringProxies.add(this);
221
173
  }
222
174
  /** Attaches a register callback. */
223
175
  onRegister(callback, manualDetach) {
224
- const route = getAttachmentRoute(manualDetach);
225
- return this.attachRegister(bindProviderCallback(callback), route, Boolean(manualDetach));
176
+ return this.attachRegister(bindProviderCallback(callback), {
177
+ owner: getAttachmentOwner(manualDetach),
178
+ manualDetach: Boolean(manualDetach),
179
+ });
226
180
  }
227
- /** Attaches an unregister callback to the current provider route. */
181
+ /** Attaches an unregister callback, sharing the register callback's owner when it is the caller's. */
228
182
  onUnregister(callback) {
229
183
  const context = (0, internal_1.getModuleContext)();
230
- const requested = context?.provider ?? context?.module;
231
- const current = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, requested);
232
184
  const contextOwner = context?.owner ?? context?.module;
233
- const attachments = [current?.unregister, current?.register];
185
+ const attachments = [this.handlers.unregister, this.handlers.register];
234
186
  const sibling = contextOwner
235
187
  ? attachments.find((attachment) => attachment?.owner === contextOwner)
236
188
  : attachments.find((attachment) => Boolean(attachment));
237
- const canExtendCurrent = current && sibling;
238
- const options = canExtendCurrent
239
- ? {
240
- route: { owner: sibling.owner, provider: current.provider },
241
- manualDetach: sibling.manualDetach,
242
- }
243
- : { route: getAttachmentRoute(), manualDetach: false };
189
+ const options = sibling
190
+ ? { owner: sibling.owner, manualDetach: sibling.manualDetach }
191
+ : { owner: getAttachmentOwner(), manualDetach: false };
244
192
  return this.attachUnregister(bindProviderCallback(callback), options);
245
193
  }
246
194
  /** Atomically attaches both registration handlers. */
247
195
  onHandlers(register, unregister, manualDetach) {
248
- const route = getAttachmentRoute(manualDetach);
249
- const lease = this.createLease(route);
196
+ const lease = createLease(getAttachmentOwner(manualDetach));
250
197
  const boundRegister = bindProviderCallback(register);
251
198
  const boundUnregister = bindProviderCallback(unregister);
252
- this.state.callbacks.set(route.provider, {
253
- provider: route.provider,
199
+ this.handlers = {
254
200
  register: this.createAttachment(boundRegister, lease, manualDetach),
255
201
  unregister: this.createAttachment(boundUnregister, lease, manualDetach),
256
- });
202
+ };
257
203
  this.trackAttachment(lease, Boolean(manualDetach));
258
- this.replayRegistrations(route.provider, boundRegister);
204
+ this.replayRegistrations(boundRegister);
259
205
  return lease;
260
206
  }
261
- /** Detaches one leased provider, or every provider when called without a lease. */
207
+ /** Detaches the leased handlers, or both handlers when called without a lease. */
262
208
  detach(lease) {
263
209
  if (!lease) {
264
- this.state.callbacks.clear();
210
+ this.handlers = {};
265
211
  return;
266
212
  }
267
- const current = this.state.callbacks.get(lease.provider);
268
- if (!current) {
269
- return;
213
+ if (matchesLease(this.handlers.register, lease)) {
214
+ this.handlers.register = undefined;
270
215
  }
271
- if (matchesLease(current.register, lease)) {
272
- current.register = undefined;
273
- }
274
- if (matchesLease(current.unregister, lease)) {
275
- current.unregister = undefined;
276
- }
277
- if (!current.register && !current.unregister) {
278
- this.state.callbacks.delete(lease.provider);
216
+ if (matchesLease(this.handlers.unregister, lease)) {
217
+ this.handlers.unregister = undefined;
279
218
  }
280
219
  }
281
- /** Registers an entry with the selected provider or queues it for bootstrap. */
220
+ /** Registers an entry with the provider and keeps it for replay on (re)attach. */
282
221
  register(id, ...args) {
283
- const requested = getRequestedProvider(this[PROXY_BRAND].identity);
284
- const callback = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, requested);
222
+ const callerArgs = (0, caller_binding_1.bindCallerArguments)(args);
223
+ const callback = this.handlers.register;
285
224
  if (!callback && internal_1.internal.testStubMode) {
286
225
  throw new errors_1.MissingProviderError();
287
226
  }
288
- if (!callback &&
289
- !this.state.registered.has(id) &&
290
- this.state.registered.size >= internal_1.internal.maxPendingOperations) {
291
- throw new errors_1.ProviderQueueFullError(this[PROXY_BRAND].identity, internal_1.internal.maxPendingOperations);
292
- }
293
- const ownership = getExecutionOwnership();
294
- this.state.registered.set(id, {
295
- ...ownership,
296
- provider: requested ?? callback?.provider,
297
- args,
298
- });
299
- callback?.register?.callback(id, ...args);
227
+ this.registered.set(id, { ...getExecutionOwnership(), args: callerArgs });
228
+ callback?.callback(id, ...callerArgs);
300
229
  }
301
- /** Unregisters an entry from the provider that accepted it. */
230
+ /** Unregisters an entry from the provider. */
302
231
  unregister(id) {
303
- const entry = this.state.registered.get(id);
304
- if (!entry) {
232
+ if (!this.registered.has(id)) {
305
233
  return;
306
234
  }
307
- const callback = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, entry.provider);
308
235
  try {
309
- callback?.unregister?.callback(id);
236
+ this.handlers.unregister?.callback(id);
310
237
  }
311
238
  finally {
312
- this.state.registered.delete(id);
239
+ this.registered.delete(id);
313
240
  }
314
241
  }
315
242
  /** Unregisters every entry owned by a destroyed module. */
@@ -321,7 +248,7 @@ class RegisteringProxy {
321
248
  this.unregisterMatching((entry) => entry.owner === owner, owner);
322
249
  }
323
250
  unregisterMatching(matches, owner) {
324
- for (const [id, entry] of this.state.registered) {
251
+ for (const [id, entry] of this.registered) {
325
252
  if (!matches(entry)) {
326
253
  continue;
327
254
  }
@@ -332,32 +259,21 @@ class RegisteringProxy {
332
259
  reportRuntimeError(error, "unregister", this[PROXY_BRAND].identity, owner, id);
333
260
  }
334
261
  finally {
335
- this.state.registered.delete(id);
262
+ this.registered.delete(id);
336
263
  }
337
264
  }
338
265
  }
339
- attachRegister(callback, route, manualDetach) {
340
- const lease = this.createLease(route);
341
- const current = this.state.callbacks.get(route.provider);
342
- this.state.callbacks.set(route.provider, {
343
- provider: route.provider,
344
- register: this.createAttachment(callback, lease, manualDetach),
345
- unregister: current?.unregister,
346
- });
347
- this.trackAttachment(lease, manualDetach);
348
- this.replayRegistrations(route.provider, callback);
266
+ attachRegister(callback, options) {
267
+ const lease = createLease(options.owner);
268
+ this.handlers.register = this.createAttachment(callback, lease, options.manualDetach);
269
+ this.trackAttachment(lease, options.manualDetach);
270
+ this.replayRegistrations(callback);
349
271
  return lease;
350
272
  }
351
273
  attachUnregister(callback, options) {
352
- const { route, manualDetach } = options;
353
- const lease = this.createLease(route);
354
- const current = this.state.callbacks.get(route.provider);
355
- this.state.callbacks.set(route.provider, {
356
- provider: route.provider,
357
- register: current?.register,
358
- unregister: this.createAttachment(callback, lease, manualDetach),
359
- });
360
- this.trackAttachment(lease, manualDetach);
274
+ const lease = createLease(options.owner);
275
+ this.handlers.unregister = this.createAttachment(callback, lease, options.manualDetach);
276
+ this.trackAttachment(lease, options.manualDetach);
361
277
  return lease;
362
278
  }
363
279
  trackAttachment(lease, manualDetach) {
@@ -368,20 +284,13 @@ class RegisteringProxy {
368
284
  });
369
285
  }
370
286
  }
371
- createLease(route) {
372
- return { ...route, generation: internal_1.internal.nextLeaseGeneration++ };
373
- }
374
287
  createAttachment(callback, lease, manualDetach) {
375
288
  return { callback, ...lease, manualDetach: Boolean(manualDetach) };
376
289
  }
377
- replayRegistrations(provider, callback) {
378
- for (const [id, entry] of this.state.registered) {
379
- if (entry.provider && entry.provider !== provider) {
380
- continue;
381
- }
290
+ replayRegistrations(callback) {
291
+ for (const [id, entry] of this.registered) {
382
292
  try {
383
293
  callback(id, ...entry.args);
384
- entry.provider = provider;
385
294
  }
386
295
  catch (error) {
387
296
  internal_1.internal.replayErrorReporter?.(id, error);
@@ -391,20 +300,19 @@ class RegisteringProxy {
391
300
  }
392
301
  }
393
302
  exports.RegisteringProxy = RegisteringProxy;
394
- /** Module-aware event handler collection. */
303
+ /** Module-aware event handler collection; each handler runs in its registrant's context. */
395
304
  class EventProxy {
396
305
  [PROXY_BRAND];
397
- state;
306
+ registered = [];
398
307
  constructor(identity) {
399
308
  this[PROXY_BRAND] = createBrand("event", identity);
400
- this.state = getProxyState(this[PROXY_BRAND], () => ({ registered: [] }));
401
309
  internal_1.internal.knownEvents.add(this);
402
310
  }
403
311
  /** Emits to every handler, reporting failures without aborting later handlers. */
404
312
  emit(...args) {
405
- for (const { func, module } of this.state.registered) {
313
+ for (const { handler, module } of this.registered) {
406
314
  try {
407
- func(...args);
315
+ handler(...args);
408
316
  }
409
317
  catch (error) {
410
318
  reportRuntimeError(error, "event-emit", this[PROXY_BRAND].identity, module);
@@ -413,22 +321,26 @@ class EventProxy {
413
321
  }
414
322
  /** Registers a handler once. */
415
323
  register(func) {
416
- if (this.state.registered.some((existing) => existing.func === func)) {
324
+ if (this.registered.some((existing) => existing.func === func)) {
417
325
  return;
418
326
  }
419
- this.state.registered.push({ ...getExecutionOwnership(), func });
327
+ this.registered.push({
328
+ ...getExecutionOwnership(),
329
+ func,
330
+ handler: (0, caller_binding_1.bindCallerFunction)(func),
331
+ });
420
332
  }
421
333
  /** Unregisters a handler. */
422
334
  unregister(fn) {
423
- this.state.registered = this.state.registered.filter(({ func }) => func !== fn);
335
+ this.registered = this.registered.filter(({ func }) => func !== fn);
424
336
  }
425
337
  /** Unregisters handlers owned by a destroyed module. */
426
338
  unregisterModule(module) {
427
- this.state.registered = this.state.registered.filter((entry) => entry.module !== module);
339
+ this.registered = this.registered.filter((entry) => entry.module !== module);
428
340
  }
429
341
  /** Unregisters handlers owned by a destroyed module generation. */
430
342
  unregisterOwner(owner) {
431
- this.state.registered = this.state.registered.filter((entry) => entry.owner !== owner);
343
+ this.registered = this.registered.filter((entry) => entry.owner !== owner);
432
344
  }
433
345
  }
434
346
  exports.EventProxy = EventProxy;
@@ -1 +1 @@
1
- {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../src/proxies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../src/proxies.ts"],"names":[],"mappings":"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"}