diff --git a/.github/workflows/pages.yaml b/.github/workflows/pages.yaml
index 7862641..4d0547c 100644
--- a/.github/workflows/pages.yaml
+++ b/.github/workflows/pages.yaml
@@ -11,7 +11,11 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
- name: run for all SDKs
- run: cd test-harness && go run ./cmd/web5-test-harness many sdks/* && mv _site ../_site
+ run: |
+ git clone https://github.com/TBD54566975/web5-js.git
+ git clone https://github.com/TBD54566975/web5-kt.git
+ cd test-harness
+ go run ./cmd/web5-test-harness many ../web5-* && mv _site ../_site
- name: Copy test-vectors
run: cp -r ./web5-test-vectors _site/
- uses: actions/upload-pages-artifact@v2
diff --git a/.github/workflows/self-test.yaml b/.github/workflows/self-test.yaml
index 69aeaa8..fb6cd24 100644
--- a/.github/workflows/self-test.yaml
+++ b/.github/workflows/self-test.yaml
@@ -10,11 +10,15 @@ jobs:
matrix:
SDK:
- web5-js
- - web5-kt
+ # - web5-kt
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
- name: self test
- run: cd test-harness && go run ./cmd/web5-test-harness one sdks/$SDK
+ run: |
+ git clone https://github.com/TBD54566975/${SDK} sdk
+ cd test-harness
+ go run ./cmd/web5-test-harness one ../sdk
env:
SDK: ${{ matrix.SDK }}
+ BUILDKITE_ANALYTICS_TOKEN: ${{ secrets.BUILDKITE_ANALYTICS_TOKEN }}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d5e1554..dd07eaf 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -5,7 +5,7 @@ There are many ways to be an open source contributor, and we're here to help you
* Propose ideas in our
[discord](https://discord.gg/tbd)
-* Raise an issue or feature request in our [issue tracker](https://github.com/TBD54566975/web5-spec/issues)
+* Raise an issue or feature request in our [issue tracker](https://github.com/TBD54566975/sdk-development/issues)
* Help another contributor with one of their questions, or a code review
* Suggest improvements to our Getting Started documentation by supplying a Pull Request
* Evangelize our work together in conferences, podcasts, and social media spaces.
@@ -171,7 +171,7 @@ $> ./gradlew clean build test
### Issues
Anyone from the community is welcome (and encouraged!) to raise issues via
-[GitHub Issues](https://github.com/TBD54566975/web5-spec/issues).
+[GitHub Issues](https://github.com/TBD54566975/sdk-development/issues).
### Discussions
@@ -181,7 +181,7 @@ We advocate an asynchronous, written debate model - so write up your thoughts an
### Continuous Integration
-Build and Test cycles are run on every commit to every branch on [GitHub Actions](https://github.com/TBD54566975/web5-spec/actions).
+Build and Test cycles are run on every commit to every branch on [GitHub Actions](https://github.com/TBD54566975/sdk-development/actions).
## Contribution
diff --git a/test-harness/cmd/web5-test-harness/test-many.go b/test-harness/cmd/web5-test-harness/test-many.go
index ced8d72..52893d4 100644
--- a/test-harness/cmd/web5-test-harness/test-many.go
+++ b/test-harness/cmd/web5-test-harness/test-many.go
@@ -4,7 +4,7 @@ import (
"fmt"
"os"
- "github.com/TBD54566975/web5-spec/reports"
+ "github.com/TBD54566975/sdk-development/reports"
"github.com/spf13/cobra"
"golang.org/x/exp/slog"
)
diff --git a/test-harness/cmd/web5-test-harness/test-one.go b/test-harness/cmd/web5-test-harness/test-one.go
index fc6a931..cadc754 100644
--- a/test-harness/cmd/web5-test-harness/test-one.go
+++ b/test-harness/cmd/web5-test-harness/test-one.go
@@ -1,15 +1,20 @@
package main
import (
+ "bytes"
"context"
"fmt"
+ "io"
+ "mime/multipart"
+ "net/http"
"os"
"path/filepath"
+ "strings"
"time"
- "github.com/TBD54566975/web5-spec/openapi"
- "github.com/TBD54566975/web5-spec/reports"
- "github.com/TBD54566975/web5-spec/tests"
+ "github.com/TBD54566975/sdk-development/openapi"
+ "github.com/TBD54566975/sdk-development/reports"
+ "github.com/TBD54566975/sdk-development/tests"
"github.com/spf13/cobra"
"golang.org/x/exp/slog"
)
@@ -43,6 +48,20 @@ var (
}
}
+ buildkiteToken := os.Getenv("BUILDKITE_ANALYTICS_TOKEN")
+ if buildkiteToken != "" {
+ if err := buildkiteUpload(report, buildkiteToken); err != nil {
+ slog.Error("error sending results to buildkite", "error", err)
+ }
+ }
+
+ junitFile := os.Getenv("JUNIT_REPORT")
+ if junitFile != "" {
+ if err := reports.WriteJunitToFile(report, junitFile); err != nil {
+ slog.Error("error writing junit report", "file", junitFile, "error", err)
+ }
+ }
+
if !report.IsPassing() {
os.Exit(1)
}
@@ -129,3 +148,88 @@ func testOne(dir string) (reports.Report, error) {
func init() {
root.AddCommand(testOneCmd)
}
+
+func buildkiteUpload(report reports.Report, buildkiteToken string) error {
+ slog.Info("uploading junit report to buildkit")
+
+ var body bytes.Buffer
+ writer := multipart.NewWriter(&body)
+
+ formFields := map[string]string{
+ "format": "junit",
+ "run_env[CI]": "github_actions",
+ "run_env[key]": fmt.Sprintf("%s-%s-%s", os.Getenv("GITHUB_ACTION"), os.Getenv("GITHUB_RUN_NUMBER"), os.Getenv("GITHUB_RUN_ATTEMPT")),
+ "run_env[number]": os.Getenv("GITHUB_RUN_NUMBER"),
+ "run_env[branch]": os.Getenv("GITHUB_REF"),
+ "run_env[commit_sha]": os.Getenv("GITHUB_SHA"),
+ "run_env[url]": fmt.Sprintf("https://github.com/%s/actions/runs/%s", os.Getenv("GITHUB_REPOSITORY"), os.Getenv("GITHUB_RUN_ID")),
+ }
+ for k, v := range formFields {
+ if err := addFormValue(writer, k, v); err != nil {
+ return err
+ }
+ }
+
+ part, err := writer.CreateFormFile("data", "web5-test-harness.xml")
+ if err != nil {
+ slog.Error("error creating form file")
+ return err
+ }
+
+ if err := reports.WriteJunit(report, part); err != nil {
+ slog.Error("error generating junit report")
+ return err
+ }
+
+ if err := writer.Close(); err != nil {
+ slog.Error("error closing multi-part form writer")
+ return err
+ }
+
+ req, err := http.NewRequest(http.MethodPost, "https://analytics-api.buildkite.com/v1/uploads", &body)
+ if err != nil {
+ slog.Error("error constructing request to buildkite")
+ return err
+ }
+
+ req.Header.Add("Content-Type", writer.FormDataContentType())
+ req.Header.Add("Authorization", fmt.Sprintf("Token token=%s", buildkiteToken))
+
+ resp, err := http.DefaultClient.Do(req)
+ if err != nil {
+ slog.Error("error uploading results to buildkite")
+ return err
+ }
+ defer resp.Body.Close()
+
+ responseBody := bytes.Buffer{}
+ if _, err := io.Copy(&responseBody, resp.Body); err != nil {
+ slog.Error("error reading response from buildkite")
+ return err
+ }
+
+ if resp.StatusCode > 299 {
+ slog.Error("unexpected response status from buildkite", "status", resp.Status, "response", body.String())
+ return fmt.Errorf("unexpected %s", resp.Status)
+ }
+
+ slog.Info("successfully uploaded results to buildkite", "response", body.String())
+
+ return nil
+}
+
+func addFormValue(writer *multipart.Writer, key, value string) error {
+ field, err := writer.CreateFormField(key)
+ if err != nil {
+ slog.Error("error creating form field", "key", key, "value", value)
+ return err
+ }
+
+ _, err = io.Copy(field, strings.NewReader(value))
+ if err != nil {
+ slog.Error("error writing form field value", "key", key, "value", value)
+ return err
+ }
+
+ return nil
+}
diff --git a/test-harness/go.mod b/test-harness/go.mod
index 643f1c5..82327ef 100644
--- a/test-harness/go.mod
+++ b/test-harness/go.mod
@@ -1,4 +1,4 @@
-module github.com/TBD54566975/web5-spec
+module github.com/TBD54566975/sdk-development
go 1.20
diff --git a/test-harness/reports/html.go b/test-harness/reports/html.go
new file mode 100644
index 0000000..9a7c914
--- /dev/null
+++ b/test-harness/reports/html.go
@@ -0,0 +1,62 @@
+package reports
+
+import (
+ "fmt"
+ "os"
+ "strings"
+
+ "golang.org/x/exp/slog"
+)
+
+func sanatizeHTML(dirty error) string {
+ clean := strings.ReplaceAll(dirty.Error(), "<", "<")
+ clean = strings.ReplaceAll(clean, ">", ">")
+ clean = strings.ReplaceAll(clean, "\n", "\\\\n")
+
+ return clean
+}
+
+type htmlTemplateInput struct {
+ Reports []Report
+ Tests map[string][]string
+}
+
+func WriteHTML(reports []Report, filename string) error {
+ slog.Info("writing html report")
+
+ testmap := make(map[string]map[string]bool)
+ for _, report := range reports {
+ for category, tests := range report.Results {
+ if _, ok := tests[category]; !ok {
+ testmap[category] = map[string]bool{}
+ }
+
+ for test := range tests {
+ testmap[category][test] = true
+ }
+ }
+ }
+
+ templateInput := htmlTemplateInput{
+ Reports: reports,
+ Tests: make(map[string][]string),
+ }
+
+ for category, tests := range testmap {
+ for test := range tests {
+ templateInput.Tests[category] = append(templateInput.Tests[category], test)
+ }
+ }
+
+ f, err := os.Create(filename)
+ if err != nil {
+ return fmt.Errorf("error opening %s: %v", filename, err)
+ }
+ defer f.Close()
+
+ if err := htmlTemplates.ExecuteTemplate(f, "report-template.html", templateInput); err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/test-harness/reports/junit.go b/test-harness/reports/junit.go
new file mode 100644
index 0000000..0869b65
--- /dev/null
+++ b/test-harness/reports/junit.go
@@ -0,0 +1,55 @@
+package reports
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "time"
+)
+
+func durationToJunit(t time.Duration) string {
+ return fmt.Sprintf("%f", float64(t)/float64(time.Second))
+}
+
+type junitTemplateInput struct {
+ TimeTotal time.Duration
+ TimePerTestSuite map[string]time.Duration
+ Report Report
+}
+
+func WriteJunitToFile(report Report, filename string) error {
+ f, err := os.Create(filename)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+
+ if err := WriteJunit(report, f); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func WriteJunit(report Report, writer io.Writer) error {
+ templateInput := junitTemplateInput{
+ Report: report,
+ TimePerTestSuite: map[string]time.Duration{},
+ }
+
+ for testsuite, results := range report.Results {
+ var testsuiteTime time.Duration
+ for _, result := range results {
+ testsuiteTime = testsuiteTime + result.Time
+ templateInput.TimeTotal = templateInput.TimeTotal + result.Time
+ }
+
+ templateInput.TimePerTestSuite[testsuite] = testsuiteTime
+ }
+
+ if err := textTemplates.ExecuteTemplate(writer, "report-template.junit.xml", templateInput); err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/test-harness/reports/md.go b/test-harness/reports/md.go
new file mode 100644
index 0000000..111f9bb
--- /dev/null
+++ b/test-harness/reports/md.go
@@ -0,0 +1,18 @@
+package reports
+
+import "os"
+
+func WriteMarkdown(report Report, filename string) error {
+ f, err := os.Create(filename)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+
+ err = textTemplates.ExecuteTemplate(f, "report-template.md", report)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/test-harness/reports/report-template.html b/test-harness/reports/report-template.html
index d608981..fdcd408 100644
--- a/test-harness/reports/report-template.html
+++ b/test-harness/reports/report-template.html
@@ -28,12 +28,12 @@
{{ $category }}
{{ range $.Reports }}
{{ if not (index (index .Results $category) $test) }}
- {{ index (index .Results $category) $test | getEmoji }}
+ {{ (index (index .Results $category) $test).GetEmoji }}
{{ else }}
- {{ index (index .Results $category) $test | getEmoji }}
+ {{ (index (index .Results $category) $test).GetEmoji }}
- {{ range index (index .Results $category) $test }}- {{ . }}
{{ end }}
+ {{ range (index (index .Results $category) $test).Errors }}- {{ . }}
{{ end }}
{{ end }}
| {{ end }}
diff --git a/test-harness/reports/report-template.junit.xml b/test-harness/reports/report-template.junit.xml
new file mode 100644
index 0000000..18a952a
--- /dev/null
+++ b/test-harness/reports/report-template.junit.xml
@@ -0,0 +1,19 @@
+
+
+{{ range $testSuiteName, $tests := .Report.Results }}
+
+ {{ range $testCaseName, $result := $tests }}
+
+ {{ if $result.IsSkipped }}
+
+ {{ else }}
+
+ {{ range $_, $err := $result.Errors }}{{ $err }}{{ end }}
+
+ {{ end }}
+
+ {{ else }}/>{{ end}}
+ {{ end }}
+
+{{ end }}
+
\ No newline at end of file
diff --git a/test-harness/reports/report-template.md b/test-harness/reports/report-template.md
index 8da8bc8..955ac42 100644
--- a/test-harness/reports/report-template.md
+++ b/test-harness/reports/report-template.md
@@ -8,6 +8,6 @@ SDK: [{{ .TestServerID.Name }}]({{ .TestServerID.Url }}) ({{ .TestServerID.Langu
| Feature | Result |
| ------- | ------ |{{ range $test, $result := $results }}
-| {{ $test }} | {{ $result | getEmoji}}{{ if $result }} {{ range $result }}{{ . | sanatizeHTML }}
{{ end }}
{{ end }} |{{ end }}
+| {{ $test }} | {{ $result.GetEmoji }}{{ if $result.Errors }} {{ range $result.Errors }}{{ . | sanatizeHTML }}
{{ end }}
{{ end }} |{{ end }}
{{ end }}
diff --git a/test-harness/reports/report-template.txt b/test-harness/reports/report-template.txt
index 601148d..aec8aa7 100644
--- a/test-harness/reports/report-template.txt
+++ b/test-harness/reports/report-template.txt
@@ -3,5 +3,5 @@ web5 spec conformance report for {{ .TestServerID.Name }} ({{ .TestServerID.Url
{{ range $groupName, $results := .Results }}
{{ $groupName }}
======================{{ range $test, $result := $results }}
-{{ $test }}: {{ $result | getEmoji }} {{ if $result }}fail: {{ $result }}{{ else }}pass{{ end }}{{ end }}
+{{ $test }}: {{ $result.GetEmoji }} {{ if $result.Errors }}fail: {{ $result.Errors }}{{ else }}pass{{ end }}{{ end }}
{{ end }}
diff --git a/test-harness/reports/reports.go b/test-harness/reports/reports.go
index f035f01..3266714 100644
--- a/test-harness/reports/reports.go
+++ b/test-harness/reports/reports.go
@@ -1,48 +1,59 @@
package reports
import (
- "bytes"
"embed"
- "fmt"
- "html/template"
- "os"
- "strings"
+ "errors"
+ htmltemplate "html/template"
+ texttemplate "text/template"
+ "time"
- "golang.org/x/exp/slog"
-
- "github.com/TBD54566975/web5-spec/openapi"
- "github.com/TBD54566975/web5-spec/tests"
+ "github.com/TBD54566975/sdk-development/openapi"
)
-//go:embed *
-var templatesFS embed.FS
+var (
+ ErrNotSupported = errors.New("test not supported by this SDK")
-var templates = template.New("")
+ //go:embed *
+ templatesFS embed.FS
+
+ htmlTemplates = htmltemplate.New("")
+ textTemplates = texttemplate.New("")
+ funcmap = map[string]any{
+ "sanatizeHTML": sanatizeHTML,
+ "durationToJunit": durationToJunit,
+ }
+)
func init() {
- templates.Funcs(template.FuncMap{
- "sanatizeHTML": sanatizeHTML,
- "getEmoji": getEmoji,
- })
- _, err := templates.ParseFS(templatesFS, "report-template.*")
- if err != nil {
+ htmlTemplates.Funcs(funcmap)
+ if _, err := htmlTemplates.ParseFS(templatesFS, "report-template.html"); err != nil {
+ panic(err)
+ }
+
+ textTemplates.Funcs(funcmap)
+ if _, err := textTemplates.ParseFS(templatesFS, "report-template.*"); err != nil {
panic(err)
}
}
type Report struct {
TestServerID openapi.TestServerID
- Results map[string]map[string][]error
+ Results map[string]map[string]Result
+}
+
+type Result struct {
+ Errors []error
+ Time time.Duration
}
func (r Report) IsPassing() bool {
for _, results := range r.Results {
- for _, errs := range results {
- if len(errs) == 1 && errs[0] == tests.ErrNotSupported {
+ for _, result := range results {
+ if result.IsSkipped() {
continue
}
- if len(errs) > 0 {
+ if len(result.Errors) > 0 {
return false
}
}
@@ -52,90 +63,18 @@ func (r Report) IsPassing() bool {
return true
}
-func (r Report) Text() (string, error) {
- var buffer bytes.Buffer
-
- if err := templates.ExecuteTemplate(&buffer, "report-template.txt", r); err != nil {
- return "", err
- }
-
- return buffer.String(), nil
-}
-
-func WriteMarkdown(report Report, filename string) error {
- f, err := os.Create(filename)
- if err != nil {
- return err
- }
- defer f.Close()
-
- err = templates.ExecuteTemplate(f, "report-template.md", report)
- if err != nil {
- return err
- }
-
- return nil
-}
-
-func sanatizeHTML(dirty error) string {
- clean := strings.ReplaceAll(dirty.Error(), "<", "<")
- clean = strings.ReplaceAll(clean, ">", ">")
- clean = strings.ReplaceAll(clean, "\n", "\\\\n")
-
- return clean
+func (r Result) IsSkipped() bool {
+ return len(r.Errors) == 1 && r.Errors[0] == ErrNotSupported
}
-func getEmoji(errs []error) string {
- if len(errs) == 0 {
+func (r Result) GetEmoji() string {
+ if len(r.Errors) == 0 {
return "✅"
}
- if len(errs) == 1 && errs[0] == tests.ErrNotSupported {
+ if len(r.Errors) == 1 && r.Errors[0] == ErrNotSupported {
return "🚧"
}
return "❌"
}
-
-type htmlTemplateInput struct {
- Reports []Report
- Tests map[string][]string
-}
-
-func WriteHTML(reports []Report, filename string) error {
- slog.Info("writing html report")
-
- testmap := map[string]map[string]bool{}
- for _, report := range reports {
- for category, tests := range report.Results {
- if _, ok := tests[category]; !ok {
- testmap[category] = map[string]bool{}
- }
-
- for test := range tests {
- testmap[category][test] = true
- }
- }
- }
-
- templateInput := htmlTemplateInput{Reports: reports, Tests: map[string][]string{}}
-
- for category, tests := range testmap {
- templateInput.Tests[category] = []string{}
- for test := range tests {
- templateInput.Tests[category] = append(templateInput.Tests[category], test)
- }
- }
-
- f, err := os.Create(filename)
- if err != nil {
- return fmt.Errorf("error opening %s: %v", filename, err)
- }
- defer f.Close()
-
- if err := templates.ExecuteTemplate(f, "report-template.html", templateInput); err != nil {
- return err
- }
-
- return nil
-}
diff --git a/test-harness/reports/text.go b/test-harness/reports/text.go
new file mode 100644
index 0000000..89a83aa
--- /dev/null
+++ b/test-harness/reports/text.go
@@ -0,0 +1,13 @@
+package reports
+
+import "bytes"
+
+func (r Report) Text() (string, error) {
+ var buffer bytes.Buffer
+
+ if err := textTemplates.ExecuteTemplate(&buffer, "report-template.txt", r); err != nil {
+ return "", err
+ }
+
+ return buffer.String(), nil
+}
diff --git a/test-harness/sdks/web5-js/.gitignore b/test-harness/sdks/web5-js/.gitignore
deleted file mode 100644
index 3c3629e..0000000
--- a/test-harness/sdks/web5-js/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/test-harness/sdks/web5-js/credentials.ts b/test-harness/sdks/web5-js/credentials.ts
deleted file mode 100644
index 39908fb..0000000
--- a/test-harness/sdks/web5-js/credentials.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Request, Response } from 'express';
-import { VerifiableCredential, SignOptions } from '@web5/credentials';
-import { DidKeyMethod, PortableDid } from '@web5/dids';
-import { Ed25519, Jose } from '@web5/crypto';
-import { paths } from './openapi.js';
-
-type Signer = (data: Uint8Array) => Promise;
-
-let _ownDid: PortableDid;
-
-async function getOwnDid(): Promise {
- if(_ownDid) {
- return _ownDid;
- }
- _ownDid = await DidKeyMethod.create();
- return _ownDid;
-}
-
-export async function credentialIssue(req: Request, res: Response) {
- const body: paths["/credentials/issue"]["post"]["requestBody"]["content"]["application/json"] =
- req.body;
-
- const ownDid = await getOwnDid()
-
- // build signing options
- const [signingKeyPair] = ownDid.keySet.verificationMethodKeys!;
- const privateKey = (await Jose.jwkToKey({ key: signingKeyPair.privateKeyJwk!})).keyMaterial;
- const subjectIssuerDid = body.credential.credentialSubject["id"] as string;
- const signer = EdDsaSigner(privateKey);
- const signOptions: SignOptions = {
- issuerDid : ownDid.did,
- subjectDid : subjectIssuerDid,
- kid : '#' + ownDid.did.split(':')[2],
- signer : signer
- };
-
- const vc: VerifiableCredential = VerifiableCredential.create(body.credential.type[body.credential.type.length - 1], body.credential.issuer, subjectIssuerDid, body.credential.credentialSubject);
- const vcJwt: string = await vc.sign(signOptions);
-
- const resp: paths["/credentials/issue"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- verifiableCredential: {data: vcJwt}
- };
-
- res.json(resp);
-}
-
-function EdDsaSigner(privateKey: Uint8Array): Signer {
- return async (data: Uint8Array): Promise => {
- const signature = await Ed25519.sign({ data, key: privateKey});
- return signature;
- };
-}
\ No newline at end of file
diff --git a/test-harness/sdks/web5-js/did-ion.ts b/test-harness/sdks/web5-js/did-ion.ts
deleted file mode 100644
index c7d68b3..0000000
--- a/test-harness/sdks/web5-js/did-ion.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { DidIonMethod } from "@web5/dids";
-import { paths } from "./openapi.js";
-import { Request, Response } from "express";
-
-
-export async function didIonCreate(req: Request, res: Response) {
- // const body: paths["/did-ion/create"]["post"]["requestBody"]["content"]["application/json"] =
- // req.body;
- const did = await DidIonMethod.create({});
-
- const resp: paths["/did-ion/create"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- did: did.did,
- };
-
- res.json(resp);
-}
diff --git a/test-harness/sdks/web5-js/encoders.ts b/test-harness/sdks/web5-js/encoders.ts
deleted file mode 100644
index b8053df..0000000
--- a/test-harness/sdks/web5-js/encoders.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { paths } from "./openapi.js";
-import { Request, Response } from "express";
-import { Convert } from '@web5/common';
-import { sha256 } from '@noble/hashes/sha256';
-
-export function encoderBase64Encode(req: Request, res: Response) {
- const requestBody: paths["/encoders/base64/encode"]["post"]["requestBody"]["content"]["application/json"] =
- req.body;
-
- const resp: paths["/encoders/base64/encode"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- data: Convert.string(requestBody.data).toBase64Url()
- };
-
- res.json(resp);
-}
-
-export function encoderBase64Decode(req: Request, res: Response) {
- const requestBody: paths["/encoders/base64/encode"]["post"]["requestBody"]["content"]["application/json"] =
- req.body;
-
- const resp: paths["/encoders/base64/encode"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- data: Convert.base64Url(requestBody.data).toString()
- };
-
- res.json(resp);
-}
-
-export function encoderBase58Encode(req: Request, res: Response) {
- const requestBody: paths["/encoders/base58/encode"]["post"]["requestBody"]["content"]["application/json"] =
- req.body;
-
- const resp: paths["/encoders/base58/encode"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- data: Convert.string(requestBody.data).toBase58Btc()
- };
-
- res.json(resp);
-}
-
-export function encoderBase58Decode(req: Request, res: Response) {
- const requestBody: paths["/encoders/base58/encode"]["post"]["requestBody"]["content"]["application/json"] =
- req.body;
-
- const resp: paths["/encoders/base58/encode"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- data: Convert.base58Btc(requestBody.data).toString()
- };
-
- res.json(resp);
-}
-
-export function encoderSha256Encode(req: Request, res: Response) {
- const requestBody: paths["/encoders/sha256/encode"]["post"]["requestBody"]["content"]["application/json"] =
- req.body;
-
- const resp: paths["/encoders/sha256/encode"]["post"]["responses"]["200"]["content"]["application/json"] =
- {
- data: Convert.arrayBuffer(sha256(requestBody.data)).toHex()
- };
-
- res.json(resp);
-}
\ No newline at end of file
diff --git a/test-harness/sdks/web5-js/main.ts b/test-harness/sdks/web5-js/main.ts
deleted file mode 100644
index 361c9d6..0000000
--- a/test-harness/sdks/web5-js/main.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import express from "express";
-import { credentialIssue } from "./credentials.js";
-import { didIonCreate } from "./did-ion.js";
-import { encoderBase58Decode, encoderBase58Encode, encoderBase64Decode, encoderBase64Encode, encoderSha256Encode } from "./encoders.js"
-import type * as http from "http";
-import type { Request, Response } from "express";
-import { paths } from "./openapi.js"; // generated with npx openapi-typescript .web5-component/openapi.yaml -o .web5-component/openapi.d.ts
-import bodyparser from "body-parser";
-
-const app: express.Application = express();
-app.use(express.json());
-app.use(bodyparser.json());
-
-app.post("/did-ion/create", didIonCreate);
-
-app.post("/credentials/issue", credentialIssue);
-
-app.post("/encoders/base64/encode", encoderBase64Encode);
-app.post("/encoders/base64/decode", encoderBase64Decode);
-// app.post("/encoders/base58/encode", encoderBase58Encode);
-// app.post("/encoders/base58/decode", encoderBase58Decode);
-app.post("/encoders/sha256/encode", encoderSha256Encode);
-
-const serverID: paths["/"]["get"]["responses"]["200"]["content"]["application/json"] =
- {
- name: "web5-js",
- language: "JavaScript",
- url: "https://github.com/TBD54566975/web5-js",
- };
-app.get("/", (req, res) => {
- res.json(serverID);
-});
-
-let server: http.Server;
-app.get("/shutdown", (req: Request, res: Response) => {
- res.send("ok");
- console.log("shutting down server");
- server.close((e) => {
- if (e) {
- console.error("error shutting down server:", e.stack || e);
- }
- });
-});
-
-server = app.listen(8080, () => console.log("test server started"));
-process.on("SIGTERM", () => {
- console.log("SIGTERM signal received: closing HTTP server");
- server.close(() => {
- console.log("HTTP server closed");
- });
-});
diff --git a/test-harness/sdks/web5-js/openapi.d.ts b/test-harness/sdks/web5-js/openapi.d.ts
deleted file mode 100644
index 953e4ee..0000000
--- a/test-harness/sdks/web5-js/openapi.d.ts
+++ /dev/null
@@ -1,498 +0,0 @@
-/**
- * This file was auto-generated by openapi-typescript.
- * Do not make direct changes to the file.
- */
-
-
-export interface paths {
- "/did-ion/create": {
- post: operations["did_ion_create"];
- };
- "/did-ion/update": {
- post: operations["did_ion_update"];
- };
- "/did-ion/recover": {
- post: operations["did_ion_recover"];
- };
- "/did-ion/deactivate": {
- post: operations["did_ion_deactivate"];
- };
- "/did-ion/resolve": {
- post: operations["did_ion_resolve"];
- };
- "/did-ion/anchor": {
- post: operations["did_ion_anchor"];
- };
- "/did-key/create": {
- post: operations["did_key_create"];
- };
- "/did-key/resolve": {
- post: operations["did_key_resolve"];
- };
- "/credentials/presentation-exchange": {
- post: operations["credential_presentation_exchange"];
- };
- "/credentials/issue": {
- post: operations["credential_issue"];
- };
- "/crypto/generate-key/secp256k1": {
- post: operations["crypto_generate_key_secp256k1"];
- };
- "/crypto/generate-key/ed25519": {
- post: operations["crypto_generate_key_ed25519"];
- };
- "/crypto/generate-key/secp256r1": {
- post: operations["crypto_generate_key_secp256r1"];
- };
- "/crypto/verify/secp256k1": {
- post: operations["crypto_verify_secp256k1"];
- };
- "/crypto/verify/ed25519": {
- post: operations["crypto_verify_ed25519"];
- };
- "/crypto/verify/secp256r1": {
- post: operations["crypto_verify_secp256r1"];
- };
- "/crypto/jose/jws-create": {
- post: operations["crypto_jose_jws_create"];
- };
- "/crypto/jose/jws-verify": {
- post: operations["crypto_jose_jws_verify"];
- };
- "/crypto/jose/jwk-encode": {
- post: operations["crypto_jose_jwk_encode"];
- };
- "/crypto/jose/jwk-decode": {
- post: operations["crypto_jose_jwk_decode"];
- };
- "/crypto/jose/jwt-create": {
- post: operations["crypto_jose_jwt_create"];
- };
- "/crypto/jose/jwt-verify": {
- post: operations["crypto_jose_jwt_verify"];
- };
- "/crypto/key-manager/generate-key": {
- post: operations["crypto_key_manager_generate_key"];
- };
- "/crypto/key-manager/import-key": {
- post: operations["crypto_key_manager_import_key"];
- };
- "/crypto/key-manager/sign": {
- post: operations["crypto_key_manager_sign"];
- };
- "/crypto/key-manager/verify": {
- post: operations["crypto_key_manager_verify"];
- };
- "/encoders/base64/encode": {
- post: operations["encoders_base64_encode"];
- };
- "/encoders/base64/decode": {
- post: operations["encoders_base64_decode"];
- };
- "/encoders/base58/encode": {
- post: operations["encoders_base58_encode"];
- };
- "/encoders/base58/decode": {
- post: operations["encoders_base58_decode"];
- };
- "/encoders/sha256/encode": {
- post: operations["encoders_sha256_encode"];
- };
- "/encoders/cbor/encode": {
- post: operations["encoders_cbor_encode"];
- };
- "/encoders/cbor/decode": {
- post: operations["encoders_cbor_decode"];
- };
- "/ready": {
- get: operations["server_ready"];
- };
- "/shutdown": {
- get: operations["server_shutdown"];
- };
- "/": {
- get: operations["identify_self"];
- };
-}
-
-export type webhooks = Record;
-
-export interface components {
- schemas: {
- CredentialIssuanceRequest: {
- credential: components["schemas"]["CredentialIssuanceRequestCredential"];
- options: components["schemas"]["CredentialIssuanceRequestOptions"];
- };
- CredentialIssuanceRequestCredential: {
- "@context": string[];
- id: string;
- type: string[];
- issuer: string;
- issuanceDate: string;
- expirationDate: string;
- credentialSubject: components["schemas"]["CredentialSubject"];
- };
- CredentialIssuanceRequestOptions: {
- created: string;
- challenge: string;
- domain: string;
- credentialStatus: components["schemas"]["CredentialStatus"];
- };
- CredentialIssuer: {
- id: string;
- };
- CredentialSubject: {
- [key: string]: unknown;
- };
- CredentialStatus: {
- type: string;
- };
- CredentialIssuanceResponse: {
- verifiableCredential: components["schemas"]["StringEncodedData"];
- };
- VerifiableCredential: {
- "@context": string[];
- id: string;
- type: string[];
- issuer: components["schemas"]["CredentialIssuer"];
- issuanceDate: string;
- expirationDate: string;
- credentialSubject: components["schemas"]["CredentialSubject"];
- proof: components["schemas"]["CredentialProof"];
- };
- CredentialProof: {
- type: string;
- created: string;
- challenge: string;
- domain: string;
- nonce: string;
- verificationMethod: string;
- proofPurpose: string;
- jws: string;
- proofValue: string;
- };
- TestServerID: {
- name: string;
- language: string;
- url: string;
- };
- DIDIonCreateResponse: {
- did: string;
- };
- StringEncodedData: {
- data: string;
- };
- PresentationExchangeRequest: {
- presentationDefinition?: components["schemas"]["PresentationDefinition"];
- vcJwts?: string[];
- };
- PresentationDefinition: {
- id?: string;
- name: string;
- purpose?: string;
- submissionRequirements?: components["schemas"]["PresentationDefinitionSubmissionRequirement"][];
- inputDescriptors: components["schemas"]["PresentationDefinitionInputDescriptor"][];
- };
- PresentationDefinitionSubmissionRequirement: {
- name?: string;
- purpose?: string;
- /** @enum {string} */
- rule: "all" | "pick";
- count?: number;
- min?: number;
- max?: number;
- from?: string;
- fromNested?: components["schemas"]["PresentationDefinitionSubmissionRequirement"][];
- };
- PresentationDefinitionInputDescriptor: {
- id: string;
- name?: string;
- purpose?: string;
- group?: string[];
- issuance?: components["schemas"]["PresentationDefinitionIssuance"][];
- constraints?: components["schemas"]["PresentationDefinitionConstraints"];
- };
- PresentationDefinitionIssuance: {
- manifest?: string;
- };
- PresentationDefinitionConstraints: {
- /** @enum {string} */
- limitDisclosure?: "required" | "preferred";
- statuses?: components["schemas"]["PresentationDefinitionStatuses"];
- fields?: components["schemas"]["PresentationDefinitionField"][];
- /** @enum {string} */
- subjectIsIssuer?: "required" | "preferred";
- isHolder?: components["schemas"]["PresentationDefinitionHolderSubject"][];
- sameSubject?: components["schemas"]["PresentationDefinitionHolderSubject"][];
- };
- PresentationDefinitionHolderSubject: {
- fieldId?: string[];
- /** @enum {string} */
- directive?: "required" | "preferred";
- };
- PresentationDefinitionField: {
- id?: string;
- path?: string[];
- purpose?: string;
- filter?: components["schemas"]["PresentationDefinitionFilter"];
- /** @enum {string} */
- predicate?: "required" | "preferred";
- name?: string;
- };
- PresentationDefinitionFilter: {
- const?: string;
- enum?: string[];
- exclusiveMinimum?: string;
- exclusiveMaximum?: string;
- format?: string;
- formatMaximum?: string;
- formatMinimum?: string;
- formatExclusiveMaximum?: string;
- formatExclusiveMinimum?: string;
- minLength?: number;
- maxLength?: number;
- minimum?: string;
- maximum?: string;
- pattern?: string;
- type?: string;
- };
- PresentationDefinitionStatuses: {
- active?: components["schemas"]["PresentationDefinitionStatus"];
- suspended?: components["schemas"]["PresentationDefinitionStatus"];
- revoked?: components["schemas"]["PresentationDefinitionStatus"];
- };
- PresentationDefinitionStatus: {
- /** @enum {string} */
- directive?: "required" | "allowed" | "disallowed";
- };
- };
- responses: never;
- parameters: never;
- requestBodies: never;
- headers: never;
- pathItems: never;
-}
-
-export type $defs = Record;
-
-export type external = Record;
-
-export interface operations {
-
- did_ion_create: {
- responses: {
- 200: {
- content: {
- "application/json": components["schemas"]["DIDIonCreateResponse"];
- };
- };
- };
- };
- did_ion_update: {
- };
- did_ion_recover: {
- };
- did_ion_deactivate: {
- };
- did_ion_resolve: {
- };
- did_ion_anchor: {
- };
- did_key_create: {
- };
- did_key_resolve: {
- };
- credential_presentation_exchange: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["PresentationExchangeRequest"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- credential_issue: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["CredentialIssuanceRequest"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["CredentialIssuanceResponse"];
- };
- };
- };
- };
- crypto_generate_key_secp256k1: {
- };
- crypto_generate_key_ed25519: {
- };
- crypto_generate_key_secp256r1: {
- };
- crypto_verify_secp256k1: {
- };
- crypto_verify_ed25519: {
- };
- crypto_verify_secp256r1: {
- };
- crypto_jose_jws_create: {
- };
- crypto_jose_jws_verify: {
- };
- crypto_jose_jwk_encode: {
- };
- crypto_jose_jwk_decode: {
- };
- crypto_jose_jwt_create: {
- };
- crypto_jose_jwt_verify: {
- };
- crypto_key_manager_generate_key: {
- };
- crypto_key_manager_import_key: {
- };
- crypto_key_manager_sign: {
- };
- crypto_key_manager_verify: {
- };
- encoders_base64_encode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- encoders_base64_decode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- encoders_base58_encode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- encoders_base58_decode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- encoders_sha256_encode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- encoders_cbor_encode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- encoders_cbor_decode: {
- requestBody: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- responses: {
- /** @description Successful operation */
- 200: {
- content: {
- "application/json": components["schemas"]["StringEncodedData"];
- };
- };
- };
- };
- server_ready: {
- responses: {
- /** @description server is ready */
- 200: {
- content: never;
- };
- };
- };
- server_shutdown: {
- responses: {
- /** @description server will shut down */
- 204: {
- content: never;
- };
- };
- };
- identify_self: {
- responses: {
- /** @description information about the test server */
- 200: {
- content: {
- "application/json": components["schemas"]["TestServerID"];
- };
- };
- };
- };
-}
diff --git a/test-harness/sdks/web5-js/package-lock.json b/test-harness/sdks/web5-js/package-lock.json
deleted file mode 100644
index 44eb3e0..0000000
--- a/test-harness/sdks/web5-js/package-lock.json
+++ /dev/null
@@ -1,2125 +0,0 @@
-{
- "name": "web5",
- "version": "1.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "web5",
- "version": "1.0.0",
- "license": "ISC",
- "dependencies": {
- "@web5/common": "^0.2.0",
- "@web5/credentials": "^0.3.1",
- "@web5/dids": "^0.2.0",
- "express": "^4.18.2"
- }
- },
- "node_modules/@astronautlabs/jsonpath": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@astronautlabs/jsonpath/-/jsonpath-1.1.2.tgz",
- "integrity": "sha512-FqL/muoreH7iltYC1EB5Tvox5E8NSOOPGkgns4G+qxRKl6k5dxEVljUjB5NcKESzkqwnUqWjSZkL61XGYOuV+A==",
- "dependencies": {
- "static-eval": "2.0.2"
- }
- },
- "node_modules/@decentralized-identity/ion-pow-sdk": {
- "version": "1.0.17",
- "resolved": "https://registry.npmjs.org/@decentralized-identity/ion-pow-sdk/-/ion-pow-sdk-1.0.17.tgz",
- "integrity": "sha512-vk7DTDM8aKDbFyu1ad/qkoRrGL4q+KvNeL/FNZXhkWPaDhVExBN/qGEoRLf1YSfFe+myto3+4RYTPut+riiqnw==",
- "dependencies": {
- "buffer": "6.0.3",
- "cross-fetch": "3.1.5",
- "hash-wasm": "4.9.0"
- }
- },
- "node_modules/@decentralized-identity/ion-sdk": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@decentralized-identity/ion-sdk/-/ion-sdk-1.0.1.tgz",
- "integrity": "sha512-+P+DXcRSFjsEsI5KIqUmVjpzgUT28B2lWpTO+IxiBcfibAN/1Sg20NebGTO/+serz2CnSZf95N2a1OZ6eXypGQ==",
- "dependencies": {
- "@noble/ed25519": "^2.0.0",
- "@noble/secp256k1": "^2.0.0",
- "canonicalize": "^2.0.0",
- "multiformats": "^12.0.1",
- "multihashes": "^4.0.3",
- "uri-js": "^4.4.1"
- }
- },
- "node_modules/@decentralized-identity/ion-sdk/node_modules/multiformats": {
- "version": "12.1.3",
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz",
- "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==",
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/@multiformats/base-x": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz",
- "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw=="
- },
- "node_modules/@noble/ciphers": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.1.4.tgz",
- "integrity": "sha512-d3ZR8vGSpy3v/nllS+bD/OMN5UZqusWiQqkyj7AwzTnhXFH72pF5oB4Ach6DQ50g5kXxC28LdaYBEpsyv9KOUQ==",
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@noble/curves": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz",
- "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==",
- "dependencies": {
- "@noble/hashes": "1.3.1"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@noble/ed25519": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-2.0.0.tgz",
- "integrity": "sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ]
- },
- "node_modules/@noble/hashes": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
- "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==",
- "engines": {
- "node": ">= 16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@noble/secp256k1": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-2.0.0.tgz",
- "integrity": "sha512-rUGBd95e2a45rlmFTqQJYEFA4/gdIARFfuTuTqLglz0PZ6AKyzyXsEZZq7UZn8hZsvaBgpCzKKBJizT2cJERXw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ]
- },
- "node_modules/@scure/base": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz",
- "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==",
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@sphereon/pex": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@sphereon/pex/-/pex-2.1.0.tgz",
- "integrity": "sha512-108iEqbu6D421pK9Q6bq4wnWcL8V+fEtw4Ry6NhBidIlDHuJehdLM8Z70A/axgNYMB1C0smMDYt1Xur/ROLwvQ==",
- "dependencies": {
- "@astronautlabs/jsonpath": "^1.1.2",
- "@sphereon/pex-models": "^2.0.3",
- "@sphereon/ssi-types": "^0.13.0",
- "ajv": "^8.12.0",
- "ajv-formats": "^2.1.1",
- "jwt-decode": "^3.1.2",
- "nanoid": "^3.3.6",
- "string.prototype.matchall": "^4.0.8"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@sphereon/pex-models": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@sphereon/pex-models/-/pex-models-2.1.1.tgz",
- "integrity": "sha512-0UX/CMwgiJSxzuBn6SLOTSKkm+uPq3dkNjl8w4EtppXp6zBB4lQMd1mJX7OifX5Bp5vPUfoz7bj2B+yyDtbZww=="
- },
- "node_modules/@sphereon/ssi-types": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/@sphereon/ssi-types/-/ssi-types-0.13.0.tgz",
- "integrity": "sha512-THzkvgY6AN4/0INgGowinzOFX6NeUQJ/KmAcXrBXx2Rny5v5wCp7LhBIlK21KF2/76fbiCyJvwcd/+Yeb0fjwQ==",
- "dependencies": {
- "jwt-decode": "^3.1.2"
- }
- },
- "node_modules/@web5/common": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@web5/common/-/common-0.2.1.tgz",
- "integrity": "sha512-Tt5P17HgQCx+Epw0IHnhRKqp5UU3E4xtsE8PkdghOBnvntBB0op5P6efvR1WqmJft5+VunDHt3yZAZstuqQkNg==",
- "dependencies": {
- "level": "8.0.0",
- "multiformats": "11.0.2"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@web5/credentials": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@web5/credentials/-/credentials-0.3.1.tgz",
- "integrity": "sha512-pV7i8AQ+7TZIA8pPQvuYNI5Gzvms8UqpLxtNg21Wh0+4Xs+tQtEMgJknolDj6/IShU0HcmIieh7aFg8Ldtj4BQ==",
- "dependencies": {
- "@sphereon/pex": "2.1.0",
- "did-jwt": "^7.2.6",
- "uuid": "^9.0.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@web5/crypto": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@web5/crypto/-/crypto-0.2.1.tgz",
- "integrity": "sha512-DM49030ftALhzXipYdsxfCexdSNJxlnj++YUiM+lbf9aEOxT3PCapDMSXi0MG1flPJHu/Q/LMebMN/aAr0WJ3A==",
- "dependencies": {
- "@noble/ciphers": "0.1.4",
- "@noble/curves": "1.1.0",
- "@noble/hashes": "1.3.1",
- "@web5/common": "0.2.1"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@web5/dids": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@web5/dids/-/dids-0.2.1.tgz",
- "integrity": "sha512-9t7AlUlb9mUBTaX5jK8AC7gTuikCic6ewHfWtaZ4TuDf5qi1PRhczmbm1h8zh7gVTd0zke8TR6QiBd9RyneSGA==",
- "dependencies": {
- "@decentralized-identity/ion-pow-sdk": "1.0.17",
- "@decentralized-identity/ion-sdk": "1.0.1",
- "@web5/common": "0.2.1",
- "@web5/crypto": "0.2.1",
- "canonicalize": "2.0.0",
- "did-resolver": "4.1.0",
- "level": "8.0.0",
- "ms": "2.1.3"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/abstract-level": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz",
- "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==",
- "dependencies": {
- "buffer": "^6.0.3",
- "catering": "^2.1.0",
- "is-buffer": "^2.0.5",
- "level-supports": "^4.0.0",
- "level-transcoder": "^1.0.1",
- "module-error": "^1.0.1",
- "queue-microtask": "^1.2.3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
- "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-array-buffer": "^3.0.2",
- "is-shared-array-buffer": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/browser-level": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz",
- "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==",
- "dependencies": {
- "abstract-level": "^1.0.2",
- "catering": "^2.1.1",
- "module-error": "^1.0.2",
- "run-parallel-limit": "^1.1.0"
- }
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
- "dependencies": {
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/canonicalize": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz",
- "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w=="
- },
- "node_modules/catering": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
- "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/classic-level": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz",
- "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==",
- "hasInstallScript": true,
- "dependencies": {
- "abstract-level": "^1.0.2",
- "catering": "^2.1.0",
- "module-error": "^1.0.1",
- "napi-macros": "^2.2.2",
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
- "dependencies": {
- "node-fetch": "2.6.7"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
- },
- "node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/did-jwt": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-7.4.5.tgz",
- "integrity": "sha512-PjUFy/yhYeivNrQI5EaqYvF+cRL0itARQlXPfAnUUcj4tm40fzCU/0yWkhAoAPfM41e8O+QVRqOXwg0cZjlVeg==",
- "dependencies": {
- "@noble/ciphers": "^0.4.0",
- "@noble/curves": "^1.0.0",
- "@noble/hashes": "^1.3.0",
- "@scure/base": "^1.1.3",
- "canonicalize": "^2.0.0",
- "did-resolver": "^4.1.0",
- "multibase": "^4.0.6",
- "multiformats": "^9.6.2",
- "uint8arrays": "3.1.1"
- }
- },
- "node_modules/did-jwt/node_modules/@noble/ciphers": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.0.tgz",
- "integrity": "sha512-xaUaUUDWbHIFSxaQ/pIe+33VG2mfJp6N/KxKLmZr5biWdNznCAmfu24QRhX10BbVAuqOahAoyp0S4M9md6GPDw==",
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/did-jwt/node_modules/multiformats": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
- "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
- },
- "node_modules/did-resolver": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz",
- "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA=="
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
- "is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.12",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "safe-array-concat": "^1.0.1",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.0",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
- "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
- "dependencies": {
- "get-intrinsic": "^1.2.2",
- "has-tostringtag": "^1.0.0",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=4.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
- "dependencies": {
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dependencies": {
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
- "dependencies": {
- "get-intrinsic": "^1.2.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hash-wasm": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/hash-wasm/-/hash-wasm-4.9.0.tgz",
- "integrity": "sha512-7SW7ejyfnRxuOc7ptQHSf4LDoZaWOivfzqw+5rpcQku0nHfmicPKE51ra9BiRLAmT8+gGLestr1XroUkqdjL6w=="
- },
- "node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/internal-slot": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
- "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
- "dependencies": {
- "get-intrinsic": "^1.2.2",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "dependencies": {
- "has-bigints": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
- "dependencies": {
- "which-typed-array": "^1.1.11"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- },
- "node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "node_modules/jwt-decode": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
- "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
- },
- "node_modules/level": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz",
- "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==",
- "dependencies": {
- "browser-level": "^1.0.1",
- "classic-level": "^1.2.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/level"
- }
- },
- "node_modules/level-supports": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
- "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/level-transcoder": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz",
- "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==",
- "dependencies": {
- "buffer": "^6.0.3",
- "module-error": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/module-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz",
- "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/multibase": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz",
- "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dependencies": {
- "@multiformats/base-x": "^4.0.1"
- },
- "engines": {
- "node": ">=12.0.0",
- "npm": ">=6.0.0"
- }
- },
- "node_modules/multiformats": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz",
- "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==",
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/multihashes": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz",
- "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==",
- "dependencies": {
- "multibase": "^4.0.1",
- "uint8arrays": "^3.0.0",
- "varint": "^5.0.2"
- },
- "engines": {
- "node": ">=12.0.0",
- "npm": ">=6.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/napi-macros": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz",
- "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g=="
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-gyp-build": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz",
- "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dependencies": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
- "node_modules/prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "set-function-name": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/run-parallel-limit": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz",
- "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
- "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "is-regex": "^1.1.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
- "dependencies": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-eval": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
- "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
- "dependencies": {
- "escodegen": "^1.8.1"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "regexp.prototype.flags": "^1.5.0",
- "set-function-name": "^2.0.0",
- "side-channel": "^1.0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
- "dependencies": {
- "prelude-ls": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "is-typed-array": "^1.1.10"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
- "dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/uint8arrays": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
- "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==",
- "dependencies": {
- "multiformats": "^9.4.2"
- }
- },
- "node_modules/uint8arrays/node_modules/multiformats": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
- "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/varint": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
- "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
- "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
- "dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.4",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "engines": {
- "node": ">=0.10.0"
- }
- }
- }
-}
diff --git a/test-harness/sdks/web5-js/package.json b/test-harness/sdks/web5-js/package.json
deleted file mode 100644
index 9872a1f..0000000
--- a/test-harness/sdks/web5-js/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "web5",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "type": "module",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "",
- "license": "ISC",
- "dependencies": {
- "@web5/common": "^0.2.0",
- "@web5/credentials": "^0.3.1",
- "@web5/dids": "^0.2.0",
- "express": "^4.18.2"
- }
-}
diff --git a/test-harness/sdks/web5-js/tsconfig.json b/test-harness/sdks/web5-js/tsconfig.json
deleted file mode 100644
index 46b6bcd..0000000
--- a/test-harness/sdks/web5-js/tsconfig.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "compilerOptions": {
- // "strict": true,
- "lib": [
- "DOM",
- "ES6"
- ],
- "allowJs": true,
- "target": "es6",
- "module": "NodeNext",
- "declaration": true,
- "declarationMap": true,
- "declarationDir": "dist/types",
- "outDir": "dist",
- // `NodeNext` will throw compilation errors if relative import paths are missing file extension
- // reference: https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/#ecmascript-module-support-in-node-js
- "moduleResolution": "NodeNext",
- "esModuleInterop": true,
- "resolveJsonModule": true
- },
- "include": [
- "main.ts",
- ],
- "exclude": [
- "node_modules"
- ]
-}
\ No newline at end of file
diff --git a/test-harness/sdks/web5-js/web5-spec.Dockerfile b/test-harness/sdks/web5-js/web5-spec.Dockerfile
deleted file mode 100644
index 5eba979..0000000
--- a/test-harness/sdks/web5-js/web5-spec.Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM node:18-alpine
-RUN apk add --no-cache git
-RUN git clone https://github.com/TBD54566975/web5-js.git /web5-js && cd /web5-js && npm ci && npm run build
-WORKDIR /web5-js
-RUN npm install express express-openapi
-ADD . /web5-js/.web5-component
-RUN npx tsc -p .web5-component/tsconfig.json
-CMD ["node", ".web5-component/dist/main.js"]
diff --git a/test-harness/tests/credentials.go b/test-harness/tests/credentials.go
index fd05a5c..f8a2b94 100644
--- a/test-harness/tests/credentials.go
+++ b/test-harness/tests/credentials.go
@@ -5,7 +5,7 @@ import (
"encoding/json"
"log"
- "github.com/TBD54566975/web5-spec/openapi"
+ "github.com/TBD54566975/sdk-development/openapi"
"gopkg.in/square/go-jose.v2"
)
@@ -65,6 +65,9 @@ func vcCreate(ctx context.Context, serverURL string) []error {
vcJwt := response.JSON200.VerifiableCredential.Data
token, err := jose.ParseSigned(vcJwt)
+ if err != nil {
+ return []error{err}
+ }
payloadBytes := token.UnsafePayloadWithoutVerification()
var payload Payload
diff --git a/test-harness/tests/did-ion.go b/test-harness/tests/did-ion.go
index d1eeb7e..576d780 100644
--- a/test-harness/tests/did-ion.go
+++ b/test-harness/tests/did-ion.go
@@ -5,7 +5,7 @@ import (
"fmt"
"strings"
- "github.com/TBD54566975/web5-spec/openapi"
+ "github.com/TBD54566975/sdk-development/openapi"
)
func init() {
diff --git a/test-harness/tests/encoders.go b/test-harness/tests/encoders.go
index 8700d76..fb1fa36 100644
--- a/test-harness/tests/encoders.go
+++ b/test-harness/tests/encoders.go
@@ -6,7 +6,7 @@ import (
"encoding/base64"
"fmt"
- "github.com/TBD54566975/web5-spec/openapi"
+ "github.com/TBD54566975/sdk-development/openapi"
"github.com/mr-tron/base58"
)
diff --git a/test-harness/tests/test-runner.go b/test-harness/tests/test-runner.go
index aadf0ae..cd99caa 100644
--- a/test-harness/tests/test-runner.go
+++ b/test-harness/tests/test-runner.go
@@ -2,13 +2,13 @@ package tests
import (
"context"
- "errors"
"fmt"
"math/rand"
"net/http"
"strings"
"time"
+ "github.com/TBD54566975/sdk-development/reports"
"golang.org/x/exp/slog"
)
@@ -16,20 +16,20 @@ type testfn func(ctx context.Context, serverURL string) []error
var tests = map[string]map[string]testfn{}
-var ErrNotSupported = errors.New("test not supported by this SDK")
-
-func RunTests(serverURL string) map[string]map[string][]error {
- results := map[string]map[string][]error{}
+func RunTests(serverURL string) map[string]map[string]reports.Result {
+ results := map[string]map[string]reports.Result{}
for group, ts := range tests {
slog.Info("starting test group", "group", group)
- results[group] = map[string][]error{}
+ results[group] = map[string]reports.Result{}
for t, fn := range ts {
slog.Info("running", "test", t)
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()
- results[group][t] = fn(ctx, serverURL)
- if results[t] != nil {
- slog.Error("error", "test", t, "error", results[t])
+ start := time.Now()
+ errs := fn(ctx, serverURL)
+ results[group][t] = reports.Result{
+ Errors: errs,
+ Time: time.Since(start),
}
}
}
@@ -76,7 +76,7 @@ func compareStringsContains(actual string, expected string, field string) error
func unexpectedResponseCode(r *http.Response, body []byte) []error {
if r.StatusCode == http.StatusNotFound {
- return []error{ErrNotSupported}
+ return []error{reports.ErrNotSupported}
}
return []error{fmt.Errorf("%s: %s", r.Status, string(body))}