@flighthq/geolocation 0.5.1-next.1069.554a2ac → 0.5.1-next.1201.9b49dee

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/geolocation`. The `@
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/geolocation@0.5.1-next.1069.554a2ac](https://github.com/flighthq/flight/tree/554a2acc3fecf189b89b0729308ff890a15c21cc/packages/geolocation)
17
- - [License](https://github.com/flighthq/flight/blob/554a2acc3fecf189b89b0729308ff890a15c21cc/LICENSE.md)
16
+ - [Source for @flighthq/geolocation@0.5.1-next.1201.9b49dee](https://github.com/flighthq/flight/tree/9b49dee3f22f6b2838c3d237edcc77bca65734f2/packages/geolocation)
17
+ - [License](https://github.com/flighthq/flight/blob/9b49dee3f22f6b2838c3d237edcc77bca65734f2/LICENSE.md)
@@ -1,11 +1,11 @@
1
- import type { GeolocationBackend, GeolocationErrorReason, GeolocationPosition as FlightGeolocationPosition, GeolocationPositionResult, GeolocationRequestOptions, HasSystemGeolocation, EntityConstruction } from '@flighthq/types/contract';
2
- export declare function clearGeolocationWatch(host: Readonly<HasSystemGeolocation>, id: number): void;
1
+ import type { HostGeolocationProvider, GeolocationErrorReason, GeolocationPosition as FlightGeolocationPosition, GeolocationPositionResult, GeolocationRequestOptions, EntityConstruction } from '@flighthq/types/contract';
2
+ export declare function clearGeolocationWatch(hostGeolocation: Readonly<HostGeolocationProvider>, id: number): void;
3
3
  export declare function createGeolocationPosition(): FlightGeolocationPosition;
4
- export declare function createWebGeolocationBackend(): GeolocationBackend;
5
- export declare function getCurrentGeolocationPosition(host: Readonly<HasSystemGeolocation>, options?: Readonly<GeolocationRequestOptions>): Promise<FlightGeolocationPosition | null>;
6
- export declare function getCurrentGeolocationPositionResult(host: Readonly<HasSystemGeolocation>, options?: Readonly<GeolocationRequestOptions>): Promise<GeolocationPositionResult>;
4
+ export declare function createWebGeolocationBackend(): HostGeolocationProvider;
5
+ export declare function getCurrentGeolocationPosition(hostGeolocation: Readonly<HostGeolocationProvider>, options?: Readonly<GeolocationRequestOptions>): Promise<FlightGeolocationPosition | null>;
6
+ export declare function getCurrentGeolocationPositionResult(hostGeolocation: Readonly<HostGeolocationProvider>, options?: Readonly<GeolocationRequestOptions>): Promise<GeolocationPositionResult>;
7
7
  export declare function initializeGeolocationPosition(out: EntityConstruction<FlightGeolocationPosition>): void;
8
- export declare function initializeWebGeolocationBackend(out: EntityConstruction<GeolocationBackend>): void;
9
- export declare function isGeolocationAvailable(host: Readonly<HasSystemGeolocation>): boolean;
10
- export declare function watchGeolocationPosition(host: Readonly<HasSystemGeolocation>, handler: (position: Readonly<FlightGeolocationPosition>) => void, options?: Readonly<GeolocationRequestOptions>, onError?: (reason: GeolocationErrorReason) => void): number;
8
+ export declare function initializeWebGeolocationBackend(out: EntityConstruction<HostGeolocationProvider>): void;
9
+ export declare function isGeolocationAvailable(hostGeolocation: Readonly<HostGeolocationProvider>): boolean;
10
+ export declare function watchGeolocationPosition(hostGeolocation: Readonly<HostGeolocationProvider>, handler: (position: Readonly<FlightGeolocationPosition>) => void, options?: Readonly<GeolocationRequestOptions>, onError?: (reason: GeolocationErrorReason) => void): number;
11
11
  //# sourceMappingURL=geolocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.d.ts","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,IAAI,yBAAyB,EAChD,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAE5F;AAED,wBAAgB,yBAAyB,IAAI,yBAAyB,CAIrE;AAED,wBAAgB,2BAA2B,IAAI,kBAAkB,CAIhE;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EACpC,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAE3C;AAED,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EACpC,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAAC,yBAAyB,CAAC,CAEpC;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAUtG;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAgFjG;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAEpF;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EACpC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAChE,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,GACjD,MAAM,CAER"}
1
+ {"version":3,"file":"geolocation.d.ts","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,IAAI,yBAAyB,EAChD,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAE1G;AAED,wBAAgB,yBAAyB,IAAI,yBAAyB,CAIrE;AAED,wBAAgB,2BAA2B,IAAI,uBAAuB,CAIrE;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAClD,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAE3C;AAED,wBAAgB,mCAAmC,CACjD,eAAe,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAClD,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAAC,yBAAyB,CAAC,CAEpC;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAUtG;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAgFtG;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAElG;AAED,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAClD,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAChE,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,GACjD,MAAM,CAER"}
@@ -1,6 +1,6 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
- export function clearGeolocationWatch(host, id) {
3
- host.system.geolocation.clearWatch(id);
2
+ export function clearGeolocationWatch(hostGeolocation, id) {
3
+ hostGeolocation.clearWatch(id);
4
4
  }
5
5
  export function createGeolocationPosition() {
6
6
  const out = allocateEntity();
@@ -12,11 +12,11 @@ export function createWebGeolocationBackend() {
12
12
  initializeWebGeolocationBackend(out);
13
13
  return finishEntity(out);
14
14
  }
15
- export function getCurrentGeolocationPosition(host, options) {
16
- return host.system.geolocation.getCurrentPosition(options ?? _emptyOptions);
15
+ export function getCurrentGeolocationPosition(hostGeolocation, options) {
16
+ return hostGeolocation.getCurrentPosition(options ?? _emptyOptions);
17
17
  }
18
- export function getCurrentGeolocationPositionResult(host, options) {
19
- return host.system.geolocation.getCurrentPositionResult(options ?? _emptyOptions);
18
+ export function getCurrentGeolocationPositionResult(hostGeolocation, options) {
19
+ return hostGeolocation.getCurrentPositionResult(options ?? _emptyOptions);
20
20
  }
21
21
  export function initializeGeolocationPosition(out) {
22
22
  out.accuracy = 0;
@@ -103,11 +103,11 @@ export function initializeWebGeolocationBackend(out) {
103
103
  }
104
104
  };
105
105
  }
106
- export function isGeolocationAvailable(host) {
107
- return host.system.geolocation.isAvailable();
106
+ export function isGeolocationAvailable(hostGeolocation) {
107
+ return hostGeolocation.isAvailable();
108
108
  }
109
- export function watchGeolocationPosition(host, handler, options, onError) {
110
- return host.system.geolocation.watchPosition(handler, options ?? _emptyOptions, onError);
109
+ export function watchGeolocationPosition(hostGeolocation, handler, options, onError) {
110
+ return hostGeolocation.watchPosition(handler, options ?? _emptyOptions, onError);
111
111
  }
112
112
  const _emptyOptions = {};
113
113
  function getWebGeolocation() {
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAYzE,MAAM,UAAU,qBAAqB,CAAC,IAAoC,EAAE,EAAU;IACpF,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,cAAc,EAA6B,CAAC;IACxD,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,MAAM,GAAG,GAAG,cAAc,EAAsB,CAAC;IACjD,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAoC,EACpC,OAA6C;IAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,IAAoC,EACpC,OAA6C;IAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,GAAkD;IAC9F,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC;IACzB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAClB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IACd,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,GAA2C;IACzF,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO;QACjE,IAAI,CAAC;YACH,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,+EAA+E;QACjF,CAAC;IACH,CAAC,CAAC;IACF,GAAG,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;YAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,GAAG,CAAC,kBAAkB,CACpB,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAC/C,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EACnB,iBAAiB,CAAC,OAAO,CAAC,CAC3B,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,GAAG,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,EAAE;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;YAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;gBACjE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,GAAG,CAAC,kBAAkB,CACpB,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAC3E,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,EAC1E,iBAAiB,CAAC,OAAO,CAAC,CAC3B,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE;QACrB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACpF,OAAO,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACtC,CAAC,CAAC;IACF,GAAG,CAAC,eAAe,GAAG,GAAG,EAAE;QACzB,OAAO,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,EAAE;YACvD,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;YAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;gBACjE,OAAO,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,GAAG,CAAC,kBAAkB,CACpB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EACpC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CACzD,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,GAAG,CAAC,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,aAAa,CACtB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAChD,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,EACjF,iBAAiB,CAAC,OAAO,CAAC,CAC3B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAoC;IACzE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAoC,EACpC,OAAgE,EAChE,OAA6C,EAC7C,OAAkD;IAElD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,aAAa,GAA8B,EAAE,CAAC;AAEpD,SAAS,iBAAiB;IACxB,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,QAA6C;IACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,GAAG,GAAG,cAAc,EAA6B,CAAC;IACxD,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACpD,GAAG,CAAC,UAAU,GAAI,MAAkC,CAAC,UAAU,IAAI,CAAC,CAAC;IACrE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACjC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACnC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA+B;IACxD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC;YACJ,OAAO,QAAQ,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,kBAAkB,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA+B;IAC1D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC;YACJ,OAAO,QAAQ,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA4C;IACrE,OAAO;QACL,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,KAAK;QACvD,UAAU,EAAE,OAAO,CAAC,YAAY;QAChC,OAAO,EAAE,OAAO,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { GeolocationAccessOutcome, Host } from '@flighthq/types/contract';
1
+ import type { GeolocationAccessOutcome, HostGeolocationProvider } from '@flighthq/types/contract';
2
2
  /**
3
3
  * Raises the platform's own location-access prompt through the host's geolocation provider.
4
4
  *
@@ -10,5 +10,5 @@ import type { GeolocationAccessOutcome, Host } from '@flighthq/types/contract';
10
10
  * Reports `runtime-unavailable` rather than throwing when no provider is installed: an absent host
11
11
  * capability is an expected outcome, not API misuse.
12
12
  */
13
- export declare function promptForGeolocationAccess(host: Readonly<Host>): Promise<GeolocationAccessOutcome>;
13
+ export declare function promptForGeolocationAccess(hostGeolocation: Readonly<HostGeolocationProvider> | undefined): Promise<GeolocationAccessOutcome>;
14
14
  //# sourceMappingURL=geolocationAccess.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geolocationAccess.d.ts","sourceRoot":"","sources":["../src/geolocationAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAUxG"}
1
+ {"version":3,"file":"geolocationAccess.d.ts","sourceRoot":"","sources":["../src/geolocationAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAElG;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,eAAe,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,SAAS,GAC7D,OAAO,CAAC,wBAAwB,CAAC,CASnC"}
@@ -9,13 +9,12 @@
9
9
  * Reports `runtime-unavailable` rather than throwing when no provider is installed: an absent host
10
10
  * capability is an expected outcome, not API misuse.
11
11
  */
12
- export async function promptForGeolocationAccess(host) {
13
- const backend = host.system?.geolocation;
14
- if (backend === undefined || typeof backend.promptForAccess !== 'function') {
12
+ export async function promptForGeolocationAccess(hostGeolocation) {
13
+ if (hostGeolocation === undefined || typeof hostGeolocation.promptForAccess !== 'function') {
15
14
  return { reason: 'runtime-unavailable' };
16
15
  }
17
16
  try {
18
- return await backend.promptForAccess();
17
+ return await hostGeolocation.promptForAccess();
19
18
  }
20
19
  catch {
21
20
  return { reason: 'operation-failed' };
@@ -1 +1 @@
1
- {"version":3,"file":"geolocationAccess.js","sourceRoot":"","sources":["../src/geolocationAccess.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAoB;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC3E,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"geolocationAccess.js","sourceRoot":"","sources":["../src/geolocationAccess.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,eAA8D;IAE9D,IAAI,eAAe,KAAK,SAAS,IAAI,OAAO,eAAe,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC3F,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/geolocation",
3
- "version": "0.5.1-next.1069.554a2ac",
3
+ "version": "0.5.1-next.1201.9b49dee",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,8 +38,8 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.5.1-next.1069.554a2ac",
42
- "@flighthq/types": "0.5.1-next.1069.554a2ac"
41
+ "@flighthq/entity": "0.5.1-next.1201.9b49dee",
42
+ "@flighthq/types": "0.5.1-next.1201.9b49dee"
43
43
  },
44
44
  "devDependencies": {
45
45
  "typescript": "^5.3.0"
@@ -1,10 +1,9 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import type {
3
3
  Entity,
4
- GeolocationBackend,
4
+ HostGeolocationProvider,
5
5
  GeolocationErrorReason,
6
6
  GeolocationPosition,
7
- HasSystemGeolocation,
8
7
  } from '@flighthq/types/contract';
9
8
  import { EntityRuntimeKey } from '@flighthq/types/contract';
10
9
 
@@ -20,7 +19,7 @@ import {
20
19
  watchGeolocationPosition,
21
20
  } from './geolocation';
22
21
 
23
- function fakeBackend(available: boolean = true): GeolocationBackend & { cleared: number[]; lastWatch: number } {
22
+ function fakeBackend(available: boolean = true): HostGeolocationProvider & { cleared: number[]; lastWatch: number } {
24
23
  const out = allocateEntity<any>();
25
24
  out.cleared = [];
26
25
  out.lastWatch = 0;
@@ -57,14 +56,16 @@ function fakeBackend(available: boolean = true): GeolocationBackend & { cleared:
57
56
  return finishEntity(out);
58
57
  }
59
58
 
60
- function hostWith(backend: GeolocationBackend): HasSystemGeolocation {
61
- return { system: { geolocation: backend } } as HasSystemGeolocation;
59
+ function hostWith(backend: HostGeolocationProvider): {
60
+ readonly system: { readonly geolocation: HostGeolocationProvider };
61
+ } {
62
+ return { system: { geolocation: backend } } as { readonly system: { readonly geolocation: HostGeolocationProvider } };
62
63
  }
63
64
 
64
65
  describe('clearGeolocationWatch', () => {
65
66
  it('forwards the id to the host backend', () => {
66
67
  const backend = fakeBackend();
67
- clearGeolocationWatch(hostWith(backend), 7);
68
+ clearGeolocationWatch(hostWith(backend).system.geolocation, 7);
68
69
  expect(backend.cleared).toEqual([7]);
69
70
  });
70
71
  });
@@ -159,7 +160,9 @@ describe('createWebGeolocationBackend', () => {
159
160
 
160
161
  describe('getCurrentGeolocationPosition', () => {
161
162
  it('returns the backend position', async () => {
162
- const position = (await getCurrentGeolocationPosition(hostWith(fakeBackend()))) as GeolocationPosition;
163
+ const position = (await getCurrentGeolocationPosition(
164
+ hostWith(fakeBackend()).system.geolocation,
165
+ )) as GeolocationPosition;
163
166
  expect(position.latitude).toBe(1);
164
167
  expect(position.longitude).toBe(2);
165
168
  });
@@ -167,7 +170,7 @@ describe('getCurrentGeolocationPosition', () => {
167
170
 
168
171
  describe('getCurrentGeolocationPositionResult', () => {
169
172
  it('returns position and null reason on success', async () => {
170
- const result = await getCurrentGeolocationPositionResult(hostWith(fakeBackend()));
173
+ const result = await getCurrentGeolocationPositionResult(hostWith(fakeBackend()).system.geolocation);
171
174
  expect(result.position).not.toBeNull();
172
175
  expect(result.position!.latitude).toBe(1);
173
176
  expect(result.reason).toBeNull();
@@ -187,15 +190,15 @@ describe('initializeWebGeolocationBackend', () => {
187
190
  });
188
191
  describe('isGeolocationAvailable', () => {
189
192
  it('routes the host backend availability', () => {
190
- expect(isGeolocationAvailable(hostWith(fakeBackend(true)))).toBe(true);
191
- expect(isGeolocationAvailable(hostWith(fakeBackend(false)))).toBe(false);
193
+ expect(isGeolocationAvailable(hostWith(fakeBackend(true)).system.geolocation)).toBe(true);
194
+ expect(isGeolocationAvailable(hostWith(fakeBackend(false)).system.geolocation)).toBe(false);
192
195
  });
193
196
  });
194
197
 
195
198
  describe('watchGeolocationPosition', () => {
196
199
  it('delivers positions and returns a watch id', () => {
197
200
  let seen = 0;
198
- const id = watchGeolocationPosition(hostWith(fakeBackend()), (position) => {
201
+ const id = watchGeolocationPosition(hostWith(fakeBackend()).system.geolocation, (position) => {
199
202
  seen = position.latitude;
200
203
  });
201
204
  expect(id).toBe(1);
@@ -205,7 +208,7 @@ describe('watchGeolocationPosition', () => {
205
208
  it('delivers error reasons when onError is provided', () => {
206
209
  const errors: GeolocationErrorReason[] = [];
207
210
  watchGeolocationPosition(
208
- hostWith(fakeBackend()),
211
+ hostWith(fakeBackend()).system.geolocation,
209
212
  () => {},
210
213
  {},
211
214
  (reason) => errors.push(reason),
@@ -1,23 +1,17 @@
1
- import type { GeolocationAccessOutcome, GeolocationBackend } from '@flighthq/types/contract';
1
+ import type { GeolocationAccessOutcome, HostGeolocationProvider } from '@flighthq/types/contract';
2
2
 
3
3
  import { promptForGeolocationAccess } from './geolocationAccess';
4
4
 
5
- // A backend whose promptForAccess answer the test dictates. Only that member is exercised, so the
6
- // rest of GeolocationBackend stays absent on purpose — a probe needing a whole backend would be
5
+ // A provider whose promptForAccess answer the test dictates. Only that member is exercised, so the
6
+ // rest of HostGeolocationProvider stays absent on purpose — a probe needing the whole provider would be
7
7
  // testing the fake.
8
- function backendAnswering(outcome: GeolocationAccessOutcome): GeolocationBackend {
9
- return { promptForAccess: () => Promise.resolve(outcome) } as unknown as GeolocationBackend;
10
- }
11
-
12
- function hostWith(backend: GeolocationBackend | undefined): Parameters<typeof promptForGeolocationAccess>[0] {
13
- return { system: backend === undefined ? {} : { geolocation: backend } } as unknown as Parameters<
14
- typeof promptForGeolocationAccess
15
- >[0];
8
+ function providerAnswering(outcome: GeolocationAccessOutcome): HostGeolocationProvider {
9
+ return { promptForAccess: () => Promise.resolve(outcome) } as unknown as HostGeolocationProvider;
16
10
  }
17
11
 
18
12
  describe('promptForGeolocationAccess', () => {
19
13
  it('reports granted when the host grants access', async () => {
20
- expect(await promptForGeolocationAccess(hostWith(backendAnswering({ reason: 'granted' })))).toEqual({
14
+ expect(await promptForGeolocationAccess(providerAnswering({ reason: 'granted' }))).toEqual({
21
15
  reason: 'granted',
22
16
  });
23
17
  });
@@ -27,7 +21,7 @@ describe('promptForGeolocationAccess', () => {
27
21
  it('keeps denied, dismissed and timeout as three distinct outcomes', async () => {
28
22
  const reasons = await Promise.all(
29
23
  (['denied', 'dismissed', 'timeout'] as const).map(
30
- async (reason) => (await promptForGeolocationAccess(hostWith(backendAnswering({ reason })))).reason,
24
+ async (reason) => (await promptForGeolocationAccess(providerAnswering({ reason }))).reason,
31
25
  ),
32
26
  );
33
27
  expect(reasons).toEqual(['denied', 'dismissed', 'timeout']);
@@ -35,21 +29,21 @@ describe('promptForGeolocationAccess', () => {
35
29
  });
36
30
 
37
31
  it('reports runtime-unavailable when no provider is installed', async () => {
38
- expect(await promptForGeolocationAccess(hostWith(undefined))).toEqual({ reason: 'runtime-unavailable' });
32
+ expect(await promptForGeolocationAccess(undefined)).toEqual({ reason: 'runtime-unavailable' });
39
33
  });
40
34
 
41
35
  it('reports operation-failed when the provider throws', async () => {
42
36
  const throwing = {
43
37
  promptForAccess: () => Promise.reject(new Error('boom')),
44
- } as unknown as GeolocationBackend;
45
- expect(await promptForGeolocationAccess(hostWith(throwing))).toEqual({ reason: 'operation-failed' });
38
+ } as unknown as HostGeolocationProvider;
39
+ expect(await promptForGeolocationAccess(throwing)).toEqual({ reason: 'operation-failed' });
46
40
  });
47
41
 
48
42
  // A capability outcome, never permission vocabulary: G6 lets geolocation keep the mechanism only
49
43
  // because what it returns is not a PermissionState. `state` must never appear on this type.
50
44
  it('carries no permission state field on any arm', async () => {
51
45
  for (const reason of ['granted', 'denied', 'dismissed', 'timeout', 'cleanup-failed'] as const) {
52
- const outcome = await promptForGeolocationAccess(hostWith(backendAnswering({ reason })));
46
+ const outcome = await promptForGeolocationAccess(providerAnswering({ reason }));
53
47
  expect(Object.hasOwn(outcome, 'state')).toBe(false);
54
48
  }
55
49
  });