@flighthq/protocol 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.1047.858b9b6

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/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/protocol`. The `@fli
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/protocol@0.5.0-next.1944.cd6b6e7](https://github.com/flighthq/flight/tree/cd6b6e71eb472b3a4249830a7743333f019fa7b7/packages/protocol)
17
- - [License](https://github.com/flighthq/flight/blob/cd6b6e71eb472b3a4249830a7743333f019fa7b7/LICENSE.md)
16
+ - [Source for @flighthq/protocol@0.5.1-edge.1047.858b9b6](https://github.com/flighthq/flight/tree/858b9b601de814f6b6940cbb1ffff0916b903268/packages/protocol)
17
+ - [License](https://github.com/flighthq/flight/blob/858b9b601de814f6b6940cbb1ffff0916b903268/LICENSE.md)
@@ -1,2 +1,3 @@
1
1
  export * from './protocol';
2
+ export { initializeProtocolHandler } from './protocol';
2
3
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
package/dist/contract.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './protocol';
2
+ export { initializeProtocolHandler } from './protocol';
2
3
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { attachProtocolHandler, createProtocolHandler, createProtocolUrl, detachProtocolHandler, disposeProtocolHandler, explainProtocolBackend, getProtocolLaunchUrl, getRegisteredProtocolSchemes, isProtocolSchemeDefault, isProtocolSchemeRegistered, isValidProtocolScheme, parseProtocolUrl, registerProtocolScheme, registerProtocolSchemes, removeProtocolSchemeAsDefault, setProtocolSchemeAsDefault, unregisterProtocolScheme, unregisterProtocolSchemes, } from './contract';
1
+ export { attachProtocolHandler, createProtocolHandler, createProtocolUrl, detachProtocolHandler, disposeProtocolHandler, getProtocolLaunchUrl, getRegisteredProtocolSchemes, isProtocolSchemeDefault, isProtocolSchemeRegistered, isValidProtocolScheme, parseProtocolUrl, registerProtocolScheme, registerProtocolSchemes, removeProtocolSchemeAsDefault, setProtocolSchemeAsDefault, unregisterProtocolScheme, unregisterProtocolSchemes, } from './contract';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { attachProtocolHandler, createProtocolHandler, createProtocolUrl, detachProtocolHandler, disposeProtocolHandler, explainProtocolBackend, getProtocolLaunchUrl, getRegisteredProtocolSchemes, isProtocolSchemeDefault, isProtocolSchemeRegistered, isValidProtocolScheme, parseProtocolUrl, registerProtocolScheme, registerProtocolSchemes, removeProtocolSchemeAsDefault, setProtocolSchemeAsDefault, unregisterProtocolScheme, unregisterProtocolSchemes, } from './contract';
1
+ export { attachProtocolHandler, createProtocolHandler, createProtocolUrl, detachProtocolHandler, disposeProtocolHandler, getProtocolLaunchUrl, getRegisteredProtocolSchemes, isProtocolSchemeDefault, isProtocolSchemeRegistered, isValidProtocolScheme, parseProtocolUrl, registerProtocolScheme, registerProtocolSchemes, removeProtocolSchemeAsDefault, setProtocolSchemeAsDefault, unregisterProtocolScheme, unregisterProtocolSchemes, } from './contract';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
@@ -1,25 +1,20 @@
1
- import type { BackendExplanation, ParsedProtocolUrl, ProtocolBackend, ProtocolHandler } from '@flighthq/types/contract';
2
- export declare function attachProtocolHandler(handler: ProtocolHandler): void;
1
+ import type { EntityConstruction, HasProtocolDefault, HasProtocolLaunch, HasProtocolOpen, HasProtocolRegistration, HasProtocolRegistrationQuery, HasProtocolUnregistration, ParsedProtocolUrl, ProtocolHandler } from '@flighthq/types/contract';
2
+ export declare function attachProtocolHandler(host: HasProtocolOpen, handler: ProtocolHandler): void;
3
3
  export declare function createProtocolHandler(): ProtocolHandler;
4
4
  export declare function createProtocolUrl(parts: Readonly<Partial<ParsedProtocolUrl>>): string;
5
5
  export declare function detachProtocolHandler(handler: ProtocolHandler): void;
6
6
  export declare function disposeProtocolHandler(handler: ProtocolHandler): void;
7
- export declare function explainProtocolBackend(): BackendExplanation;
8
- export declare function getProtocolBackend(): ProtocolBackend;
9
- export declare function getProtocolLaunchUrl(): string | null;
10
- export declare function getRegisteredProtocolSchemes(): readonly string[];
11
- export declare function installProtocolHostBackend(backend: ProtocolBackend): void;
12
- export declare function isProtocolSchemeDefault(scheme: string): boolean;
13
- export declare function isProtocolSchemeRegistered(scheme: string): boolean;
7
+ export declare function getProtocolLaunchUrl(host: HasProtocolLaunch): string | null;
8
+ export declare function getRegisteredProtocolSchemes(host: HasProtocolRegistration): readonly string[];
9
+ export declare function initializeProtocolHandler(out: EntityConstruction<ProtocolHandler>): void;
10
+ export declare function isProtocolSchemeDefault(host: HasProtocolDefault, scheme: string): boolean;
11
+ export declare function isProtocolSchemeRegistered(host: HasProtocolRegistrationQuery, scheme: string): boolean;
14
12
  export declare function isValidProtocolScheme(scheme: string): boolean;
15
- export declare function observeProtocolHostResult(operation: string, succeeded: boolean): void;
16
13
  export declare function parseProtocolUrl(url: string): ParsedProtocolUrl | null;
17
- export declare function registerProtocolScheme(scheme: string): boolean;
18
- export declare function registerProtocolSchemes(schemes: readonly string[]): boolean;
19
- export declare function removeProtocolSchemeAsDefault(scheme: string): boolean;
20
- export declare function resetProtocolBackendForTest(): void;
21
- export declare function setProtocolBackend(backend: ProtocolBackend | null): void;
22
- export declare function setProtocolSchemeAsDefault(scheme: string): boolean;
23
- export declare function unregisterProtocolScheme(scheme: string): boolean;
24
- export declare function unregisterProtocolSchemes(schemes: readonly string[]): boolean;
14
+ export declare function registerProtocolScheme(host: HasProtocolRegistration, scheme: string): boolean;
15
+ export declare function registerProtocolSchemes(host: HasProtocolRegistration, schemes: readonly string[]): boolean;
16
+ export declare function removeProtocolSchemeAsDefault(host: HasProtocolDefault, scheme: string): boolean;
17
+ export declare function setProtocolSchemeAsDefault(host: HasProtocolDefault, scheme: string): boolean;
18
+ export declare function unregisterProtocolScheme(host: HasProtocolUnregistration, scheme: string): boolean;
19
+ export declare function unregisterProtocolSchemes(host: HasProtocolUnregistration, schemes: readonly string[]): boolean;
25
20
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOxH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAUpE;AAID,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAgBrF;AAGD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAMpE;AAID,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAErE;AAED,wBAAgB,sBAAsB,IAAI,kBAAkB,CAa3D;AAGD,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAKD,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAID,wBAAgB,4BAA4B,IAAI,SAAS,MAAM,EAAE,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAMzE;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/D;AAGD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElE;AAMD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAKrF;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAuDtE;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG9D;AAID,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAO3E;AAID,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAKlD;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAExE;AAID,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElE;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAGD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAO7E"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAO3F;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAIvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAkBrF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAGpE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAGrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAE3E;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS,MAAM,EAAE,CAE7F;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,IAAI,CAExF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAwCtE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAQ1G;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/F;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5F;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjG;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAQ9G"}
package/dist/protocol.js CHANGED
@@ -1,28 +1,15 @@
1
- import { createSignal, emitSignal } from '@flighthq/signals/contract';
2
- // Begins delivering deep-link opens to `handler`'s signal by subscribing to the active backend. Wires
3
- // subscribe→onOpenUrl. Idempotent: a prior subscription is torn down first. Drains any URLs that
4
- // arrived before this call (buffered by the backend between process start and first attach) and
5
- // emits each one before activating the live subscription. Pair with
6
- // detachProtocolHandler/disposeProtocolHandler.
7
- export function attachProtocolHandler(handler) {
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ import { clearSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
3
+ export function attachProtocolHandler(host, handler) {
8
4
  detachProtocolHandler(handler);
9
- const backend = getProtocolBackend();
10
- // Drain URLs that arrived between process start and first attach (pre-attach burst).
11
- const pending = backend.drainPendingUrls();
12
- for (const url of pending) {
13
- emitSignal(handler.onOpenUrl, url);
14
- }
15
- const unsubscribe = backend.subscribe((url) => emitSignal(handler.onOpenUrl, url));
16
- _subscriptions.set(handler, unsubscribe);
5
+ const backend = host.protocol.open;
6
+ _subscriptions.set(handler, backend.subscribe((url) => emitSignal(handler.onOpenUrl, url)));
17
7
  }
18
- // Allocates a ProtocolHandler event entity with an inert signal; call attachProtocolHandler to start
19
- // delivery.
20
8
  export function createProtocolHandler() {
21
- return { onOpenUrl: createSignal() };
9
+ const out = allocateEntity();
10
+ initializeProtocolHandler(out);
11
+ return finishEntity(out);
22
12
  }
23
- // Builds a protocol URL string from its parsed components. scheme, host, path, and query are all
24
- // optional; the result is always a valid absolute URI string. Round-trips with parseProtocolUrl for
25
- // well-formed inputs.
26
13
  export function createProtocolUrl(parts) {
27
14
  const scheme = parts.scheme ?? 'unknown';
28
15
  const host = parts.host ?? '';
@@ -32,77 +19,39 @@ export function createProtocolUrl(parts) {
32
19
  const normalizedPath = path && !path.startsWith('/') ? `/${path}` : path;
33
20
  let url = `${scheme}:${authority}${normalizedPath}`;
34
21
  if (query) {
35
- const entries = Object.entries(query).filter(([k]) => k.length > 0);
22
+ const entries = Object.entries(query).filter(([key]) => key.length > 0);
36
23
  if (entries.length > 0) {
37
- const qs = entries.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');
38
- url += `?${qs}`;
24
+ const queryString = entries
25
+ .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
26
+ .join('&');
27
+ url += `?${queryString}`;
39
28
  }
40
29
  }
41
30
  return url;
42
31
  }
43
- // Stops delivery to `handler` and forgets its subscription. Safe to call when not attached.
44
32
  export function detachProtocolHandler(handler) {
45
- const unsubscribe = _subscriptions.get(handler);
46
- if (unsubscribe !== undefined) {
47
- unsubscribe();
48
- _subscriptions.delete(handler);
49
- }
33
+ _subscriptions.get(handler)?.();
34
+ _subscriptions.delete(handler);
50
35
  }
51
- // Releases `handler` for garbage collection by detaching its backend subscription. The signal remains
52
- // plain GC-managed memory afterward.
53
36
  export function disposeProtocolHandler(handler) {
54
37
  detachProtocolHandler(handler);
38
+ clearSignal(handler.onOpenUrl);
55
39
  }
56
- export function explainProtocolBackend() {
57
- if (_custom !== null) {
58
- return { conflict: _hostConflict, layer: 'custom', operation: null, viability: 'unobserved' };
59
- }
60
- if (_host !== null) {
61
- return {
62
- conflict: _hostConflict,
63
- layer: 'host',
64
- operation: _hostObservation !== null ? _hostObservation.operation : null,
65
- viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
66
- };
67
- }
68
- return { conflict: false, layer: 'host-not-enabled', operation: null, viability: 'unobserved' };
40
+ export function getProtocolLaunchUrl(host) {
41
+ return host.protocol.launch.getLaunchUrl();
69
42
  }
70
- // The active protocol backend. Precedence: custom > host > sentinel.
71
- export function getProtocolBackend() {
72
- return _custom ?? _host ?? _sentinel;
43
+ export function getRegisteredProtocolSchemes(host) {
44
+ return host.protocol.registration.getRegisteredSchemes();
73
45
  }
74
- // Returns the URL the app was launched with via a deep link (cold start), or null when the app was
75
- // not launched via a link. This is a one-shot idempotent query — re-readable. Distinct from
76
- // onOpenUrl, which fires only for warm (subsequent) opens.
77
- export function getProtocolLaunchUrl() {
78
- return getProtocolBackend().getLaunchUrl();
79
- }
80
- // Returns all custom URI schemes currently registered by this app. Returns [] when the host cannot
81
- // enumerate registered schemes.
82
- export function getRegisteredProtocolSchemes() {
83
- return getProtocolBackend().getRegisteredSchemes();
84
- }
85
- export function installProtocolHostBackend(backend) {
86
- if (_host !== null) {
87
- if (_host !== backend)
88
- _hostConflict = true;
89
- return;
90
- }
91
- _host = backend;
46
+ export function initializeProtocolHandler(out) {
47
+ out.onOpenUrl = createSignal();
92
48
  }
93
- // True when `scheme` is the OS default handler for deep links. Returns false where the host cannot
94
- // report it (e.g. the web platform).
95
- export function isProtocolSchemeDefault(scheme) {
96
- return getProtocolBackend().isDefault(scheme);
49
+ export function isProtocolSchemeDefault(host, scheme) {
50
+ return isValidProtocolScheme(scheme) && host.protocol.default.isDefault(scheme);
97
51
  }
98
- // True when `scheme` is currently registered to this app. Returns false where the host cannot report it.
99
- export function isProtocolSchemeRegistered(scheme) {
100
- return getProtocolBackend().isRegistered(scheme);
52
+ export function isProtocolSchemeRegistered(host, scheme) {
53
+ return isValidProtocolScheme(scheme) && host.protocol.registrationQuery.isRegistered(scheme);
101
54
  }
102
- // Returns true when `scheme` is a valid RFC 3986 URI scheme: starts with an ASCII letter followed by
103
- // zero or more letters, digits, '+', '-', or '.'. Reserved schemes ('http', 'https', 'ftp', 'ftps',
104
- // 'mailto', 'file') are rejected to prevent OS conflicts. Scheme is lowercased before validation so
105
- // 'MyApp' is treated identically to 'myapp'.
106
55
  export function isValidProtocolScheme(scheme) {
107
56
  if (typeof scheme !== 'string' || scheme.length === 0)
108
57
  return false;
@@ -111,177 +60,93 @@ export function isValidProtocolScheme(scheme) {
111
60
  return false;
112
61
  return _schemePattern.test(lower);
113
62
  }
114
- export function observeProtocolHostResult(operation, succeeded) {
115
- _hostObservation = {
116
- operation,
117
- viability: succeeded ? 'available' : 'runtime-api-unavailable',
118
- };
119
- }
120
- // Parses a deep-link URL into its components. Returns null for malformed or non-custom-scheme URLs.
121
- // query values are percent-decoded. Multi-value query keys: last value wins (matches URLSearchParams
122
- // behavior). This function does not allocate a large object on the happy path — it reads all fields
123
- // before writing to avoid aliasing issues if the caller reuses a buffer.
124
63
  export function parseProtocolUrl(url) {
125
64
  if (typeof url !== 'string' || url.length === 0)
126
65
  return null;
127
- const colonIdx = url.indexOf(':');
128
- if (colonIdx <= 0)
66
+ const colonIndex = url.indexOf(':');
67
+ if (colonIndex <= 0)
129
68
  return null;
130
- const scheme = url.slice(0, colonIdx).toLowerCase();
69
+ const scheme = url.slice(0, colonIndex).toLowerCase();
131
70
  if (!_schemePattern.test(scheme))
132
71
  return null;
133
- let rest = url.slice(colonIdx + 1);
134
- // Authority (//host)
72
+ let rest = url.slice(colonIndex + 1);
135
73
  let host = '';
136
74
  if (rest.startsWith('//')) {
137
75
  rest = rest.slice(2);
138
- const slashIdx = rest.indexOf('/');
139
- const qIdx = rest.indexOf('?');
140
- let hostEnd;
141
- if (slashIdx >= 0 && (qIdx < 0 || slashIdx < qIdx)) {
142
- hostEnd = slashIdx;
143
- }
144
- else if (qIdx >= 0) {
145
- hostEnd = qIdx;
146
- }
147
- else {
148
- hostEnd = rest.length;
149
- }
76
+ const slashIndex = rest.indexOf('/');
77
+ const queryIndex = rest.indexOf('?');
78
+ const hostEnd = slashIndex >= 0 && (queryIndex < 0 || slashIndex < queryIndex)
79
+ ? slashIndex
80
+ : queryIndex >= 0
81
+ ? queryIndex
82
+ : rest.length;
150
83
  host = rest.slice(0, hostEnd);
151
84
  rest = rest.slice(hostEnd);
152
85
  }
153
- // Path and query
154
- const qIdx = rest.indexOf('?');
155
- let path;
156
- let queryString;
157
- if (qIdx >= 0) {
158
- path = rest.slice(0, qIdx);
159
- queryString = rest.slice(qIdx + 1);
160
- }
161
- else {
162
- path = rest;
163
- queryString = '';
164
- }
165
- // Decode query
86
+ const queryIndex = rest.indexOf('?');
87
+ const path = queryIndex >= 0 ? rest.slice(0, queryIndex) : rest;
88
+ const queryString = queryIndex >= 0 ? rest.slice(queryIndex + 1) : '';
166
89
  const query = {};
167
90
  if (queryString.length > 0) {
168
91
  for (const pair of queryString.split('&')) {
169
- const eqIdx = pair.indexOf('=');
170
- if (eqIdx < 0) {
171
- const k = _safeDecode(pair);
172
- if (k.length > 0)
173
- query[k] = '';
92
+ const equalsIndex = pair.indexOf('=');
93
+ if (equalsIndex < 0) {
94
+ const key = safeDecodeProtocolComponent(pair);
95
+ if (key.length > 0)
96
+ query[key] = '';
174
97
  }
175
98
  else {
176
- const k = _safeDecode(pair.slice(0, eqIdx));
177
- if (k.length > 0)
178
- query[k] = _safeDecode(pair.slice(eqIdx + 1));
99
+ const key = safeDecodeProtocolComponent(pair.slice(0, equalsIndex));
100
+ if (key.length > 0)
101
+ query[key] = safeDecodeProtocolComponent(pair.slice(equalsIndex + 1));
179
102
  }
180
103
  }
181
104
  }
182
- return { scheme, host, path, query };
105
+ return { host, path, query, scheme };
183
106
  }
184
- // Registers a custom URI scheme (for example 'myapp') to this app. Returns false when the scheme is
185
- // invalid (RFC 3986 grammar, no reserved schemes) or when the host denies or does not support
186
- // registration.
187
- export function registerProtocolScheme(scheme) {
188
- if (!isValidProtocolScheme(scheme))
189
- return false;
190
- return getProtocolBackend().register(scheme);
107
+ export function registerProtocolScheme(host, scheme) {
108
+ return isValidProtocolScheme(scheme) && host.protocol.registration.register(scheme);
191
109
  }
192
- // Registers multiple custom URI schemes in one call. Returns false if any scheme is invalid or if any
193
- // registration fails.
194
- export function registerProtocolSchemes(schemes) {
195
- const backend = getProtocolBackend();
196
- let allOk = true;
110
+ export function registerProtocolSchemes(host, schemes) {
111
+ if (!schemes.every(isValidProtocolScheme))
112
+ return false;
113
+ const backend = host.protocol.registration;
114
+ let allSucceeded = true;
197
115
  for (const scheme of schemes) {
198
- if (!isValidProtocolScheme(scheme) || !backend.register(scheme))
199
- allOk = false;
116
+ if (!backend.register(scheme))
117
+ allSucceeded = false;
200
118
  }
201
- return allOk;
202
- }
203
- // Removes this app as the OS default handler for `scheme`. Returns false when the host denies or does
204
- // not support it.
205
- export function removeProtocolSchemeAsDefault(scheme) {
206
- return getProtocolBackend().removeAsDefault(scheme);
119
+ return allSucceeded;
207
120
  }
208
- export function resetProtocolBackendForTest() {
209
- _custom = null;
210
- _host = null;
211
- _hostConflict = false;
212
- _hostObservation = null;
121
+ export function removeProtocolSchemeAsDefault(host, scheme) {
122
+ return isValidProtocolScheme(scheme) && host.protocol.default.removeAsDefault(scheme);
213
123
  }
214
- // Installs a custom protocol backend; pass null to clear the custom override.
215
- export function setProtocolBackend(backend) {
216
- _custom = backend;
124
+ export function setProtocolSchemeAsDefault(host, scheme) {
125
+ return isValidProtocolScheme(scheme) && host.protocol.default.setAsDefault(scheme);
217
126
  }
218
- // Makes this app the default handler for `scheme`. Returns false when the host denies or does not
219
- // support it.
220
- export function setProtocolSchemeAsDefault(scheme) {
221
- return getProtocolBackend().setAsDefault(scheme);
127
+ export function unregisterProtocolScheme(host, scheme) {
128
+ return isValidProtocolScheme(scheme) && host.protocol.unregistration.unregister(scheme);
222
129
  }
223
- // Unregisters a previously registered custom URI scheme. Returns false when the host denies or does
224
- // not support unregistration.
225
- export function unregisterProtocolScheme(scheme) {
226
- return getProtocolBackend().unregister(scheme);
227
- }
228
- // Unregisters multiple custom URI schemes in one call. Returns false if any unregistration fails.
229
- export function unregisterProtocolSchemes(schemes) {
230
- const backend = getProtocolBackend();
231
- let allOk = true;
130
+ export function unregisterProtocolSchemes(host, schemes) {
131
+ if (!schemes.every(isValidProtocolScheme))
132
+ return false;
133
+ const backend = host.protocol.unregistration;
134
+ let allSucceeded = true;
232
135
  for (const scheme of schemes) {
233
136
  if (!backend.unregister(scheme))
234
- allOk = false;
137
+ allSucceeded = false;
235
138
  }
236
- return allOk;
139
+ return allSucceeded;
237
140
  }
238
- const _sentinel = {
239
- drainPendingUrls() {
240
- return [];
241
- },
242
- getLaunchUrl() {
243
- return null;
244
- },
245
- getRegisteredSchemes() {
246
- return [];
247
- },
248
- isDefault() {
249
- return false;
250
- },
251
- isRegistered() {
252
- return false;
253
- },
254
- register() {
255
- return false;
256
- },
257
- removeAsDefault() {
258
- return false;
259
- },
260
- setAsDefault() {
261
- return false;
262
- },
263
- subscribe() {
264
- return () => { };
265
- },
266
- unregister() {
267
- return false;
268
- },
269
- };
270
- // RFC 3986 scheme grammar: letter followed by zero or more letter/digit/+/-/. (lowercased).
271
141
  const _schemePattern = /^[a-z][a-z0-9+\-.]*$/;
272
- // Schemes that should never be claimed as custom URI handlers to avoid OS conflicts.
273
142
  const _reservedSchemes = new Set(['file', 'ftp', 'ftps', 'http', 'https', 'mailto']);
274
- let _custom = null;
275
- let _host = null;
276
- let _hostConflict = false;
277
- let _hostObservation = null;
278
143
  const _subscriptions = new WeakMap();
279
- function _safeDecode(s) {
144
+ function safeDecodeProtocolComponent(value) {
280
145
  try {
281
- return decodeURIComponent(s.replace(/\+/g, ' '));
146
+ return decodeURIComponent(value.replace(/\+/g, ' '));
282
147
  }
283
148
  catch {
284
- return s;
149
+ return value;
285
150
  }
286
151
  }
287
152
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/protocol",
3
- "version": "0.5.0-next.1944.cd6b6e7",
3
+ "version": "0.5.1-edge.1047.858b9b6",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,8 +38,9 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/signals": "0.5.0-next.1944.cd6b6e7",
42
- "@flighthq/types": "0.5.0-next.1944.cd6b6e7"
41
+ "@flighthq/entity": "0.5.1-edge.1047.858b9b6",
42
+ "@flighthq/signals": "0.5.1-edge.1047.858b9b6",
43
+ "@flighthq/types": "0.5.1-edge.1047.858b9b6"
43
44
  },
44
45
  "devDependencies": {
45
46
  "typescript": "^5.3.0"