From 7d36ae282062cbbf717e7b747195f516f2ff5b00 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 06:52:00 +0100 Subject: [PATCH 01/10] Simplify docs structure (#81) * Updated the docs sctructure * Updated homepage * Added internal link validator * Updated links * Updated anchor builder * Fixed linting --- astro.config.js | 9 +- content/docs/guides/using-data-package.md | 2 +- content/docs/index.mdx | 34 +- .../docs/{standard => overview}/adoption.mdx | 0 content/docs/overview/changelog.md | 126 ++ .../docs/{standard => overview}/governance.md | 0 .../{standard => overview}/introduction.md | 2 +- .../docs/{standard => overview}/software.mdx | 0 content/docs/recipes/data-catalog.md | 4 +- content/docs/recipes/external-foreign-keys.md | 6 +- .../assets/security-matrix.png | Bin content/docs/standard/changelog.md | 126 -- content/docs/standard/contributing.md | 10 - .../data-package.md | 14 +- .../data-resource.md | 18 +- .../extensions.md | 6 +- content/docs/standard/extensions.mdx | 29 - .../{specifications => standard}/glossary.md | 2 +- content/docs/standard/guides.mdx | 23 - content/docs/standard/recipes.mdx | 98 -- .../{specifications => standard}/security.md | 0 content/docs/standard/specifications.mdx | 65 - .../table-dialect.md | 8 +- .../table-schema.md | 8 +- package-lock.json | 1307 ++--------------- package.json | 4 +- 26 files changed, 266 insertions(+), 1635 deletions(-) rename content/docs/{standard => overview}/adoption.mdx (100%) create mode 100644 content/docs/overview/changelog.md rename content/docs/{standard => overview}/governance.md (100%) rename content/docs/{standard => overview}/introduction.md (99%) rename content/docs/{standard => overview}/software.mdx (100%) rename content/docs/{specifications => standard}/assets/security-matrix.png (100%) delete mode 100644 content/docs/standard/changelog.md delete mode 100644 content/docs/standard/contributing.md rename content/docs/{specifications => standard}/data-package.md (92%) rename content/docs/{specifications => standard}/data-resource.md (88%) rename content/docs/{specifications => standard}/extensions.md (90%) delete mode 100644 content/docs/standard/extensions.mdx rename content/docs/{specifications => standard}/glossary.md (99%) delete mode 100644 content/docs/standard/guides.mdx delete mode 100644 content/docs/standard/recipes.mdx rename content/docs/{specifications => standard}/security.md (100%) delete mode 100644 content/docs/standard/specifications.mdx rename content/docs/{specifications => standard}/table-dialect.md (95%) rename content/docs/{specifications => standard}/table-schema.md (98%) diff --git a/astro.config.js b/astro.config.js index e791e94e..65de33b5 100644 --- a/astro.config.js +++ b/astro.config.js @@ -4,6 +4,8 @@ import { defineConfig } from "astro/config" import rehypeAutolinkHeadings from "rehype-autolink-headings" import { remarkHeadingId } from "remark-custom-heading-id" +// import starlightLinksValidator from "starlight-links-validator" + // https://astro.build/config export default defineConfig({ site: "https://datapackage.org", @@ -28,12 +30,11 @@ export default defineConfig({ lastUpdated: true, customCss: ["/assets/styles.css"], tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 5 }, + // The link validator is useful for debugging but it cleates a lot of false positives + // plugins: [starlightLinksValidator()], sidebar: [ + { label: "Overview", autogenerate: { directory: "overview" } }, { label: "Standard", autogenerate: { directory: "standard" } }, - { - label: "Specifications", - autogenerate: { directory: "specifications" }, - }, { label: "Extensions", collapsed: true, diff --git a/content/docs/guides/using-data-package.md b/content/docs/guides/using-data-package.md index e286a58c..a95a5799 100644 --- a/content/docs/guides/using-data-package.md +++ b/content/docs/guides/using-data-package.md @@ -7,7 +7,7 @@ sidebar: There are many alternatives when it comes to Data Package Standard implementations. We will cover a few the most popular options which will be a good starting point. :::tip -Please take a look at the full list of Data Package [Software](../../standard/software/) to find other implementations. +Please take a look at the full list of Data Package [Software](/overview/software/) to find other implementations. ::: ## Open Data Editor diff --git a/content/docs/index.mdx b/content/docs/index.mdx index 7c894f92..363fad55 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -16,11 +16,11 @@ hero: alt: Data Packages Illustration actions: - text: Get Started - link: /standard/introduction/ + link: /overview/introduction/ icon: right-arrow variant: primary - text: Use Cases - link: /standard/adoption/ + link: /overview/adoption/ icon: rocket variant: secondary - text: View on GitHub @@ -41,30 +41,22 @@ import { CardGrid, LinkCard, Card } from "@astrojs/starlight/components"

Standard

-The Data Package standard is a comprehensive set of **specifications** that collectively define a framework for organizing, documenting, and sharing data in a structured and interoperable manner -- [EXPLORE THE STANDARD](/standard/specifications) +The Data Package standard is a comprehensive set of **specifications** that collectively define a framework for organizing, documenting, and sharing data in a structured and interoperable manner -- [EXPLORE THE STANDARD](/standard/data-package) - + A simple container format to describe a coherent collection of data (a dataset), including its contributors, licenses, etc. - + A simple format to describe a data resource such as a individual table or file, including its name, format, path, etc. - + A simple format to describe the dialect of a tabular data file, including its delimiter, header rows, escape characters, etc. - + A simple format to describe tabular data, including field names, types, constraints, missing values, foreign keys, etc. @@ -74,7 +66,7 @@ The Data Package standard is a comprehensive set of **specifications** that coll

Software

-Data Package is backed by a suite of software tools supporting the standard. From the no-code visual tool **Open Data Editor** to low-level drivers for 10 programming languages -- [EXPLORE THE SOFTWARE](/standard/software) +Data Package is backed by a suite of software tools supporting the standard. From the no-code visual tool **Open Data Editor** to low-level drivers for 10 programming languages -- [EXPLORE THE SOFTWARE](/overview/software) [![Open Data Editor](../../assets/software/ode.png)](https://opendataeditor.okfn.org) @@ -82,7 +74,7 @@ Data Package is backed by a suite of software tools supporting the standard. Fro

Adoption

-Data Package is used for a wide range of scenarios where this standardized data packaging format proves invaluable for efficient data management, sharing, and analysis -- [EXPLORE THE ADOPTION](/standard/adoption) +Data Package is used for a wide range of scenarios where this standardized data packaging format proves invaluable for efficient data management, sharing, and analysis -- [EXPLORE THE ADOPTION](/overview/adoption) @@ -93,10 +85,10 @@ Data Package is used for a wide range of scenarios where this standardized data Read the Data Package documentation to learn more about the standard: - - - - + + + + diff --git a/content/docs/standard/adoption.mdx b/content/docs/overview/adoption.mdx similarity index 100% rename from content/docs/standard/adoption.mdx rename to content/docs/overview/adoption.mdx diff --git a/content/docs/overview/changelog.md b/content/docs/overview/changelog.md new file mode 100644 index 00000000..1a706e9a --- /dev/null +++ b/content/docs/overview/changelog.md @@ -0,0 +1,126 @@ +--- +title: Changelog +sidebar: + order: 10 +--- + +This document includes all meaningful changes made to the Data Package Standard **specifications**. It does not cover changes made to other documents like Recipes or Guides. + +## v2.0-draft + +> April 1, 2024 + +### Overview + +The Data Package (v2) draft release includes a rich set of the specification improvements accepted by the Data Package Working Group during the active phase of the Data Package (v2) work. + +### Data Package + +##### `version` (updated) + +[`version`](/standard/data-package/#version) is now included in the specification, while in Data Package v1 it was erroneously only part of the documentation ([#3](https://github.com/frictionlessdata/datapackage/pull/3)). + +##### `contributors` (updated) + +[`contributors`](/standard/data-package/#contributors) was updated: + +- `contributor.title` is no longer required ([#7](https://github.com/frictionlessdata/datapackage/pull/7)). +- `contributor.givenName` and `contributor.familyName` are new properties to specify the given and family name of contributor, if it is a person ([#20](https://github.com/frictionlessdata/datapackage/pull/20)). +- `contributor.role` has been deprecated in favour of `contributor.roles`, see further ([#18](https://github.com/frictionlessdata/datapackage/pull/18)). +- `contributor.roles` is a new property that allows to specify multiple roles per contributor, rather than having to duplicate the contributor. It recommendeds to follow an established vocabulary and has suggested values that are different from the deprecated `contributor.role` ([#18](https://github.com/frictionlessdata/datapackage/pull/18)). + +##### `sources` (updated) + +[`sources`](/standard/data-package/#sources) was updated: + +- `source.title` is no longer required ([#7](https://github.com/frictionlessdata/datapackage/pull/7)). +- `source.version` is a new property to specify which version of a source was used ([#10](https://github.com/frictionlessdata/datapackage/pull/10)). + +### Data Resource + +##### `name` (updated) + +[name](/standard/data-resource/#name-required) now allows any string. It previously required the name to only consist of lowercase alphanumeric characters plus `.`, `-` and `_`. The property is still required and must be unique among resources ([#27](https://github.com/frictionlessdata/datapackage/pull/27)). + +##### `path` (updated) + +[path](/standard/data-resource/#path-or-data-required) now explicitely forbids hidden folders (starting with dot `.`) ([#19](https://github.com/frictionlessdata/datapackage/pull/19)). + +##### `encoding` (updated) + +[encoding](/standard/data-resource/#encoding)'s definition has been updated to support binary formats like Parquet ([#15](https://github.com/frictionlessdata/datapackage/pull/15)). + +### Table Dialect + +[Table Dialect](/standard/table-dialect) is a new specification that superseeds and extends the CSV Dialect specification. It support other formats like JSON or Excel ([#41](https://github.com/frictionlessdata/datapackage/pull/41)). + +### Table Schema + +#### Schema + +##### `fieldsMatch` (new) + +[fieldsMatch](/standard/table-schema/#fieldsmatch) allows to specify how fields in a Table Schema match the fields in the data source. The default (`exact`) matches the Data Package v1 behaviour, but other values (e.g. `subset`, `superset`) allow to define fewer or more fields and match on field names. This new property extends and makes explicit the `schema_sync` option in Frictionless Framework ([#39](https://github.com/frictionlessdata/datapackage/pull/39)). + +##### `primaryKey` (updated) + +[`primaryKey`](/standard/table-schema/#primarykey) should now always be an array of strings, not a string ([#28](https://github.com/frictionlessdata/datapackage/pull/28)). + +##### `uniqueKeys` (new) + +[`uniqueKeys`](/standard/table-schema/#uniquekeys) allows to specify which fields are required to have unique logical values. It is an alternative to `field.contraints.unique` and is modelled after the corresponding SQL feature ([#30](https://github.com/frictionlessdata/datapackage/pull/30)). + +##### `foreignKeys` (updated) + +[`foreignKeys`](/standard/table-schema/#foreignkeys) was updated: + +- It should now always be an array of strings, not a string ([#28](https://github.com/frictionlessdata/datapackage/pull/28)). +- `foreignKeys.reference.resource` can now be omitted for self-referencing foreign keys. Previously it required setting `resource` to an empty string ([#29](https://github.com/frictionlessdata/datapackage/pull/29)). + +#### Fields + +##### `missingValues` (new) + +[`missingValues`](/standard/table-schema/#missingvalues) allows to specify missing values per field, and overwrites `missingValues` specified at a resource level ([#24](https://github.com/frictionlessdata/datapackage/pull/24)). + +#### Field Types + +##### `integer` (updated) + +[`integer`](/standard/table-schema/#integer) now has a `groupChar` property. It was already available for `number` ([#6](https://github.com/frictionlessdata/datapackage/pull/6)). + +##### `list` (new) + +[`list`](/standard/table-schema/#list) allows to specify fields containing collections of primary values separated by a delimiter (e.g. `value1,value2`) ([#38](https://github.com/frictionlessdata/datapackage/pull/38)). + +##### `datetime` (updated) + +[`datetime`](/standard/table-schema/#datetime)'s default `format` is now extended to allow optional milliseconds and timezone parts ([#23](https://github.com/frictionlessdata/datapackage/pull/23)). + +##### `geopoint` (updated) + +[`geopoint`](/standard/table-schema/#geopoint)'s definition now clarifies that floating point numbers can be used for coordinate definitions ([#14](https://github.com/frictionlessdata/datapackage/pull/14)). + +##### `any` (updated) + +[`any`](/standard/table-schema/#any) is now the default field type and clarifies that the field type should not be inferred if not provided ([#13](https://github.com/frictionlessdata/datapackage/pull/13)). + +#### Field Constraints + +##### `minimum` and `maximum` (updated) + +[`minimum`](/standard/table-schema/#minimum) and [`maximum`](/standard/table-schema/#maximum) are now extended to support the `duration` field type ([#8](https://github.com/frictionlessdata/datapackage/pull/8)). + +##### `exclusiveMinimum` and `exclusiveMaximum` (new) + +[`exclusiveMinimum`](/specifications/table-schema/#exclusiveminimum) and [`exclusiveMaximum`](/specifications/table-schema/#exclusivemaximum) can be used to specify exclusive minimum and maximum values ([#11](https://github.com/frictionlessdata/datapackage/pull/11)). + +##### `jsonschema` (new) + +[`jsonSchema`](/specifications/table-schema/#jsonschema) can be used for the `object` and `array` field types ([#32](https://github.com/frictionlessdata/datapackage/pull/32)). + +## v1.0 + +> September 5, 2017 + +Please refer to the [Data Package (v1) website](https://specs.frictionlessdata.io/). diff --git a/content/docs/standard/governance.md b/content/docs/overview/governance.md similarity index 100% rename from content/docs/standard/governance.md rename to content/docs/overview/governance.md diff --git a/content/docs/standard/introduction.md b/content/docs/overview/introduction.md similarity index 99% rename from content/docs/standard/introduction.md rename to content/docs/overview/introduction.md index 56a55078..a68da543 100644 --- a/content/docs/standard/introduction.md +++ b/content/docs/overview/introduction.md @@ -1,7 +1,7 @@ --- title: Introduction sidebar: - order: 1 + order: 0 --- In our increasingly data-driven world, the ability to manage, share, and analyze data effectively has become paramount. Organizations across various domains, from research institutions and governmental agencies to businesses and non-profit organizations, are generating and utilizing vast amounts of data to inform decisions, solve complex problems, and drive innovation. However, this data abundance brings with it a unique set of challenges, particularly when it comes to ensuring data quality, interoperability, and accessibility. diff --git a/content/docs/standard/software.mdx b/content/docs/overview/software.mdx similarity index 100% rename from content/docs/standard/software.mdx rename to content/docs/overview/software.mdx diff --git a/content/docs/recipes/data-catalog.md b/content/docs/recipes/data-catalog.md index 95e3d4a7..5f82b11a 100644 --- a/content/docs/recipes/data-catalog.md +++ b/content/docs/recipes/data-catalog.md @@ -122,8 +122,8 @@ Data packages can also be declared inline in the data catalog: } ``` -[dr]: /data-resource/ -[dp]: /data-package/ +[dr]: /standard/data-resource/ +[dp]: /standard/data-package/ ## Implementations diff --git a/content/docs/recipes/external-foreign-keys.md b/content/docs/recipes/external-foreign-keys.md index 8de2f6ec..d6df9494 100644 --- a/content/docs/recipes/external-foreign-keys.md +++ b/content/docs/recipes/external-foreign-keys.md @@ -15,12 +15,12 @@ This pattern allows users to link values in a field (or fields) in a Tabular Dat ## Specification -The [`foreignKeys`](../../specifications/table-schema/#foreignkeys) array MAY have a property `package`. This property MUST be, either: +The [`foreignKeys`](/standard/table-schema/#foreignkeys) array MAY have a property `package`. This property MUST be, either: - a string that is a fully qualified HTTP address to a Data Package `datapackage.json` file -- a data package [`name`](../../specifications/data-package/#name) that can be resolved by a canonical data package registry +- a data package [`name`](/standard/data-package/#name) that can be resolved by a canonical data package registry -If the referenced data package has an [`id`](../../specifications/data-package/#id) that is a fully qualified HTTP address, it SHOULD be used as the `package` value. +If the referenced data package has an [`id`](/standard/data-package/#id) that is a fully qualified HTTP address, it SHOULD be used as the `package` value. For example: diff --git a/content/docs/specifications/assets/security-matrix.png b/content/docs/standard/assets/security-matrix.png similarity index 100% rename from content/docs/specifications/assets/security-matrix.png rename to content/docs/standard/assets/security-matrix.png diff --git a/content/docs/standard/changelog.md b/content/docs/standard/changelog.md deleted file mode 100644 index cc976e26..00000000 --- a/content/docs/standard/changelog.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Changelog -sidebar: - order: 10 ---- - -This document includes all meaningful changes made to the Data Package Standard **specifications**. It does not cover changes made to other documents like Recipes or Guides. - -## v2.0-draft - -> April 1, 2024 - -### Overview - -The Data Package (v2) draft release includes a rich set of the specification improvements accepted by the Data Package Working Group during the active phase of the Data Package (v2) work. - -### Data Package - -##### `version` (updated) - -[`version`](../../specifications/data-package/#version) is now included in the specification, while in Data Package v1 it was erroneously only part of the documentation ([#3](https://github.com/frictionlessdata/datapackage/pull/3)). - -##### `contributors` (updated) - -[`contributors`](../../specifications/data-package/#contributors) was updated: - -- `contributor.title` is no longer required ([#7](https://github.com/frictionlessdata/datapackage/pull/7)). -- `contributor.givenName` and `contributor.familyName` are new properties to specify the given and family name of contributor, if it is a person ([#20](https://github.com/frictionlessdata/datapackage/pull/20)). -- `contributor.role` has been deprecated in favour of `contributor.roles`, see further ([#18](https://github.com/frictionlessdata/datapackage/pull/18)). -- `contributor.roles` is a new property that allows to specify multiple roles per contributor, rather than having to duplicate the contributor. It recommendeds to follow an established vocabulary and has suggested values that are different from the deprecated `contributor.role` ([#18](https://github.com/frictionlessdata/datapackage/pull/18)). - -##### `sources` (updated) - -[`sources`](../../specifications/data-package/#sources) was updated: - -- `source.title` is no longer required ([#7](https://github.com/frictionlessdata/datapackage/pull/7)). -- `source.version` is a new property to specify which version of a source was used ([#10](https://github.com/frictionlessdata/datapackage/pull/10)). - -### Data Resource - -##### `name` (updated) - -[name](../../specifications/data-resource/#name-required) now allows any string. It previously required the name to only consist of lowercase alphanumeric characters plus `.`, `-` and `_`. The property is still required and must be unique among resources ([#27](https://github.com/frictionlessdata/datapackage/pull/27)). - -##### `path` (updated) - -[path](../../specifications/data-resource/#path-or-data-required) now explicitely forbids hidden folders (starting with dot `.`) ([#19](https://github.com/frictionlessdata/datapackage/pull/19)). - -##### `encoding` (updated) - -[encoding](../../specifications/data-resource/#encoding)'s definition has been updated to support binary formats like Parquet ([#15](https://github.com/frictionlessdata/datapackage/pull/15)). - -### Table Dialect - -[Table Dialect](../../specifications/table-dialect) is a new specification that superseeds and extends the CSV Dialect specification. It support other formats like JSON or Excel ([#41](https://github.com/frictionlessdata/datapackage/pull/41)). - -### Table Schema - -#### Schema - -##### `fieldsMatch` (new) - -[fieldsMatch](../../specifications/table-schema/#fieldsmatch) allows to specify how fields in a Table Schema match the fields in the data source. The default (`exact`) matches the Data Package v1 behaviour, but other values (e.g. `subset`, `superset`) allow to define fewer or more fields and match on field names. This new property extends and makes explicit the `schema_sync` option in Frictionless Framework ([#39](https://github.com/frictionlessdata/datapackage/pull/39)). - -##### `primaryKey` (updated) - -[`primaryKey`](../../specifications/table-schema/#primarykey) should now always be an array of strings, not a string ([#28](https://github.com/frictionlessdata/datapackage/pull/28)). - -##### `uniqueKeys` (new) - -[`uniqueKeys`](../../specifications/table-schema/#uniquekeys) allows to specify which fields are required to have unique logical values. It is an alternative to `field.contraints.unique` and is modelled after the corresponding SQL feature ([#30](https://github.com/frictionlessdata/datapackage/pull/30)). - -##### `foreignKeys` (updated) - -[`foreignKeys`](../../specifications/table-schema/#foreignkeys) was updated: - -- It should now always be an array of strings, not a string ([#28](https://github.com/frictionlessdata/datapackage/pull/28)). -- `foreignKeys.reference.resource` can now be omitted for self-referencing foreign keys. Previously it required setting `resource` to an empty string ([#29](https://github.com/frictionlessdata/datapackage/pull/29)). - -#### Fields - -##### `missingValues` (new) - -[`missingValues`](../../specifications/table-schema/#missingvalues) allows to specify missing values per field, and overwrites `missingValues` specified at a resource level ([#24](https://github.com/frictionlessdata/datapackage/pull/24)). - -#### Field Types - -##### `integer` (updated) - -[`integer`](../../specifications/table-schema/#integer) now has a `groupChar` property. It was already available for `number` ([#6](https://github.com/frictionlessdata/datapackage/pull/6)). - -##### `list` (new) - -[`list`](../../specifications/table-schema/#list) allows to specify fields containing collections of primary values separated by a delimiter (e.g. `value1,value2`) ([#38](https://github.com/frictionlessdata/datapackage/pull/38)). - -##### `datetime` (updated) - -[`datetime`](../../specifications/table-schema/#datetime)'s default `format` is now extended to allow optional milliseconds and timezone parts ([#23](https://github.com/frictionlessdata/datapackage/pull/23)). - -##### `geopoint` (updated) - -[`geopoint`](../../specifications/table-schema/#geopoint)'s definition now clarifies that floating point numbers can be used for coordinate definitions ([#14](https://github.com/frictionlessdata/datapackage/pull/14)). - -##### `any` (updated) - -[`any`](../../specifications/table-schema/#any) is now the default field type and clarifies that the field type should not be inferred if not provided ([#13](https://github.com/frictionlessdata/datapackage/pull/13)). - -#### Field Constraints - -##### `minimum` and `maximum` (updated) - -[`minimum`](../../specifications/table-schema/#minimum) and [`maximum`](../../specifications/table-schema/#maximum) are now extended to support the `duration` field type ([#8](https://github.com/frictionlessdata/datapackage/pull/8)). - -##### `exclusiveMinimum` and `exclusiveMaximum` (new) - -[`exclusiveMinimum`](../../specifications/table-schema/#exclusiveminimum) and [`exclusiveMaximum`](../../specifications/table-schema/#exclusivemaximum) can be used to specify exclusive minimum and maximum values ([#11](https://github.com/frictionlessdata/datapackage/pull/11)). - -##### `jsonschema` (new) - -[`jsonSchema`](../../specifications/table-schema/#jsonschema) can be used for the `object` and `array` field types ([#32](https://github.com/frictionlessdata/datapackage/pull/32)). - -## v1.0 - -> September 5, 2017 - -Please refer to the [Data Package (v1) website](https://specs.frictionlessdata.io/). diff --git a/content/docs/standard/contributing.md b/content/docs/standard/contributing.md deleted file mode 100644 index 32014340..00000000 --- a/content/docs/standard/contributing.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Contributing -sidebar: - order: 9 - hidden: true ---- - -:::caution -This section is under development -::: diff --git a/content/docs/specifications/data-package.md b/content/docs/standard/data-package.md similarity index 92% rename from content/docs/specifications/data-package.md rename to content/docs/standard/data-package.md index 1a440af9..a1dc8289 100644 --- a/content/docs/specifications/data-package.md +++ b/content/docs/standard/data-package.md @@ -75,7 +75,7 @@ Several example data packages can be found in the [datasets organization on gith ## Descriptor -Data Package descriptor `MUST` be a descriptor as per [Descriptor](../glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. +Data Package descriptor `MUST` be a descriptor as per [Descriptor](/standard/glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. When a data package is available as a physical or virtual directory containing files, a descriptor `MUST` be named `datapackage.json` and it `MUST` be placed on the top-level of the file structure (relative to any other resources provided as part of the data package). @@ -112,11 +112,11 @@ A Data Package descriptor `MUST` have `resoures` property and `SHOULD` have `nam The `resources` property is `REQUIRED`, with at least one resource. -Packaged data resources are described in the `resources` property of the package descriptor. This property `MUST` be an array of `objects`. Each object `MUST` follow the [Data Resource ](../data-resource/) specification. +Packaged data resources are described in the `resources` property of the package descriptor. This property `MUST` be an array of `objects`. Each object `MUST` follow the [Data Resource ](/standard/data-resource/) specification. ### `$schema` {#dollar-schema} -A root level Data Package descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](../glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. +A root level Data Package descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](/standard/glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. The default value is `https://datapackage.org/profiles/1.0/datapackage.json` and the recommended value is `https://datapackage.org/profiles/2.0/datapackage.json`. @@ -163,7 +163,7 @@ This property is not legally binding and does not guarantee the package is licen `licenses` `MUST` be an array. Each item in the array is a License. Each `MUST` be an `object`. The object `MUST` contain a `name` property and/or a `path` property, and it `MAY` contain a `title` property: - `name`: A string containing an [Open Definition license ID](http://licenses.opendefinition.org/) -- `path`: A [URL or Path](../glossary/#url-or-path), that is a fully qualified HTTP address, or a relative POSIX path. +- `path`: A [URL or Path](/standard/glossary/#url-or-path), that is a fully qualified HTTP address, or a relative POSIX path. - `title`: A string containing human-readable title. An example of using the `licenses` property: @@ -192,11 +192,11 @@ A URL for the home on the web that is related to this data package. An image to use for this data package. For example, when showing the package in a listing. -The value of the image property `MUST` be a string pointing to the location of the image. The string `MUST` be a [URL or Path](../glossary/#url-or-path), that is a fully qualified HTTP address, or a relative POSIX path. +The value of the image property `MUST` be a string pointing to the location of the image. The string `MUST` be a [URL or Path](/standard/glossary/#url-or-path), that is a fully qualified HTTP address, or a relative POSIX path. ### `version` -A version string identifying the version of the package. It `SHOULD` conform to the [Semantic Versioning](http://semver.org) requirements and `SHOULD` follow the [Data Package Version](../../recipes/data-package-version) recipe. +A version string identifying the version of the package. It `SHOULD` conform to the [Semantic Versioning](http://semver.org) requirements and `SHOULD` follow the [Data Package Version](/recipes/data-package-version) recipe. ### `created` @@ -254,7 +254,7 @@ If the `roles` property is not provided a data consumer MUST fall back to using The raw sources for this data package. It `MUST` be an array of Source objects. A Source object `MUST` have at least one property. A Source object is `RECOMMENDED` to have `title` property and `MAY` have `path`, `email`, and `version` properties: - `title`: A string containing a title of the source (e.g. document or organization name). -- `path`: A [URL or Path](../glossary/#url-or-path), that is a fully qualified HTTP address, or a relative POSIX path. +- `path`: A [URL or Path](/standard/glossary/#url-or-path), that is a fully qualified HTTP address, or a relative POSIX path. - `email`: A string containing an email address. - `version`: A string containing a version of the source. diff --git a/content/docs/specifications/data-resource.md b/content/docs/standard/data-resource.md similarity index 88% rename from content/docs/specifications/data-resource.md rename to content/docs/standard/data-resource.md index 27e30d3b..28b85eda 100644 --- a/content/docs/specifications/data-resource.md +++ b/content/docs/standard/data-resource.md @@ -23,7 +23,7 @@ The key words `MUST`, `MUST NOT`, `REQUIRED`, `SHALL`, `SHALL NOT`, `SHOULD`, `S ## Descriptor -Data Resource descriptor `MUST` be a descriptor as per [Descriptor](../glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. +Data Resource descriptor `MUST` be a descriptor as per [Descriptor](/standard/glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. An example of a Data Resource descriptor: @@ -69,7 +69,7 @@ A resource `MUST` contain a property describing the location of the data associa ##### Single File -If a resource have only a single file then `path` `MUST` be a string that a "url-or-path" as defined in the [URL of Path](../glossary/#url-or-path) definition. +If a resource have only a single file then `path` `MUST` be a string that a "url-or-path" as defined in the [URL of Path](/standard/glossary/#url-or-path) definition. ##### Multiple Files @@ -136,7 +136,7 @@ If `path` property is not provided but there is a `url` property as was defined A Data Resource descriptor `MAY` contain a property `type` that `MUST` be a string with the following possible values: -- `table`: indicates that the resource is tabular as per [Tabular Data](../glossary/#tabular-data) definition. Please read more about [Tabular Resource](#tabular) properties. +- `table`: indicates that the resource is tabular as per [Tabular Data](/standard/glossary/#tabular-data) definition. Please read more about [Tabular Resource](#tabular) properties. If property `type` is not provided, the resource is considered to be a non-specific file. An implementation `MAY` provide some additional interfaces, for example, tabular, to non-specific files if `type` can be detected from the data source or format. @@ -146,7 +146,7 @@ If a resource has `profile` property that equals to `tabular-data-resource` or ` #### `$schema` {#dollar-schema} -A root level Data Resource descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](../glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. +A root level Data Resource descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](/standard/glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. The default value is `https://datapackage.org/profiles/1.0/dataresource.json` and the recommended value is `https://datapackage.org/profiles/2.0/dataresource.json`. @@ -190,11 +190,11 @@ The MD5 hash for this resource. Other algorithms can be indicated by prefixing t #### `sources` -List of data sources as for [Data Package](../data-package/#sources). If not specified the resource inherits from the data package. +List of data sources as for [Data Package](/standard/data-package/#sources). If not specified the resource inherits from the data package. #### `licenses` -List of licenses as for [Data Package](../data-package/#licenses). If not specified the resource inherits from the data package. +List of licenses as for [Data Package](/standard/data-package/#licenses). If not specified the resource inherits from the data package. ### Tabular @@ -202,7 +202,7 @@ The properties below are applicable to any Tabular Data Resource. #### `path` or `data` [required] {#tabular-path-or-data} -If the `path` property is used for providing data than it `MUST` contain [Tabular Data](../glossary/#tabular-data). +If the `path` property is used for providing data than it `MUST` contain [Tabular Data](/standard/glossary/#tabular-data). If the `data` property is used for providing data for a Tabular Data Resource than it `MUST` be an `array` where each item in the array `MUST` be either: @@ -230,7 +230,7 @@ Array of objects example: #### `dialect` -A Tabular Data Resource `MAY` have a `dialect` property to describe a tabular dialect of the resource data. If provided, the `dialect` property `MUST` be a [Table Dialect](../table-dialect) descriptor in a form of an object or [URL-or-Path](../glossary/#url-or-path). +A Tabular Data Resource `MAY` have a `dialect` property to describe a tabular dialect of the resource data. If provided, the `dialect` property `MUST` be a [Table Dialect](/standard/table-dialect) descriptor in a form of an object or [URL-or-Path](/standard/glossary/#url-or-path). An example of a resource with a dialect: @@ -247,7 +247,7 @@ An example of a resource with a dialect: #### `schema` -A Tabular Data Resource `SHOULD` have a `schema` property to describe a tabular schema of the resource data. If provided, the `schema` property `MUST` be a [Table Schema](../table-schema) descriptor in a form of an object or [URL-or-Path](../glossary/#url-or-path). +A Tabular Data Resource `SHOULD` have a `schema` property to describe a tabular schema of the resource data. If provided, the `schema` property `MUST` be a [Table Schema](/standard/table-schema) descriptor in a form of an object or [URL-or-Path](/standard/glossary/#url-or-path). An example of a resource with a schema: diff --git a/content/docs/specifications/extensions.md b/content/docs/standard/extensions.md similarity index 90% rename from content/docs/specifications/extensions.md rename to content/docs/standard/extensions.md index e2c50fe0..88d4312a 100644 --- a/content/docs/specifications/extensions.md +++ b/content/docs/standard/extensions.md @@ -28,9 +28,9 @@ A domain-specific extension is the way to enrich Data Package's metadata to meet ## Extension -The Data Package Standard has a simple yet powerful extension mechanism based on the [Profile](../glossary/#profile) concept. An extension is, generally speaking, a project that provides one or more domain-specific profiles to the Data Package Standard specifications. +The Data Package Standard has a simple yet powerful extension mechanism based on the [Profile](/standard/glossary/#profile) concept. An extension is, generally speaking, a project that provides one or more domain-specific profiles to the Data Package Standard specifications. -From user-perspective, a custom profile can be provided as a `$schema` property in a corresponding specification [Descriptor](../glossary/#descriptor). Having a profile instructs implementation to validate a descriptor using JSON Schema rules of the profile. +From user-perspective, a custom profile can be provided as a `$schema` property in a corresponding specification [Descriptor](/standard/glossary/#descriptor). Having a profile instructs implementation to validate a descriptor using JSON Schema rules of the profile. Usually, Data Package is the specification that is extended. As a container format, it is the most natural target for metadata enrichment. At the same time, technically any of the core specifications can be extended. For example, if you build a Table Schema catalog, it is possible to extend a Table Schema specification using the same approach as described below. @@ -51,7 +51,7 @@ For example, we will create a Spatial Data Package that requires a `geopoint` ma ### Profile -First of all, we need to create a Data Package profile. Note that it includes a default data package profile as per the [specification requirement](../data-package/#schema): +First of all, we need to create a Data Package profile. Note that it includes a default data package profile as per the [specification requirement](/standard/data-package/#schema): ```json { diff --git a/content/docs/standard/extensions.mdx b/content/docs/standard/extensions.mdx deleted file mode 100644 index 7c1020a9..00000000 --- a/content/docs/standard/extensions.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Extensions -sidebar: - order: 3 ---- - -import { LinkCard, CardGrid } from "@astrojs/starlight/components" - -:::tip[Contribution Note] -We want to help as much domain-specific Data Package extensions as possible. If you have one in mind or already started working, feel free to share opening a new issue or pull request. -::: - -One of the key strengths of the Data Package Standard lies in its extensibility. While the standard provides a solid foundation for organizing and describing data, it also recognizes that diverse datasets have unique requirements. Data practitioners can extend the standard by incorporating custom metadata, validation rules, or specific constraints to suit their data's peculiarities. Below is the list of well-known Data Package extensions: - -## Domain Specific - - - - - - diff --git a/content/docs/specifications/glossary.md b/content/docs/standard/glossary.md similarity index 99% rename from content/docs/specifications/glossary.md rename to content/docs/standard/glossary.md index bcb27d23..6f3e3cff 100644 --- a/content/docs/specifications/glossary.md +++ b/content/docs/standard/glossary.md @@ -30,7 +30,7 @@ A profile is both used as a metadata version identifier and the location of a JS Similarly to [JSON Schema](https://json-schema.org/understanding-json-schema/reference/schema#schema), the `$schema` property has effect only on the root level of a descriptor. For example, if a Table Dialect is published as a file it can include a `$schema` property that affects its validation. If the same dialect is an object inlined into a Data Package descriptor, the dialect's `$schema` property `MUST` be ignored and the descriptor as whole `MUST` be validated against a root level `$schema` property provided by the package. -Data Package Standard employes profiles as a mechanism for creating extensions as per [Extensions](../extensions) specification. +Data Package Standard employes profiles as a mechanism for creating extensions as per [Extensions](/standard/extensions) specification. :::note[Implementation Note] It is recommended to cache profiles using their URL as a unique key. diff --git a/content/docs/standard/guides.mdx b/content/docs/standard/guides.mdx deleted file mode 100644 index afc59ead..00000000 --- a/content/docs/standard/guides.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Guides -sidebar: - order: 5 ---- - -import { LinkCard, CardGrid } from "@astrojs/starlight/components" - -:::tip[Contribution Note] -We encourage everyone to share their knowledge of working with the Data Package standard. Feel free to contribute a guide just by opening a pull request. -::: - -The least formal part of the standard containing various guides on how to get started with Data Package or how to extend Data Package standard. Here is the list of available guides: - -## General - - - - diff --git a/content/docs/standard/recipes.mdx b/content/docs/standard/recipes.mdx deleted file mode 100644 index 98805977..00000000 --- a/content/docs/standard/recipes.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Recipes -sidebar: - order: 4 ---- - -import { LinkCard, CardGrid } from "@astrojs/starlight/components" - -:::tip[Contribution Note] -New recipes are welcome from anyone who would like to share their experience. Please create an issue or pull request to start a discussion. -::: - -Recipes are various approaches for solving common problems, in ways that are not specified as a formal Data Package specification. If we see increased adoption, or wide support, for any recipe, it is a prime candidate for formalising as part of a specification. Here is the list of currently existent recipes: - -## Data Package - - - - - - - - - - - - - - - - -## Data Resource - - - - - - - - - - - -## Table Schema - - - - - - diff --git a/content/docs/specifications/security.md b/content/docs/standard/security.md similarity index 100% rename from content/docs/specifications/security.md rename to content/docs/standard/security.md diff --git a/content/docs/standard/specifications.mdx b/content/docs/standard/specifications.mdx deleted file mode 100644 index 8c710d47..00000000 --- a/content/docs/standard/specifications.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Specifications -sidebar: - order: 2 ---- - -import { LinkCard } from "@astrojs/starlight/components" - -The Data Package Standard is a comprehensive set of specifications that collectively define a framework for organizing, documenting, and sharing data in a structured and interoperable manner. It comprises four key components, each serving a specific purpose in the data management process: - -## Data Package - -**Purpose**: The Data Package serves as the central container for datasets, offering a high-level view of data contents and metadata. - -**Specifications**: Data Packages are defined by a set of required files, including a descriptor file (datapackage.json), data files, and optional resources. - -**Functions**: Data Packages simplify data distribution and discovery by packaging data with essential metadata, such as data sources, licensing, and schema information. - - - -## Data Resource - -**Purpose**: Data Resources represent individual data files or tables within a Data Package, allowing for the organization of distinct data segments. - -**Specifications**: Each Data Resource is described in a descriptor file (datapackage.json) under the "resources" property, providing details about data location, schema, and additional metadata. - -**Functions**: Data Resources enable the partitioning of large datasets into manageable units and maintain clear organization within Data Packages. - - - -## Table Dialect - -**Purpose**: Table Dialects specify the format and characteristics of tabular data within Data Resources, accommodating various formats like CSV, Excel, or JSON. - -**Specifications**: Table Dialect definitions detail data structure, including delimiter characters, headers, and other format-specific properties. - -**Functions**: Table Dialects ensure accurate interpretation of tabular data by software tools, promoting data consistency and interoperability. - - - -## Table Schema - -**Purpose**: Table Schemas define the structure of data tables, specifying column names, types, and constraints to create a clear schema for tabular data. - -**Specifications**: As a part of a Data Package or as an independent JSON descriptor, Table Schemas provide detailed information about table structure and column characteristics. - -**Functions**: Table Schemas enhance data quality and consistency by specifying expected column formats and properties, supporting data validation and integration into analysis tools. - - diff --git a/content/docs/specifications/table-dialect.md b/content/docs/standard/table-dialect.md similarity index 95% rename from content/docs/specifications/table-dialect.md rename to content/docs/standard/table-dialect.md index 5d174d55..4f3742cd 100644 --- a/content/docs/specifications/table-dialect.md +++ b/content/docs/standard/table-dialect.md @@ -23,7 +23,7 @@ The key words `MUST`, `MUST NOT`, `REQUIRED`, `SHALL`, `SHALL NOT`, `SHOULD`, `S ## Introduction -Table Dialect defines set of properties that can be used by data producers and data consumers to ensure data interoperability in various [Tabular Data](../glossary/#tabular-data) formats such as CSV, JSON, or Excel. The main goal of this specification is to define a common language for defining tabular data dialects. +Table Dialect defines set of properties that can be used by data producers and data consumers to ensure data interoperability in various [Tabular Data](/standard/glossary/#tabular-data) formats such as CSV, JSON, or Excel. The main goal of this specification is to define a common language for defining tabular data dialects. It is not expected that all the properties are supported by all the Data Package implementations. An implementation `MUST` choose the most suitable strategy for communicating to the users if some relevant feature is not supported. @@ -35,7 +35,7 @@ Table Dialect supersedes [CSV Dialect](https://specs.frictionlessdata.io/csv-dia ## Descriptor -Table Dialect descriptor `MUST` be a descriptor as per [Descriptor](../glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. +Table Dialect descriptor `MUST` be a descriptor as per [Descriptor](/standard/glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. An example of a Table Dialect descriptor: @@ -134,7 +134,7 @@ Database formats is a group of formats accessing data from databases like SQLite ### `$schema` {#dollar-schema} -A root level Table Dialect descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](../glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. +A root level Table Dialect descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](/standard/glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. The default value is `https://datapackage.org/profiles/1.0/tabledialect.json` and the recommended value is `https://datapackage.org/profiles/2.0/tabledialect.json`. @@ -618,7 +618,7 @@ With this dialect definition: ## Excluded -Table Dialect has nothing to do with the names, contents or types of the headers or data within the CSV file (see [Table Schema](../table-schema/) instead), only how it is formatted. However, Table Dialect does allow the presence or absence of a header to be specified, similarly to [RFC4180](http://www.ietf.org/rfc/rfc4180.txt). +Table Dialect has nothing to do with the names, contents or types of the headers or data within the CSV file (see [Table Schema](/standard/table-schema/) instead), only how it is formatted. However, Table Dialect does allow the presence or absence of a header to be specified, similarly to [RFC4180](http://www.ietf.org/rfc/rfc4180.txt). Table Dialect is also orthogonal to the character encoding used in the CSV file. Note that it is possible for files in CSV format to contain data in more than one encoding. diff --git a/content/docs/specifications/table-schema.md b/content/docs/standard/table-schema.md similarity index 98% rename from content/docs/specifications/table-schema.md rename to content/docs/standard/table-schema.md index 3391b792..c13e1c01 100644 --- a/content/docs/specifications/table-schema.md +++ b/content/docs/standard/table-schema.md @@ -27,12 +27,12 @@ Table Schema is a simple language- and implementation-agnostic way to declare a This specification heavily relies on the following concepts: -- [Tabular Data](../glossary/#tabular-data) -- [Data Representation](../glossary/#data-representation) +- [Tabular Data](/standard/glossary/#tabular-data) +- [Data Representation](/standard/glossary/#data-representation) ## Descriptor -Table Schema descriptor `MUST` be a descriptor as per [Descriptor](../glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. +Table Schema descriptor `MUST` be a descriptor as per [Descriptor](/standard/glossary/#descriptor) definition. A list of standard properties that can be included into a descriptor is defined in the [Properties](#properties) section. An example of a Table Schema descriptor: @@ -70,7 +70,7 @@ The way Table Schema `fields` are mapped onto the data source fields are defined #### `$schema` {#dollar-schema} -A root level Table Schema descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](../glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. +A root level Table Schema descriptor `MAY` have a `$schema` property that `MUST` be a profile as per [Profile](/standard/glossary/#profile) definition that `MUST` include all the metadata constraints required by this specification. The default value is `https://datapackage.org/profiles/1.0/tableschema.json` and the recommended value is `https://datapackage.org/profiles/2.0/tableschema.json`. diff --git a/package-lock.json b/package-lock.json index fc3551cc..02cedc0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "prettier-plugin-astro": "^0.14.0", "rehype-autolink-headings": "^7.1.0", "remark-custom-heading-id": "^2.0.0", - "replace-in-file": "^8.0.1" + "starlight-links-validator": "^0.9.0" }, "engines": { "node": "^20.0.0", @@ -910,272 +910,6 @@ "node": ">=14" } }, - "node_modules/@emnapi/runtime": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", - "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/linux-x64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", @@ -1192,102 +926,6 @@ "node": ">=12" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -1497,285 +1135,31 @@ "node": "*" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz", - "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.2" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz", - "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.2" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz", - "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "macos": ">=11", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz", - "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "macos": ">=10.13", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz", - "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz", - "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz", - "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz", - "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz", - "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz", - "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz", - "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==", - "cpu": [ - "arm" - ], + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "glibc": ">=2.28", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=12.22" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.2" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz", - "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz", + "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==", "cpu": [ - "arm64" + "x64" ], "dev": true, "optional": true, @@ -1784,24 +1168,20 @@ ], "engines": { "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", "npm": ">=9.6.5", "pnpm": ">=7.1.0", "yarn": ">=3.2.0" }, "funding": { "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.2" } }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz", - "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==", + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz", + "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==", "cpu": [ - "s390x" + "x64" ], "dev": true, "optional": true, @@ -1809,17 +1189,13 @@ "linux" ], "engines": { - "glibc": ">=2.31", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "musl": ">=1.2.2", "npm": ">=9.6.5", "pnpm": ">=7.1.0", "yarn": ">=3.2.0" }, "funding": { "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.2" } }, "node_modules/@img/sharp-linux-x64": { @@ -1848,32 +1224,6 @@ "@img/sharp-libvips-linux-x64": "1.0.2" } }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz", - "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2" - } - }, "node_modules/@img/sharp-linuxmusl-x64": { "version": "0.33.4", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz", @@ -1900,72 +1250,6 @@ "@img/sharp-libvips-linuxmusl-x64": "1.0.2" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz", - "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.1.1" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz", - "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz", - "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2282,51 +1566,12 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@pagefind/darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.0.4.tgz", - "integrity": "sha512-2OcthvceX2xhm5XbgOmW+lT45oLuHqCmvFeFtxh1gsuP5cO8vcD8ZH8Laj4pXQFCcK6eAdSShx+Ztx/LsQWZFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@pagefind/darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.0.4.tgz", - "integrity": "sha512-xkdvp0D9Ld/ZKsjo/y1bgfhTEU72ITimd2PMMQtts7jf6JPIOJbsiErCvm37m/qMFuPGEq/8d+fZ4pydOj08HQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, "node_modules/@pagefind/default-ui": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.0.4.tgz", "integrity": "sha512-edkcaPSKq67C49Vehjo+LQCpT615v4d7JRhfGzFPccePvdklaL+VXrfghN/uIfsdoG+HoLI1PcYy2iFcB9CTkw==", "dev": true }, - "node_modules/@pagefind/linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.0.4.tgz", - "integrity": "sha512-jGBrcCzIrMnNxLKVtogaQyajVfTAXM59KlBEwg6vTn8NW4fQ6nuFbbhlG4dTIsaamjEM5e8ZBEAKZfTB/qd9xw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, "node_modules/@pagefind/linux-x64": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.0.4.tgz", @@ -2340,19 +1585,6 @@ "linux" ] }, - "node_modules/@pagefind/windows-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.0.4.tgz", - "integrity": "sha512-QlBCVeZfj9fc9sbUgdOz76ZDbeK4xZihOBAFqGuRJeChfM8pnVeH9iqSnXgO3+m9oITugTf7PicyRUFAG76xeQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2400,164 +1632,21 @@ "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", - "dev": true, - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "dev": true }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", - "cpu": [ - "s390x" - ], + "node_modules/@pnpm/npm-conf": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.18.0", @@ -2585,45 +1674,6 @@ "linux" ] }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@shikijs/core": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.9.0.tgz", @@ -4156,111 +3206,6 @@ "node": ">=8" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -5542,20 +4487,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5640,15 +4571,6 @@ "node": ">=6.9.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-east-asian-width": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", @@ -6517,6 +5439,18 @@ "node": ">= 12" } }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", @@ -10509,44 +9443,6 @@ "node": ">=8" } }, - "node_modules/replace-in-file": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-8.0.1.tgz", - "integrity": "sha512-aZb9IOwq6dXhqLmPXZVQrvGIZ9vTdJ5ZtkaMwUM94CsUHDe58Rin7OVmvS2SVxzqXBmvVowr5uoTzX6oRT31wA==", - "dev": true, - "dependencies": { - "chalk": "^5.3.0", - "glob": "^10.4.2", - "yargs": "^17.7.2" - }, - "bin": { - "replace-in-file": "bin/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/replace-in-file/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -11264,6 +10160,41 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/starlight-links-validator": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/starlight-links-validator/-/starlight-links-validator-0.9.0.tgz", + "integrity": "sha512-DJQDncEJBuuguPHJKP/SMmYdToWCFeEpZuRV5z9Qqgif3njJiF7dBRDAFdNIM2TCNADAZdseMOcR0iUpnvvjLQ==", + "dev": true, + "dependencies": { + "github-slugger": "2.0.0", + "hast-util-from-html": "2.0.1", + "hast-util-has-property": "3.0.0", + "is-absolute-url": "4.0.1", + "kleur": "4.1.5", + "mdast-util-to-string": "4.0.0", + "picomatch": "4.0.2", + "unist-util-visit": "5.0.0" + }, + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "@astrojs/starlight": ">=0.15.0", + "astro": ">=4.0.0" + } + }, + "node_modules/starlight-links-validator/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/stdin-discarder": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", @@ -12455,39 +11386,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -12497,47 +11401,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yocto-queue": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", diff --git a/package.json b/package.json index 5794e8ce..20c7fb0c 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "prettier": "^3.3.2", "prettier-plugin-astro": "^0.14.0", "rehype-autolink-headings": "^7.1.0", - "remark-custom-heading-id": "^2.0.0", - "replace-in-file": "^8.0.1" + "starlight-links-validator": "^0.9.0", + "remark-custom-heading-id": "^2.0.0" } } From c3d74569397a04a93f9b307f45c542251e698bb8 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 06:57:47 +0100 Subject: [PATCH 02/10] Incorporate FAIR Data Exchange (#84) --- content/docs/index.mdx | 2 +- content/docs/overview/introduction.md | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/content/docs/index.mdx b/content/docs/index.mdx index 363fad55..ac8534fd 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -10,7 +10,7 @@ hero: simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that facilitates - data quality, accessibility, and interoperability. + findability, accessibility, interoperability, and reusability (FAIR) of data. image: file: ../../assets/hero.png alt: Data Packages Illustration diff --git a/content/docs/overview/introduction.md b/content/docs/overview/introduction.md index a68da543..20985486 100644 --- a/content/docs/overview/introduction.md +++ b/content/docs/overview/introduction.md @@ -4,13 +4,17 @@ sidebar: order: 0 --- +:::tip[FAIR Data Exchange] +The Data Package standard facilitates **findability, accessibility, interoperability, and reusability** of data making it perfect for [FAIR Data Exchange](https://en.wikipedia.org/wiki/FAIR_data). +::: + In our increasingly data-driven world, the ability to manage, share, and analyze data effectively has become paramount. Organizations across various domains, from research institutions and governmental agencies to businesses and non-profit organizations, are generating and utilizing vast amounts of data to inform decisions, solve complex problems, and drive innovation. However, this data abundance brings with it a unique set of challenges, particularly when it comes to ensuring data quality, interoperability, and accessibility. -## The Standard +## The Project -The Data Package Standard emerges as a solution to these challenges, offering a structured and versatile framework for organizing, documenting, and distributing data. Whether you are a data scientist, researcher, data engineer, or data steward, the Data Package Standard is designed to streamline your data management processes and facilitate collaboration, making data more discoverable and usable for everyone involved. In-general, the Data Package standard consists of these parts: +The Data Package Standard emerges as a solution to these challenges, offering a structured and versatile framework for organizing, documenting, and distributing data. Whether you are a data scientist, researcher, data engineer, or data steward, the Data Package Standard is designed to streamline your data management processes and facilitate collaboration, making data more discoverable and usable for everyone involved. In-general, the Data Package project consists of these parts: -1. **Specifications**: Comprehensive set of specifications that collectively define a framework for organizing, documenting, and sharing data in a structured and interoperable manner +1. **Standard**: Comprehensive set of specifications that collectively define a framework for organizing, documenting, and sharing data in a structured and interoperable manner 2. **Extensions**: Data practitioners can extend the standard by incorporating custom metadata, validation rules, or specific constraints to suit their data's peculiarities. From 85fe2eeaf96e695c9bd727ef501c104d13b22170 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 07:10:23 +0100 Subject: [PATCH 03/10] Beautify two word anchors (#87) --- content/docs/standard/table-dialect.md | 28 +++++++++++++------------- content/docs/standard/table-schema.md | 26 ++++++++++++------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/content/docs/standard/table-dialect.md b/content/docs/standard/table-dialect.md index 4f3742cd..d177fc58 100644 --- a/content/docs/standard/table-dialect.md +++ b/content/docs/standard/table-dialect.md @@ -166,7 +166,7 @@ With this dialect definition: Where `field1` and `field2` names are implementation-specific and used here only for illustrative purpose. -### `headerRows` +### `headerRows` {#headerRows} A Table Dialect descriptor `MAY` have the `headerRows` property that `MUST` be an array of positive integers starting from 1 with default value `[1]`. This property specifies the row numbers for the header. It is `RECOMMENDED` to be used for multiline-header files. @@ -194,7 +194,7 @@ With this dialect definition: {"fruit id": 2, "fruit name": "orange"} ``` -### `headerJoin` +### `headerJoin` {#headerJoin} A Table Dialect descriptor `MAY` have the `headerJoin` property that `MUST` be a string with default value `" "`. This property specifies how multiline-header files have to join the resulting header rows. @@ -223,7 +223,7 @@ With this dialect definition: {"fruit-id": 2, "fruit-name": "orange"} ``` -### `commentRows` +### `commentRows` {#commentRows} A Table Dialect descriptor `MAY` have the `commentRows` property that `MUST` be an array of positive integers starting from 1; undefined by default. This property specifies what rows have to be omitted from the data. @@ -251,7 +251,7 @@ With this dialect definition: {id: 2, name: "orange"} ``` -### `commentChar` +### `commentChar` {#commentChar} A Table Dialect descriptor `MAY` have the `commentChar` property that `MUST` be a string of one or more characters; undefined by default. This property specifies what rows have to be omitted from the data based on the row's first characters. @@ -306,7 +306,7 @@ With this dialect definition: {id: 2, name: "orange"} ``` -### `lineTerminator` +### `lineTerminator` {#lineTerminator} A Table Dialect descriptor `MAY` have the `lineTerminator` property that `MUST` be a string; with default value `\r\n`. This property specifies the character sequence which terminates rows. @@ -331,7 +331,7 @@ With this dialect definition: {id: 2, name: "orange"} ``` -### `quoteChar` +### `quoteChar` {#quoteChar} A Table Dialect descriptor `MAY` have the `quoteChar` property that `MUST` be a string of one character length with default value `"` (double quote). This property specifies a character to use for quoting in case the `delimiter` needs to be used inside a data cell. @@ -358,7 +358,7 @@ With this dialect definition: {id: 2, name: "orange,fruits"} ``` -### `doubleQuote` +### `doubleQuote` {#doubleQuote} A Table Dialect descriptor `MAY` have the `doubleQuote` property that `MUST` be boolean with default value `true`. This property controls the handling of `quoteChar` inside data cells. If true, two consecutive quotes are interpreted as one. @@ -385,7 +385,7 @@ With this dialect definition: {id: 2, name: 'orange"fruits'} ``` -### `escapeChar` +### `escapeChar` {#escapeChar} A Table Dialect descriptor `MAY` have the `escapeChar` property that `MUST` be a string of one character length; undefined by default. This property specifies a one-character string to use for escaping, for example, `\`, mutually exclusive with `quoteChar`. @@ -412,7 +412,7 @@ With this dialect definition: {id: 2, name: "orange,fruits"} ``` -### `nullSequence` +### `nullSequence` {#nullSequence} A Table Dialect descriptor `MAY` have the `nullSequence` property that `MUST` be a string; undefined by default. This property specifies specifies the null sequence, for example, `\N`. @@ -439,7 +439,7 @@ With this dialect definition: {id: 2, name: null} ``` -### `skipInitialSpace` +### `skipInitialSpace` {#skipInitialSpace} A Table Dialect descriptor `MAY` have the `skipInitialSpace` property that `MUST` be boolean with default value `false`. This property specifies how to interpret whitespace which immediately follows a delimiter; if `false`, it means that whitespace immediately after a delimiter is treated as part of the following field. @@ -496,7 +496,7 @@ With this dialect definition: {id: 2, name: "orange"} ``` -### `itemType` +### `itemType` {#itemType} A Table Dialect descriptor `MAY` have the `itemType` property that `MUST` be a string with value `array` or `object`; undefined by default. This property specifies whether the data `property` contains an array of arrays or an array of objects. @@ -525,7 +525,7 @@ With this dialect definition: {id: 2, name: "orange"} ``` -### `itemKeys` +### `itemKeys` {#itemKeys} A Table Dialect descriptor `MAY` have the `itemKeys` property that `MUST` be array of strings; undefined by default. This property specifies the way of extracting rows from data arrays with `itemType` is `object`. @@ -553,7 +553,7 @@ With this dialect definition: {id: 2, name: "orange"} ``` -### `sheetNumber` +### `sheetNumber` {#sheetNumber} A Table Dialect descriptor `MAY` have the `sheetNumber` property that `MUST` be an integer with default value `1`. This property specifies a sheet number of a table in the spreadsheet file. @@ -574,7 +574,7 @@ With this dialect definition: `SHOULD` output the data from the second sheet. -### `sheetName` +### `sheetName` {#sheetName} A Table Dialect descriptor `MAY` have the `sheetName` property that `MUST` be a string; undefined by default. This property specifies a sheet name of a table in the spreadsheet file. diff --git a/content/docs/standard/table-schema.md b/content/docs/standard/table-schema.md index c13e1c01..fe35f8fb 100644 --- a/content/docs/standard/table-schema.md +++ b/content/docs/standard/table-schema.md @@ -74,7 +74,7 @@ A root level Table Schema descriptor `MAY` have a `$schema` property that `MUST` The default value is `https://datapackage.org/profiles/1.0/tableschema.json` and the recommended value is `https://datapackage.org/profiles/2.0/tableschema.json`. -#### `fieldsMatch` +#### `fieldsMatch` {#fieldsMatch} A Table Schema descriptor `MAY` contain a property `fieldsMatch` that `MUST` be a string with the following possible values and the `exact` value by default: @@ -84,7 +84,7 @@ A Table Schema descriptor `MAY` contain a property `fieldsMatch` that `MUST` be - **superset**: The data source `MUST` only have fields defined in the `fields` array, but `MAY` have fewer. Fields `MUST` be mapped by their names. - **partial**: The data source `MUST` have at least one field defined in the `fields` array. Fields `MUST` be mapped by their names. -#### `missingValues` +#### `missingValues` {#missingValues} Many datasets arrive with missing data values, either because a value was not collected or it never existed. Missing values may be indicated simply by the value being empty in other cases a special value may have been used e.g. `-`, `NaN`, `0`, `-9999` etc. @@ -113,7 +113,7 @@ Examples: When implementations choose to convert missing values to null, this conversion to `null` `MUST` be done before any other attempted type-specific string conversion. The default value `[ "" ]` means that empty strings will be converted to null before any other processing takes place. Providing the empty list `[]` means that no conversion to null will be done, on any value. -#### `primaryKey` +#### `primaryKey` {#primaryKey} A primary key is a field or set of fields that uniquely identifies each row in the table. Per SQL standards, the fields cannot be `null`, so their use in the primary key is equivalent to adding `required: true` to their [`constraints`](#constraints). @@ -145,7 +145,7 @@ Here's an example: Data consumer MUST support the `primaryKey` property in a form of a single string e.g. `primaryKey: a` which was a part of the `v1.0` of the specification. ::: -#### `uniqueKeys` +#### `uniqueKeys` {#uniqueKeys} A unique key is a field or a set of fields that are required to have unique logical values in each row in the table. It is directly modeled on the concept of unique constraint in SQL. @@ -186,7 +186,7 @@ All the field values that are on the logical level are considered to be `null` v In contrast with `field.constraints.unique`, `uniqueKeys` allows to define uniqueness as a combination of fields. Both properties `SHOULD` be assessed separately. -#### `foreignKeys` +#### `foreignKeys` {#foreignKeys} A foreign key is a reference where values in a field (or fields) on the table ('resource' in data package terminology) described by this Table Schema connect to values a field (or fields) on this or a separate table (resource). They are directly modelled on the concept of foreign keys in SQL. @@ -357,7 +357,7 @@ If `categories` is (b) an array of objects, each object `MAY` also have a `label An `enum` constraint `MAY` be added to a field with a `categories` property, but if so, the `enum` values `MUST` be a subset of the values in `categories`. -#### `categoriesOrdered` +#### `categoriesOrdered` {#categoriesOrdered} When the `categories` property is defined, it `MAY` be accompanied by a `categoriesOrdered` property in the field definition. When present, the `categoriesOrdered` property `MUST` be `boolean`. When `categoriesOrdered` is `true`, implementations `SHOULD` regard the order of appearance of the values in the `categories` property as their natural order. For example: @@ -378,7 +378,7 @@ When the `categories` property is defined, it `MAY` be accompanied by a `categor When the property `categoriesOrdered` is `false`, implementations `SHOULD` assume that the categories do not have a natural order; when the property is not present, no assumption about the ordered nature of the values `SHOULD` be made. -#### `missingValues` +#### `missingValues` {#field-missingValues} A list of missing values for this field as per [Missing Values](#missingvalues) definition. If this property is defined, it takes precedence over the schema-level property and completely replaces it for the field without combining the values. @@ -402,7 +402,7 @@ A data consumer `MUST`: - interpret `""` and `NA` as missing values for `column1` - interpret only `-` as a missing value for `column2` -#### `rdfType` +#### `rdfType` {#rdfType} A richer, "semantic", description of the "type" of data in a given column `MAY` be provided using a `rdfType` property on a field descriptor. @@ -644,14 +644,14 @@ Indicates whether this field cannot be `null`. If required is `false` (the defau If `true`, then all values for that field `MUST` be unique within the data file in which it is found. -### `minLength` +### `minLength` {#minLength} - **Type**: integer - **Fields**: collections (string, array, object) An integer that specifies the minimum length of a value. -### `maxLength` +### `maxLength` {#maxLength} - **Type**: integer - **Fields**: collections (string, array, object) @@ -672,21 +672,21 @@ Specifies a minimum value for a field. This is different to `minLength` which ch As for `minimum`, but specifies a maximum value for a field. -### `exclusiveMinimum` +### `exclusiveMinimum` {#exclusiveMinimum} - **Type**: integer, number, date, time, datetime, duration, year, yearmonth - **Fields**: integer, number, date, time, datetime, duration, year, yearmonth As for `minimum`, but for expressing exclusive range. -### `exclusiveMaximum` +### `exclusiveMaximum` {#exclusiveMaximum} - **Type**: integer, number, date, time, datetime, duration, year, yearmonth - **Fields**: integer, number, date, time, datetime, duration, year, yearmonth As for `maximum`, but for expressing exclusive range. -### `jsonSchema` +### `jsonSchema` {#jsonSchema} - **Type**: object - **Fields**: array, object From 40e9a687f0e224ec346c65fdca64db9bd7fd0565 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 07:59:59 +0100 Subject: [PATCH 04/10] Added blog for cross-posting (#88) * Added blog for cross-posting * Updated wording * Fixed build --- astro.config.js | 15 +- content/config.ts | 10 +- .../docs/blog/2023-11-15-v2-anouncement.md | 72 ++++++++++ package-lock.json | 134 ++++++++++++++++++ package.json | 5 +- src/content/config.ts | 15 ++ 6 files changed, 244 insertions(+), 7 deletions(-) create mode 100644 content/docs/blog/2023-11-15-v2-anouncement.md create mode 100644 src/content/config.ts diff --git a/astro.config.js b/astro.config.js index 65de33b5..31de4235 100644 --- a/astro.config.js +++ b/astro.config.js @@ -3,6 +3,7 @@ import starlight from "@astrojs/starlight" import { defineConfig } from "astro/config" import rehypeAutolinkHeadings from "rehype-autolink-headings" import { remarkHeadingId } from "remark-custom-heading-id" +import starlightBlog from "starlight-blog" // import starlightLinksValidator from "starlight-links-validator" @@ -31,7 +32,19 @@ export default defineConfig({ customCss: ["/assets/styles.css"], tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 5 }, // The link validator is useful for debugging but it cleates a lot of false positives - // plugins: [starlightLinksValidator()], + plugins: [ + starlightBlog({ + authors: { + sapetti9: { + name: "sapetti9", + title: "Sara Petti", + picture: "https://avatars.githubusercontent.com/u/74717970?v=4", + url: "https://github.com/sapetti9", + }, + }, + }), + // starlightLinksValidator(), + ], sidebar: [ { label: "Overview", autogenerate: { directory: "overview" } }, { label: "Standard", autogenerate: { directory: "standard" } }, diff --git a/content/config.ts b/content/config.ts index 6aa88f27..bbc61b80 100644 --- a/content/config.ts +++ b/content/config.ts @@ -1,9 +1,11 @@ import { docsSchema } from "@astrojs/starlight/schema" import { defineCollection } from "astro:content" - -// import { i18nSchema } from '@astrojs/starlight/schema'; +import { blogSchema } from "starlight-blog/schema" export const collections = { - docs: defineCollection({ schema: docsSchema() }), - // i18n: defineCollection({ type: 'data', schema: i18nSchema() }), + docs: defineCollection({ + schema: docsSchema({ + extend: context => blogSchema(context), + }), + }), } diff --git a/content/docs/blog/2023-11-15-v2-anouncement.md b/content/docs/blog/2023-11-15-v2-anouncement.md new file mode 100644 index 00000000..6b2f0c23 --- /dev/null +++ b/content/docs/blog/2023-11-15-v2-anouncement.md @@ -0,0 +1,72 @@ +--- +title: Data Package (v2) work started +date: 2023-11-15 +excerpt: We are very pleased to announce that thanks to the generous support of NLnet we have kickstarted the Data Package (v2) work. After a first discussion with the community in the last call, we are setting up a working group to help us with the v2 release. +tags: + - news +authors: + - sapetti9 +--- + +We are very pleased to announce that thanks to the generous support of [NLnet](https://nlnet.nl/) we have kickstarted the [Data Package (v2)](https://specs.frictionlessdata.io/) update. + +After a first discussion with the community in [the last call](https://frictionlessdata.io/blog/2023/11/06/community-call/), we are setting up a working group to help us with the v2 release. + +Taking into account the group's concerns about the shortness of the initial timeline we proposed, we were able to work out an extension of the initial time frame until mid-2024. We are now aiming at **releasing the v2 of the Frictionless specs by June 2024**. + +## Goal + +**Our overarching goal is to make the Frictionless specs**, namely the Data Package, Data Resource, File Dialect, and Table Schema standards, **a finished product**, establishing a sustainable mechanism for future maintenance extension. + +The modular approach will of course still be the cornerstone of the Frictionless specs v2, and we won’t introduce any breaking changes. + +## Additional deliverables + +- Together with the working group, we will start a reference collection of data types we want the v2 to support in a GitHub issue. + +- We will work with leading data publishing portals, namely CKAN and Zenodo, to provide native Data Package export integration. + +- The Frictionless core team at OKFN, will work on a new small Python library, a metadata mapper, with the objective of making it simpler to create standard extensions, and being able to use it in the data publishing systems integrations (Zenodo/CKAN/etc). + +- A new website and new documentation will be published, with improved technical language and better accessibility. + +## Roadmap + +The project roadmap will be mainly guided by the list of issues submitted by the community throughout the years, and collected [here](https://github.com/frictionlessdata/specs/milestone/6). + +## Social Aspect + +We will hold **monthly update calls** for the working group, which are of course not compulsory, and which will be open to the broader community too. In parallel **we will work asynchronously with the working group, using a review model** for any changes in the specifications themselves. + +## Decision-making + +For every GitHub issue on the specs submitted by the community throughout the years, the Frictionless core team or any working group member will propose a recommended action to the working group. The action proposed will be **accepted if consensus with the working group is reached**, meaning we have arrived at a decision, or at least a compromise, that everyone can live with. + +The working group will be invited to share their view in a devoted GitHub issue. If a broader conversation is needed, the proposal discussion can be elevated to the monthly call for deliberation. The working group will be given a reasonable amount of time to review the proposed action. + +**Consensus is reached and the issue is closed if at least ⅔ of the working group members participate in the discussion and express their favourable opinion**. In case of serious and explicitly stated concerns, working group members who are core library investors (at the moment: OKFN, INBO, Datopian) may veto a proposed action. + +The community manager at OKFN will reach out to working group members who did not participate in the discussion to make sure their opinion is also captured. We want to ensure that reminders of your participation are handled with care. You can expect a gentle and considerate approach, such as receiving an email once every two weeks highlighting any issues where your vote is pending. Our goal is to keep you informed without causing any unnecessary inconvenience, so you can feel confident and at ease with the process + +Decision-making on the technical maintenance of the specs will be centralised by OKFN. + +## Diversity + +Leveraging diversity is an opportunity that we must embrace for the benefits it brings. Extensive research consistently demonstrates that diverse participation leads to better outcomes and more resilient technologies — diverse communities are unequivocally stronger communities. + +We acknowledge the need for greater diversity in our community, and we understand that fostering diversity, equity, and inclusion requires substantial effort. We cannot underestimate the challenges before us. Confronting the deep-rooted and centuries-old racist components of our system is a huge challenge, and we understand that achieving racial equity is a continual journey with no predefined endpoint. + +Our mission is to build equity within our community, fostering inclusion and amplifying diversity across all aspects of the Frictionless project. For our specs update, we are proactively encouraging every member of the community involved in the working group to identify and invite candidates interested in contributing to the update work, with a particular emphasis on enhancing the diversity of our group. + +We welcome contributors from diverse backgrounds, recognising that individuals with varied experiences bring forth new and innovative ideas that help create an inclusive and welcoming ecosystem. Our goal is to create an inclusive and friendly environment based on mutual respect and exchange, ensuring that no one feels isolated, and everyone is motivated to actively contribute to the project's development. + +Acknowledging the ethical imperative, we understand that recruiting individuals into a community historically designed to exclude them is neither ethical nor effective without adequate support. We therefore prioritise transparency with new community members, providing a [contributor's guide](https://frictionlessdata.io/work-with-us/contribute/), a [published roadmap](https://frictionlessdata.io/development/roadmap/), and comprehensive documentation to ensure clarity and support throughout their engagement. Our [Code of Conduct](https://frictionlessdata.io/work-with-us/code-of-conduct/) applies to all activities linked to the Frictionless Data project, and it is enforced by our community manager. As part of this project, we will make it a priority to enhance the accessibility of our documentation and website, aiming to make them as inclusive as possible. + +We welcome any other suggestions that would help us enhance diversity, equity, and inclusion in our work. Please let us know if you have a good idea to share! + +## Funding + +This project is funded through [NGI0 Entrust](https://nlnet.nl/entrust), a fund established by [NLnet](https://nlnet.nl) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu) program. Learn more at the [NLnet project page](https://nlnet.nl/project/FrictionlessStandards/). + +[NLnet foundation logo](https://nlnet.nl) +[NGI Zero Logo](https://nlnet.nl/entrust) diff --git a/package-lock.json b/package-lock.json index 02cedc0c..aa747292 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "prettier-plugin-astro": "^0.14.0", "rehype-autolink-headings": "^7.1.0", "remark-custom-heading-id": "^2.0.0", + "starlight-blog": "^0.9.0", "starlight-links-validator": "^0.9.0" }, "engines": { @@ -150,6 +151,16 @@ "node": "^18.17.1 || ^20.3.0 || >=21.0.0" } }, + "node_modules/@astrojs/rss": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.5.tgz", + "integrity": "sha512-IyJVL6z09AQtxbgLaAwebT3T5YKe4oTHDesqydJv1KLHw+zEzzMCFuuNsEyxjiqu7df9+DDCpDXLj/WRiEUXvw==", + "dev": true, + "dependencies": { + "fast-xml-parser": "^4.2.7", + "kleur": "^4.1.5" + } + }, "node_modules/@astrojs/sitemap": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.1.6.tgz", @@ -2587,6 +2598,22 @@ "astro": "^4.0.0-beta || ^3.3.0" } }, + "node_modules/astro-remote": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/astro-remote/-/astro-remote-0.3.2.tgz", + "integrity": "sha512-Xwm6Y+ldQEnDB2l1WwVqeUs3QvUX8LtJWnovpXlf8xhpicPu159jXOhDbHZS9wilGO/+/nR67A1qskF8pDvdGQ==", + "dev": true, + "dependencies": { + "entities": "^4.5.0", + "marked": "^12.0.0", + "marked-footnote": "^1.2.2", + "marked-smartypants": "^1.1.6", + "ultrahtml": "^1.5.3" + }, + "engines": { + "node": ">=18.14.1" + } + }, "node_modules/astro/node_modules/@babel/generator": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", @@ -4333,6 +4360,28 @@ "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", "dev": true }, + "node_modules/fast-xml-parser": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", + "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -6191,6 +6240,48 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/marked": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/marked-footnote": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/marked-footnote/-/marked-footnote-1.2.2.tgz", + "integrity": "sha512-TFBEHwHLSSedub7P6XHHs+dMMOnDeNV5+kFDo4trU//gDd8iM57lg9jr9NGwDifPwLllHwKmFcRNp5uYvO2Fnw==", + "dev": true, + "peerDependencies": { + "marked": ">=7.0.0" + } + }, + "node_modules/marked-plaintify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/marked-plaintify/-/marked-plaintify-1.0.1.tgz", + "integrity": "sha512-KQhxtuVWf3Ij3YMiW4ArlgNOVmzOAlP0o/upsu2+h7Q4TCAwG4UvkYTteZF2sDDomXQnNSLmfyAhoR0gx2Orgw==", + "dev": true, + "peerDependencies": { + "marked": ">=7.0.0" + } + }, + "node_modules/marked-smartypants": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/marked-smartypants/-/marked-smartypants-1.1.7.tgz", + "integrity": "sha512-GXtR6UfyZ3NXkmdwUWnM+MFrmxvF1HA2KzTGB+vGoWc7K829CgSs/wlDOz2MK/peujK866X2650HJhrnXQBpiA==", + "dev": true, + "dependencies": { + "smartypants": "^0.2.2" + }, + "peerDependencies": { + "marked": ">=4 <14" + } + }, "node_modules/mdast-heading-id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-heading-id/-/mdast-heading-id-2.0.0.tgz", @@ -10023,6 +10114,16 @@ "npm": ">= 3.0.0" } }, + "node_modules/smartypants": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/smartypants/-/smartypants-0.2.2.tgz", + "integrity": "sha512-TzobUYoEft/xBtb2voRPryAUIvYguG0V7Tt3de79I1WfXgCwelqVsGuZSnu3GFGRZhXR90AeEYIM+icuB/S06Q==", + "dev": true, + "bin": { + "smartypants": "bin/smartypants.js", + "smartypantsu": "bin/smartypantsu.js" + } + }, "node_modules/socks": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", @@ -10160,6 +10261,27 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/starlight-blog": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/starlight-blog/-/starlight-blog-0.9.0.tgz", + "integrity": "sha512-SpQulRfi8/lQ1XYz+YZ26/4o/gCeCqQ/IsMNRYD8erpxcBNq0/iGax32E3TsJVO2E9iM32LHvMrp0pF+vwk7fg==", + "dev": true, + "dependencies": { + "@astrojs/rss": "4.0.5", + "astro-remote": "0.3.2", + "github-slugger": "2.0.0", + "marked": "12.0.2", + "marked-plaintify": "1.0.1", + "ultrahtml": "1.5.3" + }, + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "@astrojs/starlight": ">=0.24.0", + "astro": ">=4.8.6" + } + }, "node_modules/starlight-links-validator": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/starlight-links-validator/-/starlight-links-validator-0.9.0.tgz", @@ -10374,6 +10496,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "dev": true + }, "node_modules/style-to-object": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", @@ -10634,6 +10762,12 @@ "node": ">=14.17" } }, + "node_modules/ultrahtml": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==", + "dev": true + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", diff --git a/package.json b/package.json index 20c7fb0c..b336afda 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,8 @@ "prettier": "^3.3.2", "prettier-plugin-astro": "^0.14.0", "rehype-autolink-headings": "^7.1.0", - "starlight-links-validator": "^0.9.0", - "remark-custom-heading-id": "^2.0.0" + "remark-custom-heading-id": "^2.0.0", + "starlight-blog": "^0.9.0", + "starlight-links-validator": "^0.9.0" } } diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 00000000..7850cf7f --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,15 @@ +import { docsSchema } from "@astrojs/starlight/schema" +import { defineCollection } from "astro:content" +import { blogSchema } from "starlight-blog/schema" + +// TODO: +// remove this file when starlight-blog is updated to support Astro's `srcDir` +// this file is just a copy of `content/config.ts` + +export const collections = { + docs: defineCollection({ + schema: docsSchema({ + extend: context => blogSchema(context), + }), + }), +} From 9448690fcc3d2debb1717a4bdd264727094b8d94 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 08:00:49 +0100 Subject: [PATCH 05/10] Updated about in the readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55f289a3..05becb04 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Data Package -Data Package is a standard containing a set of lightweight specifications for describing datasets and individual data files. In other words, data package is a data definition language (DDL) and data API that enables and ensures data quality, accessibility, and interoperability. For more information, please visit the [documentation portal](https://datapackage.org). +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://datapackage.org). ## Contributing From 1585044796084799b3c60317a4a1ba4333e0a28d Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 08:05:37 +0100 Subject: [PATCH 06/10] Fixed casing for relative fragment links --- content/docs/standard/table-dialect.md | 36 +++++++++++++------------- content/docs/standard/table-schema.md | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/content/docs/standard/table-dialect.md b/content/docs/standard/table-dialect.md index d177fc58..6ab08e82 100644 --- a/content/docs/standard/table-dialect.md +++ b/content/docs/standard/table-dialect.md @@ -74,17 +74,17 @@ Delimited formats is a group of textual formats such as CSV and TSV. Their chara - [$schema](#schema): `https://datapackage.org/profiles/1.0/tabledialect.json` by default - [header](#header): `true` by default -- [headerRows](#headerrows): `1` by default -- [headerJoin](#headerjoin): ` ` by default -- [commentRows](#commentrows): undefined by default -- [commentChar](#commentchar): undefined by default +- [headerRows](#headerRows): `1` by default +- [headerJoin](#headerJoin): ` ` by default +- [commentRows](#commentRows): undefined by default +- [commentChar](#commentChar): undefined by default - [delimiter](#delimiter): `,` by default -- [lineTerminator](#lineterminator): `\r\n` by default -- [quoteChar](#quotechar): `"` by default -- [doubleQuote](#doublequote): `true` by default -- [escapeChar](#escapechar): undefined by default -- [nullSequence](#nullsequence): undefined by default -- [skipInitialSpace](#skipinitialspace): `false` by default +- [lineTerminator](#lineTerminator): `\r\n` by default +- [quoteChar](#quoteChar): `"` by default +- [doubleQuote](#doubleQuote): `true` by default +- [escapeChar](#escapeChar): undefined by default +- [nullSequence](#nullSequence): undefined by default +- [skipInitialSpace](#skipInitialSpace): `false` by default An example of a well-defined Table Dialect descriptor for a CSV format: @@ -107,8 +107,8 @@ Structured formats is a group of structured or semi-structured formats such as J - [$schema](#schema): `https://datapackage.org/profiles/1.0/tabledialect.json` by default - [header](#header): `true` by default - [property](#property): undefined by default -- [itemType](#itemtype): undefined by default -- [itemKeys](#itemkeys): undefined by default +- [itemType](#itemType): undefined by default +- [itemKeys](#itemKeys): undefined by default ### Spreadsheet @@ -116,12 +116,12 @@ Spreadsheet formats is a group of sheet-based formats such as Excel or ODS. Thei - [$schema](#schema): `https://datapackage.org/profiles/1.0/tabledialect.json` by default - [header](#header): `true` by default -- [headerRows](#headerrows): `1` by default -- [headerJoin](#headerjoin): ` ` by default -- [commentRows](#commentrows): undefined by default -- [commentChar](#commentchar): undefined by default -- [sheetNumber](#sheetnumber): `1` by default -- [sheetName](#sheetname): undefined by default +- [headerRows](#headerRows): `1` by default +- [headerJoin](#headerJoin): ` ` by default +- [commentRows](#commentRows): undefined by default +- [commentChar](#commentChar): undefined by default +- [sheetNumber](#sheetNumber): `1` by default +- [sheetName](#sheetName): undefined by default ### Database diff --git a/content/docs/standard/table-schema.md b/content/docs/standard/table-schema.md index fe35f8fb..adc2c421 100644 --- a/content/docs/standard/table-schema.md +++ b/content/docs/standard/table-schema.md @@ -380,7 +380,7 @@ When the property `categoriesOrdered` is `false`, implementations `SHOULD`  #### `missingValues` {#field-missingValues} -A list of missing values for this field as per [Missing Values](#missingvalues) definition. If this property is defined, it takes precedence over the schema-level property and completely replaces it for the field without combining the values. +A list of missing values for this field as per [Missing Values](#missingValues) definition. If this property is defined, it takes precedence over the schema-level property and completely replaces it for the field without combining the values. For example, for the Table Schema below: From 7c44003a45d6eaa32cf226ecc35f45f79f291782 Mon Sep 17 00:00:00 2001 From: Peter Desmet Date: Wed, 26 Jun 2024 10:18:28 +0300 Subject: [PATCH 07/10] Update phrasing (#89) --- content/docs/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/index.mdx b/content/docs/index.mdx index ac8534fd..d2ea8c4a 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -29,8 +29,8 @@ hero: banner: content: |

- It's a live draft of the Data Package (v2) standard. - Previous version is Data Package (v1). + This is a live draft of the Data Package (v2) standard. + The previous version is Data Package (v1).

--- From cf2c84210c8dfafb48066e01b0ca56584e326198 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 08:30:58 +0100 Subject: [PATCH 08/10] Add v1 link to the header (#90) * Camel case component names * Added v1 link to the header --- astro.config.js | 5 ++++- components/{about.astro => About.astro} | 0 components/{adoption.astro => Adoption.astro} | 0 ...ickable-card.astro => ClickableCard.astro} | 0 ...ge-link-card.astro => ImageLinkCard.astro} | 0 components/SocialIcons.astro | 22 +++++++++++++++++++ ...ement.md => 2023-11-15-v2-announcement.md} | 4 ++++ content/docs/index.mdx | 8 +++---- content/docs/overview/adoption.mdx | 2 +- content/docs/overview/software.mdx | 2 +- 10 files changed, 36 insertions(+), 7 deletions(-) rename components/{about.astro => About.astro} (100%) rename components/{adoption.astro => Adoption.astro} (100%) rename components/{clickable-card.astro => ClickableCard.astro} (100%) rename components/{image-link-card.astro => ImageLinkCard.astro} (100%) create mode 100644 components/SocialIcons.astro rename content/docs/blog/{2023-11-15-v2-anouncement.md => 2023-11-15-v2-announcement.md} (98%) diff --git a/astro.config.js b/astro.config.js index 31de4235..b272cc66 100644 --- a/astro.config.js +++ b/astro.config.js @@ -31,7 +31,9 @@ export default defineConfig({ lastUpdated: true, customCss: ["/assets/styles.css"], tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 5 }, - // The link validator is useful for debugging but it cleates a lot of false positives + components: { + SocialIcons: "./components/SocialIcons.astro", + }, plugins: [ starlightBlog({ authors: { @@ -43,6 +45,7 @@ export default defineConfig({ }, }, }), + // The link validator is useful for debugging but it cleates a lot of false positives // starlightLinksValidator(), ], sidebar: [ diff --git a/components/about.astro b/components/About.astro similarity index 100% rename from components/about.astro rename to components/About.astro diff --git a/components/adoption.astro b/components/Adoption.astro similarity index 100% rename from components/adoption.astro rename to components/Adoption.astro diff --git a/components/clickable-card.astro b/components/ClickableCard.astro similarity index 100% rename from components/clickable-card.astro rename to components/ClickableCard.astro diff --git a/components/image-link-card.astro b/components/ImageLinkCard.astro similarity index 100% rename from components/image-link-card.astro rename to components/ImageLinkCard.astro diff --git a/components/SocialIcons.astro b/components/SocialIcons.astro new file mode 100644 index 00000000..1536252a --- /dev/null +++ b/components/SocialIcons.astro @@ -0,0 +1,22 @@ +--- +import type { Props } from "@astrojs/starlight/props" +import Default from "@astrojs/starlight/components/SocialIcons.astro" +--- + +v1 + + + + + + diff --git a/content/docs/blog/2023-11-15-v2-anouncement.md b/content/docs/blog/2023-11-15-v2-announcement.md similarity index 98% rename from content/docs/blog/2023-11-15-v2-anouncement.md rename to content/docs/blog/2023-11-15-v2-announcement.md index 6b2f0c23..655e7570 100644 --- a/content/docs/blog/2023-11-15-v2-anouncement.md +++ b/content/docs/blog/2023-11-15-v2-announcement.md @@ -70,3 +70,7 @@ This project is funded through [NGI0 Entrust](https://nlnet.nl/entrust), a fund [NLnet foundation logo](https://nlnet.nl) [NGI Zero Logo](https://nlnet.nl/entrust) + +:::note +Originally published on: https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/ +::: diff --git a/content/docs/index.mdx b/content/docs/index.mdx index d2ea8c4a..75dfea0e 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -30,13 +30,13 @@ banner: content: |

This is a live draft of the Data Package (v2) standard. - The previous version is Data Package (v1). + Please read the announcement.

--- -import About from "../../components/about.astro" -import Adoption from "../../components/adoption.astro" -import ClickableCard from "../../components/clickable-card.astro" +import About from "../../components/About.astro" +import Adoption from "../../components/Adoption.astro" +import ClickableCard from "../../components/ClickableCard.astro" import { CardGrid, LinkCard, Card } from "@astrojs/starlight/components"

Standard

diff --git a/content/docs/overview/adoption.mdx b/content/docs/overview/adoption.mdx index 696ebe19..1f33f5da 100644 --- a/content/docs/overview/adoption.mdx +++ b/content/docs/overview/adoption.mdx @@ -5,7 +5,7 @@ sidebar: --- import { adoption } from "../../../assets" -import ImageLinkCard from "../../../components/image-link-card.astro" +import ImageLinkCard from "../../../components/ImageLinkCard.astro" import { LinkCard, CardGrid } from "@astrojs/starlight/components" :::tip[Contribution Note] diff --git a/content/docs/overview/software.mdx b/content/docs/overview/software.mdx index 2a27607d..9924142b 100644 --- a/content/docs/overview/software.mdx +++ b/content/docs/overview/software.mdx @@ -5,7 +5,7 @@ sidebar: --- import { software } from "../../../assets" -import ImageLinkCard from "../../../components/image-link-card.astro" +import ImageLinkCard from "../../../components/ImageLinkCard.astro" import { LinkCard, CardGrid } from "@astrojs/starlight/components" :::tip[Contribution Note] From 3cb0ab0b3a5fea35aa612644166efb24a766e27b Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 08:36:48 +0100 Subject: [PATCH 09/10] Indicate the current version --- components/SocialIcons.astro | 1 + 1 file changed, 1 insertion(+) diff --git a/components/SocialIcons.astro b/components/SocialIcons.astro index 1536252a..6c2f8140 100644 --- a/components/SocialIcons.astro +++ b/components/SocialIcons.astro @@ -3,6 +3,7 @@ import type { Props } from "@astrojs/starlight/props" import Default from "@astrojs/starlight/components/SocialIcons.astro" --- +v2 (current) v1 From 9787e627a45dbdba8672c8f2b12ecaf0ed127997 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 26 Jun 2024 08:38:35 +0100 Subject: [PATCH 10/10] Fixed linting --- components/SocialIcons.astro | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/SocialIcons.astro b/components/SocialIcons.astro index 6c2f8140..0c54ad92 100644 --- a/components/SocialIcons.astro +++ b/components/SocialIcons.astro @@ -3,7 +3,9 @@ import type { Props } from "@astrojs/starlight/props" import Default from "@astrojs/starlight/components/SocialIcons.astro" --- -v2 (current) +v2 (current) v1