UEA-Prodem
This commit is contained in:
+79
@@ -0,0 +1,79 @@
|
||||
## Drizzle Kit
|
||||
|
||||
Drizzle Kit is a CLI migrator tool for Drizzle ORM. It is probably the one and only tool that lets you completely automatically generate SQL migrations and covers ~95% of the common cases like deletions and renames by prompting user input.
|
||||
<https://github.com/drizzle-team/drizzle-kit-mirror> - is a mirror repository for issues.
|
||||
|
||||
## Documentation
|
||||
|
||||
Check the full documentation on [the website](https://orm.drizzle.team/kit-docs/overview).
|
||||
|
||||
### How it works
|
||||
|
||||
Drizzle Kit traverses a schema module and generates a snapshot to compare with the previous version, if there is one.
|
||||
Based on the difference, it will generate all needed SQL migrations. If there are any cases that can't be resolved automatically, such as renames, it will prompt the user for input.
|
||||
|
||||
For example, for this schema module:
|
||||
|
||||
```typescript
|
||||
// src/db/schema.ts
|
||||
|
||||
import { integer, pgTable, serial, text, varchar } from "drizzle-orm/pg-core";
|
||||
|
||||
const users = pgTable("users", {
|
||||
id: serial("id").primaryKey(),
|
||||
fullName: varchar("full_name", { length: 256 }),
|
||||
}, (table) => ({
|
||||
nameIdx: index("name_idx", table.fullName),
|
||||
})
|
||||
);
|
||||
|
||||
export const authOtp = pgTable("auth_otp", {
|
||||
id: serial("id").primaryKey(),
|
||||
phone: varchar("phone", { length: 256 }),
|
||||
userId: integer("user_id").references(() => users.id),
|
||||
});
|
||||
```
|
||||
|
||||
It will generate:
|
||||
|
||||
```SQL
|
||||
CREATE TABLE IF NOT EXISTS auth_otp (
|
||||
"id" SERIAL PRIMARY KEY,
|
||||
"phone" character varying(256),
|
||||
"user_id" INT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
"id" SERIAL PRIMARY KEY,
|
||||
"full_name" character varying(256)
|
||||
);
|
||||
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE auth_otp ADD CONSTRAINT auth_otp_user_id_fkey FOREIGN KEY ("user_id") REFERENCES users(id);
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN null;
|
||||
END $$;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS users_full_name_index ON users (full_name);
|
||||
```
|
||||
|
||||
### Installation & configuration
|
||||
|
||||
```shell
|
||||
npm install -D drizzle-kit
|
||||
```
|
||||
|
||||
Running with CLI options:
|
||||
|
||||
```jsonc
|
||||
// package.json
|
||||
{
|
||||
"scripts": {
|
||||
"generate": "drizzle-kit generate --out migrations-folder --schema src/db/schema.ts"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```shell
|
||||
npm run generate
|
||||
```
|
||||
+3339
File diff suppressed because it is too large
Load Diff
+3339
File diff suppressed because it is too large
Load Diff
+75806
File diff suppressed because it is too large
Load Diff
+75834
File diff suppressed because it is too large
Load Diff
+92875
File diff suppressed because one or more lines are too long
+319
@@ -0,0 +1,319 @@
|
||||
import { ConnectionOptions } from 'tls';
|
||||
|
||||
declare const prefixes: readonly ["index", "timestamp", "supabase", "unix", "none"];
|
||||
type Prefix = (typeof prefixes)[number];
|
||||
declare const drivers: readonly ["d1-http", "expo", "aws-data-api", "pglite", "durable-sqlite"];
|
||||
type Driver = (typeof drivers)[number];
|
||||
|
||||
declare const dialects: readonly ["postgresql", "mysql", "sqlite", "turso", "singlestore", "gel"];
|
||||
type Dialect = (typeof dialects)[number];
|
||||
|
||||
type SslOptions = {
|
||||
pfx?: string;
|
||||
key?: string;
|
||||
passphrase?: string;
|
||||
cert?: string;
|
||||
ca?: string | string[];
|
||||
crl?: string | string[];
|
||||
ciphers?: string;
|
||||
rejectUnauthorized?: boolean;
|
||||
};
|
||||
type Verify<T, U extends T> = U;
|
||||
/**
|
||||
* **You are currently using version 0.21.0+ of drizzle-kit. If you have just upgraded to this version, please make sure to read the changelog to understand what changes have been made and what
|
||||
* adjustments may be necessary for you. See https://orm.drizzle.team/kit-docs/upgrade-21#how-to-migrate-to-0210**
|
||||
*
|
||||
* **Config** usage:
|
||||
*
|
||||
* `dialect` - mandatory and is responsible for explicitly providing a databse dialect you are using for all the commands
|
||||
* *Possible values*: `postgresql`, `mysql`, `sqlite`, `singlestore
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dialect
|
||||
*
|
||||
* ---
|
||||
* `schema` - param lets you define where your schema file/files live.
|
||||
* You can have as many separate schema files as you want and define paths to them using glob or array of globs syntax.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schema
|
||||
*
|
||||
* ---
|
||||
* `out` - allows you to define the folder for your migrations and a folder, where drizzle will introspect the schema and relations
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#out
|
||||
*
|
||||
* ---
|
||||
* `driver` - optional param that is responsible for explicitly providing a driver to use when accessing a database
|
||||
* *Possible values*: `aws-data-api`, `d1-http`, `expo`, `turso`, `pglite`
|
||||
* If you don't use AWS Data API, D1, Turso or Expo - ypu don't need this driver. You can check a driver strategy choice here: https://orm.drizzle.team/kit-docs/upgrade-21
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#driver
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `dbCredentials` - an object to define your connection to the database. For more info please check the docs
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dbcredentials
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `migrations` - param let’s use specify custom table and schema(PostgreSQL only) for migrations.
|
||||
* By default, all information about executed migrations will be stored in the database inside
|
||||
* the `__drizzle_migrations` table, and for PostgreSQL, inside the drizzle schema.
|
||||
* However, you can configure where to store those records.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#migrations
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `breakpoints` - param lets you enable/disable SQL statement breakpoints in generated migrations.
|
||||
* It’s optional and true by default, it’s necessary to properly apply migrations on databases,
|
||||
* that do not support multiple DDL alternation statements in one transaction(MySQL, SQLite, SingleStore) and
|
||||
* Drizzle ORM has to apply them sequentially one by one.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#breakpoints
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `tablesFilters` - param lets you filter tables with glob syntax for db push command.
|
||||
* It’s useful when you have only one database avaialable for several separate projects with separate sql schemas.
|
||||
*
|
||||
* How to define multi-project tables with Drizzle ORM — see https://orm.drizzle.team/docs/goodies#multi-project-schema
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#tablesfilters
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `schemaFilter` - parameter allows you to define which schema in PostgreSQL should be used for either introspect or push commands.
|
||||
* This parameter accepts a single schema as a string or an array of schemas as strings.
|
||||
* No glob pattern is supported here. By default, drizzle will use the public schema for both commands,
|
||||
* but you can add any schema you need.
|
||||
*
|
||||
* For example, having schemaFilter: ["my_schema"] will only look for tables in both the database and
|
||||
* drizzle schema that are a part of the my_schema schema.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schemafilter
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `verbose` - command is used for drizzle-kit push commands and prints all statements that will be executed.
|
||||
*
|
||||
* > Note: This command will only print the statements that should be executed.
|
||||
* To approve them before applying, please refer to the `strict` command.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#verbose
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `strict` - command is used for drizzle-kit push commands and will always ask for your confirmation,
|
||||
* either to execute all statements needed to sync your schema with the database or not.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#strict
|
||||
*/
|
||||
type Config = {
|
||||
dialect: Dialect;
|
||||
out?: string;
|
||||
breakpoints?: boolean;
|
||||
tablesFilter?: string | string[];
|
||||
extensionsFilters?: 'postgis'[];
|
||||
schemaFilter?: string | string[];
|
||||
schema?: string | string[];
|
||||
verbose?: boolean;
|
||||
strict?: boolean;
|
||||
casing?: 'camelCase' | 'snake_case';
|
||||
migrations?: {
|
||||
table?: string;
|
||||
schema?: string;
|
||||
prefix?: Prefix;
|
||||
};
|
||||
introspect?: {
|
||||
casing: 'camel' | 'preserve';
|
||||
};
|
||||
entities?: {
|
||||
roles?: boolean | {
|
||||
provider?: 'supabase' | 'neon' | string & {};
|
||||
exclude?: string[];
|
||||
include?: string[];
|
||||
};
|
||||
};
|
||||
} & ({
|
||||
dialect: Verify<Dialect, 'turso'>;
|
||||
dbCredentials: {
|
||||
url: string;
|
||||
authToken?: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
dbCredentials: {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'postgresql'>;
|
||||
dbCredentials: ({
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
ssl?: boolean | 'require' | 'allow' | 'prefer' | 'verify-full' | ConnectionOptions;
|
||||
} & {}) | {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'postgresql'>;
|
||||
driver: Verify<Driver, 'aws-data-api'>;
|
||||
dbCredentials: {
|
||||
database: string;
|
||||
secretArn: string;
|
||||
resourceArn: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'postgresql'>;
|
||||
driver: Verify<Driver, 'pglite'>;
|
||||
dbCredentials: {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'mysql'>;
|
||||
dbCredentials: {
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
ssl?: string | SslOptions;
|
||||
} | {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
driver: Verify<Driver, 'd1-http'>;
|
||||
dbCredentials: {
|
||||
accountId: string;
|
||||
databaseId: string;
|
||||
token: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
driver: Verify<Driver, 'expo'>;
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
driver: Verify<Driver, 'durable-sqlite'>;
|
||||
} | {} | {
|
||||
dialect: Verify<Dialect, 'singlestore'>;
|
||||
dbCredentials: {
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
ssl?: string | SslOptions;
|
||||
} | {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'gel'>;
|
||||
dbCredentials?: {
|
||||
tlsSecurity?: 'insecure' | 'no_host_verification' | 'strict' | 'default';
|
||||
} & ({
|
||||
url: string;
|
||||
} | ({
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
}));
|
||||
});
|
||||
/**
|
||||
* **You are currently using version 0.21.0+ of drizzle-kit. If you have just upgraded to this version, please make sure to read the changelog to understand what changes have been made and what
|
||||
* adjustments may be necessary for you. See https://orm.drizzle.team/kit-docs/upgrade-21#how-to-migrate-to-0210**
|
||||
*
|
||||
* **Config** usage:
|
||||
*
|
||||
* `dialect` - mandatory and is responsible for explicitly providing a databse dialect you are using for all the commands
|
||||
* *Possible values*: `postgresql`, `mysql`, `sqlite`, `singlestore`, `gel`
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dialect
|
||||
*
|
||||
* ---
|
||||
* `schema` - param lets you define where your schema file/files live.
|
||||
* You can have as many separate schema files as you want and define paths to them using glob or array of globs syntax.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schema
|
||||
*
|
||||
* ---
|
||||
* `out` - allows you to define the folder for your migrations and a folder, where drizzle will introspect the schema and relations
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#out
|
||||
*
|
||||
* ---
|
||||
* `driver` - optional param that is responsible for explicitly providing a driver to use when accessing a database
|
||||
* *Possible values*: `aws-data-api`, `d1-http`, `expo`, `turso`, `pglite`
|
||||
* If you don't use AWS Data API, D1, Turso or Expo - ypu don't need this driver. You can check a driver strategy choice here: https://orm.drizzle.team/kit-docs/upgrade-21
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#driver
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `dbCredentials` - an object to define your connection to the database. For more info please check the docs
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dbcredentials
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `migrations` - param let’s use specify custom table and schema(PostgreSQL only) for migrations.
|
||||
* By default, all information about executed migrations will be stored in the database inside
|
||||
* the `__drizzle_migrations` table, and for PostgreSQL, inside the drizzle schema.
|
||||
* However, you can configure where to store those records.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#migrations
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `breakpoints` - param lets you enable/disable SQL statement breakpoints in generated migrations.
|
||||
* It’s optional and true by default, it’s necessary to properly apply migrations on databases,
|
||||
* that do not support multiple DDL alternation statements in one transaction(MySQL, SQLite, SingleStore) and
|
||||
* Drizzle ORM has to apply them sequentially one by one.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#breakpoints
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `tablesFilters` - param lets you filter tables with glob syntax for db push command.
|
||||
* It’s useful when you have only one database avaialable for several separate projects with separate sql schemas.
|
||||
*
|
||||
* How to define multi-project tables with Drizzle ORM — see https://orm.drizzle.team/docs/goodies#multi-project-schema
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#tablesfilters
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `schemaFilter` - parameter allows you to define which schema in PostgreSQL should be used for either introspect or push commands.
|
||||
* This parameter accepts a single schema as a string or an array of schemas as strings.
|
||||
* No glob pattern is supported here. By default, drizzle will use the public schema for both commands,
|
||||
* but you can add any schema you need.
|
||||
*
|
||||
* For example, having schemaFilter: ["my_schema"] will only look for tables in both the database and
|
||||
* drizzle schema that are a part of the my_schema schema.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schemafilter
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `verbose` - command is used for drizzle-kit push commands and prints all statements that will be executed.
|
||||
*
|
||||
* > Note: This command will only print the statements that should be executed.
|
||||
* To approve them before applying, please refer to the `strict` command.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#verbose
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `strict` - command is used for drizzle-kit push commands and will always ask for your confirmation,
|
||||
* either to execute all statements needed to sync your schema with the database or not.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#strict
|
||||
*/
|
||||
declare function defineConfig(config: Config): Config;
|
||||
|
||||
export { type Config, defineConfig };
|
||||
+319
@@ -0,0 +1,319 @@
|
||||
import { ConnectionOptions } from 'tls';
|
||||
|
||||
declare const prefixes: readonly ["index", "timestamp", "supabase", "unix", "none"];
|
||||
type Prefix = (typeof prefixes)[number];
|
||||
declare const drivers: readonly ["d1-http", "expo", "aws-data-api", "pglite", "durable-sqlite"];
|
||||
type Driver = (typeof drivers)[number];
|
||||
|
||||
declare const dialects: readonly ["postgresql", "mysql", "sqlite", "turso", "singlestore", "gel"];
|
||||
type Dialect = (typeof dialects)[number];
|
||||
|
||||
type SslOptions = {
|
||||
pfx?: string;
|
||||
key?: string;
|
||||
passphrase?: string;
|
||||
cert?: string;
|
||||
ca?: string | string[];
|
||||
crl?: string | string[];
|
||||
ciphers?: string;
|
||||
rejectUnauthorized?: boolean;
|
||||
};
|
||||
type Verify<T, U extends T> = U;
|
||||
/**
|
||||
* **You are currently using version 0.21.0+ of drizzle-kit. If you have just upgraded to this version, please make sure to read the changelog to understand what changes have been made and what
|
||||
* adjustments may be necessary for you. See https://orm.drizzle.team/kit-docs/upgrade-21#how-to-migrate-to-0210**
|
||||
*
|
||||
* **Config** usage:
|
||||
*
|
||||
* `dialect` - mandatory and is responsible for explicitly providing a databse dialect you are using for all the commands
|
||||
* *Possible values*: `postgresql`, `mysql`, `sqlite`, `singlestore
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dialect
|
||||
*
|
||||
* ---
|
||||
* `schema` - param lets you define where your schema file/files live.
|
||||
* You can have as many separate schema files as you want and define paths to them using glob or array of globs syntax.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schema
|
||||
*
|
||||
* ---
|
||||
* `out` - allows you to define the folder for your migrations and a folder, where drizzle will introspect the schema and relations
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#out
|
||||
*
|
||||
* ---
|
||||
* `driver` - optional param that is responsible for explicitly providing a driver to use when accessing a database
|
||||
* *Possible values*: `aws-data-api`, `d1-http`, `expo`, `turso`, `pglite`
|
||||
* If you don't use AWS Data API, D1, Turso or Expo - ypu don't need this driver. You can check a driver strategy choice here: https://orm.drizzle.team/kit-docs/upgrade-21
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#driver
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `dbCredentials` - an object to define your connection to the database. For more info please check the docs
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dbcredentials
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `migrations` - param let’s use specify custom table and schema(PostgreSQL only) for migrations.
|
||||
* By default, all information about executed migrations will be stored in the database inside
|
||||
* the `__drizzle_migrations` table, and for PostgreSQL, inside the drizzle schema.
|
||||
* However, you can configure where to store those records.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#migrations
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `breakpoints` - param lets you enable/disable SQL statement breakpoints in generated migrations.
|
||||
* It’s optional and true by default, it’s necessary to properly apply migrations on databases,
|
||||
* that do not support multiple DDL alternation statements in one transaction(MySQL, SQLite, SingleStore) and
|
||||
* Drizzle ORM has to apply them sequentially one by one.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#breakpoints
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `tablesFilters` - param lets you filter tables with glob syntax for db push command.
|
||||
* It’s useful when you have only one database avaialable for several separate projects with separate sql schemas.
|
||||
*
|
||||
* How to define multi-project tables with Drizzle ORM — see https://orm.drizzle.team/docs/goodies#multi-project-schema
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#tablesfilters
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `schemaFilter` - parameter allows you to define which schema in PostgreSQL should be used for either introspect or push commands.
|
||||
* This parameter accepts a single schema as a string or an array of schemas as strings.
|
||||
* No glob pattern is supported here. By default, drizzle will use the public schema for both commands,
|
||||
* but you can add any schema you need.
|
||||
*
|
||||
* For example, having schemaFilter: ["my_schema"] will only look for tables in both the database and
|
||||
* drizzle schema that are a part of the my_schema schema.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schemafilter
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `verbose` - command is used for drizzle-kit push commands and prints all statements that will be executed.
|
||||
*
|
||||
* > Note: This command will only print the statements that should be executed.
|
||||
* To approve them before applying, please refer to the `strict` command.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#verbose
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `strict` - command is used for drizzle-kit push commands and will always ask for your confirmation,
|
||||
* either to execute all statements needed to sync your schema with the database or not.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#strict
|
||||
*/
|
||||
type Config = {
|
||||
dialect: Dialect;
|
||||
out?: string;
|
||||
breakpoints?: boolean;
|
||||
tablesFilter?: string | string[];
|
||||
extensionsFilters?: 'postgis'[];
|
||||
schemaFilter?: string | string[];
|
||||
schema?: string | string[];
|
||||
verbose?: boolean;
|
||||
strict?: boolean;
|
||||
casing?: 'camelCase' | 'snake_case';
|
||||
migrations?: {
|
||||
table?: string;
|
||||
schema?: string;
|
||||
prefix?: Prefix;
|
||||
};
|
||||
introspect?: {
|
||||
casing: 'camel' | 'preserve';
|
||||
};
|
||||
entities?: {
|
||||
roles?: boolean | {
|
||||
provider?: 'supabase' | 'neon' | string & {};
|
||||
exclude?: string[];
|
||||
include?: string[];
|
||||
};
|
||||
};
|
||||
} & ({
|
||||
dialect: Verify<Dialect, 'turso'>;
|
||||
dbCredentials: {
|
||||
url: string;
|
||||
authToken?: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
dbCredentials: {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'postgresql'>;
|
||||
dbCredentials: ({
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
ssl?: boolean | 'require' | 'allow' | 'prefer' | 'verify-full' | ConnectionOptions;
|
||||
} & {}) | {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'postgresql'>;
|
||||
driver: Verify<Driver, 'aws-data-api'>;
|
||||
dbCredentials: {
|
||||
database: string;
|
||||
secretArn: string;
|
||||
resourceArn: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'postgresql'>;
|
||||
driver: Verify<Driver, 'pglite'>;
|
||||
dbCredentials: {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'mysql'>;
|
||||
dbCredentials: {
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
ssl?: string | SslOptions;
|
||||
} | {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
driver: Verify<Driver, 'd1-http'>;
|
||||
dbCredentials: {
|
||||
accountId: string;
|
||||
databaseId: string;
|
||||
token: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
driver: Verify<Driver, 'expo'>;
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'sqlite'>;
|
||||
driver: Verify<Driver, 'durable-sqlite'>;
|
||||
} | {} | {
|
||||
dialect: Verify<Dialect, 'singlestore'>;
|
||||
dbCredentials: {
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
ssl?: string | SslOptions;
|
||||
} | {
|
||||
url: string;
|
||||
};
|
||||
} | {
|
||||
dialect: Verify<Dialect, 'gel'>;
|
||||
dbCredentials?: {
|
||||
tlsSecurity?: 'insecure' | 'no_host_verification' | 'strict' | 'default';
|
||||
} & ({
|
||||
url: string;
|
||||
} | ({
|
||||
host: string;
|
||||
port?: number;
|
||||
user?: string;
|
||||
password?: string;
|
||||
database: string;
|
||||
}));
|
||||
});
|
||||
/**
|
||||
* **You are currently using version 0.21.0+ of drizzle-kit. If you have just upgraded to this version, please make sure to read the changelog to understand what changes have been made and what
|
||||
* adjustments may be necessary for you. See https://orm.drizzle.team/kit-docs/upgrade-21#how-to-migrate-to-0210**
|
||||
*
|
||||
* **Config** usage:
|
||||
*
|
||||
* `dialect` - mandatory and is responsible for explicitly providing a databse dialect you are using for all the commands
|
||||
* *Possible values*: `postgresql`, `mysql`, `sqlite`, `singlestore`, `gel`
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dialect
|
||||
*
|
||||
* ---
|
||||
* `schema` - param lets you define where your schema file/files live.
|
||||
* You can have as many separate schema files as you want and define paths to them using glob or array of globs syntax.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schema
|
||||
*
|
||||
* ---
|
||||
* `out` - allows you to define the folder for your migrations and a folder, where drizzle will introspect the schema and relations
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#out
|
||||
*
|
||||
* ---
|
||||
* `driver` - optional param that is responsible for explicitly providing a driver to use when accessing a database
|
||||
* *Possible values*: `aws-data-api`, `d1-http`, `expo`, `turso`, `pglite`
|
||||
* If you don't use AWS Data API, D1, Turso or Expo - ypu don't need this driver. You can check a driver strategy choice here: https://orm.drizzle.team/kit-docs/upgrade-21
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#driver
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `dbCredentials` - an object to define your connection to the database. For more info please check the docs
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#dbcredentials
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `migrations` - param let’s use specify custom table and schema(PostgreSQL only) for migrations.
|
||||
* By default, all information about executed migrations will be stored in the database inside
|
||||
* the `__drizzle_migrations` table, and for PostgreSQL, inside the drizzle schema.
|
||||
* However, you can configure where to store those records.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#migrations
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `breakpoints` - param lets you enable/disable SQL statement breakpoints in generated migrations.
|
||||
* It’s optional and true by default, it’s necessary to properly apply migrations on databases,
|
||||
* that do not support multiple DDL alternation statements in one transaction(MySQL, SQLite, SingleStore) and
|
||||
* Drizzle ORM has to apply them sequentially one by one.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#breakpoints
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `tablesFilters` - param lets you filter tables with glob syntax for db push command.
|
||||
* It’s useful when you have only one database avaialable for several separate projects with separate sql schemas.
|
||||
*
|
||||
* How to define multi-project tables with Drizzle ORM — see https://orm.drizzle.team/docs/goodies#multi-project-schema
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#tablesfilters
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `schemaFilter` - parameter allows you to define which schema in PostgreSQL should be used for either introspect or push commands.
|
||||
* This parameter accepts a single schema as a string or an array of schemas as strings.
|
||||
* No glob pattern is supported here. By default, drizzle will use the public schema for both commands,
|
||||
* but you can add any schema you need.
|
||||
*
|
||||
* For example, having schemaFilter: ["my_schema"] will only look for tables in both the database and
|
||||
* drizzle schema that are a part of the my_schema schema.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#schemafilter
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `verbose` - command is used for drizzle-kit push commands and prints all statements that will be executed.
|
||||
*
|
||||
* > Note: This command will only print the statements that should be executed.
|
||||
* To approve them before applying, please refer to the `strict` command.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#verbose
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* `strict` - command is used for drizzle-kit push commands and will always ask for your confirmation,
|
||||
* either to execute all statements needed to sync your schema with the database or not.
|
||||
*
|
||||
* See https://orm.drizzle.team/kit-docs/config-reference#strict
|
||||
*/
|
||||
declare function defineConfig(config: Config): Config;
|
||||
|
||||
export { type Config, defineConfig };
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// src/index.ts
|
||||
var index_exports = {};
|
||||
__export(index_exports, {
|
||||
defineConfig: () => defineConfig
|
||||
});
|
||||
module.exports = __toCommonJS(index_exports);
|
||||
function defineConfig(config) {
|
||||
return config;
|
||||
}
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
defineConfig
|
||||
});
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// src/index.ts
|
||||
function defineConfig(config) {
|
||||
return config;
|
||||
}
|
||||
export {
|
||||
defineConfig
|
||||
};
|
||||
+1
@@ -0,0 +1 @@
|
||||
../esbuild/bin/esbuild
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
# esbuild
|
||||
|
||||
This is the macOS 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
|
||||
BIN
Binary file not shown.
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "@esbuild/darwin-x64",
|
||||
"version": "0.25.12",
|
||||
"description": "The macOS 64-bit binary for esbuild, a JavaScript bundler.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/evanw/esbuild.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"preferUnplugged": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"cpu": [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 Evan Wallace
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
# esbuild
|
||||
|
||||
This is a JavaScript bundler and minifier. See https://github.com/evanw/esbuild and the [JavaScript API documentation](https://esbuild.github.io/api/) for details.
|
||||
BIN
Binary file not shown.
+289
@@ -0,0 +1,289 @@
|
||||
"use strict";
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||||
// If the importer is in node compatibility mode or this is not an ESM
|
||||
// file that has been converted to a CommonJS file using a Babel-
|
||||
// compatible transform (i.e. "__esModule" has not been set), then set
|
||||
// "default" to the CommonJS "module.exports" for node compatibility.
|
||||
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||||
mod
|
||||
));
|
||||
|
||||
// lib/npm/node-platform.ts
|
||||
var fs = require("fs");
|
||||
var os = require("os");
|
||||
var path = require("path");
|
||||
var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
|
||||
var isValidBinaryPath = (x) => !!x && x !== "/usr/bin/esbuild";
|
||||
var knownWindowsPackages = {
|
||||
"win32 arm64 LE": "@esbuild/win32-arm64",
|
||||
"win32 ia32 LE": "@esbuild/win32-ia32",
|
||||
"win32 x64 LE": "@esbuild/win32-x64"
|
||||
};
|
||||
var knownUnixlikePackages = {
|
||||
"aix ppc64 BE": "@esbuild/aix-ppc64",
|
||||
"android arm64 LE": "@esbuild/android-arm64",
|
||||
"darwin arm64 LE": "@esbuild/darwin-arm64",
|
||||
"darwin x64 LE": "@esbuild/darwin-x64",
|
||||
"freebsd arm64 LE": "@esbuild/freebsd-arm64",
|
||||
"freebsd x64 LE": "@esbuild/freebsd-x64",
|
||||
"linux arm LE": "@esbuild/linux-arm",
|
||||
"linux arm64 LE": "@esbuild/linux-arm64",
|
||||
"linux ia32 LE": "@esbuild/linux-ia32",
|
||||
"linux mips64el LE": "@esbuild/linux-mips64el",
|
||||
"linux ppc64 LE": "@esbuild/linux-ppc64",
|
||||
"linux riscv64 LE": "@esbuild/linux-riscv64",
|
||||
"linux s390x BE": "@esbuild/linux-s390x",
|
||||
"linux x64 LE": "@esbuild/linux-x64",
|
||||
"linux loong64 LE": "@esbuild/linux-loong64",
|
||||
"netbsd arm64 LE": "@esbuild/netbsd-arm64",
|
||||
"netbsd x64 LE": "@esbuild/netbsd-x64",
|
||||
"openbsd arm64 LE": "@esbuild/openbsd-arm64",
|
||||
"openbsd x64 LE": "@esbuild/openbsd-x64",
|
||||
"sunos x64 LE": "@esbuild/sunos-x64"
|
||||
};
|
||||
var knownWebAssemblyFallbackPackages = {
|
||||
"android arm LE": "@esbuild/android-arm",
|
||||
"android x64 LE": "@esbuild/android-x64",
|
||||
"openharmony arm64 LE": "@esbuild/openharmony-arm64"
|
||||
};
|
||||
function pkgAndSubpathForCurrentPlatform() {
|
||||
let pkg;
|
||||
let subpath;
|
||||
let isWASM = false;
|
||||
let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
|
||||
if (platformKey in knownWindowsPackages) {
|
||||
pkg = knownWindowsPackages[platformKey];
|
||||
subpath = "esbuild.exe";
|
||||
} else if (platformKey in knownUnixlikePackages) {
|
||||
pkg = knownUnixlikePackages[platformKey];
|
||||
subpath = "bin/esbuild";
|
||||
} else if (platformKey in knownWebAssemblyFallbackPackages) {
|
||||
pkg = knownWebAssemblyFallbackPackages[platformKey];
|
||||
subpath = "bin/esbuild";
|
||||
isWASM = true;
|
||||
} else {
|
||||
throw new Error(`Unsupported platform: ${platformKey}`);
|
||||
}
|
||||
return { pkg, subpath, isWASM };
|
||||
}
|
||||
function downloadedBinPath(pkg, subpath) {
|
||||
const esbuildLibDir = path.dirname(require.resolve("esbuild"));
|
||||
return path.join(esbuildLibDir, `downloaded-${pkg.replace("/", "-")}-${path.basename(subpath)}`);
|
||||
}
|
||||
|
||||
// lib/npm/node-install.ts
|
||||
var fs2 = require("fs");
|
||||
var os2 = require("os");
|
||||
var path2 = require("path");
|
||||
var zlib = require("zlib");
|
||||
var https = require("https");
|
||||
var child_process = require("child_process");
|
||||
var versionFromPackageJSON = require(path2.join(__dirname, "package.json")).version;
|
||||
var toPath = path2.join(__dirname, "bin", "esbuild");
|
||||
var isToPathJS = true;
|
||||
function validateBinaryVersion(...command) {
|
||||
command.push("--version");
|
||||
let stdout;
|
||||
try {
|
||||
stdout = child_process.execFileSync(command.shift(), command, {
|
||||
// Without this, this install script strangely crashes with the error
|
||||
// "EACCES: permission denied, write" but only on Ubuntu Linux when node is
|
||||
// installed from the Snap Store. This is not a problem when you download
|
||||
// the official version of node. The problem appears to be that stderr
|
||||
// (i.e. file descriptor 2) isn't writable?
|
||||
//
|
||||
// More info:
|
||||
// - https://snapcraft.io/ (what the Snap Store is)
|
||||
// - https://nodejs.org/dist/ (download the official version of node)
|
||||
// - https://github.com/evanw/esbuild/issues/1711#issuecomment-1027554035
|
||||
//
|
||||
stdio: "pipe"
|
||||
}).toString().trim();
|
||||
} catch (err) {
|
||||
if (os2.platform() === "darwin" && /_SecTrustEvaluateWithError/.test(err + "")) {
|
||||
let os3 = "this version of macOS";
|
||||
try {
|
||||
os3 = "macOS " + child_process.execFileSync("sw_vers", ["-productVersion"]).toString().trim();
|
||||
} catch {
|
||||
}
|
||||
throw new Error(`The "esbuild" package cannot be installed because ${os3} is too outdated.
|
||||
|
||||
The Go compiler (which esbuild relies on) no longer supports ${os3},
|
||||
which means the "esbuild" binary executable can't be run. You can either:
|
||||
|
||||
* Update your version of macOS to one that the Go compiler supports
|
||||
* Use the "esbuild-wasm" package instead of the "esbuild" package
|
||||
* Build esbuild yourself using an older version of the Go compiler
|
||||
`);
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
if (stdout !== versionFromPackageJSON) {
|
||||
throw new Error(`Expected ${JSON.stringify(versionFromPackageJSON)} but got ${JSON.stringify(stdout)}`);
|
||||
}
|
||||
}
|
||||
function isYarn() {
|
||||
const { npm_config_user_agent } = process.env;
|
||||
if (npm_config_user_agent) {
|
||||
return /\byarn\//.test(npm_config_user_agent);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function fetch(url) {
|
||||
return new Promise((resolve, reject) => {
|
||||
https.get(url, (res) => {
|
||||
if ((res.statusCode === 301 || res.statusCode === 302) && res.headers.location)
|
||||
return fetch(res.headers.location).then(resolve, reject);
|
||||
if (res.statusCode !== 200)
|
||||
return reject(new Error(`Server responded with ${res.statusCode}`));
|
||||
let chunks = [];
|
||||
res.on("data", (chunk) => chunks.push(chunk));
|
||||
res.on("end", () => resolve(Buffer.concat(chunks)));
|
||||
}).on("error", reject);
|
||||
});
|
||||
}
|
||||
function extractFileFromTarGzip(buffer, subpath) {
|
||||
try {
|
||||
buffer = zlib.unzipSync(buffer);
|
||||
} catch (err) {
|
||||
throw new Error(`Invalid gzip data in archive: ${err && err.message || err}`);
|
||||
}
|
||||
let str = (i, n) => String.fromCharCode(...buffer.subarray(i, i + n)).replace(/\0.*$/, "");
|
||||
let offset = 0;
|
||||
subpath = `package/${subpath}`;
|
||||
while (offset < buffer.length) {
|
||||
let name = str(offset, 100);
|
||||
let size = parseInt(str(offset + 124, 12), 8);
|
||||
offset += 512;
|
||||
if (!isNaN(size)) {
|
||||
if (name === subpath) return buffer.subarray(offset, offset + size);
|
||||
offset += size + 511 & ~511;
|
||||
}
|
||||
}
|
||||
throw new Error(`Could not find ${JSON.stringify(subpath)} in archive`);
|
||||
}
|
||||
function installUsingNPM(pkg, subpath, binPath) {
|
||||
const env = { ...process.env, npm_config_global: void 0 };
|
||||
const esbuildLibDir = path2.dirname(require.resolve("esbuild"));
|
||||
const installDir = path2.join(esbuildLibDir, "npm-install");
|
||||
fs2.mkdirSync(installDir);
|
||||
try {
|
||||
fs2.writeFileSync(path2.join(installDir, "package.json"), "{}");
|
||||
child_process.execSync(
|
||||
`npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${versionFromPackageJSON}`,
|
||||
{ cwd: installDir, stdio: "pipe", env }
|
||||
);
|
||||
const installedBinPath = path2.join(installDir, "node_modules", pkg, subpath);
|
||||
fs2.renameSync(installedBinPath, binPath);
|
||||
} finally {
|
||||
try {
|
||||
removeRecursive(installDir);
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
}
|
||||
function removeRecursive(dir) {
|
||||
for (const entry of fs2.readdirSync(dir)) {
|
||||
const entryPath = path2.join(dir, entry);
|
||||
let stats;
|
||||
try {
|
||||
stats = fs2.lstatSync(entryPath);
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
if (stats.isDirectory()) removeRecursive(entryPath);
|
||||
else fs2.unlinkSync(entryPath);
|
||||
}
|
||||
fs2.rmdirSync(dir);
|
||||
}
|
||||
function applyManualBinaryPathOverride(overridePath) {
|
||||
const pathString = JSON.stringify(overridePath);
|
||||
fs2.writeFileSync(toPath, `#!/usr/bin/env node
|
||||
require('child_process').execFileSync(${pathString}, process.argv.slice(2), { stdio: 'inherit' });
|
||||
`);
|
||||
const libMain = path2.join(__dirname, "lib", "main.js");
|
||||
const code = fs2.readFileSync(libMain, "utf8");
|
||||
fs2.writeFileSync(libMain, `var ESBUILD_BINARY_PATH = ${pathString};
|
||||
${code}`);
|
||||
}
|
||||
function maybeOptimizePackage(binPath) {
|
||||
const { isWASM } = pkgAndSubpathForCurrentPlatform();
|
||||
if (os2.platform() !== "win32" && !isYarn() && !isWASM) {
|
||||
const tempPath = path2.join(__dirname, "bin-esbuild");
|
||||
try {
|
||||
fs2.linkSync(binPath, tempPath);
|
||||
fs2.renameSync(tempPath, toPath);
|
||||
isToPathJS = false;
|
||||
fs2.unlinkSync(tempPath);
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
}
|
||||
async function downloadDirectlyFromNPM(pkg, subpath, binPath) {
|
||||
const url = `https://registry.npmjs.org/${pkg}/-/${pkg.replace("@esbuild/", "")}-${versionFromPackageJSON}.tgz`;
|
||||
console.error(`[esbuild] Trying to download ${JSON.stringify(url)}`);
|
||||
try {
|
||||
fs2.writeFileSync(binPath, extractFileFromTarGzip(await fetch(url), subpath));
|
||||
fs2.chmodSync(binPath, 493);
|
||||
} catch (e) {
|
||||
console.error(`[esbuild] Failed to download ${JSON.stringify(url)}: ${e && e.message || e}`);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
async function checkAndPreparePackage() {
|
||||
if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {
|
||||
if (!fs2.existsSync(ESBUILD_BINARY_PATH)) {
|
||||
console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);
|
||||
} else {
|
||||
applyManualBinaryPathOverride(ESBUILD_BINARY_PATH);
|
||||
return;
|
||||
}
|
||||
}
|
||||
const { pkg, subpath } = pkgAndSubpathForCurrentPlatform();
|
||||
let binPath;
|
||||
try {
|
||||
binPath = require.resolve(`${pkg}/${subpath}`);
|
||||
} catch (e) {
|
||||
console.error(`[esbuild] Failed to find package "${pkg}" on the file system
|
||||
|
||||
This can happen if you use the "--no-optional" flag. The "optionalDependencies"
|
||||
package.json feature is used by esbuild to install the correct binary executable
|
||||
for your current platform. This install script will now attempt to work around
|
||||
this. If that fails, you need to remove the "--no-optional" flag to use esbuild.
|
||||
`);
|
||||
binPath = downloadedBinPath(pkg, subpath);
|
||||
try {
|
||||
console.error(`[esbuild] Trying to install package "${pkg}" using npm`);
|
||||
installUsingNPM(pkg, subpath, binPath);
|
||||
} catch (e2) {
|
||||
console.error(`[esbuild] Failed to install package "${pkg}" using npm: ${e2 && e2.message || e2}`);
|
||||
try {
|
||||
await downloadDirectlyFromNPM(pkg, subpath, binPath);
|
||||
} catch (e3) {
|
||||
throw new Error(`Failed to install package "${pkg}"`);
|
||||
}
|
||||
}
|
||||
}
|
||||
maybeOptimizePackage(binPath);
|
||||
}
|
||||
checkAndPreparePackage().then(() => {
|
||||
if (isToPathJS) {
|
||||
validateBinaryVersion(process.execPath, toPath);
|
||||
} else {
|
||||
validateBinaryVersion(toPath);
|
||||
}
|
||||
});
|
||||
+716
@@ -0,0 +1,716 @@
|
||||
export type Platform = 'browser' | 'node' | 'neutral'
|
||||
export type Format = 'iife' | 'cjs' | 'esm'
|
||||
export type Loader = 'base64' | 'binary' | 'copy' | 'css' | 'dataurl' | 'default' | 'empty' | 'file' | 'js' | 'json' | 'jsx' | 'local-css' | 'text' | 'ts' | 'tsx'
|
||||
export type LogLevel = 'verbose' | 'debug' | 'info' | 'warning' | 'error' | 'silent'
|
||||
export type Charset = 'ascii' | 'utf8'
|
||||
export type Drop = 'console' | 'debugger'
|
||||
export type AbsPaths = 'code' | 'log' | 'metafile'
|
||||
|
||||
interface CommonOptions {
|
||||
/** Documentation: https://esbuild.github.io/api/#sourcemap */
|
||||
sourcemap?: boolean | 'linked' | 'inline' | 'external' | 'both'
|
||||
/** Documentation: https://esbuild.github.io/api/#legal-comments */
|
||||
legalComments?: 'none' | 'inline' | 'eof' | 'linked' | 'external'
|
||||
/** Documentation: https://esbuild.github.io/api/#source-root */
|
||||
sourceRoot?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#sources-content */
|
||||
sourcesContent?: boolean
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#format */
|
||||
format?: Format
|
||||
/** Documentation: https://esbuild.github.io/api/#global-name */
|
||||
globalName?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#target */
|
||||
target?: string | string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#supported */
|
||||
supported?: Record<string, boolean>
|
||||
/** Documentation: https://esbuild.github.io/api/#platform */
|
||||
platform?: Platform
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||
mangleProps?: RegExp
|
||||
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||
reserveProps?: RegExp
|
||||
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||
mangleQuoted?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#mangle-props */
|
||||
mangleCache?: Record<string, string | false>
|
||||
/** Documentation: https://esbuild.github.io/api/#drop */
|
||||
drop?: Drop[]
|
||||
/** Documentation: https://esbuild.github.io/api/#drop-labels */
|
||||
dropLabels?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||
minify?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||
minifyWhitespace?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||
minifyIdentifiers?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#minify */
|
||||
minifySyntax?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#line-limit */
|
||||
lineLimit?: number
|
||||
/** Documentation: https://esbuild.github.io/api/#charset */
|
||||
charset?: Charset
|
||||
/** Documentation: https://esbuild.github.io/api/#tree-shaking */
|
||||
treeShaking?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#ignore-annotations */
|
||||
ignoreAnnotations?: boolean
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#jsx */
|
||||
jsx?: 'transform' | 'preserve' | 'automatic'
|
||||
/** Documentation: https://esbuild.github.io/api/#jsx-factory */
|
||||
jsxFactory?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#jsx-fragment */
|
||||
jsxFragment?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#jsx-import-source */
|
||||
jsxImportSource?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#jsx-development */
|
||||
jsxDev?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#jsx-side-effects */
|
||||
jsxSideEffects?: boolean
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#define */
|
||||
define?: { [key: string]: string }
|
||||
/** Documentation: https://esbuild.github.io/api/#pure */
|
||||
pure?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#keep-names */
|
||||
keepNames?: boolean
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#abs-paths */
|
||||
absPaths?: AbsPaths[]
|
||||
/** Documentation: https://esbuild.github.io/api/#color */
|
||||
color?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#log-level */
|
||||
logLevel?: LogLevel
|
||||
/** Documentation: https://esbuild.github.io/api/#log-limit */
|
||||
logLimit?: number
|
||||
/** Documentation: https://esbuild.github.io/api/#log-override */
|
||||
logOverride?: Record<string, LogLevel>
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#tsconfig-raw */
|
||||
tsconfigRaw?: string | TsconfigRaw
|
||||
}
|
||||
|
||||
export interface TsconfigRaw {
|
||||
compilerOptions?: {
|
||||
alwaysStrict?: boolean
|
||||
baseUrl?: string
|
||||
experimentalDecorators?: boolean
|
||||
importsNotUsedAsValues?: 'remove' | 'preserve' | 'error'
|
||||
jsx?: 'preserve' | 'react-native' | 'react' | 'react-jsx' | 'react-jsxdev'
|
||||
jsxFactory?: string
|
||||
jsxFragmentFactory?: string
|
||||
jsxImportSource?: string
|
||||
paths?: Record<string, string[]>
|
||||
preserveValueImports?: boolean
|
||||
strict?: boolean
|
||||
target?: string
|
||||
useDefineForClassFields?: boolean
|
||||
verbatimModuleSyntax?: boolean
|
||||
}
|
||||
}
|
||||
|
||||
export interface BuildOptions extends CommonOptions {
|
||||
/** Documentation: https://esbuild.github.io/api/#bundle */
|
||||
bundle?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#splitting */
|
||||
splitting?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#preserve-symlinks */
|
||||
preserveSymlinks?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#outfile */
|
||||
outfile?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#metafile */
|
||||
metafile?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#outdir */
|
||||
outdir?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#outbase */
|
||||
outbase?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#external */
|
||||
external?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#packages */
|
||||
packages?: 'bundle' | 'external'
|
||||
/** Documentation: https://esbuild.github.io/api/#alias */
|
||||
alias?: Record<string, string>
|
||||
/** Documentation: https://esbuild.github.io/api/#loader */
|
||||
loader?: { [ext: string]: Loader }
|
||||
/** Documentation: https://esbuild.github.io/api/#resolve-extensions */
|
||||
resolveExtensions?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#main-fields */
|
||||
mainFields?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#conditions */
|
||||
conditions?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#write */
|
||||
write?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#allow-overwrite */
|
||||
allowOverwrite?: boolean
|
||||
/** Documentation: https://esbuild.github.io/api/#tsconfig */
|
||||
tsconfig?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#out-extension */
|
||||
outExtension?: { [ext: string]: string }
|
||||
/** Documentation: https://esbuild.github.io/api/#public-path */
|
||||
publicPath?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#entry-names */
|
||||
entryNames?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#chunk-names */
|
||||
chunkNames?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#asset-names */
|
||||
assetNames?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#inject */
|
||||
inject?: string[]
|
||||
/** Documentation: https://esbuild.github.io/api/#banner */
|
||||
banner?: { [type: string]: string }
|
||||
/** Documentation: https://esbuild.github.io/api/#footer */
|
||||
footer?: { [type: string]: string }
|
||||
/** Documentation: https://esbuild.github.io/api/#entry-points */
|
||||
entryPoints?: (string | { in: string, out: string })[] | Record<string, string>
|
||||
/** Documentation: https://esbuild.github.io/api/#stdin */
|
||||
stdin?: StdinOptions
|
||||
/** Documentation: https://esbuild.github.io/plugins/ */
|
||||
plugins?: Plugin[]
|
||||
/** Documentation: https://esbuild.github.io/api/#working-directory */
|
||||
absWorkingDir?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#node-paths */
|
||||
nodePaths?: string[]; // The "NODE_PATH" variable from Node.js
|
||||
}
|
||||
|
||||
export interface StdinOptions {
|
||||
contents: string | Uint8Array
|
||||
resolveDir?: string
|
||||
sourcefile?: string
|
||||
loader?: Loader
|
||||
}
|
||||
|
||||
export interface Message {
|
||||
id: string
|
||||
pluginName: string
|
||||
text: string
|
||||
location: Location | null
|
||||
notes: Note[]
|
||||
|
||||
/**
|
||||
* Optional user-specified data that is passed through unmodified. You can
|
||||
* use this to stash the original error, for example.
|
||||
*/
|
||||
detail: any
|
||||
}
|
||||
|
||||
export interface Note {
|
||||
text: string
|
||||
location: Location | null
|
||||
}
|
||||
|
||||
export interface Location {
|
||||
file: string
|
||||
namespace: string
|
||||
/** 1-based */
|
||||
line: number
|
||||
/** 0-based, in bytes */
|
||||
column: number
|
||||
/** in bytes */
|
||||
length: number
|
||||
lineText: string
|
||||
suggestion: string
|
||||
}
|
||||
|
||||
export interface OutputFile {
|
||||
path: string
|
||||
contents: Uint8Array
|
||||
hash: string
|
||||
/** "contents" as text (changes automatically with "contents") */
|
||||
readonly text: string
|
||||
}
|
||||
|
||||
export interface BuildResult<ProvidedOptions extends BuildOptions = BuildOptions> {
|
||||
errors: Message[]
|
||||
warnings: Message[]
|
||||
/** Only when "write: false" */
|
||||
outputFiles: OutputFile[] | (ProvidedOptions['write'] extends false ? never : undefined)
|
||||
/** Only when "metafile: true" */
|
||||
metafile: Metafile | (ProvidedOptions['metafile'] extends true ? never : undefined)
|
||||
/** Only when "mangleCache" is present */
|
||||
mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
|
||||
}
|
||||
|
||||
export interface BuildFailure extends Error {
|
||||
errors: Message[]
|
||||
warnings: Message[]
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#serve-arguments */
|
||||
export interface ServeOptions {
|
||||
port?: number
|
||||
host?: string
|
||||
servedir?: string
|
||||
keyfile?: string
|
||||
certfile?: string
|
||||
fallback?: string
|
||||
cors?: CORSOptions
|
||||
onRequest?: (args: ServeOnRequestArgs) => void
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#cors */
|
||||
export interface CORSOptions {
|
||||
origin?: string | string[]
|
||||
}
|
||||
|
||||
export interface ServeOnRequestArgs {
|
||||
remoteAddress: string
|
||||
method: string
|
||||
path: string
|
||||
status: number
|
||||
/** The time to generate the response, not to send it */
|
||||
timeInMS: number
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#serve-return-values */
|
||||
export interface ServeResult {
|
||||
port: number
|
||||
hosts: string[]
|
||||
}
|
||||
|
||||
export interface TransformOptions extends CommonOptions {
|
||||
/** Documentation: https://esbuild.github.io/api/#sourcefile */
|
||||
sourcefile?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#loader */
|
||||
loader?: Loader
|
||||
/** Documentation: https://esbuild.github.io/api/#banner */
|
||||
banner?: string
|
||||
/** Documentation: https://esbuild.github.io/api/#footer */
|
||||
footer?: string
|
||||
}
|
||||
|
||||
export interface TransformResult<ProvidedOptions extends TransformOptions = TransformOptions> {
|
||||
code: string
|
||||
map: string
|
||||
warnings: Message[]
|
||||
/** Only when "mangleCache" is present */
|
||||
mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
|
||||
/** Only when "legalComments" is "external" */
|
||||
legalComments: string | (ProvidedOptions['legalComments'] extends 'external' ? never : undefined)
|
||||
}
|
||||
|
||||
export interface TransformFailure extends Error {
|
||||
errors: Message[]
|
||||
warnings: Message[]
|
||||
}
|
||||
|
||||
export interface Plugin {
|
||||
name: string
|
||||
setup: (build: PluginBuild) => (void | Promise<void>)
|
||||
}
|
||||
|
||||
export interface PluginBuild {
|
||||
/** Documentation: https://esbuild.github.io/plugins/#build-options */
|
||||
initialOptions: BuildOptions
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#resolve */
|
||||
resolve(path: string, options?: ResolveOptions): Promise<ResolveResult>
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-start */
|
||||
onStart(callback: () =>
|
||||
(OnStartResult | null | void | Promise<OnStartResult | null | void>)): void
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-end */
|
||||
onEnd(callback: (result: BuildResult) =>
|
||||
(OnEndResult | null | void | Promise<OnEndResult | null | void>)): void
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-resolve */
|
||||
onResolve(options: OnResolveOptions, callback: (args: OnResolveArgs) =>
|
||||
(OnResolveResult | null | undefined | Promise<OnResolveResult | null | undefined>)): void
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-load */
|
||||
onLoad(options: OnLoadOptions, callback: (args: OnLoadArgs) =>
|
||||
(OnLoadResult | null | undefined | Promise<OnLoadResult | null | undefined>)): void
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-dispose */
|
||||
onDispose(callback: () => void): void
|
||||
|
||||
// This is a full copy of the esbuild library in case you need it
|
||||
esbuild: {
|
||||
context: typeof context,
|
||||
build: typeof build,
|
||||
buildSync: typeof buildSync,
|
||||
transform: typeof transform,
|
||||
transformSync: typeof transformSync,
|
||||
formatMessages: typeof formatMessages,
|
||||
formatMessagesSync: typeof formatMessagesSync,
|
||||
analyzeMetafile: typeof analyzeMetafile,
|
||||
analyzeMetafileSync: typeof analyzeMetafileSync,
|
||||
initialize: typeof initialize,
|
||||
version: typeof version,
|
||||
}
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#resolve-options */
|
||||
export interface ResolveOptions {
|
||||
pluginName?: string
|
||||
importer?: string
|
||||
namespace?: string
|
||||
resolveDir?: string
|
||||
kind?: ImportKind
|
||||
pluginData?: any
|
||||
with?: Record<string, string>
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#resolve-results */
|
||||
export interface ResolveResult {
|
||||
errors: Message[]
|
||||
warnings: Message[]
|
||||
|
||||
path: string
|
||||
external: boolean
|
||||
sideEffects: boolean
|
||||
namespace: string
|
||||
suffix: string
|
||||
pluginData: any
|
||||
}
|
||||
|
||||
export interface OnStartResult {
|
||||
errors?: PartialMessage[]
|
||||
warnings?: PartialMessage[]
|
||||
}
|
||||
|
||||
export interface OnEndResult {
|
||||
errors?: PartialMessage[]
|
||||
warnings?: PartialMessage[]
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-options */
|
||||
export interface OnResolveOptions {
|
||||
filter: RegExp
|
||||
namespace?: string
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-arguments */
|
||||
export interface OnResolveArgs {
|
||||
path: string
|
||||
importer: string
|
||||
namespace: string
|
||||
resolveDir: string
|
||||
kind: ImportKind
|
||||
pluginData: any
|
||||
with: Record<string, string>
|
||||
}
|
||||
|
||||
export type ImportKind =
|
||||
| 'entry-point'
|
||||
|
||||
// JS
|
||||
| 'import-statement'
|
||||
| 'require-call'
|
||||
| 'dynamic-import'
|
||||
| 'require-resolve'
|
||||
|
||||
// CSS
|
||||
| 'import-rule'
|
||||
| 'composes-from'
|
||||
| 'url-token'
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-resolve-results */
|
||||
export interface OnResolveResult {
|
||||
pluginName?: string
|
||||
|
||||
errors?: PartialMessage[]
|
||||
warnings?: PartialMessage[]
|
||||
|
||||
path?: string
|
||||
external?: boolean
|
||||
sideEffects?: boolean
|
||||
namespace?: string
|
||||
suffix?: string
|
||||
pluginData?: any
|
||||
|
||||
watchFiles?: string[]
|
||||
watchDirs?: string[]
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-load-options */
|
||||
export interface OnLoadOptions {
|
||||
filter: RegExp
|
||||
namespace?: string
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-load-arguments */
|
||||
export interface OnLoadArgs {
|
||||
path: string
|
||||
namespace: string
|
||||
suffix: string
|
||||
pluginData: any
|
||||
with: Record<string, string>
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/plugins/#on-load-results */
|
||||
export interface OnLoadResult {
|
||||
pluginName?: string
|
||||
|
||||
errors?: PartialMessage[]
|
||||
warnings?: PartialMessage[]
|
||||
|
||||
contents?: string | Uint8Array
|
||||
resolveDir?: string
|
||||
loader?: Loader
|
||||
pluginData?: any
|
||||
|
||||
watchFiles?: string[]
|
||||
watchDirs?: string[]
|
||||
}
|
||||
|
||||
export interface PartialMessage {
|
||||
id?: string
|
||||
pluginName?: string
|
||||
text?: string
|
||||
location?: Partial<Location> | null
|
||||
notes?: PartialNote[]
|
||||
detail?: any
|
||||
}
|
||||
|
||||
export interface PartialNote {
|
||||
text?: string
|
||||
location?: Partial<Location> | null
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#metafile */
|
||||
export interface Metafile {
|
||||
inputs: {
|
||||
[path: string]: {
|
||||
bytes: number
|
||||
imports: {
|
||||
path: string
|
||||
kind: ImportKind
|
||||
external?: boolean
|
||||
original?: string
|
||||
with?: Record<string, string>
|
||||
}[]
|
||||
format?: 'cjs' | 'esm'
|
||||
with?: Record<string, string>
|
||||
}
|
||||
}
|
||||
outputs: {
|
||||
[path: string]: {
|
||||
bytes: number
|
||||
inputs: {
|
||||
[path: string]: {
|
||||
bytesInOutput: number
|
||||
}
|
||||
}
|
||||
imports: {
|
||||
path: string
|
||||
kind: ImportKind | 'file-loader'
|
||||
external?: boolean
|
||||
}[]
|
||||
exports: string[]
|
||||
entryPoint?: string
|
||||
cssBundle?: string
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface FormatMessagesOptions {
|
||||
kind: 'error' | 'warning'
|
||||
color?: boolean
|
||||
terminalWidth?: number
|
||||
}
|
||||
|
||||
export interface AnalyzeMetafileOptions {
|
||||
color?: boolean
|
||||
verbose?: boolean
|
||||
}
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#watch-arguments */
|
||||
export interface WatchOptions {
|
||||
delay?: number // In milliseconds
|
||||
}
|
||||
|
||||
export interface BuildContext<ProvidedOptions extends BuildOptions = BuildOptions> {
|
||||
/** Documentation: https://esbuild.github.io/api/#rebuild */
|
||||
rebuild(): Promise<BuildResult<ProvidedOptions>>
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#watch */
|
||||
watch(options?: WatchOptions): Promise<void>
|
||||
|
||||
/** Documentation: https://esbuild.github.io/api/#serve */
|
||||
serve(options?: ServeOptions): Promise<ServeResult>
|
||||
|
||||
cancel(): Promise<void>
|
||||
dispose(): Promise<void>
|
||||
}
|
||||
|
||||
// This is a TypeScript type-level function which replaces any keys in "In"
|
||||
// that aren't in "Out" with "never". We use this to reject properties with
|
||||
// typos in object literals. See: https://stackoverflow.com/questions/49580725
|
||||
type SameShape<Out, In extends Out> = In & { [Key in Exclude<keyof In, keyof Out>]: never }
|
||||
|
||||
/**
|
||||
* This function invokes the "esbuild" command-line tool for you. It returns a
|
||||
* promise that either resolves with a "BuildResult" object or rejects with a
|
||||
* "BuildFailure" object.
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: yes
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#build
|
||||
*/
|
||||
export declare function build<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildResult<T>>
|
||||
|
||||
/**
|
||||
* This is the advanced long-running form of "build" that supports additional
|
||||
* features such as watch mode and a local development server.
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: no
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#build
|
||||
*/
|
||||
export declare function context<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildContext<T>>
|
||||
|
||||
/**
|
||||
* This function transforms a single JavaScript file. It can be used to minify
|
||||
* JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
|
||||
* to older JavaScript. It returns a promise that is either resolved with a
|
||||
* "TransformResult" object or rejected with a "TransformFailure" object.
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: yes
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#transform
|
||||
*/
|
||||
export declare function transform<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): Promise<TransformResult<T>>
|
||||
|
||||
/**
|
||||
* Converts log messages to formatted message strings suitable for printing in
|
||||
* the terminal. This allows you to reuse the built-in behavior of esbuild's
|
||||
* log message formatter. This is a batch-oriented API for efficiency.
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: yes
|
||||
*/
|
||||
export declare function formatMessages(messages: PartialMessage[], options: FormatMessagesOptions): Promise<string[]>
|
||||
|
||||
/**
|
||||
* Pretty-prints an analysis of the metafile JSON to a string. This is just for
|
||||
* convenience to be able to match esbuild's pretty-printing exactly. If you want
|
||||
* to customize it, you can just inspect the data in the metafile yourself.
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: yes
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#analyze
|
||||
*/
|
||||
export declare function analyzeMetafile(metafile: Metafile | string, options?: AnalyzeMetafileOptions): Promise<string>
|
||||
|
||||
/**
|
||||
* A synchronous version of "build".
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: no
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#build
|
||||
*/
|
||||
export declare function buildSync<T extends BuildOptions>(options: SameShape<BuildOptions, T>): BuildResult<T>
|
||||
|
||||
/**
|
||||
* A synchronous version of "transform".
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: no
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#transform
|
||||
*/
|
||||
export declare function transformSync<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): TransformResult<T>
|
||||
|
||||
/**
|
||||
* A synchronous version of "formatMessages".
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: no
|
||||
*/
|
||||
export declare function formatMessagesSync(messages: PartialMessage[], options: FormatMessagesOptions): string[]
|
||||
|
||||
/**
|
||||
* A synchronous version of "analyzeMetafile".
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: no
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#analyze
|
||||
*/
|
||||
export declare function analyzeMetafileSync(metafile: Metafile | string, options?: AnalyzeMetafileOptions): string
|
||||
|
||||
/**
|
||||
* This configures the browser-based version of esbuild. It is necessary to
|
||||
* call this first and wait for the returned promise to be resolved before
|
||||
* making other API calls when using esbuild in the browser.
|
||||
*
|
||||
* - Works in node: yes
|
||||
* - Works in browser: yes ("options" is required)
|
||||
*
|
||||
* Documentation: https://esbuild.github.io/api/#browser
|
||||
*/
|
||||
export declare function initialize(options: InitializeOptions): Promise<void>
|
||||
|
||||
export interface InitializeOptions {
|
||||
/**
|
||||
* The URL of the "esbuild.wasm" file. This must be provided when running
|
||||
* esbuild in the browser.
|
||||
*/
|
||||
wasmURL?: string | URL
|
||||
|
||||
/**
|
||||
* The result of calling "new WebAssembly.Module(buffer)" where "buffer"
|
||||
* is a typed array or ArrayBuffer containing the binary code of the
|
||||
* "esbuild.wasm" file.
|
||||
*
|
||||
* You can use this as an alternative to "wasmURL" for environments where it's
|
||||
* not possible to download the WebAssembly module.
|
||||
*/
|
||||
wasmModule?: WebAssembly.Module
|
||||
|
||||
/**
|
||||
* By default esbuild runs the WebAssembly-based browser API in a web worker
|
||||
* to avoid blocking the UI thread. This can be disabled by setting "worker"
|
||||
* to false.
|
||||
*/
|
||||
worker?: boolean
|
||||
}
|
||||
|
||||
export let version: string
|
||||
|
||||
// Call this function to terminate esbuild's child process. The child process
|
||||
// is not terminated and re-created after each API call because it's more
|
||||
// efficient to keep it around when there are multiple API calls.
|
||||
//
|
||||
// In node this happens automatically before the parent node process exits. So
|
||||
// you only need to call this if you know you will not make any more esbuild
|
||||
// API calls and you want to clean up resources.
|
||||
//
|
||||
// Unlike node, Deno lacks the necessary APIs to clean up child processes
|
||||
// automatically. You must manually call stop() in Deno when you're done
|
||||
// using esbuild or Deno will continue running forever.
|
||||
//
|
||||
// Another reason you might want to call this is if you are using esbuild from
|
||||
// within a Deno test. Deno fails tests that create a child process without
|
||||
// killing it before the test ends, so you have to call this function (and
|
||||
// await the returned promise) in every Deno test that uses esbuild.
|
||||
export declare function stop(): Promise<void>
|
||||
|
||||
// Note: These declarations exist to avoid type errors when you omit "dom" from
|
||||
// "lib" in your "tsconfig.json" file. TypeScript confusingly declares the
|
||||
// global "WebAssembly" type in "lib.dom.d.ts" even though it has nothing to do
|
||||
// with the browser DOM and is present in many non-browser JavaScript runtimes
|
||||
// (e.g. node and deno). Declaring it here allows esbuild's API to be used in
|
||||
// these scenarios.
|
||||
//
|
||||
// There's an open issue about getting this problem corrected (although these
|
||||
// declarations will need to remain even if this is fixed for backward
|
||||
// compatibility with older TypeScript versions):
|
||||
//
|
||||
// https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/826
|
||||
//
|
||||
declare global {
|
||||
namespace WebAssembly {
|
||||
interface Module {
|
||||
}
|
||||
}
|
||||
interface URL {
|
||||
}
|
||||
}
|
||||
+2242
File diff suppressed because it is too large
Load Diff
+49
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "esbuild",
|
||||
"version": "0.25.12",
|
||||
"description": "An extremely fast JavaScript and CSS bundler and minifier.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/evanw/esbuild.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "node install.js"
|
||||
},
|
||||
"main": "lib/main.js",
|
||||
"types": "lib/main.d.ts",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.25.12",
|
||||
"@esbuild/android-arm": "0.25.12",
|
||||
"@esbuild/android-arm64": "0.25.12",
|
||||
"@esbuild/android-x64": "0.25.12",
|
||||
"@esbuild/darwin-arm64": "0.25.12",
|
||||
"@esbuild/darwin-x64": "0.25.12",
|
||||
"@esbuild/freebsd-arm64": "0.25.12",
|
||||
"@esbuild/freebsd-x64": "0.25.12",
|
||||
"@esbuild/linux-arm": "0.25.12",
|
||||
"@esbuild/linux-arm64": "0.25.12",
|
||||
"@esbuild/linux-ia32": "0.25.12",
|
||||
"@esbuild/linux-loong64": "0.25.12",
|
||||
"@esbuild/linux-mips64el": "0.25.12",
|
||||
"@esbuild/linux-ppc64": "0.25.12",
|
||||
"@esbuild/linux-riscv64": "0.25.12",
|
||||
"@esbuild/linux-s390x": "0.25.12",
|
||||
"@esbuild/linux-x64": "0.25.12",
|
||||
"@esbuild/netbsd-arm64": "0.25.12",
|
||||
"@esbuild/netbsd-x64": "0.25.12",
|
||||
"@esbuild/openbsd-arm64": "0.25.12",
|
||||
"@esbuild/openbsd-x64": "0.25.12",
|
||||
"@esbuild/openharmony-arm64": "0.25.12",
|
||||
"@esbuild/sunos-x64": "0.25.12",
|
||||
"@esbuild/win32-arm64": "0.25.12",
|
||||
"@esbuild/win32-ia32": "0.25.12",
|
||||
"@esbuild/win32-x64": "0.25.12"
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"name": "drizzle-kit",
|
||||
"version": "0.31.10",
|
||||
"homepage": "https://orm.drizzle.team",
|
||||
"keywords": [
|
||||
"drizzle",
|
||||
"orm",
|
||||
"pg",
|
||||
"mysql",
|
||||
"singlestore",
|
||||
"postgresql",
|
||||
"postgres",
|
||||
"sqlite",
|
||||
"database",
|
||||
"sql",
|
||||
"typescript",
|
||||
"ts",
|
||||
"drizzle-kit",
|
||||
"migrations",
|
||||
"schema"
|
||||
],
|
||||
"publishConfig": {
|
||||
"provenance": true
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/drizzle-team/drizzle-orm.git"
|
||||
},
|
||||
"author": "Drizzle Team",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"drizzle-kit": "./bin.cjs"
|
||||
},
|
||||
"scripts": {
|
||||
"api": "tsx ./dev/api.ts",
|
||||
"migrate:old": "drizzle-kit generate:mysql",
|
||||
"cli": "tsx ./src/cli/index.ts",
|
||||
"test": "pnpm tsc && TEST_CONFIG_PATH_PREFIX=./tests/cli/ vitest",
|
||||
"build": "rm -rf ./dist && tsx build.ts && cp package.json dist/ && attw --pack dist",
|
||||
"build:dev": "rm -rf ./dist && tsx build.dev.ts && tsc -p tsconfig.cli-types.json && chmod +x ./dist/index.cjs",
|
||||
"pack": "cp package.json README.md dist/ && (cd dist && npm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
|
||||
"tsc": "tsc -p tsconfig.build.json --noEmit",
|
||||
"publish": "npm publish package.tgz"
|
||||
},
|
||||
"dependencies": {
|
||||
"@drizzle-team/brocli": "^0.10.2",
|
||||
"@esbuild-kit/esm-loader": "^2.5.5",
|
||||
"esbuild": "^0.25.4",
|
||||
"tsx": "^4.21.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "^0.15.3",
|
||||
"@aws-sdk/client-rds-data": "^3.556.0",
|
||||
"@cloudflare/workers-types": "^4.20230518.0",
|
||||
"@electric-sql/pglite": "^0.2.12",
|
||||
"@hono/node-server": "^1.9.0",
|
||||
"@hono/zod-validator": "^0.2.1",
|
||||
"@libsql/client": "^0.10.0",
|
||||
"@neondatabase/serverless": "^0.9.1",
|
||||
"@originjs/vite-plugin-commonjs": "^1.0.3",
|
||||
"@planetscale/database": "^1.16.0",
|
||||
"@types/better-sqlite3": "^7.6.13",
|
||||
"@types/dockerode": "^3.3.28",
|
||||
"@types/glob": "^8.1.0",
|
||||
"@types/json-diff": "^1.0.3",
|
||||
"@types/micromatch": "^4.0.9",
|
||||
"@types/minimatch": "^5.1.2",
|
||||
"@types/node": "^18.11.15",
|
||||
"@types/pg": "^8.10.7",
|
||||
"@types/pluralize": "^0.0.33",
|
||||
"@types/semver": "^7.5.5",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"@types/ws": "^8.5.10",
|
||||
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
||||
"@typescript-eslint/parser": "^7.2.0",
|
||||
"@vercel/postgres": "^0.8.0",
|
||||
"ava": "^5.1.0",
|
||||
"better-sqlite3": "^11.9.1",
|
||||
"bun-types": "^0.6.6",
|
||||
"camelcase": "^7.0.1",
|
||||
"chalk": "^5.2.0",
|
||||
"commander": "^12.1.0",
|
||||
"dockerode": "^4.0.6",
|
||||
"dotenv": "^16.0.3",
|
||||
"drizzle-kit": "0.25.0-b1faa33",
|
||||
"drizzle-orm": "workspace:./drizzle-orm/dist",
|
||||
"env-paths": "^3.0.0",
|
||||
"esbuild-node-externals": "^1.9.0",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"gel": "^2.0.0",
|
||||
"get-port": "^6.1.2",
|
||||
"glob": "^8.1.0",
|
||||
"hanji": "^0.0.8",
|
||||
"hono": "^4.7.9",
|
||||
"json-diff": "1.0.6",
|
||||
"micromatch": "^4.0.8",
|
||||
"minimatch": "^7.4.3",
|
||||
"mysql2": "3.14.1",
|
||||
"node-fetch": "^3.3.2",
|
||||
"ohm-js": "^17.1.0",
|
||||
"pg": "^8.11.5",
|
||||
"pluralize": "^8.0.0",
|
||||
"postgres": "^3.4.4",
|
||||
"prettier": "^3.5.3",
|
||||
"semver": "^7.7.2",
|
||||
"superjson": "^2.2.1",
|
||||
"tsup": "^8.3.5",
|
||||
"typescript": "^5.6.3",
|
||||
"uuid": "^9.0.1",
|
||||
"vite-tsconfig-paths": "^4.3.2",
|
||||
"vitest": "^3.1.3",
|
||||
"ws": "^8.18.2",
|
||||
"zod": "^3.20.2",
|
||||
"zx": "^8.3.2"
|
||||
},
|
||||
"exports": {
|
||||
".": {
|
||||
"import": {
|
||||
"types": "./index.d.mts",
|
||||
"default": "./index.mjs"
|
||||
},
|
||||
"require": {
|
||||
"types": "./index.d.ts",
|
||||
"default": "./index.js"
|
||||
},
|
||||
"types": "./index.d.mts",
|
||||
"default": "./index.mjs"
|
||||
},
|
||||
"./api": {
|
||||
"import": {
|
||||
"types": "./api.d.mts",
|
||||
"default": "./api.mjs"
|
||||
},
|
||||
"require": {
|
||||
"types": "./api.d.ts",
|
||||
"default": "./api.js"
|
||||
},
|
||||
"types": "./api.d.mts",
|
||||
"default": "./api.mjs"
|
||||
}
|
||||
}
|
||||
}
|
||||
+6414
File diff suppressed because it is too large
Load Diff
+6389
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user