@dra2020/baseclient 1.0.125 → 1.0.126

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.
@@ -1,4 +1,4 @@
1
- export type DataTable = {
1
+ export declare type DataTable = {
2
2
  [key: string]: {
3
3
  interpolate: boolean;
4
4
  colors: any[];
@@ -1,4 +1,4 @@
1
- export type ContextValues = {
1
+ export declare type ContextValues = {
2
2
  [key: string]: any;
3
3
  };
4
4
  export interface IContext {
package/dist/fsm/fsm.d.ts CHANGED
@@ -14,7 +14,7 @@ export declare const FSM_CUSTOM6: number;
14
14
  export declare const FSM_CUSTOM7: number;
15
15
  export declare const FSM_CUSTOM8: number;
16
16
  export declare const FSM_CUSTOM9: number;
17
- export type FsmIndex = Set<Fsm>;
17
+ export declare type FsmIndex = Set<Fsm>;
18
18
  export declare class FsmManager {
19
19
  theId: number;
20
20
  theEpoch: number;
@@ -68,7 +68,7 @@ export declare class FsmSleep extends Fsm {
68
68
  constructor(env: FsmEnvironment, delay: number);
69
69
  tick(): void;
70
70
  }
71
- export type SerializerIndex = {
71
+ export declare type SerializerIndex = {
72
72
  [key: string]: Fsm;
73
73
  };
74
74
  export declare class FsmSerializer extends Fsm {
@@ -77,7 +77,7 @@ export declare class FsmSerializer extends Fsm {
77
77
  serialize(id: string, fsm?: Fsm): Fsm;
78
78
  tick(): void;
79
79
  }
80
- type FsmArrayMap = {
80
+ declare type FsmArrayMap = {
81
81
  [key: string]: Fsm[];
82
82
  };
83
83
  export declare class FsmTracker {
package/dist/geo/geo.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import * as geojson from 'geojson';
2
2
  import * as Poly from '../poly/all';
3
- export type GeoProperties = geojson.GeoJsonProperties;
4
- export type GeoFeature = geojson.Feature;
5
- export type GeoFeatureArray = GeoFeature[];
6
- export type GeoFeatureCollection = geojson.FeatureCollection;
7
- export type GeoCentroidMap = {
3
+ export declare type GeoProperties = geojson.GeoJsonProperties;
4
+ export declare type GeoFeature = geojson.Feature;
5
+ export declare type GeoFeatureArray = GeoFeature[];
6
+ export declare type GeoFeatureCollection = geojson.FeatureCollection;
7
+ export declare type GeoCentroidMap = {
8
8
  [geoid: string]: {
9
9
  x: number;
10
10
  y: number;
11
11
  };
12
12
  };
13
- export type HideMap = {
13
+ export declare type HideMap = {
14
14
  [id: string]: boolean;
15
15
  };
16
16
  export declare function dumpMetrics(): void;
@@ -33,14 +33,14 @@ export declare function geoTopoToCollectionNonNull(topo: Poly.Topo): GeoFeatureC
33
33
  export interface GeoFeatureMap {
34
34
  [id: string]: GeoFeature;
35
35
  }
36
- export type FeatureFunc = (f: GeoFeature) => void;
36
+ export declare type FeatureFunc = (f: GeoFeature) => void;
37
37
  interface GeoEntry {
38
38
  tag: string;
39
39
  col?: GeoFeatureCollection;
40
40
  map?: GeoFeatureMap;
41
41
  topo?: Poly.Topo;
42
42
  }
43
- type GeoEntryMap = {
43
+ declare type GeoEntryMap = {
44
44
  [tag: string]: GeoEntry;
45
45
  };
46
46
  export declare function geoEqual(m1: GeoMultiCollection, m2: GeoMultiCollection): boolean;
@@ -1,7 +1,7 @@
1
- export type BlockMapping = {
1
+ export declare type BlockMapping = {
2
2
  [blockid: string]: string;
3
3
  };
4
- export type ReverseBlockMapping = {
4
+ export declare type ReverseBlockMapping = {
5
5
  [geoid: string]: string[];
6
6
  };
7
7
  interface Entry {
@@ -5,8 +5,8 @@ export declare const OpRetain: number;
5
5
  export declare const OpCursor: number;
6
6
  export declare const OpSet: number;
7
7
  export declare const OpTmpRetain: number;
8
- export type OTSingleArrayEdit = [number, number, any];
9
- export type OTEdits = OTSingleArrayEdit[];
8
+ export declare type OTSingleArrayEdit = [number, number, any];
9
+ export declare type OTEdits = OTSingleArrayEdit[];
10
10
  declare enum OTalignEdgesType {
11
11
  AlignForCompose = 0,
12
12
  AlignForTransform = 1
@@ -1,7 +1,7 @@
1
1
  import * as OT from "./ottypes";
2
2
  export declare const OpCounterAdd = 1;
3
3
  export declare const OpCounterDel = 2;
4
- export type CounterEdit = [number, string, any];
4
+ export declare type CounterEdit = [number, string, any];
5
5
  export declare class OTCounterResource extends OT.OTResourceBase {
6
6
  constructor(rid: string);
7
7
  static factory(rid: string): OTCounterResource;
@@ -1,7 +1,7 @@
1
1
  import * as OT from './ottypes';
2
2
  export declare const OpMapSet = 1;
3
3
  export declare const OpMapDel = 2;
4
- export type MapEdit = [number, string, any];
4
+ export declare type MapEdit = [number, string, any];
5
5
  export declare class OTMapResource extends OT.OTResourceBase {
6
6
  constructor(rid: string);
7
7
  static factory(rid: string): OTMapResource;
@@ -23,7 +23,7 @@ export declare const FilterOfficial: number;
23
23
  export declare const FilterCOI: number;
24
24
  export declare const FilterMyGroups: number;
25
25
  export declare const FilterCount: number;
26
- export type Filter = number;
26
+ export declare type Filter = number;
27
27
  export declare const PermNone: number;
28
28
  export declare const PermRead: number;
29
29
  export declare const PermWrite: number;
@@ -32,10 +32,10 @@ export declare const PermAdmin: number;
32
32
  export declare const PermVersion: number;
33
33
  export declare const PermEdit: number;
34
34
  export declare const PermAll: number;
35
- export type Permission = number;
35
+ export declare type Permission = number;
36
36
  export declare const ServerStateRunning: number;
37
37
  export declare const ServerStateMaintenance: number;
38
- export type ServerState = number;
38
+ export declare type ServerState = number;
39
39
  export interface AccessSessionMap {
40
40
  [key: string]: string;
41
41
  }
@@ -52,7 +52,7 @@ export interface Revision {
52
52
  label?: string;
53
53
  editcache?: string;
54
54
  }
55
- export type RevisionList = Revision[];
55
+ export declare type RevisionList = Revision[];
56
56
  export interface SessionUser {
57
57
  id: string;
58
58
  name: string;
@@ -101,7 +101,7 @@ export interface SessionProps {
101
101
  xid?: string;
102
102
  colors?: string;
103
103
  }
104
- export type LabelUpdate = {
104
+ export declare type LabelUpdate = {
105
105
  [name: string]: boolean | null;
106
106
  };
107
107
  export interface SessionUpdateProps {
@@ -1,8 +1,8 @@
1
- export type Matrix = number[][];
2
- export type Vector = number[];
3
- export type Range = number[];
4
- export type Index = number[][];
5
- export type applyCB = (v: Vector) => number;
1
+ export declare type Matrix = number[][];
2
+ export declare type Vector = number[];
3
+ export declare type Range = number[];
4
+ export declare type Index = number[][];
5
+ export declare type applyCB = (v: Vector) => number;
6
6
  export declare const enum Dim {
7
7
  Rows = 0,
8
8
  Columns = 1
@@ -4,8 +4,8 @@ export interface PolyPack {
4
4
  buffer: any;
5
5
  }
6
6
  export declare function polyPackSize(coords: any): number;
7
- type EachRingCB = (buffer: Float64Array, iPoly: number, iRing: number, iOffset: number, nPoints: number) => void;
8
- type EachPointCB = (buffer: Float64Array, iPoly: number, iRing: number, iOffset: number) => void;
7
+ declare type EachRingCB = (buffer: Float64Array, iPoly: number, iRing: number, iOffset: number, nPoints: number) => void;
8
+ declare type EachPointCB = (buffer: Float64Array, iPoly: number, iRing: number, iOffset: number) => void;
9
9
  export declare function polyPackEachRing(pack: PolyPack, cb: EachRingCB): void;
10
10
  export declare function polyPackEachPoint(pack: PolyPack, cb: EachPointCB): void;
11
11
  export declare function polyPackCountPoints(pack: PolyPack): number;
@@ -22,7 +22,7 @@ export declare function polyUnpack(prepack: any): any;
22
22
  export declare function featurePackSize(f: any): number;
23
23
  export declare function featurePack(f: any, prepack?: PolyPack): any;
24
24
  export declare function featureUnpack(f: any): any;
25
- export type SavePack = WeakMap<any, any>;
25
+ export declare type SavePack = WeakMap<any, any>;
26
26
  export declare function featureUnpackTemporarily(f: any, save?: SavePack): SavePack;
27
27
  export declare function featureRepack(f: any, save: SavePack): any;
28
28
  export declare function featurePackString(f: any): string;
@@ -1,2 +1,2 @@
1
- export type Point = [number, number];
1
+ export declare type Point = [number, number];
2
2
  export declare function simplify(points: Point[], tolerance?: number, highestQuality?: boolean): Point[];
@@ -2,11 +2,11 @@ import * as FSM from '../fsm/all';
2
2
  import * as G from '../geo/all';
3
3
  import * as P from './poly';
4
4
  import * as Q from './quad';
5
- export type Topo = any;
5
+ export declare type Topo = any;
6
6
  export declare function topoFromCollection(col: any): Topo;
7
7
  export declare function topoContiguity(topo: Topo): any;
8
8
  export declare function topoToFeature(topo: Topo, geoid: string): any;
9
- export type TopoSpliceEntry = {
9
+ export declare type TopoSpliceEntry = {
10
10
  topology: Topo;
11
11
  filterout?: any;
12
12
  };
@@ -15,10 +15,10 @@ interface Fragment {
15
15
  s: string;
16
16
  u8?: Uint8Array;
17
17
  }
18
- type FragmentTable = {
18
+ declare type FragmentTable = {
19
19
  [frag: string]: Fragment;
20
20
  };
21
- type FragmentPair = {
21
+ declare type FragmentPair = {
22
22
  f1: Fragment;
23
23
  f2: Fragment;
24
24
  offset?: number;
@@ -51,7 +51,7 @@ declare class ValueTableBuilder {
51
51
  toOffset(s: string): number;
52
52
  toBinary(): void;
53
53
  }
54
- export type StringMap = {
54
+ export declare type StringMap = {
55
55
  [key: string]: string;
56
56
  };
57
57
  interface UnpackedNode {
@@ -8,7 +8,7 @@ export interface Stop {
8
8
  stop: number;
9
9
  rgb?: RGB;
10
10
  }
11
- export type GradientStops = Stop[];
11
+ export declare type GradientStops = Stop[];
12
12
  export declare function execGradient(stops: GradientStops, value: number): string;
13
13
  export declare function parseGradient(sStops: string): GradientStops;
14
14
  export declare function asCSSGradient(stops: GradientStops): string;
@@ -1,4 +1,4 @@
1
- export type DateString = string;
1
+ export declare type DateString = string;
2
2
  export declare function Now(): DateString;
3
3
  export declare class Elapsed {
4
4
  tStart: any;
@@ -1,5 +1,5 @@
1
1
  import { polyIntersects } from './union';
2
- import { polyArea } from './poly';
2
+ import { polyArea, polyDescribe } from './poly';
3
3
 
4
4
  function flattenMultiPoly(polys: any): any
5
5
  {
@@ -24,6 +24,14 @@ export function featureCleanHoles(f: any): any
24
24
  || !Array.isArray(f.geometry.coordinates))
25
25
  return f;
26
26
 
27
+ // Bail out if excessive computation cost (and complex poly likely already correct, heuristically)
28
+ let d = polyDescribe(f);
29
+ if (d.npoly + d.nhole > 10)
30
+ {
31
+ //console.log(`featureCleanHoles: bailing out on polygon with ${d.npoly} polygons and ${d.nhole} holes`);
32
+ return f;
33
+ }
34
+
27
35
  // Normalize to flattened polygon
28
36
  f.geometry.coordinates = flattenMultiPoly(f.geometry.coordinates);
29
37
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dra2020/baseclient",
3
- "version": "1.0.125",
3
+ "version": "1.0.126",
4
4
  "description": "Utility functions for Javascript projects.",
5
5
  "main": "dist/baseclient.js",
6
6
  "types": "./dist/all/all.d.ts",
@@ -30,14 +30,14 @@
30
30
  "devDependencies": {
31
31
  "@types/diff-match-patch": "^1.0.32",
32
32
  "@types/geojson": "^7946.0.8",
33
- "@types/node": "20.11.30",
34
- "@types/object-hash": "^3.0.6",
35
- "source-map-loader": "^5.0.0",
36
- "ts-loader": "^9.5.1",
33
+ "@types/node": "12.7.2",
34
+ "@types/object-hash": "^2.2.1",
35
+ "source-map-loader": "^3.0.0",
36
+ "ts-loader": "^9.2.6",
37
37
  "tsify": "^5.0.4",
38
- "typescript": "^5.4.3",
39
- "webpack": "^5.91.0",
40
- "webpack-cli": "^5.1.4"
38
+ "typescript": "^4.5.2",
39
+ "webpack": "^5.65.0",
40
+ "webpack-cli": "^4.9.1"
41
41
  },
42
42
  "dependencies": {
43
43
  "@dra2020/topojson-client": "^3.2.12",
@@ -45,7 +45,7 @@
45
45
  "@dra2020/topojson-simplify": "^3.0.102",
46
46
  "diff-match-patch": "^1.0.5",
47
47
  "geojson": "^0.5.0",
48
- "object-hash": "^3.0.0",
48
+ "object-hash": "^2.2.0",
49
49
  "polygon-clipping": "^0.15.3",
50
50
  "tinyqueue": "^2.0.3"
51
51
  }