From c5eec83ef08ef5d24fb78dbe06de57d899f0d4e8 Mon Sep 17 00:00:00 2001 From: Jakub Olan Date: Wed, 24 Apr 2024 17:57:28 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20add=20controll?= =?UTF-8?q?ers=20for=20ingestion=20and=20substance=20routes=20(#422)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The changes in this commit include: - Adding a main controller for building ingestion routes in the `apps/server/src/routes/v1/ingestion.ts` file. - Adding a main controller for querying substance information in the `apps/server/src/routes/v1/substance.ts` file. These changes are necessary to provide a structured and organized way to handle the ingestion and substance-related functionality in the server application. --- apps/server/migrations/README.md | 0 .../20240130221802_init_db/migration.sql | 480 ---- .../migration.sql | 837 ------ .../prisma/migrations/migration_lock.toml | 3 - apps/server/prisma/schema.prisma | 910 ------- apps/server/src/routes/v1/ingestion.ts | 1 + apps/server/src/routes/v1/substance.ts | 1 + deploy/docker-compose.yml | 36 + docker-compose.yml | 36 - packages/hephaistos/.c8rc.json | 12 - packages/hephaistos/.eslintrc.json | 3 - packages/hephaistos/.gitignore | 1 - packages/hephaistos/README.md | 3 - packages/hephaistos/ava.config.js | 13 - packages/hephaistos/cache/.gitkeep | 0 packages/hephaistos/package.json | 73 - packages/hephaistos/prisma/schema.prisma | 115 - .../hephaistos/psychonautwiki.gql-codegen.yml | 13 - packages/hephaistos/src/bin.ts | 11 - packages/hephaistos/src/drugbank.ts | 46 - packages/hephaistos/src/effectindex.ts | 54 - packages/hephaistos/src/erowid.ts | 0 .../hephaistos/src/gql/graphql.schema.json | 2340 ----------------- packages/hephaistos/src/gql/operation.graphql | 202 -- packages/hephaistos/src/gql/schema.graphql | 117 - packages/hephaistos/src/prisma-instance.ts | 5 - packages/hephaistos/src/psychonautwiki.ts | 118 - .../src/utils/gql/graphql.schema.json | 2340 ----------------- .../src/utils/gql/sdk/fragment-masking.ts | 50 - packages/hephaistos/src/utils/gql/sdk/gql.ts | 50 - .../hephaistos/src/utils/gql/sdk/graphql.ts | 892 ------- .../hephaistos/src/utils/gql/sdk/index.ts | 2 - packages/hephaistos/tsconfig.json | 46 - packages/hephaistos/tsup.config.js | 17 - poetry.lock | 695 ----- pyproject.toml | 18 - .../prisma/dev.db | Bin 212992 -> 1114112 bytes 37 files changed, 38 insertions(+), 9502 deletions(-) delete mode 100644 apps/server/migrations/README.md delete mode 100644 apps/server/prisma/migrations/20240130221802_init_db/migration.sql delete mode 100644 apps/server/prisma/migrations/20240220220232_expand_ecommerce_db/migration.sql delete mode 100644 apps/server/prisma/migrations/migration_lock.toml delete mode 100644 apps/server/prisma/schema.prisma create mode 100644 apps/server/src/routes/v1/ingestion.ts create mode 100644 apps/server/src/routes/v1/substance.ts create mode 100644 deploy/docker-compose.yml delete mode 100644 docker-compose.yml delete mode 100644 packages/hephaistos/.c8rc.json delete mode 100644 packages/hephaistos/.eslintrc.json delete mode 100644 packages/hephaistos/.gitignore delete mode 100644 packages/hephaistos/README.md delete mode 100644 packages/hephaistos/ava.config.js delete mode 100644 packages/hephaistos/cache/.gitkeep delete mode 100644 packages/hephaistos/package.json delete mode 100644 packages/hephaistos/prisma/schema.prisma delete mode 100644 packages/hephaistos/psychonautwiki.gql-codegen.yml delete mode 100644 packages/hephaistos/src/bin.ts delete mode 100644 packages/hephaistos/src/drugbank.ts delete mode 100644 packages/hephaistos/src/effectindex.ts delete mode 100644 packages/hephaistos/src/erowid.ts delete mode 100644 packages/hephaistos/src/gql/graphql.schema.json delete mode 100644 packages/hephaistos/src/gql/operation.graphql delete mode 100644 packages/hephaistos/src/gql/schema.graphql delete mode 100644 packages/hephaistos/src/prisma-instance.ts delete mode 100644 packages/hephaistos/src/psychonautwiki.ts delete mode 100644 packages/hephaistos/src/utils/gql/graphql.schema.json delete mode 100644 packages/hephaistos/src/utils/gql/sdk/fragment-masking.ts delete mode 100644 packages/hephaistos/src/utils/gql/sdk/gql.ts delete mode 100644 packages/hephaistos/src/utils/gql/sdk/graphql.ts delete mode 100644 packages/hephaistos/src/utils/gql/sdk/index.ts delete mode 100644 packages/hephaistos/tsconfig.json delete mode 100644 packages/hephaistos/tsup.config.js delete mode 100644 poetry.lock delete mode 100644 pyproject.toml diff --git a/apps/server/migrations/README.md b/apps/server/migrations/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/server/prisma/migrations/20240130221802_init_db/migration.sql b/apps/server/prisma/migrations/20240130221802_init_db/migration.sql deleted file mode 100644 index dbd2b50e..00000000 --- a/apps/server/prisma/migrations/20240130221802_init_db/migration.sql +++ /dev/null @@ -1,480 +0,0 @@ --- CreateExtension -CREATE EXTENSION IF NOT EXISTS "citext"; - --- CreateExtension -CREATE EXTENSION IF NOT EXISTS "hstore"; - --- CreateExtension -CREATE EXTENSION IF NOT EXISTS "pg_trgm"; - --- CreateExtension -CREATE EXTENSION IF NOT EXISTS "pgcrypto"; - --- CreateExtension -CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; - --- CreateEnum -CREATE TYPE "EmailVerificationStatus" AS ENUM ('VERIFIED', 'UNVERIFIED'); - --- CreateEnum -CREATE TYPE "PaymentProcessor" AS ENUM ('STRIPE', 'PAYPAL'); - --- CreateTable -CREATE TABLE "Account" ( - "id" TEXT NOT NULL, - "family_name" TEXT, - "given_name" TEXT, - "locale" TEXT DEFAULT 'en', - "picture" TEXT, - "name" TEXT, - "nickname" TEXT, - "phone_number" TEXT, - "phone_verified" BOOLEAN NOT NULL DEFAULT false, - "username" TEXT NOT NULL, - "email" TEXT NOT NULL, - "emailVerificationStatus" "EmailVerificationStatus" NOT NULL DEFAULT 'UNVERIFIED', - "password" TEXT NOT NULL, - "last_ip" TEXT, - "last_login" TIMESTAMP(3), - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "Account_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "AccountMetadata" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "value" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1 -); - --- CreateTable -CREATE TABLE "Group" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "Group_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Role" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "Role_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Session" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "Session_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "TokenAudit" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "tokenId" TEXT NOT NULL, - "issuedAt" TIMESTAMP(3) NOT NULL, - "expiresAt" TIMESTAMP(3) NOT NULL, - "isRevoked" BOOLEAN NOT NULL, - "lastUsedAt" TIMESTAMP(3), - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "TokenAudit_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "VerificationRequest" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "email" TEXT NOT NULL, - "token" TEXT NOT NULL, - "issuedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "expiresAt" TIMESTAMP(3) NOT NULL, - "isSolved" BOOLEAN NOT NULL DEFAULT false, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "VerificationRequest_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "User" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "firstName" TEXT NOT NULL, - "lastName" TEXT NOT NULL, - "email" TEXT NOT NULL, - "phoneNumber" TEXT, - "avatar" TEXT, - "about" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "User_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "BillingAddress" ( - "id" TEXT NOT NULL, - "legalName" TEXT NOT NULL, - "taxIdentifier" TEXT NOT NULL, - "streetLine1" TEXT NOT NULL, - "streetLine2" TEXT, - "city" TEXT NOT NULL, - "state" TEXT, - "zipCode" TEXT NOT NULL, - "country" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "BillingAddress_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "ShippingAddress" ( - "id" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "fullName" TEXT NOT NULL, - "streetLine1" TEXT NOT NULL, - "streetLine2" TEXT, - "city" TEXT NOT NULL, - "state" TEXT, - "zipCode" TEXT NOT NULL, - "country" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "versioned_shipping_address_pk" PRIMARY KEY ("id","version") -); - --- CreateTable -CREATE TABLE "UserMetadata" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "value" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "UserMetadata_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Product" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "price" INTEGER NOT NULL, - "currency" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Product_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Order" ( - "id" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "productId" TEXT NOT NULL, - "quantity" INTEGER NOT NULL, - "shippingAddressId" TEXT NOT NULL, - "shippingAddressVersion" INTEGER NOT NULL, - "billingAddressId" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Order_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Cart" ( - "id" TEXT NOT NULL, - "profileId" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Cart_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "CartItem" ( - "id" TEXT NOT NULL, - "cartId" TEXT NOT NULL, - "productId" TEXT NOT NULL, - "price" INTEGER NOT NULL, - "quantity" INTEGER NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "CartItem_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Payment" ( - "id" TEXT NOT NULL, - "payerId" TEXT NOT NULL, - "currency" TEXT NOT NULL, - "amount" INTEGER NOT NULL, - "paymentMethodId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Payment_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "PaymentMethod" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "processor" "PaymentProcessor" NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "PaymentMethod_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "StripePaymentMethod" ( - "id" TEXT NOT NULL, - "stripeCustomerId" TEXT NOT NULL, - "stripePaymentMethodId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "StripePaymentMethod_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Checkout" ( - "id" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "cartId" TEXT NOT NULL, - "paymentId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Checkout_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "CheckoutItem" ( - "id" TEXT NOT NULL, - "checkoutId" TEXT NOT NULL, - "discount" INTEGER NOT NULL DEFAULT 0, - "subtotal" INTEGER NOT NULL, - "tax" INTEGER NOT NULL DEFAULT 0, - "total" INTEGER NOT NULL, - - CONSTRAINT "CheckoutItem_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Blob" ( - "id" TEXT NOT NULL, - "checksum" TEXT NOT NULL, - "type" TEXT NOT NULL, - "size" INTEGER NOT NULL, - "url" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Blob_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Coupon" ( - "id" TEXT NOT NULL, - "amountOff" INTEGER, - "percentOff" INTEGER, - "duration" INTEGER, - "durationInMonths" INTEGER, - "maxRedemptions" INTEGER, - "minimumAmount" INTEGER, - "minimumAmountCurrency" TEXT, - "firstTimeTransactionOnly" BOOLEAN, - "timesRedeemed" BIGINT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Coupon_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "CouponMetadata" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "value" TEXT NOT NULL, - - CONSTRAINT "CouponMetadata_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "PromotionCode" ( - "id" TEXT NOT NULL, - "code" TEXT NOT NULL, - "active" BOOLEAN NOT NULL, - - CONSTRAINT "PromotionCode_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "_AccountToGroup" ( - "A" TEXT NOT NULL, - "B" TEXT NOT NULL -); - --- CreateTable -CREATE TABLE "_AccountToRole" ( - "A" TEXT NOT NULL, - "B" TEXT NOT NULL -); - --- CreateIndex -CREATE UNIQUE INDEX "Account_username_key" ON "Account"("username"); - --- CreateIndex -CREATE UNIQUE INDEX "Account_email_key" ON "Account"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "AccountMetadata_id_key_key" ON "AccountMetadata"("id", "key"); - --- CreateIndex -CREATE UNIQUE INDEX "Group_name_key" ON "Group"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "Role_name_key" ON "Role"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "User_accountId_key" ON "User"("accountId"); - --- CreateIndex -CREATE UNIQUE INDEX "ShippingAddress_id_key" ON "ShippingAddress"("id"); - --- CreateIndex -CREATE UNIQUE INDEX "Cart_profileId_key" ON "Cart"("profileId"); - --- CreateIndex -CREATE UNIQUE INDEX "CartItem_cartId_productId_key" ON "CartItem"("cartId", "productId"); - --- CreateIndex -CREATE UNIQUE INDEX "Checkout_cartId_key" ON "Checkout"("cartId"); - --- CreateIndex -CREATE UNIQUE INDEX "Checkout_paymentId_key" ON "Checkout"("paymentId"); - --- CreateIndex -CREATE UNIQUE INDEX "_AccountToGroup_AB_unique" ON "_AccountToGroup"("A", "B"); - --- CreateIndex -CREATE INDEX "_AccountToGroup_B_index" ON "_AccountToGroup"("B"); - --- CreateIndex -CREATE UNIQUE INDEX "_AccountToRole_AB_unique" ON "_AccountToRole"("A", "B"); - --- CreateIndex -CREATE INDEX "_AccountToRole_B_index" ON "_AccountToRole"("B"); - --- AddForeignKey -ALTER TABLE "AccountMetadata" ADD CONSTRAINT "account_metadata_fk" FOREIGN KEY ("id") REFERENCES "Account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Session" ADD CONSTRAINT "account_session_fkey" FOREIGN KEY ("accountId") REFERENCES "Account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "TokenAudit" ADD CONSTRAINT "account_token_audit_fkey" FOREIGN KEY ("accountId") REFERENCES "Account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "VerificationRequest" ADD CONSTRAINT "account_verification_request_fkey" FOREIGN KEY ("accountId") REFERENCES "Account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "User" ADD CONSTRAINT "User_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "BillingAddress" ADD CONSTRAINT "BillingAddress_id_fkey" FOREIGN KEY ("id") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "ShippingAddress" ADD CONSTRAINT "ShippingAddress_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "UserMetadata" ADD CONSTRAINT "user_metadata_fkey" FOREIGN KEY ("id") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Order" ADD CONSTRAINT "Order_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Order" ADD CONSTRAINT "Order_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Order" ADD CONSTRAINT "Order_shippingAddressId_shippingAddressVersion_fkey" FOREIGN KEY ("shippingAddressId", "shippingAddressVersion") REFERENCES "ShippingAddress"("id", "version") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Order" ADD CONSTRAINT "Order_billingAddressId_fkey" FOREIGN KEY ("billingAddressId") REFERENCES "BillingAddress"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Cart" ADD CONSTRAINT "Cart_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "CartItem" ADD CONSTRAINT "CartItem_cartId_fkey" FOREIGN KEY ("cartId") REFERENCES "Cart"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "CartItem" ADD CONSTRAINT "CartItem_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Payment" ADD CONSTRAINT "Payment_payerId_fkey" FOREIGN KEY ("payerId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Payment" ADD CONSTRAINT "Payment_paymentMethodId_fkey" FOREIGN KEY ("paymentMethodId") REFERENCES "PaymentMethod"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "PaymentMethod" ADD CONSTRAINT "PaymentMethod_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "StripePaymentMethod" ADD CONSTRAINT "StripePaymentMethod_id_fkey" FOREIGN KEY ("id") REFERENCES "PaymentMethod"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Checkout" ADD CONSTRAINT "Checkout_cartId_fkey" FOREIGN KEY ("cartId") REFERENCES "Cart"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Checkout" ADD CONSTRAINT "Checkout_paymentId_fkey" FOREIGN KEY ("paymentId") REFERENCES "Payment"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "Checkout" ADD CONSTRAINT "Checkout_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "CheckoutItem" ADD CONSTRAINT "CheckoutItem_checkoutId_fkey" FOREIGN KEY ("checkoutId") REFERENCES "Checkout"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "CouponMetadata" ADD CONSTRAINT "CouponMetadata_id_fkey" FOREIGN KEY ("id") REFERENCES "Coupon"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToGroup" ADD CONSTRAINT "_AccountToGroup_A_fkey" FOREIGN KEY ("A") REFERENCES "Account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToGroup" ADD CONSTRAINT "_AccountToGroup_B_fkey" FOREIGN KEY ("B") REFERENCES "Group"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToRole" ADD CONSTRAINT "_AccountToRole_A_fkey" FOREIGN KEY ("A") REFERENCES "Account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToRole" ADD CONSTRAINT "_AccountToRole_B_fkey" FOREIGN KEY ("B") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/apps/server/prisma/migrations/20240220220232_expand_ecommerce_db/migration.sql b/apps/server/prisma/migrations/20240220220232_expand_ecommerce_db/migration.sql deleted file mode 100644 index 0077b276..00000000 --- a/apps/server/prisma/migrations/20240220220232_expand_ecommerce_db/migration.sql +++ /dev/null @@ -1,837 +0,0 @@ -/* - Warnings: - - - You are about to drop the `Account` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `AccountMetadata` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `BillingAddress` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Blob` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Cart` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `CartItem` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Checkout` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `CheckoutItem` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Coupon` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `CouponMetadata` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Group` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Order` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Payment` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `PaymentMethod` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Product` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `PromotionCode` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Role` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Session` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `ShippingAddress` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `StripePaymentMethod` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `TokenAudit` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `User` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `UserMetadata` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `VerificationRequest` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `_AccountToGroup` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `_AccountToRole` table. If the table is not empty, all the data it contains will be lost. - -*/ --- CreateEnum -CREATE TYPE "AttributeType" AS ENUM ('STRING', 'NUMBER', 'BOOLEAN', 'DATE', 'ENUM'); - --- CreateEnum -CREATE TYPE "PaymentProcessor" AS ENUM ('STRIPE', 'PAYPAL', 'MANUAL'); - --- CreateEnum -CREATE TYPE "PaymentStatus" AS ENUM ('PENDING', 'FAILED', 'PAID', 'ACTION_REQUIRED'); - --- CreateEnum -CREATE TYPE "billing_interval" AS ENUM ('DAILY', 'EVERY_OTHER_DAY', 'EVERY_THIRD_DAY', 'EVERY_FOURTH_DAY', 'EVERY_WEEKDAY', 'WEEKLY', 'BIWEEKLY', 'MONTHLY', 'QUARTERLY', 'SEMIANNUALLY', 'ANNUALLY'); - --- CreateEnum -CREATE TYPE "subscription_status" AS ENUM ('ACTIVE', 'CANCELED', 'PAST_DUE', 'UNPAID', 'INCOMPLETE', 'INCOMPLETE_EXPIRED', 'TRIALING', 'PAST_TRIALING'); - --- DropForeignKey -ALTER TABLE "public"."AccountMetadata" DROP CONSTRAINT "account_metadata_fk"; - --- DropForeignKey -ALTER TABLE "public"."BillingAddress" DROP CONSTRAINT "BillingAddress_id_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Cart" DROP CONSTRAINT "Cart_profileId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."CartItem" DROP CONSTRAINT "CartItem_cartId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."CartItem" DROP CONSTRAINT "CartItem_productId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Checkout" DROP CONSTRAINT "Checkout_cartId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Checkout" DROP CONSTRAINT "Checkout_paymentId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Checkout" DROP CONSTRAINT "Checkout_userId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."CheckoutItem" DROP CONSTRAINT "CheckoutItem_checkoutId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."CouponMetadata" DROP CONSTRAINT "CouponMetadata_id_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Order" DROP CONSTRAINT "Order_billingAddressId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Order" DROP CONSTRAINT "Order_productId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Order" DROP CONSTRAINT "Order_shippingAddressId_shippingAddressVersion_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Order" DROP CONSTRAINT "Order_userId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Payment" DROP CONSTRAINT "Payment_payerId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Payment" DROP CONSTRAINT "Payment_paymentMethodId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."PaymentMethod" DROP CONSTRAINT "PaymentMethod_accountId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."Session" DROP CONSTRAINT "account_session_fkey"; - --- DropForeignKey -ALTER TABLE "public"."ShippingAddress" DROP CONSTRAINT "ShippingAddress_userId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."StripePaymentMethod" DROP CONSTRAINT "StripePaymentMethod_id_fkey"; - --- DropForeignKey -ALTER TABLE "public"."TokenAudit" DROP CONSTRAINT "account_token_audit_fkey"; - --- DropForeignKey -ALTER TABLE "public"."User" DROP CONSTRAINT "User_accountId_fkey"; - --- DropForeignKey -ALTER TABLE "public"."UserMetadata" DROP CONSTRAINT "user_metadata_fkey"; - --- DropForeignKey -ALTER TABLE "public"."VerificationRequest" DROP CONSTRAINT "account_verification_request_fkey"; - --- DropForeignKey -ALTER TABLE "public"."_AccountToGroup" DROP CONSTRAINT "_AccountToGroup_A_fkey"; - --- DropForeignKey -ALTER TABLE "public"."_AccountToGroup" DROP CONSTRAINT "_AccountToGroup_B_fkey"; - --- DropForeignKey -ALTER TABLE "public"."_AccountToRole" DROP CONSTRAINT "_AccountToRole_A_fkey"; - --- DropForeignKey -ALTER TABLE "public"."_AccountToRole" DROP CONSTRAINT "_AccountToRole_B_fkey"; - --- DropTable -DROP TABLE "public"."Account"; - --- DropTable -DROP TABLE "public"."AccountMetadata"; - --- DropTable -DROP TABLE "public"."BillingAddress"; - --- DropTable -DROP TABLE "public"."Blob"; - --- DropTable -DROP TABLE "public"."Cart"; - --- DropTable -DROP TABLE "public"."CartItem"; - --- DropTable -DROP TABLE "public"."Checkout"; - --- DropTable -DROP TABLE "public"."CheckoutItem"; - --- DropTable -DROP TABLE "public"."Coupon"; - --- DropTable -DROP TABLE "public"."CouponMetadata"; - --- DropTable -DROP TABLE "public"."Group"; - --- DropTable -DROP TABLE "public"."Order"; - --- DropTable -DROP TABLE "public"."Payment"; - --- DropTable -DROP TABLE "public"."PaymentMethod"; - --- DropTable -DROP TABLE "public"."Product"; - --- DropTable -DROP TABLE "public"."PromotionCode"; - --- DropTable -DROP TABLE "public"."Role"; - --- DropTable -DROP TABLE "public"."Session"; - --- DropTable -DROP TABLE "public"."ShippingAddress"; - --- DropTable -DROP TABLE "public"."StripePaymentMethod"; - --- DropTable -DROP TABLE "public"."TokenAudit"; - --- DropTable -DROP TABLE "public"."User"; - --- DropTable -DROP TABLE "public"."UserMetadata"; - --- DropTable -DROP TABLE "public"."VerificationRequest"; - --- DropTable -DROP TABLE "public"."_AccountToGroup"; - --- DropTable -DROP TABLE "public"."_AccountToRole"; - --- DropEnum -DROP TYPE "public"."EmailVerificationStatus"; - --- DropEnum -DROP TYPE "public"."PaymentProcessor"; - --- CreateTable -CREATE TABLE "iam_account" ( - "id" TEXT NOT NULL, - "family_name" TEXT, - "given_name" TEXT, - "locale" TEXT DEFAULT 'en', - "picture" TEXT, - "name" TEXT, - "nickname" TEXT, - "phone_number" TEXT, - "phone_verified" BOOLEAN NOT NULL DEFAULT false, - "username" TEXT NOT NULL, - "email" TEXT NOT NULL, - "email_verified" BOOLEAN NOT NULL DEFAULT false, - "password" TEXT NOT NULL, - "last_ip" TEXT, - "last_login" TIMESTAMP(3), - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "iam_account_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "iam_oauth_client" ( - "id" TEXT NOT NULL, - "IdP" TEXT NOT NULL, - "discoverEndpoints" BOOLEAN NOT NULL, - "authority" TEXT, - "authorizationEndpoint" TEXT, - "tokenEndpoint" TEXT, - "userinfoEndpoint" TEXT, - "issuer" TEXT, - "clientId" TEXT NOT NULL, - "clientSecret" TEXT NOT NULL, - "redirectUri" TEXT NOT NULL, - "scope" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "iam_oauth_client_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "iam_pgp_public_key" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "iam_pgp_public_key_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "iam_federated_identity" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "IdP" TEXT NOT NULL, - "sub" TEXT NOT NULL, - "name" TEXT NOT NULL, - "picture" TEXT, - "expiresAt" TIMESTAMP(3) NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "iam_federated_identity_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "iam_account_md" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "value" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1 -); - --- CreateTable -CREATE TABLE "iam_group" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "iam_group_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "iam_role" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "iam_role_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "iam_session" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "iam_session_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "TokenAudit" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "tokenId" TEXT NOT NULL, - "issuedAt" TIMESTAMP(3) NOT NULL, - "expiresAt" TIMESTAMP(3) NOT NULL, - "isRevoked" BOOLEAN NOT NULL, - "lastUsedAt" TIMESTAMP(3), - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "TokenAudit_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "VerificationRequest" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "email" TEXT NOT NULL, - "token" TEXT NOT NULL, - "issuedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "expiresAt" TIMESTAMP(3) NOT NULL, - "isSolved" BOOLEAN NOT NULL DEFAULT false, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "VerificationRequest_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "user" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "firstName" TEXT NOT NULL, - "lastName" TEXT NOT NULL, - "email" TEXT NOT NULL, - "phoneNumber" TEXT, - "avatar" TEXT, - "about" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "user_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "customer" ( - "id" TEXT NOT NULL, - - CONSTRAINT "customer_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "user_md" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "value" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "user_md_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "user_billing_address" ( - "id" TEXT NOT NULL, - "legalName" TEXT NOT NULL, - "taxIdentifier" TEXT NOT NULL, - "streetLine1" TEXT NOT NULL, - "streetLine2" TEXT, - "city" TEXT NOT NULL, - "state" TEXT, - "zipCode" TEXT NOT NULL, - "country" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "user_billing_address_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "user_shipping_address" ( - "id" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "fullName" TEXT NOT NULL, - "streetLine1" TEXT NOT NULL, - "streetLine2" TEXT, - "city" TEXT NOT NULL, - "state" TEXT, - "zipCode" TEXT NOT NULL, - "country" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - "version" INTEGER NOT NULL DEFAULT 1, - - CONSTRAINT "versioned_shipping_address_pk" PRIMARY KEY ("id","version") -); - --- CreateTable -CREATE TABLE "product" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "price" INTEGER NOT NULL, - "currency" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "product_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "product_attribute" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "product_attribute_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "product_option" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "product_option_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "product_variant" ( - "id" TEXT NOT NULL, - "productId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "product_variant_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "order" ( - "id" TEXT NOT NULL, - "customerId" TEXT NOT NULL, - "productId" TEXT NOT NULL, - "quantity" INTEGER NOT NULL, - "shippingAddressId" TEXT NOT NULL, - "shippingAddressVersion" INTEGER NOT NULL, - "billingAddressId" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "order_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "cart" ( - "id" TEXT NOT NULL, - "profileId" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "cart_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "cart_item" ( - "id" TEXT NOT NULL, - "cartId" TEXT NOT NULL, - "productId" TEXT NOT NULL, - "price" INTEGER NOT NULL, - "quantity" INTEGER NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "cart_item_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "payment" ( - "id" TEXT NOT NULL, - "payerId" TEXT NOT NULL, - "currency" TEXT NOT NULL, - "amount" INTEGER NOT NULL, - "paymentMethodId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "payment_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Invoice" ( - "id" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Invoice_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "InvoiceLine" ( - "id" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "InvoiceLine_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "payment_method" ( - "id" TEXT NOT NULL, - "accountId" TEXT NOT NULL, - "processor" "PaymentProcessor" NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "payment_method_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "stripe_payment_method" ( - "id" TEXT NOT NULL, - "stripeCustomerId" TEXT NOT NULL, - "stripePaymentMethodId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "stripe_payment_method_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "checkout" ( - "id" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "cartId" TEXT NOT NULL, - "paymentId" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "checkout_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "checkout_item" ( - "id" TEXT NOT NULL, - "checkoutId" TEXT NOT NULL, - "discount" INTEGER NOT NULL DEFAULT 0, - "subtotal" INTEGER NOT NULL, - "tax" INTEGER NOT NULL DEFAULT 0, - "total" INTEGER NOT NULL, - - CONSTRAINT "checkout_item_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "blob" ( - "id" TEXT NOT NULL, - "checksum" TEXT NOT NULL, - "type" TEXT NOT NULL, - "size" INTEGER NOT NULL, - "filename" TEXT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "blob_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "coupon" ( - "id" TEXT NOT NULL, - "amountOff" INTEGER, - "percentOff" INTEGER, - "duration" INTEGER, - "durationInMonths" INTEGER, - "maxRedemptions" INTEGER, - "minimumAmount" INTEGER, - "minimumAmountCurrency" TEXT, - "firstTimeTransactionOnly" BOOLEAN, - "timesRedeemed" BIGINT NOT NULL, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "coupon_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "coupon_md" ( - "id" TEXT NOT NULL, - "key" TEXT NOT NULL, - "value" TEXT NOT NULL, - - CONSTRAINT "coupon_md_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "promotion_code" ( - "id" TEXT NOT NULL, - "code" TEXT NOT NULL, - "active" BOOLEAN NOT NULL, - - CONSTRAINT "promotion_code_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "region" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "country" TEXT NOT NULL, - - CONSTRAINT "region_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "subscription" ( - "id" TEXT NOT NULL, - "customerId" TEXT NOT NULL, - "billingInterval" "billing_interval" NOT NULL, - "billingFrequency" INTEGER NOT NULL, - "paymentMethodId" TEXT NOT NULL, - "nextBillingDate" TIMESTAMP(3) NOT NULL, - "status" "subscription_status" NOT NULL, - "billingAddressId" TEXT, - "shippingAddressId" TEXT, - "startedAt" TIMESTAMP(3) NOT NULL, - "endedAt" TIMESTAMP(3), - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "subscription_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "_AccountToGroup" ( - "A" TEXT NOT NULL, - "B" TEXT NOT NULL -); - --- CreateTable -CREATE TABLE "_AccountToRole" ( - "A" TEXT NOT NULL, - "B" TEXT NOT NULL -); - --- CreateIndex -CREATE UNIQUE INDEX "iam_account_username_key" ON "iam_account"("username"); - --- CreateIndex -CREATE UNIQUE INDEX "iam_account_email_key" ON "iam_account"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "iam_oauth_client_IdP_key" ON "iam_oauth_client"("IdP"); - --- CreateIndex -CREATE UNIQUE INDEX "iam_account_md_id_key_key" ON "iam_account_md"("id", "key"); - --- CreateIndex -CREATE UNIQUE INDEX "iam_group_name_key" ON "iam_group"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "iam_role_name_key" ON "iam_role"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "user_accountId_key" ON "user"("accountId"); - --- CreateIndex -CREATE UNIQUE INDEX "user_shipping_address_id_key" ON "user_shipping_address"("id"); - --- CreateIndex -CREATE UNIQUE INDEX "cart_profileId_key" ON "cart"("profileId"); - --- CreateIndex -CREATE UNIQUE INDEX "cart_item_cartId_productId_key" ON "cart_item"("cartId", "productId"); - --- CreateIndex -CREATE UNIQUE INDEX "checkout_cartId_key" ON "checkout"("cartId"); - --- CreateIndex -CREATE UNIQUE INDEX "checkout_paymentId_key" ON "checkout"("paymentId"); - --- CreateIndex -CREATE UNIQUE INDEX "blob_filename_key" ON "blob"("filename"); - --- CreateIndex -CREATE UNIQUE INDEX "_AccountToGroup_AB_unique" ON "_AccountToGroup"("A", "B"); - --- CreateIndex -CREATE INDEX "_AccountToGroup_B_index" ON "_AccountToGroup"("B"); - --- CreateIndex -CREATE UNIQUE INDEX "_AccountToRole_AB_unique" ON "_AccountToRole"("A", "B"); - --- CreateIndex -CREATE INDEX "_AccountToRole_B_index" ON "_AccountToRole"("B"); - --- AddForeignKey -ALTER TABLE "iam_pgp_public_key" ADD CONSTRAINT "account_openpgp_public_key_fkey" FOREIGN KEY ("id") REFERENCES "iam_account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "iam_federated_identity" ADD CONSTRAINT "iam_federated_identity_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "iam_account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "iam_federated_identity" ADD CONSTRAINT "iam_federated_identity_IdP_fkey" FOREIGN KEY ("IdP") REFERENCES "iam_oauth_client"("IdP") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "iam_account_md" ADD CONSTRAINT "account_metadata_fk" FOREIGN KEY ("id") REFERENCES "iam_account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "iam_session" ADD CONSTRAINT "account_session_fkey" FOREIGN KEY ("accountId") REFERENCES "iam_account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "TokenAudit" ADD CONSTRAINT "account_token_audit_fkey" FOREIGN KEY ("accountId") REFERENCES "iam_account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "VerificationRequest" ADD CONSTRAINT "account_verification_request_fkey" FOREIGN KEY ("accountId") REFERENCES "iam_account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "user" ADD CONSTRAINT "user_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "iam_account"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "customer" ADD CONSTRAINT "customer_id_fkey" FOREIGN KEY ("id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "user_md" ADD CONSTRAINT "user_metadata_fkey" FOREIGN KEY ("id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "user_billing_address" ADD CONSTRAINT "user_billing_address_id_fkey" FOREIGN KEY ("id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "user_shipping_address" ADD CONSTRAINT "user_shipping_address_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "product_variant" ADD CONSTRAINT "product_variant_productId_fkey" FOREIGN KEY ("productId") REFERENCES "product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "order" ADD CONSTRAINT "order_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "order" ADD CONSTRAINT "order_productId_fkey" FOREIGN KEY ("productId") REFERENCES "product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "order" ADD CONSTRAINT "order_shippingAddressId_shippingAddressVersion_fkey" FOREIGN KEY ("shippingAddressId", "shippingAddressVersion") REFERENCES "user_shipping_address"("id", "version") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "order" ADD CONSTRAINT "order_billingAddressId_fkey" FOREIGN KEY ("billingAddressId") REFERENCES "user_billing_address"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "cart" ADD CONSTRAINT "cart_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "cart_item" ADD CONSTRAINT "cart_item_cartId_fkey" FOREIGN KEY ("cartId") REFERENCES "cart"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "cart_item" ADD CONSTRAINT "cart_item_productId_fkey" FOREIGN KEY ("productId") REFERENCES "product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "payment" ADD CONSTRAINT "payment_payerId_fkey" FOREIGN KEY ("payerId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "payment" ADD CONSTRAINT "payment_paymentMethodId_fkey" FOREIGN KEY ("paymentMethodId") REFERENCES "payment_method"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "payment_method" ADD CONSTRAINT "payment_method_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "iam_account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "stripe_payment_method" ADD CONSTRAINT "stripe_payment_method_id_fkey" FOREIGN KEY ("id") REFERENCES "payment_method"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "checkout" ADD CONSTRAINT "checkout_cartId_fkey" FOREIGN KEY ("cartId") REFERENCES "cart"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "checkout" ADD CONSTRAINT "checkout_paymentId_fkey" FOREIGN KEY ("paymentId") REFERENCES "payment"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "checkout" ADD CONSTRAINT "checkout_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "checkout_item" ADD CONSTRAINT "checkout_item_checkoutId_fkey" FOREIGN KEY ("checkoutId") REFERENCES "checkout"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "coupon_md" ADD CONSTRAINT "coupon_md_id_fkey" FOREIGN KEY ("id") REFERENCES "coupon"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "subscription" ADD CONSTRAINT "subscription_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "customer"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "subscription" ADD CONSTRAINT "subscription_paymentMethodId_fkey" FOREIGN KEY ("paymentMethodId") REFERENCES "payment_method"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "subscription" ADD CONSTRAINT "subscription_billingAddressId_fkey" FOREIGN KEY ("billingAddressId") REFERENCES "user_billing_address"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "subscription" ADD CONSTRAINT "subscription_shippingAddressId_fkey" FOREIGN KEY ("shippingAddressId") REFERENCES "user_shipping_address"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToGroup" ADD CONSTRAINT "_AccountToGroup_A_fkey" FOREIGN KEY ("A") REFERENCES "iam_account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToGroup" ADD CONSTRAINT "_AccountToGroup_B_fkey" FOREIGN KEY ("B") REFERENCES "iam_group"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToRole" ADD CONSTRAINT "_AccountToRole_A_fkey" FOREIGN KEY ("A") REFERENCES "iam_account"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_AccountToRole" ADD CONSTRAINT "_AccountToRole_B_fkey" FOREIGN KEY ("B") REFERENCES "iam_role"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/apps/server/prisma/migrations/migration_lock.toml b/apps/server/prisma/migrations/migration_lock.toml deleted file mode 100644 index fbffa92c..00000000 --- a/apps/server/prisma/migrations/migration_lock.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Please do not edit this file manually -# It should be added in your version-control system (i.e. Git) -provider = "postgresql" \ No newline at end of file diff --git a/apps/server/prisma/schema.prisma b/apps/server/prisma/schema.prisma deleted file mode 100644 index be96541e..00000000 --- a/apps/server/prisma/schema.prisma +++ /dev/null @@ -1,910 +0,0 @@ -generator client { - provider = "prisma-client-js" - output = "../vendor/prisma" - // previewFeatures = ["tracing", "metrics", "fullTextSearch", "fullTextIndex", "views", "driverAdapters", "multiSchema", "postgresqlExtensions", "nativeDistinct", "relationJoins"] - previewFeatures = ["tracing", "metrics", "fullTextSearch", "fullTextIndex", "views", "driverAdapters", "multiSchema", "postgresqlExtensions"] - engineType = "library" -} - -datasource db { - provider = "postgresql" - url = env("DATABASE_URI") - relationMode = "foreignKeys" - // TODO: Add postgis - extensions = [hstore, pg_trgm, uuidOssp(map: "uuid-ossp"), pgcrypto, citext] - // directUrl = env("DATABASE_URL") - // shadowDatabaseUrl = env("DATABASE_URL") -} - -generator dbml { - provider = "prisma-dbml-generator" - output = "../docs/dbml" - outputName = "plygrnd.dbml" - projectName = "plygrnd" - projectDatabaseType = "PostgreSQL" - projectNote = "plygrnd database" -} - -model Account { - id String @id @default(cuid()) - // -------------------------------------------------- - /// The user's family name. - family_name String? - /// The user's given name. - given_name String? - /// The user's locale. - locale String? @default("en") - /// URL pointing to the user's profile picture. - picture String? - /// The user's full name - name String? - /// The user's nickname. - nickname String? - /// The user's phone number. Only valid for users with SMS connections. - phone_number String? - /// Indicates whether the user has been verified their phone number. - phone_verified Boolean @default(false) - /// The user's username. Must be unique. - username String @unique - /// The user's email address. Must be unique. - email String @unique - /// Indicates whether the user has verified their email address. - email_verified Boolean @default(false) - // email_verified Boolean @default(false) - /// The user's password. Only valid for users with Database connections. - /// (It's argon2 hashed) - password String - /// IP address associated with the user's last login. - last_ip String? - /// Timestamp indicating when the user last logged in. - last_login DateTime? - // -------------------------------------------------- - createdAt DateTime @default(now()) - /// Timestamp indicating when the user's profile was last updated/modified. - /// Changes to last_login are considered updates, so most of the time, - /// updated_at will match last_login. - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Sessions Session[] - User User? - TokenAudit TokenAudit[] - Group Group[] - Role Role[] - PaymentMethod PaymentMethod[] - AccountMetadata AccountMetadata[] - VerificationRequest VerificationRequest[] - FederatedIdentity FederatedIdentity[] - PGPKey PGPKey? - - // @@index(fields: [id, email, username, phone_number], map: "account_idx", type: Hash) - @@map("iam_account") -} - -model OAuthClient { - id String @id @default(cuid()) - // -------------------------------------------------- - IdP String @unique - // Sadly things cannot be ideal as they could be, GitHub is a example where - // implementation of .well-known was too hard in this case authority needs - // to be optional and add resolving endpoints manually. - // https://fusionauth.io/docs/lifecycle/authenticate-users/identity-providers/social/github - discoverEndpoints Boolean - authority String? - authorizationEndpoint String? - tokenEndpoint String? - userinfoEndpoint String? - issuer String? - clientId String - clientSecret String - redirectUri String - scope String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - FederatedIdentity FederatedIdentity[] - - @@map("iam_oauth_client") -} - -model PGPKey { - id String @id @default(cuid()) - // -------------------------------------------------- - key String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Account Account @relation(fields: [id], references: [id], map: "account_openpgp_public_key_fkey") - - @@map("iam_pgp_public_key") -} - -model FederatedIdentity { - id String @id @default(cuid()) - // -------------------------------------------------- - accountId String - IdP String - /// The unique identifier for the user's identity within the external - /// identity provider. - /// This should be a string value that is provided by the IdP. - sub String - name String - picture String? - expiresAt DateTime - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Account Account @relation(fields: [accountId], references: [id], onDelete: Cascade) - OAuthClient OAuthClient @relation(fields: [IdP], references: [IdP], onDelete: Cascade) - - @@map("iam_federated_identity") -} - -/// Custom fields that store info about a user that does not impact what they can or cannot access, such as work address, home address, or user preferences. -model AccountMetadata { - id String @default(cuid()) - // -------------------------------------------------- - key String - value String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Account Account @relation(fields: [id], references: [id], map: "account_metadata_fk") - - @@unique([id, key]) - @@map("iam_account_md") -} - -model Group { - id String @id @default(cuid()) - // -------------------------------------------------- - name String @unique - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Members Account[] - - @@map("iam_group") -} - -model Role { - id String @id @default(cuid()) - // -------------------------------------------------- - name String @unique - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Accounts Account[] - - @@map("iam_role") -} - -model Session { - id String @id @default(cuid()) - // -------------------------------------------------- - accountId String - // -------------------------------------------------- - createdAt DateTime @default(now()) - // -------------------------------------------------- - Account Account @relation(fields: [accountId], references: [id], map: "account_session_fkey", onUpdate: Cascade, onDelete: Cascade) - - @@map("iam_session") -} - -// TODO: It is temporary entity that could be hold in logs -model TokenAudit { - id String @id @default(cuid()) - // -------------------------------------------------- - /// ID of the user to whom the token belongs - accountId String - /// The ID of the token (jti claim from JWT) - tokenId String - /// The issue time of the token (iat claim from JWT) - issuedAt DateTime - /// The expiration time of the token (exp claim from JWT) - expiresAt DateTime - /// Indicates if the token is revoked - isRevoked Boolean - /// The last time the token was used - lastUsedAt DateTime? - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Account Account @relation(fields: [accountId], references: [id], map: "account_token_audit_fkey") -} - -// TODO: Temporary entity that could be hold in cache -model VerificationRequest { - id String @id @default(cuid()) - // -------------------------------------------------- - accountId String - email String - token String - issuedAt DateTime @default(now()) - expiresAt DateTime - isSolved Boolean @default(false) - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Account Account @relation(fields: [accountId], references: [id], map: "account_verification_request_fkey") -} - -model User { - id String @id @default(cuid()) - // -------------------------------------------------- - accountId String @unique - firstName String - lastName String - email String - phoneNumber String? - avatar String? - about String? - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Account Account @relation(fields: [accountId], references: [id]) - Payments Payment[] - Checkout Checkout[] - Metadata UserMetadata[] - Customer Customer? - - @@map("user") -} - -model Customer { - id String @id @default(cuid()) - // -------------------------------------------------- - // -------------------------------------------------- - User User @relation(fields: [id], references: [id], onDelete: Cascade, onUpdate: Cascade) - Subscription Subscription[] - ShippingAddresses ShippingAddress[] - Order Order[] - Cart Cart? - BillingAddress BillingAddress[] - - @@map("customer") -} - -model UserMetadata { - id String @id @default(cuid()) - // -------------------------------------------------- - key String - value String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - User User @relation(fields: [id], references: [id], map: "user_metadata_fkey", onDelete: Cascade, onUpdate: Cascade) - - @@map("user_md") -} - -/// User can have only one billing address, but can have multiple shipping addresses. -model BillingAddress { - id String @id @default(cuid()) - // -------------------------------------------------- - legalName String - taxIdentifier String - streetLine1 String - streetLine2 String? - city String - state String? - zipCode String - country String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Order Order[] - Subscription Subscription[] - Customer Customer @relation(fields: [id], references: [id], onDelete: Cascade, onUpdate: Cascade) - - @@map("user_billing_address") -} - -model ShippingAddress { - id String @unique @default(cuid()) - // -------------------------------------------------- - userId String - fullName String - streetLine1 String - streetLine2 String? - city String - state String? - zipCode String - country String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - version Int @default(1) - // -------------------------------------------------- - Order Order[] - Subscription Subscription[] - Customer Customer? @relation(fields: [customerId], references: [id]) - customerId String? - - @@id(fields: [id, version], map: "versioned_shipping_address_pk", name: "vid") - @@unique([id, version]) - @@map("user_shipping_address") -} - -model Category { - id String @id @default(cuid()) - // -------------------------------------------------- - name String - parentId String? - description String? - // -------------------------------------------------- - children Category[] @relation(name: "CategoryParentCategoryChild") - parent Category? @relation(fields: [parentId], references: [id], name: "CategoryParentCategoryChild") - Product Product[] - - // -------------------------------------------------- - @@map("product_category") -} - -model Product { - id String @id @default(cuid()) - // -------------------------------------------------- - name String - categoryId String? - price Int - currency String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - ProductAttribute ProductAttribute[] - variants ProductVariant[] - CartItem CartItem[] - Category Category? @relation(fields: [categoryId], references: [id]) - OrderLine OrderLine[] - Swap Swap[] - - // -------------------------------------------------- - @@map("product") -} - -enum AttributeType { - STRING - NUMBER - INTEGER - UNIT - BOOLEAN - DATE -} - -// TODO: In future this can be extended to Attribute and AttributeValue which -// would allow to create custom attributes for products. ProductAttribute -// would be a connector between Attribute, AttributeValue and Product. This -// will allow running really comprehensive queries and filters. The one worst -// case to be resolved is different data types adn potentially implementation of -// MTI to keep everything type-safe. -model ProductAttribute { - id String @id @default(cuid()) - // -------------------------------------------------- - /// @example "gpu.vram" - uid String @unique - productId String - /// Example of ProductAttribute would be "CUDA Cores" or "Memory" - name String - description String? - type AttributeType - // Single-table inheritance (STI) - // https://www.prisma.io/docs/orm/prisma-schema/data-model/table-inheritance#data-model - // Sadly prisma do not support union types which eventually lead to hell - // like this without any proper way to enforce type safety (out of the box). - // Eventually, we need to use a single table inheritance (STI) pattern. - // STI would be more efficient. - valueInt Int? - valueBoolean Boolean? - valueString String? - valueIntUnit String? - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Product Product @relation(fields: [productId], references: [id]) - - // -------------------------------------------------- - @@map("product_attribute") -} - -model ProductOption { - id String @id @default(cuid()) - // -------------------------------------------------- - productAttributeId String - value String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - - // -------------------------------------------------- - @@map("product_option") -} - -model ProductVariant { - id String @id @default(cuid()) - // -------------------------------------------------- - productId String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Product Product @relation(fields: [productId], references: [id]) - - @@map("product_variant") -} - -enum OrderStatus { - PENDING - PROCESSING - SHIPPED - DELIVERED - CANCELED - REFUNDED - RETURNED -} - -model Order { - id String @id @default(cuid()) - // -------------------------------------------------- - customerId String - shippingAddressId String - shippingAddressVersion Int - billingAddressId String? - // Indicates if placed order should start subscription - billingInterval BillingInterval? - // If Order was placed as a part of subscription, this field will be populated - // with subscription ID, this is because we want to track all "sub-orders" - // that are part of subscription. No idea about other way. - subscriptionId String? - status OrderStatus - subtotal Int - tax Int - total Int - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - processedAt DateTime? - shippedAt DateTime? - deliveredAt DateTime? - canceledAt DateTime? - refundedAt DateTime? - returnedAt DateTime? - // -------------------------------------------------- - Customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade, onUpdate: Cascade) - ShippingAddress ShippingAddress @relation(fields: [shippingAddressId, shippingAddressVersion], references: [id, version]) - BillingAddress BillingAddress? @relation(fields: [billingAddressId], references: [id]) - OrderLine OrderLine[] - Subscription Subscription? @relation(fields: [subscriptionId], references: [id]) - Swap Swap[] - - @@map("order") -} - -model Swap { - id String @id @default(cuid()) - // -------------------------------------------------- - orderId String - productId String - quantity Int - price Int - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Order Order @relation(fields: [orderId], references: [id]) - Product Product @relation(fields: [productId], references: [id]) - - @@map("swap") -} - -model OrderLine { - id String @id @default(cuid()) - // -------------------------------------------------- - orderId String - productId String - quantity Int - price Int - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Order Order @relation(fields: [orderId], references: [id]) - Product Product @relation(fields: [productId], references: [id]) - - @@map("order_line") -} - -model Cart { - id String @id @default(cuid()) - // -------------------------------------------------- - /// Customer who owns the cart. His existence is optional. - customerId String? @unique - /// Fingerprints are used to identify a cart across multiple devices. If a - /// customer logs in on a different device, the cart will be restored using - /// the fingerprint. - fingerprint String? - /// Promotion code applied to the cart. - promotionCode String? - /// Currency used for the cart. If not set, defaults to the currency of the customer. - currency String @default("USD") - /// Total quantity of items in the cart. - quantity Int @default(0) - /// Total before any discounts or taxes are applied. - subtotal Int @default(0) - /// Total tax amount applied. If no tax was applied, defaults to 0. - tax Int @default(0) - /// Total discount amount applied. If no discounts were applied, defaults to 0. - discount Int @default(0) - /// Total after discounts and taxes. - total Int @default(0) - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - CartItem CartItem[] - User Customer? @relation(fields: [customerId], references: [id]) - - @@map("cart") -} - -model CartItem { - id String @id @default(cuid()) - // -------------------------------------------------- - /// The cart ID. - cartId String - /// The product ID. - productId String - /// Total before any discounts or taxes are applied. - price Int - /// Currency used for the cart item. If not set, defaults to the currency of the cart. - currency String - /// Total quantity of items in the cart. - quantity Int - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Cart Cart @relation(fields: [cartId], references: [id]) - Product Product @relation(fields: [productId], references: [id]) - - // Disallow duplicate rows with same product as quantity exists - @@unique([cartId, productId]) - @@map("cart_item") -} - -enum PaymentProcessor { - STRIPE @map("stripe") - PAYPAL @map("paypal") - MANUAL @map("manual") -} - -enum PaymentStatus { - PENDING - FAILED - PAID - ACTION_REQUIRED -} - -model Payment { - id String @id @default(cuid()) - // -------------------------------------------------- - payerId String - currency String - amount Int - paymentMethodId String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Payer User @relation(fields: [payerId], references: [id]) - PaymentMethod PaymentMethod @relation(fields: [paymentMethodId], references: [id]) - checkoutId String? - - // -------------------------------------------------- - @@map("payment") -} - -enum InvoiceStatus { - DRAFT - OPEN - PAID - VOID - REFUNDED -} - -model Invoice { - id String @id @default(cuid()) - // -------------------------------------------------- - customerId String - status InvoiceStatus - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - InvoiceLine InvoiceLine[] - Checkout Checkout[] - - // -------------------------------------------------- - @@map("invoice") -} - -model InvoiceLine { - id String @id @default(cuid()) - // -------------------------------------------------- - invoiceId String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Invoice Invoice @relation(fields: [invoiceId], references: [id]) - - // -------------------------------------------------- - @@map("invoice_line") -} - -model PaymentMethod { - id String @id @default(cuid()) - // -------------------------------------------------- - accountId String - processor PaymentProcessor - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Account Account @relation(fields: [accountId], references: [id], onDelete: Cascade, onUpdate: Cascade) - Stripe StripePaymentMethod? - Payment Payment[] - Subscription Subscription[] - - // -------------------------------------------------- - @@map("payment_method") -} - -model StripePaymentMethod { - id String @id @default(cuid()) - // -------------------------------------------------- - stripeCustomerId String - stripePaymentMethodId String - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - PaymentMethod PaymentMethod @relation(fields: [id], references: [id], onDelete: Cascade, onUpdate: Cascade) - - @@map("stripe_payment_method") -} - -model Checkout { - id String @id @default(cuid()) - // -------------------------------------------------- - userId String - paymentId String @unique - invoiceId String - subscriptionId String? - orderId String? - /// Currency used for the cart. If not set, defaults to the currency of the customer. - currency String @default("USD") - /// Total quantity of items in the cart. - quantity Int @default(0) - /// Total before any discounts or taxes are applied. - subtotal Int @default(0) - /// Total tax amount applied. If no tax was applied, defaults to 0. - tax Int @default(0) - /// Total discount amount applied. If no discounts were applied, defaults to 0. - discount Int @default(0) - /// Total after discounts and taxes. - total Int @default(0) - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - User User @relation(fields: [userId], references: [id]) - Invoice Invoice @relation(fields: [invoiceId], references: [id]) - CheckoutItem CheckoutItem[] - - // -------------------------------------------------- - @@map("checkout") -} - -model CheckoutItem { - id String @id @default(cuid()) - // -------------------------------------------------- - checkoutId String - /// Total discount amount applied. If no discounts were applied, defaults to 0. - discount Int @default(0) - /// Total before any discounts or taxes are applied. - subtotal Int - /// Total tax amount applied. If no tax was applied, defaults to 0. - tax Int @default(0) - /// Total after discounts and taxes. - total Int - // -------------------------------------------------- - Checkout Checkout @relation(fields: [checkoutId], references: [id], onDelete: Cascade, onUpdate: Cascade) - - // -------------------------------------------------- - @@map("checkout_item") -} - -model Blob { - id String @id @default(cuid()) - // -------------------------------------------------- - checksum String - type String - size Int - filename String @unique - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - - // -------------------------------------------------- - @@map("blob") -} - -/// Coupon contains information about a percent-off or amount-off discount -/// you might want to apply to a customer. Coupons may be applied to -/// subscriptions, invoices, checkout sessions, quotes, and more. Coupons do not -/// work with conventional one-off charges or payment intents. -model Coupon { - id String @id @default(cuid()) - // -------------------------------------------------- - amountOff Int? - percentOff Int? - duration Int? - durationInMonths Int? - maxRedemptions Int? - minimumAmount Int? - minimumAmountCurrency String? - firstTimeTransactionOnly Boolean? - timesRedeemed BigInt - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - metadata CouponMetadata[] - - // -------------------------------------------------- - @@map("coupon") -} - -/// Set of key-value pairs that you can attach to an object. -/// This can be useful for storing additional information about the object in a -/// structured format. -model CouponMetadata { - id String @id @default(cuid()) - // -------------------------------------------------- - key String - value String - // -------------------------------------------------- - Coupon Coupon @relation(fields: [id], references: [id], onDelete: Cascade, onUpdate: Cascade) - - // -------------------------------------------------- - @@map("coupon_md") -} - -/// A Promotion Code represents a customer-redeemable code for a coupon. It -/// can be used to create multiple codes for a single coupon. - -model PromotionCode { - id String @id @default(cuid()) - // -------------------------------------------------- - code String - active Boolean - - // -------------------------------------------------- - @@map("promotion_code") -} - -model Region { - id String @id @default(cuid()) - // -------------------------------------------------- - name String - country String - - // -------------------------------------------------- - @@map("region") -} - -enum BillingInterval { - DAILY - EVERY_OTHER_DAY - EVERY_THIRD_DAY - EVERY_FOURTH_DAY - EVERY_WEEKDAY - WEEKLY - BIWEEKLY - MONTHLY - QUARTERLY - SEMIANNUALLY - ANNUALLY - - @@map("billing_interval") -} - -enum SubscriptionStatus { - ACTIVE - CANCELED - PAST_DUE - UNPAID - INCOMPLETE - INCOMPLETE_EXPIRED - TRIALING - PAST_TRIALING - - @@map("subscription_status") -} - -model SubscriptionSchedule { - id String @id @default(cuid()) - // -------------------------------------------------- - startDate DateTime - endDate DateTime - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - - // -------------------------------------------------- - // -------------------------------------------------- - @@map("subscription_schedule") -} - -model Plan { - id String @id @default(cuid()) - // -------------------------------------------------- -} - -model PlanItem { - id String @id @default(cuid()) - // -------------------------------------------------- -} - -model Subscription { - id String @id @default(cuid()) - // -------------------------------------------------- - customerId String - billingInterval BillingInterval - billingFrequency Int - paymentMethodId String - nextBillingDate DateTime - status SubscriptionStatus - billingAddressId String? - shippingAddressId String? - startedAt DateTime - endedAt DateTime? - // -------------------------------------------------- - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - // -------------------------------------------------- - Customer Customer @relation(fields: [customerId], references: [id]) - PaymentMethod PaymentMethod @relation(fields: [paymentMethodId], references: [id]) - BillingAddress BillingAddress? @relation(fields: [billingAddressId], references: [id]) - ShippingAddress ShippingAddress? @relation(fields: [shippingAddressId], references: [id]) - Order Order[] - - // -------------------------------------------------- - @@map("subscription") -} - -model Discount { - id String @id @default(cuid()) - // -------------------------------------------------- -} diff --git a/apps/server/src/routes/v1/ingestion.ts b/apps/server/src/routes/v1/ingestion.ts new file mode 100644 index 00000000..80a4df72 --- /dev/null +++ b/apps/server/src/routes/v1/ingestion.ts @@ -0,0 +1 @@ +// Main controller for building ingestion routes. \ No newline at end of file diff --git a/apps/server/src/routes/v1/substance.ts b/apps/server/src/routes/v1/substance.ts new file mode 100644 index 00000000..7720dcb1 --- /dev/null +++ b/apps/server/src/routes/v1/substance.ts @@ -0,0 +1 @@ +// An main controller for quering substance information. \ No newline at end of file diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml new file mode 100644 index 00000000..186e91b7 --- /dev/null +++ b/deploy/docker-compose.yml @@ -0,0 +1,36 @@ +version : '3.7' +services : + server : + container_name : ${REPOSITORY_NAME}-server + image : ${REPOSITORY_NAME}:latest + build : + dockerfile : apps/server/Dockerfile + context : .. + ports : + - '${PORT}:3000' + environment : + - DATABASE_URL=postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@cockroachdb:${DATABASE_PORT}/${DATABASE_NAME} + + cockroachdb : + container_name : ${REPOSITORY_NAME}-cockroachdb + image : cockroachdb/cockroach:latest + command : start-single-node --insecure --advertise-addr ${DATABASE_HOST} + ports : + - '${DATABASE_PORT}:26257' + - '8081:8080' + volumes : + - '${PWD}/.cache/cockroach:/cockroach/cockroach-data' + environment : + - COCKROACH_USER=${DATABASE_USER} + - COCKROACH_PASSWORD=${DATABASE_PASSWORD} + - COCKROACH_DATABASE=${DATABASE_NAME} + + meilisearch : + container_name : ${REPOSITORY_NAME}-meilisearch + image : getmeili/meilisearch:latest + ports : + - '${MEILISEARCH_PORT}:7700' + volumes : + - '${PWD}/.cache/meilisearch:/data.ms' + environment : + - MEILI_MASTER_KEY=${MEILISEARCH_MASTER_KEY} diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index a0937579..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3.7' -services: - server: - container_name: ${REPOSITORY_NAME}-server - image: ${REPOSITORY_NAME}:latest - build: - dockerfile: apps/server/Dockerfile - context: . - ports: - - '${PORT}:3000' - environment: - - DATABASE_URL=postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@cockroachdb:${DATABASE_PORT}/${DATABASE_NAME} - - cockroachdb: - container_name: ${REPOSITORY_NAME}-cockroachdb - image: cockroachdb/cockroach:latest - command: start-single-node --insecure --advertise-addr ${DATABASE_HOST} - ports: - - '${DATABASE_PORT}:26257' - - '8081:8080' - volumes: - - '${PWD}/.cache/cockroach:/cockroach/cockroach-data' - environment: - - COCKROACH_USER=${DATABASE_USER} - - COCKROACH_PASSWORD=${DATABASE_PASSWORD} - - COCKROACH_DATABASE=${DATABASE_NAME} - - meilisearch: - container_name: ${REPOSITORY_NAME}-meilisearch - image: getmeili/meilisearch:latest - ports: - - '${MEILISEARCH_PORT}:7700' - volumes: - - '${PWD}/.cache/meilisearch:/data.ms' - environment: - - MEILI_MASTER_KEY=${MEILISEARCH_MASTER_KEY} diff --git a/packages/hephaistos/.c8rc.json b/packages/hephaistos/.c8rc.json deleted file mode 100644 index 82d2e599..00000000 --- a/packages/hephaistos/.c8rc.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "reporter": [ - "text-summary", - "json", - "html", - "lcov" - ], - "reportsDir": "./coverage", - "src": [ - "src/**/*.ts" - ] -} diff --git a/packages/hephaistos/.eslintrc.json b/packages/hephaistos/.eslintrc.json deleted file mode 100644 index cdb7fe1a..00000000 --- a/packages/hephaistos/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": ["node"] -} diff --git a/packages/hephaistos/.gitignore b/packages/hephaistos/.gitignore deleted file mode 100644 index 0f08ccb2..00000000 --- a/packages/hephaistos/.gitignore +++ /dev/null @@ -1 +0,0 @@ -cache/*.json diff --git a/packages/hephaistos/README.md b/packages/hephaistos/README.md deleted file mode 100644 index e17fc4b4..00000000 --- a/packages/hephaistos/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `packages/hephaistos` - -Hephaistos is a command-line tool for building dataset of substaces, effects and experience reports from available sources. Nobody is supposed to build them on your own, if you're looking for these information you can use `lucifer` packages which aims to distructure data contained in application, also it's used to seed database. diff --git a/packages/hephaistos/ava.config.js b/packages/hephaistos/ava.config.js deleted file mode 100644 index c58d6d34..00000000 --- a/packages/hephaistos/ava.config.js +++ /dev/null @@ -1,13 +0,0 @@ -export default { - concurrency: 5, - failFast: false, - failWithoutAssertions: false, - environmentVariables: { - NODE_ENV: 'testing' - }, - verbose: false, - nodeArguments: ['--loader=ts-node/esm', '--experimental-specifier-resolution=node', '--no-warnings'], - extensions: { - ts: 'module' - } -} diff --git a/packages/hephaistos/cache/.gitkeep b/packages/hephaistos/cache/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/hephaistos/package.json b/packages/hephaistos/package.json deleted file mode 100644 index e472b42e..00000000 --- a/packages/hephaistos/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "hephaistos", - "version": "0.0.0", - "private": true, - "description": "", - "author": { - "name": "Jakub Olan", - "email": "keinsell@protonmail.com", - "url": "https://github.com/keinsell" - }, - "type": "module", - "main": "dist/index.js", - "module": "dist/index.cjs", - "types": "dist/index.d.ts", - "scripts": { - "db:generate": "prisma generate", - "db:migrate:deploy": "prisma migrate deploy", - "db:migrate:dev": "prisma migrate dev", - "db:push": "prisma db push --accept-data-loss", - "db:studio": "prisma studio", - "generate": "pnpm run generate:gql:pw", - "generate:gql:pw": "graphql-codegen-esm --config psychonautwiki.gql-codegen.yml", - "hephaistos": "tsx --watch ./src/bin.ts" - }, - "dependencies": { - "@prisma/client": "latest", - "chalk": "^5.2.0", - "effectindex-dataset": "*", - "erowid-dataset": "*", - "figlet": "^1.5.2", - "graphql": "^16.6.0", - "graphql-request": "^5.1.0", - "js-quantities": "^1.7.6", - "lowdb": "^5.0.5", - "ms": "^2.1.3", - "nanoid": "^4.0.1", - "ora": "^6.1.2", - "osiris": "*", - "pqm": "^1.0.0", - "psyxts-dataset": "*", - "signale": "^1.4.0", - "slugify": "^1.6.5", - "type-fest": "^3.5.3", - "unitmath": "^0.8.8" - }, - "devDependencies": { - "@ava/typescript": "^3.0.1", - "@graphql-codegen/cli": "2.16.4", - "@graphql-codegen/client-preset": "1.2.6", - "@graphql-codegen/introspection": "2.2.3", - "@swc/core": "^1.3.27", - "@swc/wasm": "^1.3.27", - "@types/figlet": "^1.5.5", - "@types/js-quantities": "^1.6.3", - "@types/ms": "^0.7.31", - "@types/node": "^18.11.18", - "@types/nodemon": "1.19.2", - "@types/signale": "^1.4.4", - "ava": "^5.1.1", - "c8": "^7.12.0", - "eslint-config-node": "*", - "nodemon": "2.0.20", - "prisma": "latest", - "ts-node": "^10.9.1", - "tsup": "^6.5.0", - "tsx": "3.12.2", - "typescript": "^4.9.4" - }, - "packageManager": "pnpm@8.6.0", - "volta": { - "node": "19.4.0" - } -} diff --git a/packages/hephaistos/prisma/schema.prisma b/packages/hephaistos/prisma/schema.prisma deleted file mode 100644 index db48323e..00000000 --- a/packages/hephaistos/prisma/schema.prisma +++ /dev/null @@ -1,115 +0,0 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - -datasource db { - provider = "cockroachdb" - url = env("DATABASE_URL") -} - -generator client { - provider = "prisma-client-js" - previewFeatures = ["fullTextSearch", "fullTextIndex", "metrics", "tracing", "filteredRelationCount", "fieldReference", "multiSchema", "extendedWhereUnique", "views", "clientExtensions"] -} - -model Account { - id String @id @default(cuid()) - username String @unique - publicKey String - Subject Subject[] - AuthenticationChallange AuthenticationChallange[] -} - -model AuthenticationChallange { - id String @id @default(cuid()) - account_id String? - account Account? @relation(fields: [account_id], references: [id]) - challenge String - valid_until DateTime - response String? - success Boolean? - privateKey String - date_created DateTime @default(now()) -} - -model Subject { - id String @id @default(cuid()) - firstName String? - lastName String? - dateOfBirth DateTime? - weight Int? - height Int? - account_id String? @unique - account Account? @relation(fields: [account_id], references: [id]) - Ingestion Ingestion[] -} - -model Substance { - id String @id @default(cuid()) - name String @unique - common_names String[] - brand_names String[] - substitutive_name String? - systematic_name String? - unii String? - cas_number String? - inchi_key String? - iupac String? - smiles String? - psychoactive_class String[] - chemical_class String? - routes_of_administration RouteOfAdministration[] - Ingestion Ingestion[] -} - -model RouteOfAdministration { - id String @id @default(cuid()) - substanceName String? - name String - bioavailability Float[] - dosage_kind String - dosage_unit String - dosage_per_kilogram Boolean @default(false) - thereshold_dosage Float - light_dosage Float[] - common_dosage Float[] - strong_dosage Float[] - heavy_dosage Float - onset_phase Int[] - comeup_phase Int[] - peak_phase Int[] - offset_phase Int[] - afterglow_phase Int[] - Substance Substance? @relation(fields: [substanceName], references: [name]) -} - -model Effect { - id String @id @default(cuid()) - name String @unique - slug String @unique - - category String? - type String? - tags String[] - - summary String? - description String[] - - parameters String[] - see_also String[] - - effectindex String? - psychonautwiki String? -} - -model Ingestion { - id String @id @default(cuid()) - substanceName String? - routeOfAdministration String? - dosage_unit String? - dosage_amount Int? - isEstimatedDosage Boolean? @default(false) - date DateTime? - subject_id String? - Subject Subject? @relation(fields: [subject_id], references: [id]) - Substance Substance? @relation(fields: [substanceName], references: [name]) -} diff --git a/packages/hephaistos/psychonautwiki.gql-codegen.yml b/packages/hephaistos/psychonautwiki.gql-codegen.yml deleted file mode 100644 index 704edf98..00000000 --- a/packages/hephaistos/psychonautwiki.gql-codegen.yml +++ /dev/null @@ -1,13 +0,0 @@ -overwrite: true -schema: 'https://api.psychonautwiki.org' -documents: ['./src/gql/**/*.graphql'] -emitLegacyCommonJSImports: false -generates: - './src/utils/gql/sdk/': - preset: 'client' - plugins: [] - schema: 'https://api.psychonautwiki.org' - documents: ['./utils/gql/**/*.graphql'] - './src/utils/gql/graphql.schema.json': - plugins: - - 'introspection' diff --git a/packages/hephaistos/src/bin.ts b/packages/hephaistos/src/bin.ts deleted file mode 100644 index ec1698d8..00000000 --- a/packages/hephaistos/src/bin.ts +++ /dev/null @@ -1,11 +0,0 @@ -import figlet from 'figlet' -import { effectindex } from './effectindex.js' -import { psychonautwiki } from './psychonautwiki.js' -import { drugbank } from './drugbank.js' - -console.log(figlet.textSync('Hephaistos')) -console.log('Hephaistos is initializing...') - -await effectindex() -await psychonautwiki() -await drugbank() diff --git a/packages/hephaistos/src/drugbank.ts b/packages/hephaistos/src/drugbank.ts deleted file mode 100644 index 088cb5c9..00000000 --- a/packages/hephaistos/src/drugbank.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { PrismaClient, Prisma } from 'database' -import dataset, { DrugElement, DrugbankD } from 'drugbank-dataset' -import slugify from 'slugify' -import { prisma } from './prisma-instance.js' -import ora from 'ora' - -function map(substance: DrugElement): Prisma.SubstanceCreateInput { - return { - name: substance.name - // cas_number: substance['cas-number'] || undefined - } -} - -async function doSubstanceExistsByName(name: string) { - const exists = await prisma.substance.count({ where: { name } }) - return exists > 0 -} - -export async function drugbank(): Promise { - const spinner = ora(`Loading drugbank.json...`).start() - - let index = 0 - - for (const item of dataset as unknown as any[]) { - const substance = map(item) - spinner.text = `Importing substance: ${substance.name} - (${index++}/${(dataset as unknown as any[]).length - 1})` - - if (!substance.name.startsWith('Vitamin')) { - // Skip - continue - } - - const substanceExists = await doSubstanceExistsByName(substance.name) - - if (substanceExists) { - // Update Substance - await prisma.substance.update({ where: { name: substance.name }, data: substance }) - // Skip creation - continue - } - - await prisma.substance.create({ data: substance }) - } - - spinner.succeed('Drugbank loaded to database...') -} diff --git a/packages/hephaistos/src/effectindex.ts b/packages/hephaistos/src/effectindex.ts deleted file mode 100644 index fc71b18d..00000000 --- a/packages/hephaistos/src/effectindex.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Prisma } from 'database' -import type { ParsedPage } from 'effectindex-dataset' -import dataset from 'effectindex-dataset' -import ora from 'ora' -import slugify from 'slugify' -import { prisma } from './prisma-instance.js' - -function map(effect: ParsedPage & { url: string }): Prisma.EffectCreateInput { - let title = effect.title - const summary = effect.description - const raw_description = effect.text.split('\n') - const url = effect.url - const description = [] - - for (const line of raw_description) { - if (line.startsWith('[')) continue - if (line === '') continue - - description.push(line) - } - - return { - name: title, - slug: slugify(title, { lower: true }), - summary, - description, - effectindex: url - } -} - -async function checkIfEffectExistsByName(name: string) { - const effect = prisma.effect.findFirst({ where: { name } }) - return effect -} - -export async function effectindex(): Promise { - const spinner = ora(`Loading effectindex.json...`).start() - - let index = 0 - for (const item of dataset) { - const effect = map(item as ParsedPage & { url: string }) - spinner.text = `Importing effect: ${effect.name} - (${index++}/${dataset.length - 1})` - - const effectExists = await checkIfEffectExistsByName(effect.name) - - if (effectExists) { - continue - } - - await prisma.effect.create({ data: effect }) - } - - spinner.succeed('Effectindex loaded to database...') -} diff --git a/packages/hephaistos/src/erowid.ts b/packages/hephaistos/src/erowid.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/hephaistos/src/gql/graphql.schema.json b/packages/hephaistos/src/gql/graphql.schema.json deleted file mode 100644 index 177417c0..00000000 --- a/packages/hephaistos/src/gql/graphql.schema.json +++ /dev/null @@ -1,2340 +0,0 @@ -{ - "__schema": { - "queryType": { - "name": "Query" - }, - "mutationType": null, - "subscriptionType": null, - "types": [ - { - "kind": "SCALAR", - "name": "Boolean", - "description": "The `Boolean` scalar type represents `true` or `false`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Effect", - "description": null, - "fields": [ - { - "name": "experiences", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Experience", - "description": null, - "fields": [ - { - "name": "effects", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Float", - "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Query", - "description": null, - "fields": [ - { - "name": "effects_by_substance", - "description": null, - "args": [ - { - "name": "limit", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "50", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "0", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substance", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Effect", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "experiences", - "description": null, - "args": [ - { - "name": "effects_by_substance", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substance", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances_by_effect", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances", - "description": null, - "args": [ - { - "name": "chemicalClass", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "effect", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limit", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "10", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "0", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "psychoactiveClass", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances_by_effect", - "description": null, - "args": [ - { - "name": "effect", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limit", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "50", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "0", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "RoaRange", - "description": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - } - ] - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Substance", - "description": null, - "fields": [ - { - "name": "addictionPotential", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "class", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceClass", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commonNames", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "crossTolerances", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dangerousInteractions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "effects", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Effect", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "experiences", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "featured", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "images", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubstanceImage", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "roa", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaTypes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "roas", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "summary", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tolerance", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceTolerance", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "toxicity", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "uncertainInteractions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unsafeInteractions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceClass", - "description": null, - "fields": [ - { - "name": "chemical", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "psychoactive", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceImage", - "description": null, - "fields": [ - { - "name": "image", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thumb", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoa", - "description": null, - "fields": [ - { - "name": "bioavailability", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dose", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDose", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duration", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDuration", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaDose", - "description": null, - "fields": [ - { - "name": "common", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "heavy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "light", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "strong", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "threshold", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "units", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaDuration", - "description": null, - "fields": [ - { - "name": "afterglow", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comeup", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duration", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "onset", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "peak", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "total", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "description": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "units", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "RoaRange", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "description": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "RoaRange", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaTypes", - "description": null, - "fields": [ - { - "name": "buccal", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "insufflated", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "intramuscular", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "intravenous", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oral", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rectal", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "smoked", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subcutaneous", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sublingual", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "transdermal", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceTolerance", - "description": null, - "fields": [ - { - "name": "full", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "half", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "zero", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Directive", - "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRepeatable", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "description": "Location adjacent to a field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VARIABLE_DEFINITION", - "description": "Location adjacent to a variable definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__EnumValue", - "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Field", - "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__InputValue", - "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultValue", - "description": "A GraphQL-formatted string representing the default value for this input value.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Schema", - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", - "fields": [ - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "types", - "description": "A list of all types supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", - "description": "The type that query operations will be rooted at.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mutationType", - "description": "If this server supports mutation, the type that mutation operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscriptionType", - "description": "If this server support subscription, the type that subscription operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "directives", - "description": "A list of all directives supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Type", - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", - "fields": [ - { - "name": "kind", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "specifiedByURL", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaces", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "possibleTypes", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enumValues", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inputFields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ofType", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "description": "An enum describing what kind of type a given `__Type` is.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SCALAR", - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIST", - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NON_NULL", - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - } - ], - "directives": [ - { - "name": "deprecated", - "description": "Marks an element of a GraphQL schema as no longer supported.", - "isRepeatable": false, - "locations": [ - "ARGUMENT_DEFINITION", - "ENUM_VALUE", - "FIELD_DEFINITION", - "INPUT_FIELD_DEFINITION" - ], - "args": [ - { - "name": "reason", - "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": "\"No longer supported\"", - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "include", - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "isRepeatable": false, - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "args": [ - { - "name": "if", - "description": "Included when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "skip", - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "isRepeatable": false, - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "args": [ - { - "name": "if", - "description": "Skipped when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "specifiedBy", - "description": "Exposes a URL that specifies the behavior of this scalar.", - "isRepeatable": false, - "locations": [ - "SCALAR" - ], - "args": [ - { - "name": "url", - "description": "The URL that specifies the behavior of this scalar.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - } - ] - } -} diff --git a/packages/hephaistos/src/gql/operation.graphql b/packages/hephaistos/src/gql/operation.graphql deleted file mode 100644 index 35bd29b3..00000000 --- a/packages/hephaistos/src/gql/operation.graphql +++ /dev/null @@ -1,202 +0,0 @@ -query getSubstances($name: String) { - substances(query: $name) { - name - summary - url - featured - - effects { - name - url - } - - class { - chemical - psychoactive - } - - tolerance { - full - half - zero - } - # routes of administration - roas { - name - dose { - units - threshold - heavy - common { - min - max - } - light { - min - max - } - strong { - min - max - } - } - duration { - afterglow { - min - max - units - } - comeup { - min - max - units - } - duration { - min - max - units - } - offset { - min - max - units - } - onset { - min - max - units - } - peak { - min - max - units - } - total { - min - max - units - } - } - bioavailability { - min - max - } - } - - images { - thumb - image - } - - addictionPotential - toxicity - crossTolerances - commonNames - uncertainInteractions { - class { - psychoactive - } - } - unsafeInteractions { - class { - psychoactive - } - } - - dangerousInteractions { - class { - psychoactive - } - } - } -} - -query AllSubstances { - substances(limit: 9999) { - name - commonNames - url - class { - chemical - psychoactive - } - tolerance { - full - half - zero - } - roas { - name - dose { - units - threshold - light { - min - max - } - common { - min - max - } - strong { - min - max - } - heavy - } - duration { - onset { - min - max - units - } - comeup { - min - max - units - } - peak { - min - max - units - } - offset { - min - max - units - } - total { - min - max - units - } - afterglow { - min - max - units - } - } - bioavailability { - min - max - } - } - addictionPotential - toxicity - crossTolerances - uncertainInteractions { - name - } - unsafeInteractions { - name - } - dangerousInteractions { - name - } - - effects { - name - url - } - } -} diff --git a/packages/hephaistos/src/gql/schema.graphql b/packages/hephaistos/src/gql/schema.graphql deleted file mode 100644 index f45cd303..00000000 --- a/packages/hephaistos/src/gql/schema.graphql +++ /dev/null @@ -1,117 +0,0 @@ -type SubstanceClass { - chemical: [String] - psychoactive: [String] -} - -type SubstanceTolerance { - full: String - half: String - zero: String -} - -interface RoaRange { - min: Float - max: Float -} - -type SubstanceRoaRange implements RoaRange { - min: Float - max: Float -} - -type SubstanceRoaDurationRange implements RoaRange { - min: Float - max: Float - units: String -} - -type SubstanceRoaDose { - units: String - threshold: Float - heavy: Float - common: SubstanceRoaRange - light: SubstanceRoaRange - strong: SubstanceRoaRange -} - -type SubstanceRoaDuration { - afterglow: SubstanceRoaDurationRange - comeup: SubstanceRoaDurationRange - duration: SubstanceRoaDurationRange - offset: SubstanceRoaDurationRange - onset: SubstanceRoaDurationRange - peak: SubstanceRoaDurationRange - total: SubstanceRoaDurationRange -} - -type SubstanceRoa { - name: String - dose: SubstanceRoaDose - duration: SubstanceRoaDuration - bioavailability: SubstanceRoaRange -} - -type SubstanceRoaTypes { - oral: SubstanceRoa - sublingual: SubstanceRoa - buccal: SubstanceRoa - insufflated: SubstanceRoa - rectal: SubstanceRoa - transdermal: SubstanceRoa - subcutaneous: SubstanceRoa - intramuscular: SubstanceRoa - intravenous: SubstanceRoa - smoked: SubstanceRoa -} - -type SubstanceImage { - thumb: String - image: String -} - -type Substance { - name: String - url: String - featured: Boolean - effects: [Effect] - experiences: [Experience] - class: SubstanceClass - tolerance: SubstanceTolerance - roa: SubstanceRoaTypes - roas: [SubstanceRoa] - summary: String - images: [SubstanceImage] - addictionPotential: String - toxicity: [String] - crossTolerances: [String] - commonNames: [String] - uncertainInteractions: [Substance] - unsafeInteractions: [Substance] - dangerousInteractions: [Substance] -} - -type Effect { - name: String - url: String - substances: [Substance] - experiences: [Experience] -} - -type Experience { - substances: [Substance] - effects: [Experience] -} - -type Query { - substances( - effect: String - query: String - chemicalClass: String - psychoactiveClass: String - limit: Int = 10 - offset: Int = 0 - ): [Substance] - substances_by_effect(effect: [String], limit: Int = 50, offset: Int = 0): [Substance] - effects_by_substance(substance: String, limit: Int = 50, offset: Int = 0): [Effect] - experiences(substances_by_effect: String, effects_by_substance: String, substance: String): [Experience] -} diff --git a/packages/hephaistos/src/prisma-instance.ts b/packages/hephaistos/src/prisma-instance.ts deleted file mode 100644 index d1279846..00000000 --- a/packages/hephaistos/src/prisma-instance.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { PrismaClient } from 'database' - -const prisma = new PrismaClient() - -export { prisma } diff --git a/packages/hephaistos/src/psychonautwiki.ts b/packages/hephaistos/src/psychonautwiki.ts deleted file mode 100644 index 53d891f6..00000000 --- a/packages/hephaistos/src/psychonautwiki.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { request } from 'graphql-request' -import { - AllSubstancesDocument, - AllSubstancesQuery, - Substance as PsychonautWikiSubstance -} from './utils/gql/sdk/graphql.js' -import { Prisma } from 'database' -import { prisma } from './prisma-instance.js' -import ora from 'ora' - -function map(input: PsychonautWikiSubstance): Prisma.SubstanceCreateInput { - const substance: Partial = {} - - substance.name = input.name - substance.common_names = input.commonNames || undefined - substance.chemical_class = input.class?.chemical?.[0] || undefined - substance.psychoactive_class = input.class?.psychoactive || undefined - - return substance as any -} - -function mapRoutesOfAdministration(input: PsychonautWikiSubstance): Prisma.RouteOfAdministrationCreateInput[] { - const mappedRoutesOfAdministration: Prisma.RouteOfAdministrationCreateInput[] = [] - - for (const route of input.roas) { - if (route.dose) { - if ( - !route.dose.threshold || - !route.dose.light || - !route.dose.common || - !route.dose.strong || - !route.dose.heavy || - !route.dose.units - ) { - continue - } - } else { - continue - } - - if (route) { - mappedRoutesOfAdministration.push({ - name: route.name, - thereshold_dosage: route.dose.threshold, - light_dosage: [route.dose.light.min, route.dose.light.max], - common_dosage: [route.dose.common.min, route.dose.common.max], - strong_dosage: [route.dose.strong.min, route.dose.strong.max], - heavy_dosage: route.dose.heavy, - dosage_unit: route.dose.units, - dosage_kind: '', - Substance: { - connect: { - name: input.name - } - } - }) - } - } - - return mappedRoutesOfAdministration -} - -async function doSubstanceExistsByName(name: string) { - const exists = await prisma.substance.count({ where: { name } }) - return exists > 0 -} - -export async function psychonautwiki() { - const response = await request('https://api.psychonautwiki.org', AllSubstancesDocument, {}) - - const spinner = ora('Loading PsychonautWiki').start() - - // Loop through response substances - for (const psx of response.substances) { - // Map to database API - const substance = map(psx) - const routesOfAdministration = mapRoutesOfAdministration(psx) - - spinner.text = `Loading ${substance.name}...` - - // Check if substance exists already, skip - if (await doSubstanceExistsByName(substance.name)) { - // Update substance - await prisma.substance.update({ - where: { name: substance.name }, - data: substance - }) - // Skip creation - continue - } - - // Write to database - await prisma.substance.create({ data: substance }) - - // Create missing routes of administration - for (const route of routesOfAdministration) { - // Check if route of administration exists already, skip - if ( - (await prisma.routeOfAdministration.count({ where: { name: route.name, substanceName: substance.name } })) > 0 - ) { - continue - } - // Create route of administration - await prisma.routeOfAdministration.create({ - data: { - ...route, - Substance: { - connect: { - name: substance.name - } - } - } - }) - } - } - - spinner.succeed('Psychonautwiki loaded to database...') -} diff --git a/packages/hephaistos/src/utils/gql/graphql.schema.json b/packages/hephaistos/src/utils/gql/graphql.schema.json deleted file mode 100644 index 177417c0..00000000 --- a/packages/hephaistos/src/utils/gql/graphql.schema.json +++ /dev/null @@ -1,2340 +0,0 @@ -{ - "__schema": { - "queryType": { - "name": "Query" - }, - "mutationType": null, - "subscriptionType": null, - "types": [ - { - "kind": "SCALAR", - "name": "Boolean", - "description": "The `Boolean` scalar type represents `true` or `false`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Effect", - "description": null, - "fields": [ - { - "name": "experiences", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Experience", - "description": null, - "fields": [ - { - "name": "effects", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Float", - "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Query", - "description": null, - "fields": [ - { - "name": "effects_by_substance", - "description": null, - "args": [ - { - "name": "limit", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "50", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "0", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substance", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Effect", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "experiences", - "description": null, - "args": [ - { - "name": "effects_by_substance", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substance", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances_by_effect", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances", - "description": null, - "args": [ - { - "name": "chemicalClass", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "effect", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limit", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "10", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "0", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "psychoactiveClass", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "substances_by_effect", - "description": null, - "args": [ - { - "name": "effect", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limit", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "50", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": "0", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "RoaRange", - "description": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - } - ] - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Substance", - "description": null, - "fields": [ - { - "name": "addictionPotential", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "class", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceClass", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commonNames", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "crossTolerances", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dangerousInteractions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "effects", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Effect", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "experiences", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Experience", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "featured", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "images", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubstanceImage", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "roa", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaTypes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "roas", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "summary", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tolerance", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceTolerance", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "toxicity", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "uncertainInteractions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unsafeInteractions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Substance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceClass", - "description": null, - "fields": [ - { - "name": "chemical", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "psychoactive", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceImage", - "description": null, - "fields": [ - { - "name": "image", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thumb", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoa", - "description": null, - "fields": [ - { - "name": "bioavailability", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dose", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDose", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duration", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDuration", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaDose", - "description": null, - "fields": [ - { - "name": "common", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "heavy", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "light", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "strong", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "threshold", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "units", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaDuration", - "description": null, - "fields": [ - { - "name": "afterglow", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comeup", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duration", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "onset", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "peak", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "total", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaDurationRange", - "description": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "units", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "RoaRange", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaRange", - "description": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "RoaRange", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceRoaTypes", - "description": null, - "fields": [ - { - "name": "buccal", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "insufflated", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "intramuscular", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "intravenous", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oral", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rectal", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "smoked", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subcutaneous", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sublingual", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "transdermal", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SubstanceRoa", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubstanceTolerance", - "description": null, - "fields": [ - { - "name": "full", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "half", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "zero", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Directive", - "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRepeatable", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "description": "Location adjacent to a field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VARIABLE_DEFINITION", - "description": "Location adjacent to a variable definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__EnumValue", - "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Field", - "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__InputValue", - "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultValue", - "description": "A GraphQL-formatted string representing the default value for this input value.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Schema", - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", - "fields": [ - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "types", - "description": "A list of all types supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", - "description": "The type that query operations will be rooted at.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mutationType", - "description": "If this server supports mutation, the type that mutation operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscriptionType", - "description": "If this server support subscription, the type that subscription operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "directives", - "description": "A list of all directives supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Type", - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", - "fields": [ - { - "name": "kind", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "specifiedByURL", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaces", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "possibleTypes", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enumValues", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inputFields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ofType", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "description": "An enum describing what kind of type a given `__Type` is.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SCALAR", - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIST", - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NON_NULL", - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - } - ], - "directives": [ - { - "name": "deprecated", - "description": "Marks an element of a GraphQL schema as no longer supported.", - "isRepeatable": false, - "locations": [ - "ARGUMENT_DEFINITION", - "ENUM_VALUE", - "FIELD_DEFINITION", - "INPUT_FIELD_DEFINITION" - ], - "args": [ - { - "name": "reason", - "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": "\"No longer supported\"", - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "include", - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "isRepeatable": false, - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "args": [ - { - "name": "if", - "description": "Included when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "skip", - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "isRepeatable": false, - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "args": [ - { - "name": "if", - "description": "Skipped when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "specifiedBy", - "description": "Exposes a URL that specifies the behavior of this scalar.", - "isRepeatable": false, - "locations": [ - "SCALAR" - ], - "args": [ - { - "name": "url", - "description": "The URL that specifies the behavior of this scalar.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - } - ] - } -} diff --git a/packages/hephaistos/src/utils/gql/sdk/fragment-masking.ts b/packages/hephaistos/src/utils/gql/sdk/fragment-masking.ts deleted file mode 100644 index b35c16dd..00000000 --- a/packages/hephaistos/src/utils/gql/sdk/fragment-masking.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { TypedDocumentNode as DocumentNode, ResultOf } from '@graphql-typed-document-node/core' - -export type FragmentType> = TDocumentType extends DocumentNode< - infer TType, - any -> - ? TType extends { ' $fragmentName'?: infer TKey } - ? TKey extends string - ? { ' $fragmentRefs'?: { [key in TKey]: TType } } - : never - : never - : never - -// return non-nullable if `fragmentType` is non-nullable -export function useFragment( - _documentNode: DocumentNode, - fragmentType: FragmentType> -): TType -// return nullable if `fragmentType` is nullable -export function useFragment( - _documentNode: DocumentNode, - fragmentType: FragmentType> | null | undefined -): TType | null | undefined -// return array of non-nullable if `fragmentType` is array of non-nullable -export function useFragment( - _documentNode: DocumentNode, - fragmentType: ReadonlyArray>> -): ReadonlyArray -// return array of nullable if `fragmentType` is array of nullable -export function useFragment( - _documentNode: DocumentNode, - fragmentType: ReadonlyArray>> | null | undefined -): ReadonlyArray | null | undefined -export function useFragment( - _documentNode: DocumentNode, - fragmentType: - | FragmentType> - | ReadonlyArray>> - | null - | undefined -): TType | ReadonlyArray | null | undefined { - return fragmentType as any -} - -export function makeFragmentData>( - data: FT, - _fragment: F -): FragmentType { - return data as FragmentType -} diff --git a/packages/hephaistos/src/utils/gql/sdk/gql.ts b/packages/hephaistos/src/utils/gql/sdk/gql.ts deleted file mode 100644 index a85a5109..00000000 --- a/packages/hephaistos/src/utils/gql/sdk/gql.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* eslint-disable */ -import * as types from './graphql.js' -import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core' - -/** - * Map of all GraphQL operations in the project. - * - * This map has several performance disadvantages: - * 1. It is not tree-shakeable, so it will include all operations in the project. - * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. - * 3. It does not support dead code elimination, so it will add unused operations. - * - * Therefore it is highly recommended to use the babel-plugin for production. - */ -const documents = { - 'query getSubstances($name: String) {\n substances(query: $name) {\n name\n summary\n url\n featured\n effects {\n name\n url\n }\n class {\n chemical\n psychoactive\n }\n tolerance {\n full\n half\n zero\n }\n roas {\n name\n dose {\n units\n threshold\n heavy\n common {\n min\n max\n }\n light {\n min\n max\n }\n strong {\n min\n max\n }\n }\n duration {\n afterglow {\n min\n max\n units\n }\n comeup {\n min\n max\n units\n }\n duration {\n min\n max\n units\n }\n offset {\n min\n max\n units\n }\n onset {\n min\n max\n units\n }\n peak {\n min\n max\n units\n }\n total {\n min\n max\n units\n }\n }\n bioavailability {\n min\n max\n }\n }\n images {\n thumb\n image\n }\n addictionPotential\n toxicity\n crossTolerances\n commonNames\n uncertainInteractions {\n class {\n psychoactive\n }\n }\n unsafeInteractions {\n class {\n psychoactive\n }\n }\n dangerousInteractions {\n class {\n psychoactive\n }\n }\n }\n}\n\nquery AllSubstances {\n substances(limit: 9999) {\n name\n commonNames\n url\n class {\n chemical\n psychoactive\n }\n tolerance {\n full\n half\n zero\n }\n roas {\n name\n dose {\n units\n threshold\n light {\n min\n max\n }\n common {\n min\n max\n }\n strong {\n min\n max\n }\n heavy\n }\n duration {\n onset {\n min\n max\n units\n }\n comeup {\n min\n max\n units\n }\n peak {\n min\n max\n units\n }\n offset {\n min\n max\n units\n }\n total {\n min\n max\n units\n }\n afterglow {\n min\n max\n units\n }\n }\n bioavailability {\n min\n max\n }\n }\n addictionPotential\n toxicity\n crossTolerances\n uncertainInteractions {\n name\n }\n unsafeInteractions {\n name\n }\n dangerousInteractions {\n name\n }\n effects {\n name\n url\n }\n }\n}': - types.GetSubstancesDocument -} - -/** - * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - * - * - * @example - * ```ts - * const query = gql(`query GetUser($id: ID!) { user(id: $id) { name } }`); - * ``` - * - * The query argument is unknown! - * Please regenerate the types. - */ -export function graphql(source: string): unknown - -/** - * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function graphql( - source: 'query getSubstances($name: String) {\n substances(query: $name) {\n name\n summary\n url\n featured\n effects {\n name\n url\n }\n class {\n chemical\n psychoactive\n }\n tolerance {\n full\n half\n zero\n }\n roas {\n name\n dose {\n units\n threshold\n heavy\n common {\n min\n max\n }\n light {\n min\n max\n }\n strong {\n min\n max\n }\n }\n duration {\n afterglow {\n min\n max\n units\n }\n comeup {\n min\n max\n units\n }\n duration {\n min\n max\n units\n }\n offset {\n min\n max\n units\n }\n onset {\n min\n max\n units\n }\n peak {\n min\n max\n units\n }\n total {\n min\n max\n units\n }\n }\n bioavailability {\n min\n max\n }\n }\n images {\n thumb\n image\n }\n addictionPotential\n toxicity\n crossTolerances\n commonNames\n uncertainInteractions {\n class {\n psychoactive\n }\n }\n unsafeInteractions {\n class {\n psychoactive\n }\n }\n dangerousInteractions {\n class {\n psychoactive\n }\n }\n }\n}\n\nquery AllSubstances {\n substances(limit: 9999) {\n name\n commonNames\n url\n class {\n chemical\n psychoactive\n }\n tolerance {\n full\n half\n zero\n }\n roas {\n name\n dose {\n units\n threshold\n light {\n min\n max\n }\n common {\n min\n max\n }\n strong {\n min\n max\n }\n heavy\n }\n duration {\n onset {\n min\n max\n units\n }\n comeup {\n min\n max\n units\n }\n peak {\n min\n max\n units\n }\n offset {\n min\n max\n units\n }\n total {\n min\n max\n units\n }\n afterglow {\n min\n max\n units\n }\n }\n bioavailability {\n min\n max\n }\n }\n addictionPotential\n toxicity\n crossTolerances\n uncertainInteractions {\n name\n }\n unsafeInteractions {\n name\n }\n dangerousInteractions {\n name\n }\n effects {\n name\n url\n }\n }\n}' -): typeof documents['query getSubstances($name: String) {\n substances(query: $name) {\n name\n summary\n url\n featured\n effects {\n name\n url\n }\n class {\n chemical\n psychoactive\n }\n tolerance {\n full\n half\n zero\n }\n roas {\n name\n dose {\n units\n threshold\n heavy\n common {\n min\n max\n }\n light {\n min\n max\n }\n strong {\n min\n max\n }\n }\n duration {\n afterglow {\n min\n max\n units\n }\n comeup {\n min\n max\n units\n }\n duration {\n min\n max\n units\n }\n offset {\n min\n max\n units\n }\n onset {\n min\n max\n units\n }\n peak {\n min\n max\n units\n }\n total {\n min\n max\n units\n }\n }\n bioavailability {\n min\n max\n }\n }\n images {\n thumb\n image\n }\n addictionPotential\n toxicity\n crossTolerances\n commonNames\n uncertainInteractions {\n class {\n psychoactive\n }\n }\n unsafeInteractions {\n class {\n psychoactive\n }\n }\n dangerousInteractions {\n class {\n psychoactive\n }\n }\n }\n}\n\nquery AllSubstances {\n substances(limit: 9999) {\n name\n commonNames\n url\n class {\n chemical\n psychoactive\n }\n tolerance {\n full\n half\n zero\n }\n roas {\n name\n dose {\n units\n threshold\n light {\n min\n max\n }\n common {\n min\n max\n }\n strong {\n min\n max\n }\n heavy\n }\n duration {\n onset {\n min\n max\n units\n }\n comeup {\n min\n max\n units\n }\n peak {\n min\n max\n units\n }\n offset {\n min\n max\n units\n }\n total {\n min\n max\n units\n }\n afterglow {\n min\n max\n units\n }\n }\n bioavailability {\n min\n max\n }\n }\n addictionPotential\n toxicity\n crossTolerances\n uncertainInteractions {\n name\n }\n unsafeInteractions {\n name\n }\n dangerousInteractions {\n name\n }\n effects {\n name\n url\n }\n }\n}'] - -export function graphql(source: string) { - return (documents as any)[source] ?? {} -} - -export type DocumentType> = TDocumentNode extends DocumentNode< - infer TType, - any -> - ? TType - : never diff --git a/packages/hephaistos/src/utils/gql/sdk/graphql.ts b/packages/hephaistos/src/utils/gql/sdk/graphql.ts deleted file mode 100644 index c857b152..00000000 --- a/packages/hephaistos/src/utils/gql/sdk/graphql.ts +++ /dev/null @@ -1,892 +0,0 @@ -/* eslint-disable */ -import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core' -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = { [K in keyof T]: T[K] } -export type MakeOptional = Omit & { [SubKey in K]?: Maybe } -export type MakeMaybe = Omit & { [SubKey in K]: Maybe } -/** All built-in and custom scalars, mapped to their actual values */ -export type Scalars = { - ID: string - String: string - Boolean: boolean - Int: number - Float: number -} - -export type Effect = { - __typename?: 'Effect' - experiences?: Maybe>> - name?: Maybe - substances?: Maybe>> - url?: Maybe -} - -export type Experience = { - __typename?: 'Experience' - effects?: Maybe>> - substances?: Maybe>> -} - -export type Query = { - __typename?: 'Query' - effects_by_substance?: Maybe>> - experiences?: Maybe>> - substances?: Maybe>> - substances_by_effect?: Maybe>> -} - -export type QueryEffects_By_SubstanceArgs = { - limit?: InputMaybe - offset?: InputMaybe - substance?: InputMaybe -} - -export type QueryExperiencesArgs = { - effects_by_substance?: InputMaybe - substance?: InputMaybe - substances_by_effect?: InputMaybe -} - -export type QuerySubstancesArgs = { - chemicalClass?: InputMaybe - effect?: InputMaybe - limit?: InputMaybe - offset?: InputMaybe - psychoactiveClass?: InputMaybe - query?: InputMaybe -} - -export type QuerySubstances_By_EffectArgs = { - effect?: InputMaybe>> - limit?: InputMaybe - offset?: InputMaybe -} - -export type RoaRange = { - max?: Maybe - min?: Maybe -} - -export type Substance = { - __typename?: 'Substance' - addictionPotential?: Maybe - class?: Maybe - commonNames?: Maybe>> - crossTolerances?: Maybe>> - dangerousInteractions?: Maybe>> - effects?: Maybe>> - experiences?: Maybe>> - featured?: Maybe - images?: Maybe>> - name?: Maybe - roa?: Maybe - roas?: Maybe>> - summary?: Maybe - tolerance?: Maybe - toxicity?: Maybe>> - uncertainInteractions?: Maybe>> - unsafeInteractions?: Maybe>> - url?: Maybe -} - -export type SubstanceClass = { - __typename?: 'SubstanceClass' - chemical?: Maybe>> - psychoactive?: Maybe>> -} - -export type SubstanceImage = { - __typename?: 'SubstanceImage' - image?: Maybe - thumb?: Maybe -} - -export type SubstanceRoa = { - __typename?: 'SubstanceRoa' - bioavailability?: Maybe - dose?: Maybe - duration?: Maybe - name?: Maybe -} - -export type SubstanceRoaDose = { - __typename?: 'SubstanceRoaDose' - common?: Maybe - heavy?: Maybe - light?: Maybe - strong?: Maybe - threshold?: Maybe - units?: Maybe -} - -export type SubstanceRoaDuration = { - __typename?: 'SubstanceRoaDuration' - afterglow?: Maybe - comeup?: Maybe - duration?: Maybe - offset?: Maybe - onset?: Maybe - peak?: Maybe - total?: Maybe -} - -export type SubstanceRoaDurationRange = RoaRange & { - __typename?: 'SubstanceRoaDurationRange' - max?: Maybe - min?: Maybe - units?: Maybe -} - -export type SubstanceRoaRange = RoaRange & { - __typename?: 'SubstanceRoaRange' - max?: Maybe - min?: Maybe -} - -export type SubstanceRoaTypes = { - __typename?: 'SubstanceRoaTypes' - buccal?: Maybe - insufflated?: Maybe - intramuscular?: Maybe - intravenous?: Maybe - oral?: Maybe - rectal?: Maybe - smoked?: Maybe - subcutaneous?: Maybe - sublingual?: Maybe - transdermal?: Maybe -} - -export type SubstanceTolerance = { - __typename?: 'SubstanceTolerance' - full?: Maybe - half?: Maybe - zero?: Maybe -} - -export type GetSubstancesQueryVariables = Exact<{ - name?: InputMaybe -}> - -export type GetSubstancesQuery = { - __typename?: 'Query' - substances?: Array<{ - __typename?: 'Substance' - name?: string | null - summary?: string | null - url?: string | null - featured?: boolean | null - addictionPotential?: string | null - toxicity?: Array | null - crossTolerances?: Array | null - commonNames?: Array | null - effects?: Array<{ __typename?: 'Effect'; name?: string | null; url?: string | null } | null> | null - class?: { - __typename?: 'SubstanceClass' - chemical?: Array | null - psychoactive?: Array | null - } | null - tolerance?: { - __typename?: 'SubstanceTolerance' - full?: string | null - half?: string | null - zero?: string | null - } | null - roas?: Array<{ - __typename?: 'SubstanceRoa' - name?: string | null - dose?: { - __typename?: 'SubstanceRoaDose' - units?: string | null - threshold?: number | null - heavy?: number | null - common?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - light?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - strong?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - } | null - duration?: { - __typename?: 'SubstanceRoaDuration' - afterglow?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - comeup?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - duration?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - offset?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - onset?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - peak?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - total?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - } | null - bioavailability?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - } | null> | null - images?: Array<{ __typename?: 'SubstanceImage'; thumb?: string | null; image?: string | null } | null> | null - uncertainInteractions?: Array<{ - __typename?: 'Substance' - class?: { __typename?: 'SubstanceClass'; psychoactive?: Array | null } | null - } | null> | null - unsafeInteractions?: Array<{ - __typename?: 'Substance' - class?: { __typename?: 'SubstanceClass'; psychoactive?: Array | null } | null - } | null> | null - dangerousInteractions?: Array<{ - __typename?: 'Substance' - class?: { __typename?: 'SubstanceClass'; psychoactive?: Array | null } | null - } | null> | null - } | null> | null -} - -export type AllSubstancesQueryVariables = Exact<{ [key: string]: never }> - -export type AllSubstancesQuery = { - __typename?: 'Query' - substances?: Array<{ - __typename?: 'Substance' - name?: string | null - commonNames?: Array | null - url?: string | null - addictionPotential?: string | null - toxicity?: Array | null - crossTolerances?: Array | null - class?: { - __typename?: 'SubstanceClass' - chemical?: Array | null - psychoactive?: Array | null - } | null - tolerance?: { - __typename?: 'SubstanceTolerance' - full?: string | null - half?: string | null - zero?: string | null - } | null - roas?: Array<{ - __typename?: 'SubstanceRoa' - name?: string | null - dose?: { - __typename?: 'SubstanceRoaDose' - units?: string | null - threshold?: number | null - heavy?: number | null - light?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - common?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - strong?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - } | null - duration?: { - __typename?: 'SubstanceRoaDuration' - onset?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - comeup?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - peak?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - offset?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - total?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - afterglow?: { - __typename?: 'SubstanceRoaDurationRange' - min?: number | null - max?: number | null - units?: string | null - } | null - } | null - bioavailability?: { __typename?: 'SubstanceRoaRange'; min?: number | null; max?: number | null } | null - } | null> | null - uncertainInteractions?: Array<{ __typename?: 'Substance'; name?: string | null } | null> | null - unsafeInteractions?: Array<{ __typename?: 'Substance'; name?: string | null } | null> | null - dangerousInteractions?: Array<{ __typename?: 'Substance'; name?: string | null } | null> | null - effects?: Array<{ __typename?: 'Effect'; name?: string | null; url?: string | null } | null> | null - } | null> | null -} - -export const GetSubstancesDocument = { - kind: 'Document', - definitions: [ - { - kind: 'OperationDefinition', - operation: 'query', - name: { kind: 'Name', value: 'getSubstances' }, - variableDefinitions: [ - { - kind: 'VariableDefinition', - variable: { kind: 'Variable', name: { kind: 'Name', value: 'name' } }, - type: { kind: 'NamedType', name: { kind: 'Name', value: 'String' } } - } - ], - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'substances' }, - arguments: [ - { - kind: 'Argument', - name: { kind: 'Name', value: 'query' }, - value: { kind: 'Variable', name: { kind: 'Name', value: 'name' } } - } - ], - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'name' } }, - { kind: 'Field', name: { kind: 'Name', value: 'summary' } }, - { kind: 'Field', name: { kind: 'Name', value: 'url' } }, - { kind: 'Field', name: { kind: 'Name', value: 'featured' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'effects' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'name' } }, - { kind: 'Field', name: { kind: 'Name', value: 'url' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'class' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'chemical' } }, - { kind: 'Field', name: { kind: 'Name', value: 'psychoactive' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'tolerance' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'full' } }, - { kind: 'Field', name: { kind: 'Name', value: 'half' } }, - { kind: 'Field', name: { kind: 'Name', value: 'zero' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'roas' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'name' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'dose' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'units' } }, - { kind: 'Field', name: { kind: 'Name', value: 'threshold' } }, - { kind: 'Field', name: { kind: 'Name', value: 'heavy' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'common' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'light' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'strong' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'duration' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'afterglow' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'comeup' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'duration' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'offset' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'onset' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'peak' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'total' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'bioavailability' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'images' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'thumb' } }, - { kind: 'Field', name: { kind: 'Name', value: 'image' } } - ] - } - }, - { kind: 'Field', name: { kind: 'Name', value: 'addictionPotential' } }, - { kind: 'Field', name: { kind: 'Name', value: 'toxicity' } }, - { kind: 'Field', name: { kind: 'Name', value: 'crossTolerances' } }, - { kind: 'Field', name: { kind: 'Name', value: 'commonNames' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'uncertainInteractions' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'class' }, - selectionSet: { - kind: 'SelectionSet', - selections: [{ kind: 'Field', name: { kind: 'Name', value: 'psychoactive' } }] - } - } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'unsafeInteractions' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'class' }, - selectionSet: { - kind: 'SelectionSet', - selections: [{ kind: 'Field', name: { kind: 'Name', value: 'psychoactive' } }] - } - } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'dangerousInteractions' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'class' }, - selectionSet: { - kind: 'SelectionSet', - selections: [{ kind: 'Field', name: { kind: 'Name', value: 'psychoactive' } }] - } - } - ] - } - } - ] - } - } - ] - } - } - ] -} as unknown as DocumentNode -export const AllSubstancesDocument = { - kind: 'Document', - definitions: [ - { - kind: 'OperationDefinition', - operation: 'query', - name: { kind: 'Name', value: 'AllSubstances' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'substances' }, - arguments: [ - { kind: 'Argument', name: { kind: 'Name', value: 'limit' }, value: { kind: 'IntValue', value: '9999' } } - ], - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'name' } }, - { kind: 'Field', name: { kind: 'Name', value: 'commonNames' } }, - { kind: 'Field', name: { kind: 'Name', value: 'url' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'class' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'chemical' } }, - { kind: 'Field', name: { kind: 'Name', value: 'psychoactive' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'tolerance' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'full' } }, - { kind: 'Field', name: { kind: 'Name', value: 'half' } }, - { kind: 'Field', name: { kind: 'Name', value: 'zero' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'roas' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'name' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'dose' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'units' } }, - { kind: 'Field', name: { kind: 'Name', value: 'threshold' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'light' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'common' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'strong' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - }, - { kind: 'Field', name: { kind: 'Name', value: 'heavy' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'duration' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { - kind: 'Field', - name: { kind: 'Name', value: 'onset' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'comeup' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'peak' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'offset' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'total' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'afterglow' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } }, - { kind: 'Field', name: { kind: 'Name', value: 'units' } } - ] - } - } - ] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'bioavailability' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'min' } }, - { kind: 'Field', name: { kind: 'Name', value: 'max' } } - ] - } - } - ] - } - }, - { kind: 'Field', name: { kind: 'Name', value: 'addictionPotential' } }, - { kind: 'Field', name: { kind: 'Name', value: 'toxicity' } }, - { kind: 'Field', name: { kind: 'Name', value: 'crossTolerances' } }, - { - kind: 'Field', - name: { kind: 'Name', value: 'uncertainInteractions' }, - selectionSet: { - kind: 'SelectionSet', - selections: [{ kind: 'Field', name: { kind: 'Name', value: 'name' } }] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'unsafeInteractions' }, - selectionSet: { - kind: 'SelectionSet', - selections: [{ kind: 'Field', name: { kind: 'Name', value: 'name' } }] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'dangerousInteractions' }, - selectionSet: { - kind: 'SelectionSet', - selections: [{ kind: 'Field', name: { kind: 'Name', value: 'name' } }] - } - }, - { - kind: 'Field', - name: { kind: 'Name', value: 'effects' }, - selectionSet: { - kind: 'SelectionSet', - selections: [ - { kind: 'Field', name: { kind: 'Name', value: 'name' } }, - { kind: 'Field', name: { kind: 'Name', value: 'url' } } - ] - } - } - ] - } - } - ] - } - } - ] -} as unknown as DocumentNode diff --git a/packages/hephaistos/src/utils/gql/sdk/index.ts b/packages/hephaistos/src/utils/gql/sdk/index.ts deleted file mode 100644 index 306913e4..00000000 --- a/packages/hephaistos/src/utils/gql/sdk/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './gql.js' -export * from './fragment-masking.js' diff --git a/packages/hephaistos/tsconfig.json b/packages/hephaistos/tsconfig.json deleted file mode 100644 index 3cf803cf..00000000 --- a/packages/hephaistos/tsconfig.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "compilerOptions": { - "allowUnreachableCode": true, - "allowUnusedLabels": true, - "exactOptionalPropertyTypes": false, - "noFallthroughCasesInSwitch": false, - "noImplicitAny": false, - "noImplicitOverride": false, - "noImplicitReturns": false, - "noImplicitThis": false, - "noPropertyAccessFromIndexSignature": false, - "noUncheckedIndexedAccess": false, - "noUnusedLocals": false, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "inlineSources": false, - "isolatedModules": true, - "allowJs": true, - "strictNullChecks": false, - "noUnusedParameters": false, - "preserveWatchOutput": true, - "skipLibCheck": true, - "strict": false, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "allowSyntheticDefaultImports": true, - "baseUrl": "./", - "outDir": "./dist", - "lib": [ - "ESNext" - ], - "module": "NodeNext", - "moduleResolution": "node", - "target": "ESNext" - }, - "ts-node": { - "swc": true - }, - "include": [ - "src/**/*" - ], - "exclude": [ - "node_modules", - "dist" - ] -} diff --git a/packages/hephaistos/tsup.config.js b/packages/hephaistos/tsup.config.js deleted file mode 100644 index 2c1d5704..00000000 --- a/packages/hephaistos/tsup.config.js +++ /dev/null @@ -1,17 +0,0 @@ -export default { - entry: ['src/index.ts'], - silent: false, - splitting: true, - target: 'node18', - sourcemap: true, - dts: true, - minify: true, - format: ['esm'], - clean: true, - treeshake: true, - metafile: true, - shims: true, - loader: { - '.md': 'file' - } -} diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index b1f820c3..00000000 --- a/poetry.lock +++ /dev/null @@ -1,695 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. - -[[package]] -name = "annotated-types" -version = "0.6.0" -description = "Reusable constraint types to use with typing.Annotated" -optional = false -python-versions = ">=3.8" -files = [ - {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, - {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, -] - -[[package]] -name = "anyio" -version = "4.3.0" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -optional = false -python-versions = ">=3.8" -files = [ - {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, - {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, -] - -[package.dependencies] -idna = ">=2.8" -sniffio = ">=1.1" - -[package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.23)"] - -[[package]] -name = "boto3" -version = "1.34.89" -description = "The AWS SDK for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "boto3-1.34.89-py3-none-any.whl", hash = "sha256:f9166f485d64b012d46acd212fb29a45b195a85ff66a645b05b06d9f7572af36"}, - {file = "boto3-1.34.89.tar.gz", hash = "sha256:e0940e43810fe82f5b77442c751491fcc2768af7e7c3e8c15ea158e1ca9b586c"}, -] - -[package.dependencies] -botocore = ">=1.34.89,<1.35.0" -jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.10.0,<0.11.0" - -[package.extras] -crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] - -[[package]] -name = "botocore" -version = "1.34.89" -description = "Low-level, data-driven core of boto 3." -optional = false -python-versions = ">=3.8" -files = [ - {file = "botocore-1.34.89-py3-none-any.whl", hash = "sha256:35205ed7db13058a3f7114c28e93058a8ff1490dfc6a5b5dff9c581c738fbf59"}, - {file = "botocore-1.34.89.tar.gz", hash = "sha256:6624b69bcdf2c5d0568b7bc9cbac13e605f370e7ea06710c61e2e2dc76831141"}, -] - -[package.dependencies] -jmespath = ">=0.7.1,<2.0.0" -python-dateutil = ">=2.1,<3.0.0" -urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} - -[package.extras] -crt = ["awscrt (==0.20.9)"] - -[[package]] -name = "certifi" -version = "2024.2.2" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "h11" -version = "0.14.0" -description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -optional = false -python-versions = ">=3.7" -files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, -] - -[[package]] -name = "httpcore" -version = "1.0.5" -description = "A minimal low-level HTTP client." -optional = false -python-versions = ">=3.8" -files = [ - {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, - {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, -] - -[package.dependencies] -certifi = "*" -h11 = ">=0.13,<0.15" - -[package.extras] -asyncio = ["anyio (>=4.0,<5.0)"] -http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] -trio = ["trio (>=0.22.0,<0.26.0)"] - -[[package]] -name = "httpx" -version = "0.27.0" -description = "The next generation HTTP client." -optional = false -python-versions = ">=3.8" -files = [ - {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, - {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, -] - -[package.dependencies] -anyio = "*" -certifi = "*" -httpcore = "==1.*" -idna = "*" -sniffio = "*" - -[package.extras] -brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] -http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] - -[[package]] -name = "idna" -version = "3.7" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "jinja2" -version = "3.1.3" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jmespath" -version = "1.0.1" -description = "JSON Matching Expressions" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, - {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, -] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "metaflow" -version = "2.11.10" -description = "Metaflow: More Data Science, Less Engineering" -optional = false -python-versions = "*" -files = [ - {file = "metaflow-2.11.10-py2.py3-none-any.whl", hash = "sha256:37c946abeb237395a953c8abd2b7acccd494d6b1e0622921ab2ea3684485bea2"}, - {file = "metaflow-2.11.10.tar.gz", hash = "sha256:76c000e4a0b4b71e995bcb3d4b0031907661a1c79c150a18bcda03d4c9fde507"}, -] - -[package.dependencies] -boto3 = "*" -requests = "*" - -[package.extras] -stubs = ["metaflow-stubs (==2.11.10)"] - -[[package]] -name = "nodeenv" -version = "1.8.0" -description = "Node.js virtual environment builder" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" -files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, -] - -[package.dependencies] -setuptools = "*" - -[[package]] -name = "prisma" -version = "0.13.1" -description = "Prisma Client Python is an auto-generated and fully type-safe database client" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "prisma-0.13.1-py3-none-any.whl", hash = "sha256:b79ad69bdf09b217431904c1250c36421233ea394a230f1665f5699fd842ea20"}, - {file = "prisma-0.13.1.tar.gz", hash = "sha256:f0f86a67c38e6f08b53cce9272dd9c736f69f4fcbb94dbdfa87bf44f983e925d"}, -] - -[package.dependencies] -click = ">=7.1.2" -httpx = ">=0.19.0" -jinja2 = ">=2.11.2" -nodeenv = "*" -pydantic = ">=1.10.0,<3" -python-dotenv = ">=0.12.0" -tomlkit = "*" -typing-extensions = ">=4.5.0" - -[package.extras] -all = ["nodejs-bin"] -node = ["nodejs-bin"] - -[[package]] -name = "prisma-py" -version = "1.0" -description = "" -optional = false -python-versions = "*" -files = [ - {file = "prisma.py-1.0-py3-none-any.whl", hash = "sha256:99d3dbdc94997e2a67c7d116e058f35ac6f43fb01b8e994d217cd2c2d9730b4c"}, - {file = "prisma.py-1.0.tar.gz", hash = "sha256:e52f1973ccee3a9ff6d212cf33f21c57137aea53098cc97de0992504ec570148"}, -] - -[[package]] -name = "pydantic" -version = "2.7.1" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, - {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, -] - -[package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.18.2" -typing-extensions = ">=4.6.1" - -[package.extras] -email = ["email-validator (>=2.0.0)"] - -[[package]] -name = "pydantic-core" -version = "2.18.2" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, - {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, - {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, - {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, - {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, - {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, - {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, - {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, - {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, - {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, - {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, - {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, - {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, - {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, - {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, - {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, - {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, - {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, - {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, - {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, - {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, - {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, - {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, - {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, - {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, - {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, - {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, - {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, - {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, - {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, - {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, - {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, - {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "python-dotenv" -version = "1.0.1" -description = "Read key-value pairs from a .env file and set them as environment variables" -optional = false -python-versions = ">=3.8" -files = [ - {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, - {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, -] - -[package.extras] -cli = ["click (>=5.0)"] - -[[package]] -name = "requests" -version = "2.31.0" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.7" -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "s3transfer" -version = "0.10.1" -description = "An Amazon S3 Transfer Manager" -optional = false -python-versions = ">= 3.8" -files = [ - {file = "s3transfer-0.10.1-py3-none-any.whl", hash = "sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"}, - {file = "s3transfer-0.10.1.tar.gz", hash = "sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19"}, -] - -[package.dependencies] -botocore = ">=1.33.2,<2.0a.0" - -[package.extras] -crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] - -[[package]] -name = "setuptools" -version = "69.5.1" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"}, - {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "sniffio" -version = "1.3.1" -description = "Sniff out which async library your code is running under" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, - {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, -] - -[[package]] -name = "tomlkit" -version = "0.12.4" -description = "Style preserving TOML library" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tomlkit-0.12.4-py3-none-any.whl", hash = "sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b"}, - {file = "tomlkit-0.12.4.tar.gz", hash = "sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3"}, -] - -[[package]] -name = "typing-extensions" -version = "4.11.0" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, - {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, -] - -[[package]] -name = "urllib3" -version = "2.2.1" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.11" -content-hash = "56acc61217ff4ac8995e3f2f1b3705df1177b01800326528f2105c4bc8d24e80" diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 86e40684..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,18 +0,0 @@ -[tool.poetry] -name = "neuronek" -version = "0.1.0" -description = "" -authors = ["Jakub Olan "] -readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.11" -requests = "^2.31.0" -metaflow = "^2.11.10" -prisma-py = "^1.0" -prisma = "^0.13.1" - - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" diff --git a/workflows/initialize-db-with-externals/prisma/dev.db b/workflows/initialize-db-with-externals/prisma/dev.db index 2fa9bc44a50cb7a33c86bbc709b8017e458c9adb..68ce6da1281611429587a454e1cf4920c8f9e5f2 100644 GIT binary patch literal 1114112 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 IUkz606(!hiS_(L=q&1_|uM$>P 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
  • V99VmTXg#?5u|sOgF5+NEEzI+ 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

    IcFCm*$PzP11O>Sk$kX@TV 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%0AL~`4Q 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

    ^`-XsH*06eJa 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

    _!&Faztb%$JZjN3@3lO^}Osp>~JMgY#>ld`7< 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 U#w{Y}A%Qi}n}UV*zQ)!67nsZ;+5i9m