zod-geojson 0.0.1

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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/lib/base.d.ts +9 -0
  4. package/lib/base.d.ts.map +1 -0
  5. package/lib/base.js +8 -0
  6. package/lib/bbox.d.ts +4 -0
  7. package/lib/bbox.d.ts.map +1 -0
  8. package/lib/bbox.js +9 -0
  9. package/lib/feature.d.ts +634 -0
  10. package/lib/feature.d.ts.map +1 -0
  11. package/lib/feature.js +37 -0
  12. package/lib/feature_collection.d.ts +3174 -0
  13. package/lib/feature_collection.d.ts.map +1 -0
  14. package/lib/feature_collection.js +61 -0
  15. package/lib/geometry/_simple.d.ts +122 -0
  16. package/lib/geometry/_simple.d.ts.map +1 -0
  17. package/lib/geometry/_simple.js +14 -0
  18. package/lib/geometry/geometry_collection.d.ts +18 -0
  19. package/lib/geometry/geometry_collection.d.ts.map +1 -0
  20. package/lib/geometry/geometry_collection.js +60 -0
  21. package/lib/geometry/index.d.ts +131 -0
  22. package/lib/geometry/index.d.ts.map +1 -0
  23. package/lib/geometry/index.js +27 -0
  24. package/lib/geometry/line_string.d.ts +25 -0
  25. package/lib/geometry/line_string.d.ts.map +1 -0
  26. package/lib/geometry/line_string.js +33 -0
  27. package/lib/geometry/multi_line_string.d.ts +24 -0
  28. package/lib/geometry/multi_line_string.d.ts.map +1 -0
  29. package/lib/geometry/multi_line_string.js +32 -0
  30. package/lib/geometry/multi_point.d.ts +24 -0
  31. package/lib/geometry/multi_point.d.ts.map +1 -0
  32. package/lib/geometry/multi_point.js +32 -0
  33. package/lib/geometry/multi_polygon.d.ts +24 -0
  34. package/lib/geometry/multi_polygon.d.ts.map +1 -0
  35. package/lib/geometry/multi_polygon.js +44 -0
  36. package/lib/geometry/point.d.ts +24 -0
  37. package/lib/geometry/point.d.ts.map +1 -0
  38. package/lib/geometry/point.js +25 -0
  39. package/lib/geometry/polygon.d.ts +28 -0
  40. package/lib/geometry/polygon.d.ts.map +1 -0
  41. package/lib/geometry/polygon.js +51 -0
  42. package/lib/geometry/validation/bbox.d.ts +50 -0
  43. package/lib/geometry/validation/bbox.d.ts.map +1 -0
  44. package/lib/geometry/validation/bbox.js +184 -0
  45. package/lib/geometry/validation/dimension.d.ts +16 -0
  46. package/lib/geometry/validation/dimension.d.ts.map +1 -0
  47. package/lib/geometry/validation/dimension.js +54 -0
  48. package/lib/geometry/validation/keys.d.ts +6 -0
  49. package/lib/geometry/validation/keys.d.ts.map +1 -0
  50. package/lib/geometry/validation/keys.js +14 -0
  51. package/lib/index.d.ts +3930 -0
  52. package/lib/index.d.ts.map +1 -0
  53. package/lib/index.js +29 -0
  54. package/lib/position.d.ts +5 -0
  55. package/lib/position.d.ts.map +1 -0
  56. package/lib/position.js +8 -0
  57. package/lib/type.d.ts +6 -0
  58. package/lib/type.d.ts.map +1 -0
  59. package/lib/type.js +15 -0
  60. package/package.json +41 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../src/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAe3B,CAAC;AAEP,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
package/lib/feature.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeoJSONFeatureSchema = void 0;
4
+ var zod_1 = require("zod");
5
+ var base_1 = require("./base");
6
+ var geometry_1 = require("./geometry");
7
+ var bbox_1 = require("./geometry/validation/bbox");
8
+ var INVALID_FEATURE_KEYS_ISSUE = {
9
+ code: "custom",
10
+ message: 'GeoJSON feature cannot have "coordinates", "features", or "geometries" keys',
11
+ };
12
+ function validFeatureKeys(feature) {
13
+ return !("coordinates" in feature) && !("features" in feature) && !("geometries" in feature);
14
+ }
15
+ function validFeatureBbox(_a) {
16
+ var bbox = _a.bbox, geometry = _a.geometry;
17
+ if (!bbox || !geometry) {
18
+ return true;
19
+ }
20
+ var expectedBbox = (0, bbox_1.getBboxForGeometry)(geometry);
21
+ return (0, bbox_1.bboxEquals)(expectedBbox, bbox);
22
+ }
23
+ exports.GeoJSONFeatureSchema = base_1.GeoJSONBaseSchema.extend({
24
+ id: zod_1.z.string().or(zod_1.z.number()).optional(),
25
+ type: zod_1.z.literal("Feature"),
26
+ geometry: geometry_1.GeoJSONGeometrySchema.nullable(),
27
+ properties: zod_1.z.object({}).passthrough().nullable(),
28
+ })
29
+ .passthrough()
30
+ .superRefine(function (val, ctx) {
31
+ if (!validFeatureKeys(val)) {
32
+ ctx.addIssue(INVALID_FEATURE_KEYS_ISSUE);
33
+ }
34
+ if (!validFeatureBbox(val)) {
35
+ ctx.addIssue(bbox_1.INVALID_BBOX_ISSUE);
36
+ }
37
+ });