Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
850c91d
Write descriptor.$schema on save
roll May 26, 2025
5a39e42
Rebased Descriptor from any to unknown properties
roll May 26, 2025
eb36f54
Fixed linting
roll May 26, 2025
1217fe9
Improved package documentation
roll May 26, 2025
50b6a30
Added dp/datist links
roll May 26, 2025
afe82e1
Updated dpkit logo
roll May 26, 2025
6bfbffc
Added funding
roll May 26, 2025
2e5631a
Recovered homepage and about
roll May 26, 2025
2db4a1f
Updated project descriptions
roll May 26, 2025
b8d220e
Updated hero
roll May 26, 2025
2133b04
Updaed readme
roll May 26, 2025
d3d52d4
Updated features list
roll May 26, 2025
6c4b199
Implemented user package merging
roll May 27, 2025
da3212d
Fixed dialect/schema processing
roll May 27, 2025
f0db6a9
Implemnted external schema/dialect validation
roll May 27, 2025
a3c1bd1
Added support for custom properties
roll May 28, 2025
ebdfba1
Add generic to validate/assert/load
roll May 28, 2025
8021079
Improved platform integrations
roll May 28, 2025
7f9c790
Added camtrap package
roll May 28, 2025
0ce41fe
Added camtrap package
roll May 28, 2025
283bf10
Added zenodo plugin
roll May 28, 2025
c0372f9
Added github plugin
roll May 28, 2025
213663c
Improved github/zenodo internal naming
roll May 28, 2025
6e8651f
Fixed resource.schema
roll May 28, 2025
29b65a2
Commit merge Resource/TableResoruce for simplicity
roll May 28, 2025
48b905c
Improved test naming
roll May 28, 2025
7d8c648
Forbid unsafe paths
roll May 28, 2025
46e8cbd
Fixed stale.yaml name
roll May 28, 2025
c17a941
Minor package.json improvements
roll May 28, 2025
0c1af2a
Fixed publishing
roll May 28, 2025
2f1efad
Added changesets
roll May 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .changeset/twenty-kids-own.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
"@dpkit/camtrap": minor
"@dpkit/parquet": minor
"@dpkit/extend": minor
"@dpkit/github": minor
"@dpkit/zenodo": minor
"dpkit": minor
"@dpkit/excel": minor
"@dpkit/table": minor
"@dpkit/avro": minor
"@dpkit/ckan": minor
"@dpkit/core": minor
"@dpkit/file": minor
"@dpkit/json": minor
"@dpkit/cli": minor
"@dpkit/csv": minor
"@dpkit/ods": minor
"@dpkit/zip": minor
"@dpkit/db": minor
"@dpkit/ui": minor
---

General framework improvements
File renamed without changes.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: Contributing
sidebar:
order: 2
---
# Contributing to dpkit

Thank you for your interest in contributing to dpkit! This document provides guidelines and instructions for contributing to this project.

## Project Overview
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Data Package in TypeScript
# dpkit

