mirror of
https://github.com/GlueOps/autoglue.git
synced 2026-02-14 05:10:05 +01:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1dbdd04808 | ||
|
|
45b55015ac | ||
|
|
6b191089a5 | ||
|
|
d2e6ff9812 | ||
|
|
98a6cf7e51 | ||
|
|
fb4af74e3c | ||
|
|
1021e06655 | ||
|
|
c6be7bf8eb | ||
|
|
1429c40b2b | ||
|
|
73c4904a42 |
41
cmd/serve.go
41
cmd/serve.go
@@ -115,6 +115,47 @@ var serveCmd = &cobra.Command{
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("failed to enqueue bootstrap_bastion: %v", err)
|
log.Printf("failed to enqueue bootstrap_bastion: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, err = jobs.Enqueue(
|
||||||
|
context.Background(),
|
||||||
|
uuid.NewString(),
|
||||||
|
"prepare_cluster",
|
||||||
|
bg.ClusterPrepareArgs{IntervalS: 120},
|
||||||
|
archer.WithMaxRetries(3),
|
||||||
|
archer.WithScheduleTime(time.Now().Add(60*time.Second)),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("failed to enqueue prepare_cluster: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = jobs.Enqueue(
|
||||||
|
context.Background(),
|
||||||
|
uuid.NewString(),
|
||||||
|
"cluster_setup",
|
||||||
|
bg.ClusterSetupArgs{
|
||||||
|
IntervalS: 120,
|
||||||
|
},
|
||||||
|
archer.WithMaxRetries(3),
|
||||||
|
archer.WithScheduleTime(time.Now().Add(60*time.Second)),
|
||||||
|
)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("failed to enqueue cluster setup: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = jobs.Enqueue(
|
||||||
|
context.Background(),
|
||||||
|
uuid.NewString(),
|
||||||
|
"cluster_bootstrap",
|
||||||
|
bg.ClusterBootstrapArgs{
|
||||||
|
IntervalS: 120,
|
||||||
|
},
|
||||||
|
archer.WithMaxRetries(3),
|
||||||
|
archer.WithScheduleTime(time.Now().Add(60*time.Second)),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("failed to enqueue cluster bootstrap: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = auth.Refresh(rt.DB, rt.Cfg.JWTPrivateEncKey)
|
_ = auth.Refresh(rt.DB, rt.Cfg.JWTPrivateEncKey)
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -26,7 +26,7 @@ require (
|
|||||||
github.com/spf13/viper v1.21.0
|
github.com/spf13/viper v1.21.0
|
||||||
github.com/swaggo/swag/v2 v2.0.0-rc4
|
github.com/swaggo/swag/v2 v2.0.0-rc4
|
||||||
golang.org/x/crypto v0.45.0
|
golang.org/x/crypto v0.45.0
|
||||||
golang.org/x/oauth2 v0.33.0
|
golang.org/x/oauth2 v0.34.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
gorm.io/datatypes v1.2.7
|
gorm.io/datatypes v1.2.7
|
||||||
gorm.io/driver/postgres v1.6.0
|
gorm.io/driver/postgres v1.6.0
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -306,6 +306,8 @@ golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
|
|||||||
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
|
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
|
||||||
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
|
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
|
||||||
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
|
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
|
||||||
|
golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
|
||||||
|
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
|||||||
@@ -107,6 +107,28 @@ func NewJobs(gdb *gorm.DB, dbUrl string) (*Jobs, error) {
|
|||||||
archer.WithInstances(1),
|
archer.WithInstances(1),
|
||||||
archer.WithTimeout(2*time.Minute),
|
archer.WithTimeout(2*time.Minute),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
c.Register(
|
||||||
|
"prepare_cluster",
|
||||||
|
ClusterPrepareWorker(gdb, jobs),
|
||||||
|
archer.WithInstances(1),
|
||||||
|
archer.WithTimeout(2*time.Minute),
|
||||||
|
)
|
||||||
|
|
||||||
|
c.Register(
|
||||||
|
"cluster_setup",
|
||||||
|
ClusterSetupWorker(gdb, jobs),
|
||||||
|
archer.WithInstances(1),
|
||||||
|
archer.WithTimeout(2*time.Minute),
|
||||||
|
)
|
||||||
|
|
||||||
|
c.Register(
|
||||||
|
"cluster_bootstrap",
|
||||||
|
ClusterBootstrapWorker(gdb, jobs),
|
||||||
|
archer.WithInstances(1),
|
||||||
|
archer.WithTimeout(60*time.Minute),
|
||||||
|
)
|
||||||
|
|
||||||
return jobs, nil
|
return jobs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
121
internal/bg/cluster_bootstrap.go
Normal file
121
internal/bg/cluster_bootstrap.go
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
package bg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/dyaksa/archer"
|
||||||
|
"github.com/dyaksa/archer/job"
|
||||||
|
"github.com/glueops/autoglue/internal/models"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ClusterBootstrapArgs struct {
|
||||||
|
IntervalS int `json:"interval_seconds,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClusterBootstrapResult struct {
|
||||||
|
Status string `json:"status"`
|
||||||
|
Processed int `json:"processed"`
|
||||||
|
Ready int `json:"ready"`
|
||||||
|
Failed int `json:"failed"`
|
||||||
|
ElapsedMs int `json:"elapsed_ms"`
|
||||||
|
FailedIDs []uuid.UUID `json:"failed_cluster_ids"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClusterBootstrapWorker(db *gorm.DB, jobs *Jobs) archer.WorkerFn {
|
||||||
|
return func(ctx context.Context, j job.Job) (any, error) {
|
||||||
|
args := ClusterBootstrapArgs{IntervalS: 120}
|
||||||
|
jobID := j.ID
|
||||||
|
start := time.Now()
|
||||||
|
|
||||||
|
_ = j.ParseArguments(&args)
|
||||||
|
if args.IntervalS <= 0 {
|
||||||
|
args.IntervalS = 120
|
||||||
|
}
|
||||||
|
|
||||||
|
var clusters []models.Cluster
|
||||||
|
if err := db.
|
||||||
|
Preload("BastionServer.SshKey").
|
||||||
|
Where("status = ?", clusterStatusProvisioning).
|
||||||
|
Find(&clusters).Error; err != nil {
|
||||||
|
log.Error().Err(err).Msg("[cluster_bootstrap] query clusters failed")
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
proc, ready, failCount := 0, 0, 0
|
||||||
|
var failedIDs []uuid.UUID
|
||||||
|
|
||||||
|
perClusterTimeout := 60 * time.Minute
|
||||||
|
|
||||||
|
for i := range clusters {
|
||||||
|
c := &clusters[i]
|
||||||
|
proc++
|
||||||
|
|
||||||
|
if c.BastionServer.ID == uuid.Nil || c.BastionServer.Status != "ready" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
logger := log.With().
|
||||||
|
Str("job", jobID).
|
||||||
|
Str("cluster_id", c.ID.String()).
|
||||||
|
Str("cluster_name", c.Name).
|
||||||
|
Logger()
|
||||||
|
|
||||||
|
logger.Info().Msg("[cluster_bootstrap] running make bootstrap")
|
||||||
|
|
||||||
|
runCtx, cancel := context.WithTimeout(ctx, perClusterTimeout)
|
||||||
|
out, err := runMakeOnBastion(runCtx, db, c, "bootstrap")
|
||||||
|
cancel()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
failCount++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
logger.Error().Err(err).Str("output", out).Msg("[cluster_bootstrap] make bootstrap failed")
|
||||||
|
_ = setClusterStatus(db, c.ID, clusterStatusFailed, fmt.Sprintf("make bootstrap: %v", err))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// you can choose a different terminal status here if you like
|
||||||
|
if err := setClusterStatus(db, c.ID, clusterStatusReady, ""); err != nil {
|
||||||
|
failCount++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
logger.Error().Err(err).Msg("[cluster_bootstrap] failed to mark cluster ready")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
ready++
|
||||||
|
logger.Info().Msg("[cluster_bootstrap] cluster marked ready")
|
||||||
|
}
|
||||||
|
|
||||||
|
res := ClusterBootstrapResult{
|
||||||
|
Status: "ok",
|
||||||
|
Processed: proc,
|
||||||
|
Ready: ready,
|
||||||
|
Failed: failCount,
|
||||||
|
ElapsedMs: int(time.Since(start).Milliseconds()),
|
||||||
|
FailedIDs: failedIDs,
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info().
|
||||||
|
Int("processed", proc).
|
||||||
|
Int("ready", ready).
|
||||||
|
Int("failed", failCount).
|
||||||
|
Msg("[cluster_bootstrap] reconcile tick ok")
|
||||||
|
|
||||||
|
// self-reschedule
|
||||||
|
next := time.Now().Add(time.Duration(args.IntervalS) * time.Second)
|
||||||
|
_, _ = jobs.Enqueue(
|
||||||
|
ctx,
|
||||||
|
uuid.NewString(),
|
||||||
|
"cluster_bootstrap",
|
||||||
|
args,
|
||||||
|
archer.WithScheduleTime(next),
|
||||||
|
archer.WithMaxRetries(1),
|
||||||
|
)
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
120
internal/bg/cluster_setup.go
Normal file
120
internal/bg/cluster_setup.go
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
package bg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/dyaksa/archer"
|
||||||
|
"github.com/dyaksa/archer/job"
|
||||||
|
"github.com/glueops/autoglue/internal/models"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ClusterSetupArgs struct {
|
||||||
|
IntervalS int `json:"interval_seconds,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClusterSetupResult struct {
|
||||||
|
Status string `json:"status"`
|
||||||
|
Processed int `json:"processed"`
|
||||||
|
Provisioning int `json:"provisioning"`
|
||||||
|
Failed int `json:"failed"`
|
||||||
|
ElapsedMs int `json:"elapsed_ms"`
|
||||||
|
FailedCluster []uuid.UUID `json:"failed_cluster_ids"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClusterSetupWorker(db *gorm.DB, jobs *Jobs) archer.WorkerFn {
|
||||||
|
return func(ctx context.Context, j job.Job) (any, error) {
|
||||||
|
args := ClusterSetupArgs{IntervalS: 120}
|
||||||
|
jobID := j.ID
|
||||||
|
start := time.Now()
|
||||||
|
|
||||||
|
_ = j.ParseArguments(&args)
|
||||||
|
if args.IntervalS <= 0 {
|
||||||
|
args.IntervalS = 120
|
||||||
|
}
|
||||||
|
|
||||||
|
var clusters []models.Cluster
|
||||||
|
if err := db.
|
||||||
|
Preload("BastionServer.SshKey").
|
||||||
|
Where("status = ?", clusterStatusPending).
|
||||||
|
Find(&clusters).Error; err != nil {
|
||||||
|
log.Error().Err(err).Msg("[cluster_setup] query clusters failed")
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
proc, prov, failCount := 0, 0, 0
|
||||||
|
var failedIDs []uuid.UUID
|
||||||
|
|
||||||
|
perClusterTimeout := 30 * time.Minute
|
||||||
|
|
||||||
|
for i := range clusters {
|
||||||
|
c := &clusters[i]
|
||||||
|
proc++
|
||||||
|
|
||||||
|
if c.BastionServer.ID == uuid.Nil || c.BastionServer.Status != "ready" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
logger := log.With().
|
||||||
|
Str("job", jobID).
|
||||||
|
Str("cluster_id", c.ID.String()).
|
||||||
|
Str("cluster_name", c.Name).
|
||||||
|
Logger()
|
||||||
|
|
||||||
|
logger.Info().Msg("[cluster_setup] running make setup")
|
||||||
|
|
||||||
|
runCtx, cancel := context.WithTimeout(ctx, perClusterTimeout)
|
||||||
|
out, err := runMakeOnBastion(runCtx, db, c, "setup")
|
||||||
|
cancel()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
failCount++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
logger.Error().Err(err).Str("output", out).Msg("[cluster_setup] make setup failed")
|
||||||
|
_ = setClusterStatus(db, c.ID, clusterStatusFailed, fmt.Sprintf("make setup: %v", err))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := setClusterStatus(db, c.ID, clusterStatusProvisioning, ""); err != nil {
|
||||||
|
failCount++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
logger.Error().Err(err).Msg("[cluster_setup] failed to mark cluster provisioning")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
prov++
|
||||||
|
logger.Info().Msg("[cluster_setup] cluster moved to provisioning")
|
||||||
|
}
|
||||||
|
|
||||||
|
res := ClusterSetupResult{
|
||||||
|
Status: "ok",
|
||||||
|
Processed: proc,
|
||||||
|
Provisioning: prov,
|
||||||
|
Failed: failCount,
|
||||||
|
ElapsedMs: int(time.Since(start).Milliseconds()),
|
||||||
|
FailedCluster: failedIDs,
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info().
|
||||||
|
Int("processed", proc).
|
||||||
|
Int("provisioning", prov).
|
||||||
|
Int("failed", failCount).
|
||||||
|
Msg("[cluster_setup] reconcile tick ok")
|
||||||
|
|
||||||
|
// self-reschedule
|
||||||
|
next := time.Now().Add(time.Duration(args.IntervalS) * time.Second)
|
||||||
|
_, _ = jobs.Enqueue(
|
||||||
|
ctx,
|
||||||
|
uuid.NewString(),
|
||||||
|
"cluster_setup",
|
||||||
|
args,
|
||||||
|
archer.WithScheduleTime(next),
|
||||||
|
archer.WithMaxRetries(1),
|
||||||
|
)
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
510
internal/bg/prepare_cluster.go
Normal file
510
internal/bg/prepare_cluster.go
Normal file
@@ -0,0 +1,510 @@
|
|||||||
|
package bg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/dyaksa/archer"
|
||||||
|
"github.com/dyaksa/archer/job"
|
||||||
|
"github.com/glueops/autoglue/internal/models"
|
||||||
|
"github.com/glueops/autoglue/internal/utils"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ClusterPrepareArgs struct {
|
||||||
|
IntervalS int `json:"interval_seconds,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClusterPrepareFailure struct {
|
||||||
|
ClusterID uuid.UUID `json:"cluster_id"`
|
||||||
|
Step string `json:"step"`
|
||||||
|
Reason string `json:"reason"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClusterPrepareResult struct {
|
||||||
|
Status string `json:"status"`
|
||||||
|
Processed int `json:"processed"`
|
||||||
|
MarkedPending int `json:"marked_pending"`
|
||||||
|
Failed int `json:"failed"`
|
||||||
|
ElapsedMs int `json:"elapsed_ms"`
|
||||||
|
FailedIDs []uuid.UUID `json:"failed_cluster_ids"`
|
||||||
|
Failures []ClusterPrepareFailure `json:"failures"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alias the status constants from models to avoid string drift.
|
||||||
|
const (
|
||||||
|
clusterStatusPrePending = models.ClusterStatusPrePending
|
||||||
|
clusterStatusPending = models.ClusterStatusPending
|
||||||
|
clusterStatusProvisioning = models.ClusterStatusProvisioning
|
||||||
|
clusterStatusReady = models.ClusterStatusReady
|
||||||
|
clusterStatusFailed = models.ClusterStatusFailed
|
||||||
|
)
|
||||||
|
|
||||||
|
func ClusterPrepareWorker(db *gorm.DB, jobs *Jobs) archer.WorkerFn {
|
||||||
|
return func(ctx context.Context, j job.Job) (any, error) {
|
||||||
|
args := ClusterPrepareArgs{IntervalS: 120}
|
||||||
|
jobID := j.ID
|
||||||
|
start := time.Now()
|
||||||
|
|
||||||
|
_ = j.ParseArguments(&args)
|
||||||
|
if args.IntervalS <= 0 {
|
||||||
|
args.IntervalS = 120
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load all clusters that are pre_pending; we’ll filter for bastion.ready in memory.
|
||||||
|
var clusters []models.Cluster
|
||||||
|
if err := db.
|
||||||
|
Preload("BastionServer.SshKey").
|
||||||
|
Preload("CaptainDomain").
|
||||||
|
Preload("ControlPlaneRecordSet").
|
||||||
|
Preload("NodePools.Servers.SshKey").
|
||||||
|
Where("status = ?", clusterStatusPrePending).
|
||||||
|
Find(&clusters).Error; err != nil {
|
||||||
|
log.Error().Err(err).Msg("[cluster_prepare] query clusters failed")
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
proc, ok, fail := 0, 0, 0
|
||||||
|
var failedIDs []uuid.UUID
|
||||||
|
var failures []ClusterPrepareFailure
|
||||||
|
|
||||||
|
perClusterTimeout := 8 * time.Minute
|
||||||
|
|
||||||
|
for i := range clusters {
|
||||||
|
c := &clusters[i]
|
||||||
|
proc++
|
||||||
|
|
||||||
|
// bastion must exist and be ready
|
||||||
|
if c.BastionServer == nil || c.BastionServerID == nil || *c.BastionServerID == uuid.Nil || c.BastionServer.Status != "ready" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
clusterLog := log.With().
|
||||||
|
Str("job", jobID).
|
||||||
|
Str("cluster_id", c.ID.String()).
|
||||||
|
Str("cluster_name", c.Name).
|
||||||
|
Logger()
|
||||||
|
|
||||||
|
clusterLog.Info().Msg("[cluster_prepare] starting")
|
||||||
|
|
||||||
|
if err := validateClusterForPrepare(c); err != nil {
|
||||||
|
fail++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
failures = append(failures, ClusterPrepareFailure{
|
||||||
|
ClusterID: c.ID,
|
||||||
|
Step: "validate",
|
||||||
|
Reason: err.Error(),
|
||||||
|
})
|
||||||
|
clusterLog.Error().Err(err).Msg("[cluster_prepare] validation failed")
|
||||||
|
_ = setClusterStatus(db, c.ID, clusterStatusFailed, err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
allServers := flattenClusterServers(c)
|
||||||
|
keyPayloads, sshConfig, err := buildSSHAssetsForCluster(db, c, allServers)
|
||||||
|
if err != nil {
|
||||||
|
fail++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
failures = append(failures, ClusterPrepareFailure{
|
||||||
|
ClusterID: c.ID,
|
||||||
|
Step: "build_ssh_assets",
|
||||||
|
Reason: err.Error(),
|
||||||
|
})
|
||||||
|
clusterLog.Error().Err(err).Msg("[cluster_prepare] build ssh assets failed")
|
||||||
|
_ = setClusterStatus(db, c.ID, clusterStatusFailed, err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
payloadJSON, err := json.MarshalIndent(c, "", " ")
|
||||||
|
if err != nil {
|
||||||
|
fail++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
failures = append(failures, ClusterPrepareFailure{
|
||||||
|
ClusterID: c.ID,
|
||||||
|
Step: "marshal_payload",
|
||||||
|
Reason: err.Error(),
|
||||||
|
})
|
||||||
|
clusterLog.Error().Err(err).Msg("[cluster_prepare] json marshal failed")
|
||||||
|
_ = setClusterStatus(db, c.ID, clusterStatusFailed, err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
runCtx, cancel := context.WithTimeout(ctx, perClusterTimeout)
|
||||||
|
err = pushAssetsToBastion(runCtx, db, c, sshConfig, keyPayloads, payloadJSON)
|
||||||
|
cancel()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
fail++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
failures = append(failures, ClusterPrepareFailure{
|
||||||
|
ClusterID: c.ID,
|
||||||
|
Step: "ssh_push",
|
||||||
|
Reason: err.Error(),
|
||||||
|
})
|
||||||
|
clusterLog.Error().Err(err).Msg("[cluster_prepare] failed to push assets to bastion")
|
||||||
|
_ = setClusterStatus(db, c.ID, clusterStatusFailed, err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := setClusterStatus(db, c.ID, clusterStatusPending, ""); err != nil {
|
||||||
|
fail++
|
||||||
|
failedIDs = append(failedIDs, c.ID)
|
||||||
|
failures = append(failures, ClusterPrepareFailure{
|
||||||
|
ClusterID: c.ID,
|
||||||
|
Step: "set_pending",
|
||||||
|
Reason: err.Error(),
|
||||||
|
})
|
||||||
|
clusterLog.Error().Err(err).Msg("[cluster_prepare] failed to mark cluster pending")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
ok++
|
||||||
|
clusterLog.Info().Msg("[cluster_prepare] cluster marked pending")
|
||||||
|
}
|
||||||
|
|
||||||
|
res := ClusterPrepareResult{
|
||||||
|
Status: "ok",
|
||||||
|
Processed: proc,
|
||||||
|
MarkedPending: ok,
|
||||||
|
Failed: fail,
|
||||||
|
ElapsedMs: int(time.Since(start).Milliseconds()),
|
||||||
|
FailedIDs: failedIDs,
|
||||||
|
Failures: failures,
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info().
|
||||||
|
Int("processed", proc).
|
||||||
|
Int("pending", ok).
|
||||||
|
Int("failed", fail).
|
||||||
|
Msg("[cluster_prepare] reconcile tick ok")
|
||||||
|
|
||||||
|
next := time.Now().Add(time.Duration(args.IntervalS) * time.Second)
|
||||||
|
_, _ = jobs.Enqueue(
|
||||||
|
ctx,
|
||||||
|
uuid.NewString(),
|
||||||
|
"prepare_cluster",
|
||||||
|
args,
|
||||||
|
archer.WithScheduleTime(next),
|
||||||
|
archer.WithMaxRetries(1),
|
||||||
|
)
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- helpers ----------
|
||||||
|
|
||||||
|
func validateClusterForPrepare(c *models.Cluster) error {
|
||||||
|
if c.BastionServer == nil || c.BastionServerID == nil || *c.BastionServerID == uuid.Nil {
|
||||||
|
return fmt.Errorf("missing bastion server")
|
||||||
|
}
|
||||||
|
if c.BastionServer.Status != "ready" {
|
||||||
|
return fmt.Errorf("bastion server not ready (status=%s)", c.BastionServer.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CaptainDomain is a value type; presence is via *ID
|
||||||
|
if c.CaptainDomainID == nil || *c.CaptainDomainID == uuid.Nil {
|
||||||
|
return fmt.Errorf("missing captain domain for cluster")
|
||||||
|
}
|
||||||
|
|
||||||
|
// ControlPlaneRecordSet is a pointer; presence is via *ID + non-nil struct
|
||||||
|
if c.ControlPlaneRecordSetID == nil || *c.ControlPlaneRecordSetID == uuid.Nil || c.ControlPlaneRecordSet == nil {
|
||||||
|
return fmt.Errorf("missing control_plane_record_set for cluster")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(c.NodePools) == 0 {
|
||||||
|
return fmt.Errorf("cluster has no node pools")
|
||||||
|
}
|
||||||
|
|
||||||
|
hasServer := false
|
||||||
|
for i := range c.NodePools {
|
||||||
|
if len(c.NodePools[i].Servers) > 0 {
|
||||||
|
hasServer = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !hasServer {
|
||||||
|
return fmt.Errorf("cluster has no servers attached to node pools")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func flattenClusterServers(c *models.Cluster) []*models.Server {
|
||||||
|
var out []*models.Server
|
||||||
|
for i := range c.NodePools {
|
||||||
|
for j := range c.NodePools[i].Servers {
|
||||||
|
s := &c.NodePools[i].Servers[j]
|
||||||
|
out = append(out, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
type keyPayload struct {
|
||||||
|
FileName string
|
||||||
|
PrivateKeyB64 string
|
||||||
|
}
|
||||||
|
|
||||||
|
// build ssh-config for all servers + decrypt keys.
|
||||||
|
// ssh-config is intended to live on the bastion and connect via *private* IPs.
|
||||||
|
func buildSSHAssetsForCluster(db *gorm.DB, c *models.Cluster, servers []*models.Server) (map[uuid.UUID]keyPayload, string, error) {
|
||||||
|
var sb strings.Builder
|
||||||
|
keys := make(map[uuid.UUID]keyPayload)
|
||||||
|
|
||||||
|
for _, s := range servers {
|
||||||
|
// Defensive checks
|
||||||
|
if strings.TrimSpace(s.PrivateIPAddress) == "" {
|
||||||
|
return nil, "", fmt.Errorf("server %s missing private ip", s.ID)
|
||||||
|
}
|
||||||
|
if s.SshKeyID == uuid.Nil {
|
||||||
|
return nil, "", fmt.Errorf("server %s missing ssh key relation", s.ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// de-dupe keys: many servers may share the same ssh key
|
||||||
|
if _, ok := keys[s.SshKeyID]; !ok {
|
||||||
|
priv, err := utils.DecryptForOrg(
|
||||||
|
s.OrganizationID,
|
||||||
|
s.SshKey.EncryptedPrivateKey,
|
||||||
|
s.SshKey.PrivateIV,
|
||||||
|
s.SshKey.PrivateTag,
|
||||||
|
db,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, "", fmt.Errorf("decrypt key for server %s: %w", s.ID, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fname := fmt.Sprintf("%s.pem", s.SshKeyID.String())
|
||||||
|
keys[s.SshKeyID] = keyPayload{
|
||||||
|
FileName: fname,
|
||||||
|
PrivateKeyB64: base64.StdEncoding.EncodeToString([]byte(priv)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ssh config entry per server
|
||||||
|
keyFile := keys[s.SshKeyID].FileName
|
||||||
|
|
||||||
|
hostAlias := s.Hostname
|
||||||
|
if hostAlias == "" {
|
||||||
|
hostAlias = s.ID.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
sb.WriteString(fmt.Sprintf("Host %s\n", hostAlias))
|
||||||
|
sb.WriteString(fmt.Sprintf(" HostName %s\n", s.PrivateIPAddress))
|
||||||
|
sb.WriteString(fmt.Sprintf(" User %s\n", s.SSHUser))
|
||||||
|
sb.WriteString(fmt.Sprintf(" IdentityFile ~/.ssh/autoglue/keys/%s\n", keyFile))
|
||||||
|
sb.WriteString(" IdentitiesOnly yes\n")
|
||||||
|
sb.WriteString(" StrictHostKeyChecking accept-new\n\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
return keys, sb.String(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func pushAssetsToBastion(
|
||||||
|
ctx context.Context,
|
||||||
|
db *gorm.DB,
|
||||||
|
c *models.Cluster,
|
||||||
|
sshConfig string,
|
||||||
|
keyPayloads map[uuid.UUID]keyPayload,
|
||||||
|
payloadJSON []byte,
|
||||||
|
) error {
|
||||||
|
bastion := c.BastionServer
|
||||||
|
if bastion == nil {
|
||||||
|
return fmt.Errorf("bastion server is nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
if bastion.PublicIPAddress == nil || strings.TrimSpace(*bastion.PublicIPAddress) == "" {
|
||||||
|
return fmt.Errorf("bastion server missing public ip")
|
||||||
|
}
|
||||||
|
|
||||||
|
privKey, err := utils.DecryptForOrg(
|
||||||
|
bastion.OrganizationID,
|
||||||
|
bastion.SshKey.EncryptedPrivateKey,
|
||||||
|
bastion.SshKey.PrivateIV,
|
||||||
|
bastion.SshKey.PrivateTag,
|
||||||
|
db,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("decrypt bastion key: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
signer, err := ssh.ParsePrivateKey([]byte(privKey))
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("parse bastion private key: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
hkcb := makeDBHostKeyCallback(db, bastion)
|
||||||
|
|
||||||
|
config := &ssh.ClientConfig{
|
||||||
|
User: bastion.SSHUser,
|
||||||
|
Auth: []ssh.AuthMethod{ssh.PublicKeys(signer)},
|
||||||
|
HostKeyCallback: hkcb,
|
||||||
|
Timeout: 30 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
host := net.JoinHostPort(*bastion.PublicIPAddress, "22")
|
||||||
|
|
||||||
|
dialer := &net.Dialer{}
|
||||||
|
conn, err := dialer.DialContext(ctx, "tcp", host)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("dial bastion: %w", err)
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
cconn, chans, reqs, err := ssh.NewClientConn(conn, host, config)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("ssh handshake bastion: %w", err)
|
||||||
|
}
|
||||||
|
client := ssh.NewClient(cconn, chans, reqs)
|
||||||
|
defer client.Close()
|
||||||
|
|
||||||
|
sess, err := client.NewSession()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("ssh session: %w", err)
|
||||||
|
}
|
||||||
|
defer sess.Close()
|
||||||
|
|
||||||
|
// build one shot script to:
|
||||||
|
// - mkdir ~/.ssh/autoglue/keys
|
||||||
|
// - write cluster-specific ssh-config
|
||||||
|
// - write all private keys
|
||||||
|
// - write payload.json
|
||||||
|
clusterDir := fmt.Sprintf("$HOME/autoglue/clusters/%s", c.ID.String())
|
||||||
|
configPath := fmt.Sprintf("$HOME/.ssh/autoglue/cluster-%s.config", c.ID.String())
|
||||||
|
|
||||||
|
var script bytes.Buffer
|
||||||
|
|
||||||
|
script.WriteString("set -euo pipefail\n")
|
||||||
|
script.WriteString("mkdir -p \"$HOME/.ssh/autoglue/keys\"\n")
|
||||||
|
script.WriteString("mkdir -p " + clusterDir + "\n")
|
||||||
|
script.WriteString("chmod 700 \"$HOME/.ssh\" || true\n")
|
||||||
|
|
||||||
|
// ssh-config
|
||||||
|
script.WriteString("cat > " + configPath + " <<'EOF_CFG'\n")
|
||||||
|
script.WriteString(sshConfig)
|
||||||
|
script.WriteString("EOF_CFG\n")
|
||||||
|
script.WriteString("chmod 600 " + configPath + "\n")
|
||||||
|
|
||||||
|
// keys
|
||||||
|
for id, kp := range keyPayloads {
|
||||||
|
tag := "KEY_" + id.String()
|
||||||
|
target := fmt.Sprintf("$HOME/.ssh/autoglue/keys/%s", kp.FileName)
|
||||||
|
|
||||||
|
script.WriteString("cat <<'" + tag + "' | base64 -d > " + target + "\n")
|
||||||
|
script.WriteString(kp.PrivateKeyB64 + "\n")
|
||||||
|
script.WriteString(tag + "\n")
|
||||||
|
script.WriteString("chmod 600 " + target + "\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
// payload.json
|
||||||
|
payloadPath := clusterDir + "/payload.json"
|
||||||
|
script.WriteString("cat > " + payloadPath + " <<'EOF_PAYLOAD'\n")
|
||||||
|
script.Write(payloadJSON)
|
||||||
|
script.WriteString("\nEOF_PAYLOAD\n")
|
||||||
|
script.WriteString("chmod 600 " + payloadPath + "\n")
|
||||||
|
|
||||||
|
// If you later want to always include cluster configs automatically, you can
|
||||||
|
// optionally manage ~/.ssh/config here (kept simple for now).
|
||||||
|
|
||||||
|
sess.Stdin = strings.NewReader(script.String())
|
||||||
|
out, runErr := sess.CombinedOutput("bash -s")
|
||||||
|
|
||||||
|
if runErr != nil {
|
||||||
|
return wrapSSHError(runErr, string(out))
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func setClusterStatus(db *gorm.DB, id uuid.UUID, status, lastError string) error {
|
||||||
|
updates := map[string]any{
|
||||||
|
"status": status,
|
||||||
|
"updated_at": time.Now(),
|
||||||
|
}
|
||||||
|
if lastError != "" {
|
||||||
|
updates["last_error"] = lastError
|
||||||
|
}
|
||||||
|
return db.Model(&models.Cluster{}).
|
||||||
|
Where("id = ?", id).
|
||||||
|
Updates(updates).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// runMakeOnBastion runs `make <target>` from the cluster's directory on the bastion.
|
||||||
|
func runMakeOnBastion(
|
||||||
|
ctx context.Context,
|
||||||
|
db *gorm.DB,
|
||||||
|
c *models.Cluster,
|
||||||
|
target string,
|
||||||
|
) (string, error) {
|
||||||
|
bastion := c.BastionServer
|
||||||
|
if bastion == nil {
|
||||||
|
return "", fmt.Errorf("bastion server is nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
if bastion.PublicIPAddress == nil || strings.TrimSpace(*bastion.PublicIPAddress) == "" {
|
||||||
|
return "", fmt.Errorf("bastion server missing public ip")
|
||||||
|
}
|
||||||
|
|
||||||
|
privKey, err := utils.DecryptForOrg(
|
||||||
|
bastion.OrganizationID,
|
||||||
|
bastion.SshKey.EncryptedPrivateKey,
|
||||||
|
bastion.SshKey.PrivateIV,
|
||||||
|
bastion.SshKey.PrivateTag,
|
||||||
|
db,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("decrypt bastion key: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
signer, err := ssh.ParsePrivateKey([]byte(privKey))
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("parse bastion private key: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
hkcb := makeDBHostKeyCallback(db, bastion)
|
||||||
|
|
||||||
|
config := &ssh.ClientConfig{
|
||||||
|
User: bastion.SSHUser,
|
||||||
|
Auth: []ssh.AuthMethod{ssh.PublicKeys(signer)},
|
||||||
|
HostKeyCallback: hkcb,
|
||||||
|
Timeout: 30 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
host := net.JoinHostPort(*bastion.PublicIPAddress, "22")
|
||||||
|
|
||||||
|
dialer := &net.Dialer{}
|
||||||
|
conn, err := dialer.DialContext(ctx, "tcp", host)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("dial bastion: %w", err)
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
cconn, chans, reqs, err := ssh.NewClientConn(conn, host, config)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("ssh handshake bastion: %w", err)
|
||||||
|
}
|
||||||
|
client := ssh.NewClient(cconn, chans, reqs)
|
||||||
|
defer client.Close()
|
||||||
|
|
||||||
|
sess, err := client.NewSession()
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("ssh session: %w", err)
|
||||||
|
}
|
||||||
|
defer sess.Close()
|
||||||
|
|
||||||
|
clusterDir := fmt.Sprintf("$HOME/autoglue/clusters/%s", c.ID.String())
|
||||||
|
cmd := fmt.Sprintf("cd %s && make %s", clusterDir, target)
|
||||||
|
|
||||||
|
out, runErr := sess.CombinedOutput(cmd)
|
||||||
|
if runErr != nil {
|
||||||
|
return string(out), wrapSSHError(runErr, string(out))
|
||||||
|
}
|
||||||
|
return string(out), nil
|
||||||
|
}
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"embla-carousel-react": "^8.6.0",
|
"embla-carousel-react": "^8.6.0",
|
||||||
"input-otp": "^1.4.2",
|
"input-otp": "^1.4.2",
|
||||||
"lucide-react": "^0.555.0",
|
"lucide-react": "^0.556.0",
|
||||||
"motion": "^12.23.25",
|
"motion": "^12.23.25",
|
||||||
"next-themes": "^0.4.6",
|
"next-themes": "^0.4.6",
|
||||||
"rapidoc": "^9.3.8",
|
"rapidoc": "^9.3.8",
|
||||||
|
|||||||
@@ -1,27 +1,33 @@
|
|||||||
import { useMemo, useState } from "react";
|
import { useMemo, useState } from "react"
|
||||||
import { credentialsApi } from "@/api/credentials";
|
import { credentialsApi } from "@/api/credentials"
|
||||||
import { zodResolver } from "@hookform/resolvers/zod";
|
import { zodResolver } from "@hookform/resolvers/zod"
|
||||||
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"
|
||||||
import { AlertTriangle, Eye, Loader2, MoreHorizontal, Pencil, Plus, Search, Trash2 } from "lucide-react";
|
import { AlertTriangle, Eye, Loader2, MoreHorizontal, Pencil, Plus, Search, Trash2 } from "lucide-react"
|
||||||
import { Controller, useForm } from "react-hook-form";
|
import { Controller, useForm } from "react-hook-form"
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner"
|
||||||
import { z } from "zod";
|
import { z } from "zod"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "@/components/ui/alert-dialog";
|
|
||||||
import { Badge } from "@/components/ui/badge";
|
|
||||||
import { Button } from "@/components/ui/button";
|
|
||||||
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog";
|
|
||||||
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";
|
|
||||||
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
|
|
||||||
import { Input } from "@/components/ui/input";
|
|
||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
|
||||||
import { Switch } from "@/components/ui/switch";
|
|
||||||
import { Textarea } from "@/components/ui/textarea";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import {
|
||||||
|
AlertDialog,
|
||||||
|
AlertDialogAction,
|
||||||
|
AlertDialogCancel,
|
||||||
|
AlertDialogContent,
|
||||||
|
AlertDialogDescription,
|
||||||
|
AlertDialogFooter,
|
||||||
|
AlertDialogHeader,
|
||||||
|
AlertDialogTitle,
|
||||||
|
AlertDialogTrigger
|
||||||
|
} from "@/components/ui/alert-dialog"
|
||||||
|
import { Badge } from "@/components/ui/badge"
|
||||||
|
import { Button } from "@/components/ui/button"
|
||||||
|
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"
|
||||||
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"
|
||||||
|
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"
|
||||||
|
import { Input } from "@/components/ui/input"
|
||||||
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
|
||||||
|
import { Switch } from "@/components/ui/switch"
|
||||||
|
import { Textarea } from "@/components/ui/textarea"
|
||||||
|
|
||||||
|
|
||||||
// -------------------- Constants --------------------
|
// -------------------- Constants --------------------
|
||||||
@@ -954,7 +960,7 @@ export const CredentialPage = () => {
|
|||||||
<code className="bg-muted rounded px-1">{row.id.slice(0, 8)}…</code>
|
<code className="bg-muted rounded px-1">{row.id.slice(0, 8)}…</code>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-4 py-2">{row.provider}</td>
|
<td className="px-4 py-2">{row.credential_provider}</td>
|
||||||
<td className="px-4 py-2">{row.kind}</td>
|
<td className="px-4 py-2">{row.kind}</td>
|
||||||
<td className="px-4 py-2">
|
<td className="px-4 py-2">
|
||||||
<Badge variant="secondary">{row.scope_kind}</Badge>
|
<Badge variant="secondary">{row.scope_kind}</Badge>
|
||||||
|
|||||||
510
ui/yarn.lock
510
ui/yarn.lock
@@ -1527,26 +1527,26 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b"
|
resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b"
|
||||||
integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==
|
integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==
|
||||||
|
|
||||||
"@swagger-api/apidom-ast@^1.0.0":
|
"@swagger-api/apidom-ast@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ast/-/apidom-ast-1.0.0.tgz#3e9f99dd04a2dd4539ae8b2a28a1e6f39f964e26"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ast/-/apidom-ast-1.0.1.tgz#60369b17a358add6121a599d92f2e8cfd969f743"
|
||||||
integrity sha512-Yy57roPVh5I+wz509OX++TY2iR05oUszJI9JSNvY8bHplURnnag6YjKjbklvEVo07ZNl9SfTZ7ZLer+56O/4gg==
|
integrity sha512-inTGo5b49XkHs/Vq48VafXnCzZrwwE+KTNcdfMybdm3RQTbfVFbvSUrS54WoHoaSbef1GsB9rnS/oXoXfNr72g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
unraw "^3.0.0"
|
unraw "^3.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-core@^1.0.0", "@swagger-api/apidom-core@^1.0.0-rc.1":
|
"@swagger-api/apidom-core@^1.0.0-rc.1", "@swagger-api/apidom-core@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-core/-/apidom-core-1.0.0.tgz#7e8559027236b15d13e968e744c3ffa593c2525e"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-core/-/apidom-core-1.0.1.tgz#bd0a72a15d08ed5264450f0a3fd4062843de2b9f"
|
||||||
integrity sha512-xIVB1g+P5XBJS4OUSlNwtw/8KeeRHjnUQWxXLtT7B4pt22QwhprRJe0CymwxzvubDuIFxo5kgC3CgVvMhwI1sw==
|
integrity sha512-biA53spAUphP2IMJSPdqcRFjvLbvLspv1mJQrZpePUq4XGxGOKOHof7dUc1bXJuYvl6OOxOwnVniv5oK2Wyblw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-ast" "^1.0.0"
|
"@swagger-api/apidom-ast" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
minim "~0.23.8"
|
minim "~0.23.8"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
@@ -1554,302 +1554,302 @@
|
|||||||
short-unique-id "^5.3.2"
|
short-unique-id "^5.3.2"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-error@^1.0.0", "@swagger-api/apidom-error@^1.0.0-rc.1":
|
"@swagger-api/apidom-error@^1.0.0-rc.1", "@swagger-api/apidom-error@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-error/-/apidom-error-1.0.0.tgz#c39e59919f9b903fe70f45b37423e509e0cdf4d4"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-error/-/apidom-error-1.0.1.tgz#65b4a07f8765f097f9de7e9c85ffc25a009df577"
|
||||||
integrity sha512-L8fmgQYQfuPCPNlF6KvVXrMuWYh4uxsz955gircsPnV5V2oEaaNVRrQQMHCebvSOAp3OaM8jiiR1FVdzSxkoKg==
|
integrity sha512-uwduVNLg9a2qA+Pl4b8gPERH6Xhvm/Ilv4iKMUOpUicLwNmYjrlcRsyYxLvFiNlTghm70xuI3hap1iaXbrer4A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.20.7"
|
"@babel/runtime-corejs3" "^7.20.7"
|
||||||
|
|
||||||
"@swagger-api/apidom-json-pointer@^1.0.0", "@swagger-api/apidom-json-pointer@^1.0.0-rc.0", "@swagger-api/apidom-json-pointer@^1.0.0-rc.1":
|
"@swagger-api/apidom-json-pointer@^1.0.0-rc.1", "@swagger-api/apidom-json-pointer@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-1.0.0.tgz#51d46f90275566ed922932ee4d20c9c29f8c93a7"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-1.0.1.tgz#877e08807c9e7a3ac1db200dd4995f194fd1c2ba"
|
||||||
integrity sha512-M2k5/79fEjgfe0EZ+LpwKHi83744WV0/GuU3suAYKRdO/GJclQBUalOMnAyxjSnQLqtNw1jSjVvIsRhArcC9GQ==
|
integrity sha512-Dgxd9hl1AiCIM1b5f4dSfmP+rGtASUso8Lw51+az605hqrohgykxt8voiQtaJxKySWYbS1J9Vz2xjLwrEmfTKg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swaggerexpert/json-pointer" "^2.10.1"
|
"@swaggerexpert/json-pointer" "^2.10.1"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-api-design-systems@^1.0.0":
|
"@swagger-api/apidom-ns-api-design-systems@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-1.0.0.tgz#fe714b2a8916880c54fbd16b4cb070fa5e84ca46"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-1.0.1.tgz#9a395ce31afa5f93e5e4da6de5d988af8c1cbf10"
|
||||||
integrity sha512-RUYnXx8jBc01rOygYWLU9i3aJZ7x18Cyf4IXlBtDbqSOjw3oxnmZ6dw52zfrOpaBtsGBFO0VjHWnzPeOoAnGpQ==
|
integrity sha512-frRfiLjcufeBgqnHQOcXgl6dnvcIdP4+18pWb+qT3N+dv87geJBk1CbXo6RjW9AEQX/7BtvWYkfSMLrh8q2TZA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-arazzo-1@^1.0.0", "@swagger-api/apidom-ns-arazzo-1@^1.0.0-rc.0":
|
"@swagger-api/apidom-ns-arazzo-1@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-arazzo-1/-/apidom-ns-arazzo-1-1.0.0.tgz#c43324f259fbe1eb8a812ee96fc0f71a5fb80cab"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-arazzo-1/-/apidom-ns-arazzo-1-1.0.1.tgz#fbdc3995ff08bdc2c4318336fab4927823e6d75c"
|
||||||
integrity sha512-zdswSbzGeXu3mvH+FMfI8BP/hC0oReDzZEGmRNN/g9JzyI6bhcciGdFNk3haWFed2Hwa8iWCw6r0O70sJXxktA==
|
integrity sha512-gJJY0vmi3TJtlCYNPsZahQnP6GA9GtJX1a9jEUASaYYxz6cBBfY39y8C5tQTo0Jvc7QEff/UZ8iGX0kltcwlzA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-2020-12" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-2020-12" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-asyncapi-2@^1.0.0", "@swagger-api/apidom-ns-asyncapi-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-ns-asyncapi-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-1.0.0.tgz#fb4ce8501462b2ead37ff9f39516983559cea27c"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-1.0.1.tgz#24db11873f988cbc1e307f13f0964693f1eb8d3f"
|
||||||
integrity sha512-n9EswUqPHOv6rBX0OJSNhJMNM2Psdqeux9w0+XVHPfsCwyZqVQ0HxasLlgXurRaOscdRJ3W6z62t2T9krMiPXg==
|
integrity sha512-d8HBr2EVB2gK8FKrxj0Wsss6Qeael//WxnNv1ZtmNeCe1l83iC9RO/hjjq/OFob94ZTOfpPRNwGqZBd4tMxOnA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-7" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-draft-7" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-asyncapi-3@^1.0.0":
|
"@swagger-api/apidom-ns-asyncapi-3@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-3/-/apidom-ns-asyncapi-3-1.0.0.tgz#ff198136e72319f918aa27312ac7ea85bb94d95d"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-3/-/apidom-ns-asyncapi-3-1.0.1.tgz#56d75c2f46686440d244404d28ac05379d5e3be8"
|
||||||
integrity sha512-6Rp9C1RhQyBvYJ/OCuihZprXErryPJqilgHU6xg67QWyOBFQ1VTzSmP9pecMtDD+YiJsU6HB6GYDF+oEzXFkKQ==
|
integrity sha512-vonGt1ScMlT+GbbSGa/+oe874Zl7NVylX3ZoMAhMkRyqu49vmWB6dXUcWw6ZsZu2GxVphjNTm+D52Ikw8UAMWg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.0"
|
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-json-schema-2019-09@^1.0.0":
|
"@swagger-api/apidom-ns-json-schema-2019-09@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-2019-09/-/apidom-ns-json-schema-2019-09-1.0.0.tgz#5a8dcfa9a53d39350ae4e80b0a43dec26ed74a05"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-2019-09/-/apidom-ns-json-schema-2019-09-1.0.1.tgz#7cc94e08bbccb9cc383810ab6e9595527e2cc651"
|
||||||
integrity sha512-iZHeeQTiLbf5CjbGURusD+OngL/rJjNol35Qg/BeVFsJTzisCyDW6AHMK/0Qe+eRscGwGOkUxr+RhhSgSgXPbg==
|
integrity sha512-wtVkFhkM7a0ybjAR0HCQyXzAwIWWcaoHmXiZGAS7wTpI2sDMLwCrBXBuISa7BoRkG4ieA2odDF5Eac73knWUbA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-7" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-draft-7" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.4"
|
ts-mixer "^6.0.4"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-json-schema-2020-12@^1.0.0":
|
"@swagger-api/apidom-ns-json-schema-2020-12@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-2020-12/-/apidom-ns-json-schema-2020-12-1.0.0.tgz#64265ab1e11a57ba4e54cca21e21aee245782c8c"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-2020-12/-/apidom-ns-json-schema-2020-12-1.0.1.tgz#d82ef8202f4f781ad0221d3bdb7ed384e063e627"
|
||||||
integrity sha512-gHKECPM2k2BlOY/b8p/9/a96uKmUc2FC1ruRUgm/DOjv4jQtMkEBgVguI04g3wTpSwIg15o9p85RhhhAGHloQg==
|
integrity sha512-YBE5kYKARFWi+8HAiUVJxF9WpkdlW2ebH6K4oZt6mnOWROkPS+30Kjjxlz+Q994KhSZGBHKK0d3TU11xXUqyAQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-2019-09" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-2019-09" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.4"
|
ts-mixer "^6.0.4"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-4@^1.0.0":
|
"@swagger-api/apidom-ns-json-schema-draft-4@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-1.0.0.tgz#0ec8261a23ade84bf0152504560bff9688809f2d"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-1.0.1.tgz#708e4b6dbe8a652c0480c289b227300310096929"
|
||||||
integrity sha512-yzkHhq5l0yd1nZbcrqlvUC0uYQ5A8XJo/PHOOD9eibxP/tvhrmkrGVnBEZIS7Y2lIx9goAtCHYJOzwOh2iZ+qQ==
|
integrity sha512-OR3D7EXVq2H07n9uPKpNCikKC5857Pggbi1g5rt9X0znaUgxTtkYu8unPfbEcjQgFVglzIwqbGhMnahUFXYaTA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-ast" "^1.0.0"
|
"@swagger-api/apidom-ast" "^1.0.1"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.4"
|
ts-mixer "^6.0.4"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-6@^1.0.0":
|
"@swagger-api/apidom-ns-json-schema-draft-6@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-1.0.0.tgz#e1085986390329bd46f184fc476a48a3086152a1"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-1.0.1.tgz#39e1b5170afc171c7c30ecea89eeae6e02ec1076"
|
||||||
integrity sha512-qjxwyq+dRRW4i/D2OMuuPpNfq215V6FMFMMnznAzqkYJIigUyAsslZt1YYGz5hug/tj2psZHDleCYkfeh7b5Vg==
|
integrity sha512-J9/aSU9/YwiRU/avkSN1APYPs9sYVyrzaMpfq7XIY8xMFC4buwrPzCymrqshSOLbn1Qzr9Ruavcqx5Bwt0EuRg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-draft-4" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.4"
|
ts-mixer "^6.0.4"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-7@^1.0.0":
|
"@swagger-api/apidom-ns-json-schema-draft-7@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-1.0.0.tgz#72c10cb4852b98fa0d9930b2dc4b50e92483f11f"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-1.0.1.tgz#a89704289dc1507075e15d159d4dfc73a8f01561"
|
||||||
integrity sha512-Lo5QqO831IuMKyuYO5gJVttu/fqsvj66JaSyi4/2KC8srn81yQ9HEi1ousiWVGE0dGuRjGZSr3H2J9fxqbnfTA==
|
integrity sha512-b8pNff3epzweot5Edoa05mM/jBMgvjqajvNTOvOa8SNPWHWLjSJNYkBT2jI3BnFqqEMMo7litEfKnblblFuDtQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-6" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-draft-6" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.4"
|
ts-mixer "^6.0.4"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-openapi-2@^1.0.0", "@swagger-api/apidom-ns-openapi-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-ns-openapi-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-2/-/apidom-ns-openapi-2-1.0.0.tgz#12df7b312d9e428529edc1128a1665a33edb0641"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-2/-/apidom-ns-openapi-2-1.0.1.tgz#5136d8f22065b1dde6cd31da1a22cb7f9a206559"
|
||||||
integrity sha512-vaEcRti1An4y9jXaHmkEMd/TQlfcJAEq/SLhDoGWIsTb3sdUovdVVY7QAvQzbX7VCoQeRATfUgMnj29wggbE6g==
|
integrity sha512-XZ1xHHvsZZaNNHkqk0KWggZxMM2Av5eJdjbxwLij7TFWjodYVJAMZLyWG15llDBjnTXQYtpFIVLGjndf2oC7Xg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-draft-4" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-openapi-3-0@^1.0.0", "@swagger-api/apidom-ns-openapi-3-0@^1.0.0-rc.0":
|
"@swagger-api/apidom-ns-openapi-3-0@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-1.0.0.tgz#777cc0c106621099b971edbc1283a9ad15672e75"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-1.0.1.tgz#6bd7e4e295b57072a7b47f237bcb54d8adc03951"
|
||||||
integrity sha512-ppBGVheaboTC23LOO+5//C45DDyoda88yFeVxh7Lfqn7HM7D0BSs76tFwr7EUtkEE6vw8tQiwc0Ql6Jk/jmUCQ==
|
integrity sha512-BAypZcl8NO+jYpAmAXJVCLVe4f+v3ZoZN21Oxu03N2lsv+qz/P9vpl+6C0dOfta6X8fACkuGr4KIGU6leUPpJg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-draft-4" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-ns-openapi-3-1@^1.0.0", "@swagger-api/apidom-ns-openapi-3-1@^1.0.0-rc.0", "@swagger-api/apidom-ns-openapi-3-1@^1.0.0-rc.1":
|
"@swagger-api/apidom-ns-openapi-3-1@^1.0.0-rc.1", "@swagger-api/apidom-ns-openapi-3-1@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-1.0.0.tgz#f331749eae22de680c2b75b304735e6e6b0a2ebc"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-1.0.1.tgz#69b9ac2a4483b53a8959d41b3927746a95eabd17"
|
||||||
integrity sha512-iDocUU+y214ZdcPrBHng97EnCzEIFJ/2eZsxQRSDQTZuAECI53jmVH6KdJUh/1nc3IW5nQczhf3K9cCYdIcY9g==
|
integrity sha512-nIkgyIW8XTV+zjzLKxP1JaA/lpgmtsRBLshh1mL+Fspd+RYAhyMpRDRNvBOmkIhva9Dst9LNYyMjBP9ssfKUwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-ast" "^1.0.0"
|
"@swagger-api/apidom-ast" "^1.0.1"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-json-pointer" "^1.0.0"
|
"@swagger-api/apidom-json-pointer" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-json-schema-2020-12" "^1.0.0"
|
"@swagger-api/apidom-ns-json-schema-2020-12" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
ts-mixer "^6.0.3"
|
ts-mixer "^6.0.3"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-api-design-systems-json@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-api-design-systems-json@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-1.0.0.tgz#85cef9295d4d33b527ae92ced17fdd39c62bacf9"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-1.0.1.tgz#e8a44718e47864d63592fd66f5a8341f83b7cf6f"
|
||||||
integrity sha512-zzEr6VeS5renKsqzT2bRqWntzE/uJA+GRc/cDwHkbq7rF5rWCBxYmECQ1CZzargrznMeYRg5Kvcg3t9NBwI3Tg==
|
integrity sha512-Udj6vJ6Au+fcqZJZtgHlUi1Y/ImLHo8fx4ICSas7hewA7z1/eZ7Y3Yp8YSGZ7ZwqXHS6nnm5fBHws0DgAplnDA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-api-design-systems" "^1.0.0"
|
"@swagger-api/apidom-ns-api-design-systems" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-1.0.0.tgz#048d60b4c5b6e3eddf955446126ba4478016e925"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-1.0.1.tgz#bab591fb5270577e97ecb441e37b7d8e4b2cd291"
|
||||||
integrity sha512-/2JG7r3Ok4XAaMtlLTew8y1fVh1BI2jZuVV26QvJAvIcVXhv2Y2+gq9olZUTt1kXqmTx14JOlvxUrg+q/f+EMw==
|
integrity sha512-YZ2IuTEzUGXRF8oFuHHGZpM15hRnSI/rZnweGT984bX53HXi1NFpZdNxOz49vmkhFz6XJgxRXp1R3EDN/98urg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-api-design-systems" "^1.0.0"
|
"@swagger-api/apidom-ns-api-design-systems" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-arazzo-json-1@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-arazzo-json-1@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-arazzo-json-1/-/apidom-parser-adapter-arazzo-json-1-1.0.0.tgz#381cf347bd07c4829896363db9827b70eb0e2c59"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-arazzo-json-1/-/apidom-parser-adapter-arazzo-json-1-1.0.1.tgz#356876a1262975e78619ad02f51fbe6d117ef0a5"
|
||||||
integrity sha512-uS4N1uTbYsgsr9HW3mhwfjPm2qsVN16cL/YB6/j94e30KYVeUwwXEA5c+xE6weAtCqweTTVTBWCGHtTH+PYxSA==
|
integrity sha512-Re8EcgYOITyTXvGeJyE/4ZNsprkSrkXVmHzyM9hqTWoMpDILnqOtbrjc0YwLkbe9awBkUMWJ51CEFLYALSYfDA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-arazzo-1" "^1.0.0"
|
"@swagger-api/apidom-ns-arazzo-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-arazzo-yaml-1@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-arazzo-yaml-1@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-arazzo-yaml-1/-/apidom-parser-adapter-arazzo-yaml-1-1.0.0.tgz#7c61f46373b526be1f389839d862a6804acd407f"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-arazzo-yaml-1/-/apidom-parser-adapter-arazzo-yaml-1-1.0.1.tgz#0365c0db8cb5c68fc622cf540072a72d33bfa4d4"
|
||||||
integrity sha512-D23g2/VBbI/SSFIxabjBqcxtoHjR+Z3A2Lp1slFixgwlmd9viQQuQI9p5EdVbXSlLU4aGPocfydOfJ5Sl7nfoA==
|
integrity sha512-++BB47Vf9sarAf+YCvlt9V2OqFd8O5AZMr/xXBKTls4SzwpUcLf4oIQJpHcr/rl+bgI4CKwxKXHvnhg2vhEVmg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-arazzo-1" "^1.0.0"
|
"@swagger-api/apidom-ns-arazzo-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-asyncapi-json-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-1.0.0.tgz#892a2a0d4b3ddee57d449971abcd065c58b14872"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-1.0.1.tgz#209a61c29919b41c820f88beb116bbfbc9a3718f"
|
||||||
integrity sha512-edOFXHrOl1xLRn/i2yVZKJ1+A7YUZ9WyVnIyEedb+L4uFKxDnArNZhi10R3Is6vWKX1GAlH1Uw8xmqYyG7KVQg==
|
integrity sha512-dd8djfZy2utM1xO7oxDPB/dmExSFgEA2l71gjHaKmhJw7O5NB8E/1663w9lD4NElj2Ft8kuGLLDsqyKNhXW/9w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.0"
|
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-3@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-asyncapi-json-3@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-3/-/apidom-parser-adapter-asyncapi-json-3-1.0.0.tgz#c1546faa35887d78c89ed926cd8c3c9d8db90b69"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-3/-/apidom-parser-adapter-asyncapi-json-3-1.0.1.tgz#fc461058fe16e2ca6f142fcfe92c39979bd57614"
|
||||||
integrity sha512-elGrI0b2wyLVN7UKOsg8GNgzidBtIvBWjKyJvt1oy/ZTvLZ+I5wgD9KENfMRtLCdMtWAv8HSyB094nvlhqP/iw==
|
integrity sha512-qD+gbnSnc9PlZ8b45knyWihrWOMKhnAHDnvzRllX+NiyM3XdBJ7B6yLn8dl6gZuKjTBHoMORLEefoTGvmskneA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-asyncapi-3" "^1.0.0"
|
"@swagger-api/apidom-ns-asyncapi-3" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-1.0.0.tgz#0fb2813797af04d3920fb8f6e9ad85982230603e"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-1.0.1.tgz#da0ba765800430ca9ba832b52d50853799031321"
|
||||||
integrity sha512-cP58L+QR2qFIpe4I4oOT5QShmXYts20/N9GrxfmeebmNiu0RCrO8yomyzKbtLMX4DWZIOjXfm96i20FmdNtxxA==
|
integrity sha512-G5RS0pCFCOIsFflKvWbH+DblunmcAdVi5X9ETTTkGLa1IF5s0DIdjU46WxJAzEQpCXOvmUhpDspjaAYXxGTYpQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.0"
|
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-3/-/apidom-parser-adapter-asyncapi-yaml-3-1.0.0.tgz#fee8abb31532fb8839ea457f3628cbcf4b9fe1e0"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-3/-/apidom-parser-adapter-asyncapi-yaml-3-1.0.1.tgz#72e8410fc3e3e38a8c76d5e5f107e2d340ba0bd7"
|
||||||
integrity sha512-5kVZQ7SI0TvkHNCAr0fAz+FMj+Py8ILW8MbWTbJPPzpcfiBa8wb33xbCrO3aQoXSKL4S3J/a+iDFyrzQgBRlRQ==
|
integrity sha512-hzgUkTsuKYraY0NXQlaYe/j1/LkvNF/8r30Iz7/1B27BYLOKIwHoFGN6jUa8UBA9/0qSp8QPzSwVWFLrgNiqJQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-asyncapi-3" "^1.0.0"
|
"@swagger-api/apidom-ns-asyncapi-3" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-json@^1.0.0", "@swagger-api/apidom-parser-adapter-json@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-json@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-1.0.0.tgz#4812a08d906c80bda1f8aa4379455065eb0c474c"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-1.0.1.tgz#4e3aec8e6ac210cd4fe731749c9fa8b85ca95b9d"
|
||||||
integrity sha512-+zaH4MX1/JiSP3bQe1WE2CRsmXLSCPF3zMtvyFhPNtPgIIWqHJg1P4zPXy528m3DH/QqagfXIslk4RpDWStyxA==
|
integrity sha512-95V2aMBGZ76rYXcod/PCJpVEMK+9mPk/gDgsDKEq2ka+YVMTtR1tUkPUIBmWlNC+brh5reks1QocyQL8B4f3TQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-ast" "^1.0.0"
|
"@swagger-api/apidom-ast" "^1.0.1"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
@@ -1857,93 +1857,93 @@
|
|||||||
tree-sitter-json "=0.24.8"
|
tree-sitter-json "=0.24.8"
|
||||||
web-tree-sitter "=0.24.5"
|
web-tree-sitter "=0.24.5"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-json-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-openapi-json-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-2/-/apidom-parser-adapter-openapi-json-2-1.0.0.tgz#18f2b9a8c11e1a936184a6fddc3c7ad93fd4662b"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-2/-/apidom-parser-adapter-openapi-json-2-1.0.1.tgz#a411d048eed1543fedf1b48e5ac2bb96309b2efb"
|
||||||
integrity sha512-rm/wotLRSz1JqTdQKwxydC8MnRLgb8VvtNgWgSWHDHChcgFQmimxVya7dmivy1YywcczK9G0cNcR10o4ebI/vw==
|
integrity sha512-Gp02eAA32SN+hAgVDc82xpkUthHn0oAdLdri5g3co4pa45XVRsBSHS3L/H3NEbhDJ8wpXjcg+FLs/OAwcm42yw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-2" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-0@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-openapi-json-3-0@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-1.0.0.tgz#270d11f3115874b9eedf026c1e0c0dc04d4ac50a"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-1.0.1.tgz#b4b290356c719d5eed870214ff0b3e9dc4716751"
|
||||||
integrity sha512-leLf9tC7wCzOaL+oiK8CyLTNTf9+xupfHY+6nzWzJrYiq9yI5nJUM/yr38+Bq5cupA+gDWHl59b32bc/jV+iuQ==
|
integrity sha512-Ls3U0stAtMqvzesy981crjDa7vwqGHlCoulHIsWQ/V74dHg3Nl1Vg9AgerefKg8LHxxLiYTZJITfsWQMYsnlkA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-1@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-openapi-json-3-1@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-1.0.0.tgz#57c6bb2dab1d036ac0346a7fffc1ac96997a13db"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-1.0.1.tgz#8390d00d97a514cf59bc99b34329394ac25208be"
|
||||||
integrity sha512-GDf2IlEMhAPlHUWd1f6/cpP8V2k7e2dPaVS7e7baK5djGSwcGHZEUotqyDkA01Vnhf2DPGfmb6rkvg4dQ/1ChA==
|
integrity sha512-Xsf3jUCfgqZqZjiABWifPynBDLPkW54V210Oa4SvgyI7ZWgubcy5/Wgd68wvhq4knauRXqRmbgKc+WRm0UP3xw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-openapi-yaml-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-2/-/apidom-parser-adapter-openapi-yaml-2-1.0.0.tgz#62cf0b68d498cd1717b4dd841f8b424fdd37cccf"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-2/-/apidom-parser-adapter-openapi-yaml-2-1.0.1.tgz#cb8e1cf61536cf2dfb05e84e717eb63051b91c48"
|
||||||
integrity sha512-pYkMetJatd12Cplau9u7MAQYJOJSjs0iuWGzvzG6IkTTNY673aQVxsmdTJK6Mt6sEkG3LK5OOCIqlW63GdtMuQ==
|
integrity sha512-SygtOXG9XF6lYveg6rymk4u1Twgk1VTxzyVkQ8I6eQoGyBoYfJC00sI6qep9bGU/VnsaRaN/H8+N0vXBeAOsPg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-2" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-1.0.0.tgz#f5a056b73622e5dc116ad4d74ec4e0874e0a4773"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-1.0.1.tgz#b062075960c17d4a29da58df5f08bcdad5d71988"
|
||||||
integrity sha512-iabLypsj+ygEozgTjBi0zu8VgRjq2VKUFxyNo6lVYjLg4PIvnwem3S8GU3iDmEdEqZTBmTQCOnzdbbw+tEm70Q==
|
integrity sha512-xm8tY1NYe329tGF01WCtCi7uepppORWs3WpwzskSiZnDAmyjIu5ez3R0RFPCiXnMRGgj4wO6UzjawSrKGTJHjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-1.0.0.tgz#d8efeb147a11697c0df62c4313da9edf757c3562"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-1.0.1.tgz#945e7e3408f932de04fabc94c347b42b8bc804c0"
|
||||||
integrity sha512-cmx5MC6nC5KBFxZxmFRwcDW9CPLTAZglYvtLh2ILoMBvYS+ht9WUknTqZFIVVCK/l7wAz8ftOtCrnjb7U143yQ==
|
integrity sha512-p0G3g63Jcd4Z5Y2hStNB0NgjwYJg9VBLhkDcmFdmKCbz9vYA45rMN+wn62pqkWQE7KBZ1F1zY0wacRlUy0VuuQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.0"
|
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
|
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2@^1.0.0", "@swagger-api/apidom-parser-adapter-yaml-1-2@^1.0.0-rc.0":
|
"@swagger-api/apidom-parser-adapter-yaml-1-2@^1.0.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-1.0.0.tgz#f25c45a7b7c0f91ab01cd8fa0b3d0d52c256036c"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-1.0.1.tgz#2eaf730ca506a3387a02203d3192c6d5c01c77f1"
|
||||||
integrity sha512-of/vKMaK5e36kwJrhBRvnrpIC9tikUuhpzSMfzckx/58p1H66oHrzdGrRbQxcy1l/HaylJNIn1YvWlaNJVjNcQ==
|
integrity sha512-ppNo8mncbGA3TchroLmcDv1WUw9vruHa4M96WbWqI7cwH3zdJ1UddwfHkZ5IaCOUU08Iyo2uzMMRaarALAsl8g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-ast" "^1.0.0"
|
"@swagger-api/apidom-ast" "^1.0.1"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@tree-sitter-grammars/tree-sitter-yaml" "=0.7.1"
|
"@tree-sitter-grammars/tree-sitter-yaml" "=0.7.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
@@ -1952,13 +1952,13 @@
|
|||||||
web-tree-sitter "=0.24.5"
|
web-tree-sitter "=0.24.5"
|
||||||
|
|
||||||
"@swagger-api/apidom-reference@^1.0.0-rc.1":
|
"@swagger-api/apidom-reference@^1.0.0-rc.1":
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-reference/-/apidom-reference-1.0.0.tgz#95a30e36446f04989c8c7a168d7bcf59abcb8636"
|
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-reference/-/apidom-reference-1.0.1.tgz#bcf9784e1a82a084f31ac3d8d5d88599648282ba"
|
||||||
integrity sha512-pT225Muf5pYMaQjyoJ/8+OJuAAvWOLJih2P8ho0EE6pIw4D0Uz9Hq8cODdwBXEr5mOTAwntNDDcPP+FoTfYnyg==
|
integrity sha512-FvM6cooFx1ppWN9gKXSLFG2Y4u3SRdv1FIJxj+5VC/6V3++BF2LUFkb7hK0IOaAjw2vQ7G0NUyP+5UY/3qKBjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs3" "^7.26.10"
|
"@babel/runtime-corejs3" "^7.26.10"
|
||||||
"@swagger-api/apidom-core" "^1.0.0"
|
"@swagger-api/apidom-core" "^1.0.1"
|
||||||
"@swagger-api/apidom-error" "^1.0.0"
|
"@swagger-api/apidom-error" "^1.0.1"
|
||||||
"@types/ramda" "~0.30.0"
|
"@types/ramda" "~0.30.0"
|
||||||
axios "^1.12.2"
|
axios "^1.12.2"
|
||||||
minimatch "^7.4.3"
|
minimatch "^7.4.3"
|
||||||
@@ -1966,28 +1966,28 @@
|
|||||||
ramda "~0.30.0"
|
ramda "~0.30.0"
|
||||||
ramda-adjunct "^5.0.0"
|
ramda-adjunct "^5.0.0"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@swagger-api/apidom-json-pointer" "^1.0.0-rc.0"
|
"@swagger-api/apidom-json-pointer" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-arazzo-1" "^1.0.0-rc.0"
|
"@swagger-api/apidom-ns-arazzo-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-ns-asyncapi-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-ns-openapi-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.0-rc.0"
|
"@swagger-api/apidom-ns-openapi-3-0" "^1.0.1"
|
||||||
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.0-rc.0"
|
"@swagger-api/apidom-ns-openapi-3-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-api-design-systems-json" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-api-design-systems-json" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-arazzo-json-1" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-arazzo-json-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-arazzo-yaml-1" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-arazzo-yaml-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-asyncapi-json-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-3" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-asyncapi-json-3" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-3" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-3" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-json" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-json" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-json-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-openapi-json-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-0" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-openapi-json-3-0" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-1" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-openapi-json-3-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-openapi-yaml-2" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1" "^1.0.1"
|
||||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.0-rc.0"
|
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.0.1"
|
||||||
|
|
||||||
"@swaggerexpert/cookie@^2.0.2":
|
"@swaggerexpert/cookie@^2.0.2":
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
@@ -2511,9 +2511,9 @@ base64-js@^1.3.1:
|
|||||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||||
|
|
||||||
baseline-browser-mapping@^2.9.0:
|
baseline-browser-mapping@^2.9.0:
|
||||||
version "2.9.2"
|
version "2.9.5"
|
||||||
resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.2.tgz#0ae89ec3e10e07c368b77def89db8044409461d1"
|
resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.5.tgz#47f9549e0be1a84cd16651ac4c3b7d87a71408e6"
|
||||||
integrity sha512-PxSsosKQjI38iXkmb3d0Y32efqyA0uW4s41u4IVBsLlWLhCiYNpH/AfNOVWRqCQBlD8TFJTz6OUWNd4DFJCnmw==
|
integrity sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA==
|
||||||
|
|
||||||
body-parser@^2.2.1:
|
body-parser@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
@@ -4025,10 +4025,10 @@ lru-cache@^5.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yallist "^3.0.2"
|
yallist "^3.0.2"
|
||||||
|
|
||||||
lucide-react@^0.555.0:
|
lucide-react@^0.556.0:
|
||||||
version "0.555.0"
|
version "0.556.0"
|
||||||
resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.555.0.tgz#8db4322b784e0d14a415d67ee0e8ca219a1714ca"
|
resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.556.0.tgz#aad61a065737aef30322695a11fd21c7542c71aa"
|
||||||
integrity sha512-D8FvHUGbxWBRQM90NZeIyhAvkFfsh3u9ekrMvJ30Z6gnpBHS6HC6ldLg7tL45hwiIz/u66eKDtdA23gwwGsAHA==
|
integrity sha512-iOb8dRk7kLaYBZhR2VlV1CeJGxChBgUthpSP8wom9jfj79qovgG6qcSdiy6vkoREKPnbUYzJsCn4o4PtG3Iy+A==
|
||||||
|
|
||||||
magic-string@^0.30.21:
|
magic-string@^0.30.21:
|
||||||
version "0.30.21"
|
version "0.30.21"
|
||||||
@@ -4606,9 +4606,9 @@ raw-body@^3.0.0, raw-body@^3.0.1:
|
|||||||
unpipe "~1.0.0"
|
unpipe "~1.0.0"
|
||||||
|
|
||||||
react-day-picker@^9.11.3:
|
react-day-picker@^9.11.3:
|
||||||
version "9.11.3"
|
version "9.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-day-picker/-/react-day-picker-9.11.3.tgz#ef88cece2512c3e3c9ca0ce067871f62072cd943"
|
resolved "https://registry.yarnpkg.com/react-day-picker/-/react-day-picker-9.12.0.tgz#f1251c80aa2f932069b1854eeb1fc0ae4dae5ac6"
|
||||||
integrity sha512-7lD12UvGbkyXqgzbYIGQTbl+x29B9bAf+k0pP5Dcs1evfpKk6zv4EdH/edNc8NxcmCiTNXr2HIYPrSZ3XvmVBg==
|
integrity sha512-t8OvG/Zrciso5CQJu5b1A7yzEmebvST+S3pOVQJWxwjjVngyG/CA2htN/D15dLI4uTEuLLkbZyS4YYt480FAtA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@date-fns/tz" "^1.4.1"
|
"@date-fns/tz" "^1.4.1"
|
||||||
date-fns "^4.1.0"
|
date-fns "^4.1.0"
|
||||||
@@ -5271,9 +5271,9 @@ type-check@^0.4.0, type-check@~0.4.0:
|
|||||||
prelude-ls "^1.2.1"
|
prelude-ls "^1.2.1"
|
||||||
|
|
||||||
type-fest@^5.2.0:
|
type-fest@^5.2.0:
|
||||||
version "5.3.0"
|
version "5.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.3.0.tgz#9422125b3094b1087d8446ba151b72fb9f39411a"
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.3.1.tgz#251b8d0a813c1dbccf1f9450ba5adcdf7072adc2"
|
||||||
integrity sha512-d9CwU93nN0IA1QL+GSNDdwLAu1Ew5ZjTwupvedwg3WdfoH6pIDvYQ2hV0Uc2nKBLPq7NB5apCx57MLS5qlmO5g==
|
integrity sha512-VCn+LMHbd4t6sF3wfU/+HKT63C9OoyrSIf4b+vtWHpt2U7/4InZG467YDNMFMR70DdHjAdpPWmw2lzRdg0Xqqg==
|
||||||
dependencies:
|
dependencies:
|
||||||
tagged-tag "^1.0.0"
|
tagged-tag "^1.0.0"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user