[![Build](https://img.shields.io/github/actions/workflow/status/datisthq/dpkit/general.yaml?branch=main)](https://github.com/datisthq/dpkit/actions)
[![Coverage](https://img.shields.io/codecov/c/github/datisthq/dpkit/main)](https://codecov.io/gh/datisthq/dpkit)

Data Package implementation in TypeScript. Data Package is a standard consisting of a set of simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that facilitates findability, accessibility, interoperability, and reusability (FAIR) of data. For more information, please visit the [documentation portal](https://dpkit.datist.io).
dpkit is a fast TypeScript data management framework based on the Data Package standard. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io).

## Funding

Expand Down
2 changes: 1 addition & 1 deletion avro/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# @dpkit/avro

Data Package implementation in TypeScript. Data Package is a standard consisting of a set of simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that facilitates findability, accessibility, interoperability, and reusability (FAIR) of data. For more information, please visit the [documentation portal](https://dpkit.datist.io).
dpkit is a fast TypeScript data management framework based on the Data Package standard. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io).
2 changes: 1 addition & 1 deletion avro/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"license": "MIT",
"author": "Evgeny Karev",
"repository": "https://github.com/datisthq/dpkit",
"description": "Data Package implementation in TypeScript.",
"description": "Fast TypeScript data management framework based on the Data Package standard",
"keywords": [
"data",
"package",
Expand Down
2 changes: 1 addition & 1 deletion bin/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# @dpkit/bin

Data Package implementation in TypeScript. Data Package is a standard consisting of a set of simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that facilitates findability, accessibility, interoperability, and reusability (FAIR) of data. For more information, please visit the [documentation portal](https://dpkit.datist.io).
dpkit is a fast TypeScript data management framework based on the Data Package standard. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io).
2 changes: 2 additions & 0 deletions camtrap/OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# @dpkit/camtrap

3 changes: 3 additions & 0 deletions camtrap/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# @dpkit/camtrap

dpkit is a fast TypeScript data management framework based on the Data Package standard. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io).
1 change: 1 addition & 0 deletions camtrap/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./package/index.js"
25 changes: 25 additions & 0 deletions camtrap/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "@dpkit/camtrap",
"type": "module",
"main": "build/index.js",
"version": "0.1.0",
"license": "MIT",
"author": "Evgeny Karev",
"repository": "https://github.com/datisthq/dpkit",
"description": "Fast TypeScript data management framework based on the Data Package standard",
"keywords": [
"data",
"package",
"typescript",
"validation",
"quality",
"fair",
"camtrap"
],
"scripts": {
"build": "tsc --build"
},
"dependencies": {
"@dpkit/core": "workspace:*"
}
}
270 changes: 270 additions & 0 deletions camtrap/package/Package.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
import type { Package } from "@dpkit/core"
import type { Contributor, License } from "@dpkit/core"

/**
* Camera Trap Data Package interface based on the TDWG specification
* @see https://camtrap-dp.tdwg.org/metadata/
*/
export interface CamtrapPackage extends Package {
/**
* Package profile identifier
* @required
*/
profile: string

/**
* Creation date of the package
* @required
* @format ISO 8601
*/
created: string

/**
* Contributors to the package
* @required
*/
contributors: CamtrapContributor[]

/**
* Project metadata
* @required
*/
project: {
/**
* Project identifier
*/
id?: string

/**
* Project title
* @required
*/
title: string

/**
* Project acronym
*/
acronym?: string

/**
* Project description
*/
description?: string

/**
* Project URL or path
*/
path?: string

/**
* Sampling design methodology
* @required
*/
samplingDesign:
| "simpleRandom"
| "systematicRandom"
| "clusteredRandom"
| "experimental"
| "targeted"
| "opportunistic"

/**
* Capture method used
* @required
*/
captureMethod: Array<"activityDetection" | "timeLapse">

/**
* Whether individual animals were identified
* @required
*/
individualAnimals: boolean

/**
* Level at which observations are recorded
* @required
*/
observationLevel: Array<"media" | "event">
}

/**
* Spatial coverage of the data
* @required
*/
spatial: GeoJSON

/**
* Temporal coverage of the data
* @required
*/
temporal: {
/**
* Start date of temporal coverage
* @required
* @format ISO 8601
*/
start: string

/**
* End date of temporal coverage
* @required
* @format ISO 8601
*/
end: string
}

/**
* Taxonomic coverage of the data
* @required
*/
taxonomic: TaxonomicCoverage[]

/**
* Precision of geographic coordinates
*/
coordinatePrecision?: number

/**
* Bibliographic citation for the dataset
*/
bibliographicCitation?: string

/**
* Related identifiers for the dataset
*/
relatedIdentifiers?: RelatedIdentifier[]

/**
* Licenses for the package
* Extended with scope property
*/
licenses?: CamtrapLicense[]
}

/**
* GeoJSON specification for spatial data
*/
export interface GeoJSON {
type: string
coordinates?: number[] | number[][] | number[][][] | number[][][][]
geometries?: any[]
bbox?: number[]
properties?: Record<string, any>
}

/**
* Taxonomic Coverage specification
*/
export interface TaxonomicCoverage {
/**
* Scientific name of the taxon
*/
scientificName: string

/**
* Taxonomic identifier
*/
taxonID?: string

/**
* Taxonomic rank
*/
taxonRank?:
| "kingdom"
| "phylum"
| "class"
| "order"
| "family"
| "genus"
| "species"
| "subspecies"

/**
* Kingdom classification
*/
kingdom?: string

/**
* Phylum classification
*/
phylum?: string

/**
* Class classification
*/
class?: string

/**
* Order classification
*/
order?: string

/**
* Family classification
*/
family?: string

/**
* Genus classification
*/
genus?: string

/**
* Vernacular (common) names by language code
*/
vernacularNames?: Record<string, string>
}

/**
* Related identifier specification
*/
export interface RelatedIdentifier {
/**
* Identifier value
*/
identifier: string

/**
* Relationship type
*/
relation:
| "isPartOf"
| "hasPart"
| "isVersionOf"
| "isSourceOf"
| "isDerivedFrom"
| "isDocumentedBy"
| "documents"
| "isReferencedBy"
| "references"

/**
* Identifier scheme
*/
scheme?: "DOI" | "ARK" | "URL" | "HANDLE" | "PURL"
}

/**
* Extended Contributor interface specific to Camera Trap Data Package
*/
export interface CamtrapContributor extends Contributor {
/**
* Role of the contributor in the project
*/
role?:
| "contact"
| "principalInvestigator"
| "rightsHolder"
| "publisher"
| "contributor"
}

/**
* Extended License interface specific to Camera Trap Data Package
*/
export interface CamtrapLicense extends License {
/**
* Scope of the license
*/
scope: "data" | "media"
}
1 change: 1 addition & 0 deletions camtrap/package/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type { CamtrapPackage } from "./Package.ts"
File renamed without changes.
5 changes: 5 additions & 0 deletions camtrap/typedoc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"entryPoints": ["index.ts"],
"projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"],
"skipErrorChecking": true
}
2 changes: 2 additions & 0 deletions ckan/OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# @dpkit/ckan

2 changes: 1 addition & 1 deletion ckan/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# @dpkit/ckan

Data Package implementation in TypeScript. Data Package is a standard consisting of a set of simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that facilitates findability, accessibility, interoperability, and reusability (FAIR) of data. For more information, please visit the [documentation portal](https://dpkit.datist.io).
dpkit is a fast TypeScript data management framework based on the Data Package standard. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io).
Loading