This commit is contained in:
Lilith 2025-02-27 02:26:55 +01:00
parent a71a3b5593
commit cb52890889
Signed by: lilith
GPG key ID: 8712A0F317C37175
16657 changed files with 1483086 additions and 1 deletions

View file

@ -0,0 +1,105 @@
# AccountsService-1.0
![version](https://img.shields.io/npm/v/@girs/accountsservice-1.0)
![downloads/week](https://img.shields.io/npm/dw/@girs/accountsservice-1.0)
GJS TypeScript type definitions for AccountsService-1.0, generated from library version 1.0.0 using [ts-for-gir](https://github.com/gjsify/ts-for-gir) v3.3.0.
Query and manipulate user account information
## Install
To use this type definitions, install them with NPM:
```bash
npm install @girs/accountsservice-1.0
```
## Usage
You can import this package into your project like this:
```ts
import AccountsService from '@girs/accountsservice-1.0';
```
Or if you prefer CommonJS, you can also use this:
```ts
const AccountsService = require('@girs/accountsservice-1.0');
```
### Ambient Modules
You can also use [ambient modules](https://github.com/gjsify/ts-for-gir/tree/main/packages/cli#ambient-modules) to import this module like you would do this in JavaScript.
For this you need to include `@girs/accountsservice-1.0` or `@girs/accountsservice-1.0/ambient` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/accountsservice-1.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/accountsservice-1.0"],
...
}
```
Now you can import the ambient module with TypeScript support:
```ts
import AccountsService from 'gi://AccountsService?version=1.0';
```
### Global import
You can also import the module with Typescript support using the global `imports.gi` object of GJS.
For this you need to include `@girs/accountsservice-1.0` or `@girs/accountsservice-1.0/import` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/accountsservice-1.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/accountsservice-1.0"],
...
}
```
Now you have also type support for this, too:
```ts
const AccountsService = imports.gi.AccountsService;
```
### ESM vs. CommonJS
GJS supports two different import syntaxes. The new modern ESM syntax and the old global imports syntax.
In TypeScript projects for GJS and GNOME Shell extensions, you have the flexibility to use `ESM` syntax and then decide the import syntax for your bundled file. If your bundler is configured to use `CommonJS`, it will convert to the GJS-specific global imports syntax, like `const moduleName = imports.gi[moduleName]`. This is different from the traditional `require` syntax seen in Node.js. The global imports syntax is chosen because it aligns with the CommonJS format supported by NPM, which is used for the generated type definitions and this package.
On the other hand, if you configure your bundler to use ESM, it will retain the ESM import syntax. It's crucial to ensure that your bundler is set up to correctly translate and bundle these imports into either CommonJS or ESM format, depending on your project's requirements.
This approach is particularly important due to the `@girs` types, which include both `*.cjs `files, using the GJS global imports syntax, and `*.js` files, which utilize the ESM syntax. By appropriately setting up your bundler, you can control which syntax—CommonJS or ESM—is used in your project. The choice of CommonJS in this context is also due to the similarity between the GJS-specific global imports and CommonJS syntax, allowing for easier management and bundling in these specific types of projects.
Since GNOME Shell 45, you should only use ESM, even for GNOME Shell extensions. Before that, extensions had to use the global import syntax, unlike normal GJS applications, where ESM has been available for some time.
### Bundle
Depending on your project configuration, it is recommended to use a bundler like [esbuild](https://esbuild.github.io/). You can find examples using different bundlers [here](https://github.com/gjsify/ts-for-gir/tree/main/examples).
## Other packages
All existing pre-generated packages can be found on [gjsify/types](https://github.com/gjsify/types).

View file

@ -0,0 +1,12 @@
declare module 'gi://AccountsService?version=1.0' {
import AccountsService10 from '@girs/accountsservice-1.0';
export default AccountsService10;
}
declare module 'gi://AccountsService' {
import AccountsService10 from '@girs/accountsservice-1.0';
export default AccountsService10;
}

View file

@ -0,0 +1,2 @@
export {}

View file

@ -0,0 +1,12 @@
import AccountsService10 from '@girs/accountsservice-1.0';
declare global {
export interface GjsGiImports {
AccountsService: typeof AccountsService10;
}
}
export default GjsGiImports;

View file

@ -0,0 +1,3 @@
const gi = globalThis.imports?.gi || {};
export default gi;

View file

@ -0,0 +1,11 @@
imports.gi.versions.AccountsService = '1.0'
const AccountsService = imports.gi.AccountsService;
module.exports = AccountsService;

View file

@ -0,0 +1,938 @@
/*
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*/
import './accountsservice-1.0-ambient.d.ts';
import './accountsservice-1.0-import.d.ts';
/**
* AccountsService-1.0
*/
import type Gio from '@girs/gio-2.0';
import type GObject from '@girs/gobject-2.0';
import type GLib from '@girs/glib-2.0';
/**
* Type of user account
*/
export enum UserAccountType {
/**
* Normal non-administrative user
*/
STANDARD,
/**
* Administrative user
*/
ADMINISTRATOR,
}
/**
* Various error codes returned by the accounts service.
*/
export enum UserManagerError {
/**
* Generic failure
*/
FAILED,
/**
* The user already exists
*/
USER_EXISTS,
/**
* The user does not exist
*/
USER_DOES_NOT_EXIST,
/**
* Permission denied
*/
PERMISSION_DENIED,
/**
* Operation not supported
*/
NOT_SUPPORTED,
}
/**
* Mode for setting the user's password.
*/
export enum UserPasswordMode {
/**
* Password set normally
*/
REGULAR,
/**
* Password will be chosen at next login
*/
SET_AT_LOGIN,
/**
* No password set
*/
NONE,
}
export function user_manager_error_quark(): GLib.Quark
export module User {
// Signal callback interfaces
/**
* Signal callback interface for `changed`
*/
export interface ChangedSignalCallback {
($obj: User): void
}
/**
* Signal callback interface for `sessions-changed`
*/
export interface SessionsChangedSignalCallback {
($obj: User): void
}
// Constructor properties interface
export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
}
}
export interface User {
// Own properties of AccountsService-1.0.AccountsService.User
readonly accountType: number
readonly automaticLogin: boolean
readonly email: string | null
readonly homeDirectory: string | null
readonly iconFile: string | null
readonly isLoaded: boolean
/**
* The users locale, in the format
* `language[_territory][.codeset][`modifier]``, where `language` is an
* ISO 639 language code, `territory` is an ISO 3166 country code, and
* `codeset` is a character set or encoding identifier like `ISO-8859-1`
* or `UTF-8`; as specified by [`setlocale(3)`](man:setlocale(3)).
*
* The locale may be the empty string, which means the user is using the
* system default locale.
*
* The property may be %NULL if it wasnt possible to load it from the
* daemon.
*/
readonly language: string | null
readonly localAccount: boolean
readonly location: string | null
readonly locked: boolean
readonly loginFrequency: number
readonly loginHistory: GLib.Variant
readonly loginTime: number
readonly nonexistent: boolean
readonly passwordHint: string | null
readonly passwordMode: number
readonly realName: string | null
readonly shell: string | null
readonly systemAccount: boolean
readonly uid: number
readonly userName: string | null
readonly xSession: string | null
// Owm methods of AccountsService-1.0.AccountsService.User
/**
* Organize the user by login frequency and names.
* @param user2 a user
* @returns negative if @user1 is before @user2, zero if equal or positive if @user1 is after @user2
*/
collate(user2: User): number
/**
* Retrieves the account type of `user`.
* @returns a #ActUserAccountType
*/
get_account_type(): UserAccountType
/**
* Returns whether or not #ActUser is automatically logged in at boot time.
* @returns %TRUE or %FALSE
*/
get_automatic_login(): boolean
/**
* Retrieves the email address set by `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_email(): string
/**
* Retrieves the home directory for `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_home_dir(): string
/**
* Returns the path to the account icon belonging to `user`.
* @returns a path to an icon
*/
get_icon_file(): string
/**
* Returns the value of #ActUser:language.
* @returns the users language, or the empty string if they are using the system default language, or %NULL if there is no connection to the daemon
*/
get_language(): string | null
/**
* Returns the value of #ActUser:languages.
* @returns the users preferred languages, or the empty string if they are using the system default language, or %NULL if there is no connection to the daemon
*/
get_languages(): string[] | null
/**
* Retrieves the location set by `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_location(): string
/**
* Returns whether or not the #ActUser account is locked.
* @returns %TRUE or %FALSE
*/
get_locked(): boolean
/**
* Returns the number of times `user` has logged in.
* @returns the login frequency
*/
get_login_frequency(): number
/**
* Returns the login history for `user`.
* @returns a pointer to GVariant of type "a(xxa{sv})" which must not be modified or freed, or %NULL.
*/
get_login_history(): GLib.Variant
/**
* Returns the last login time for `user`.
* @returns the login time
*/
get_login_time(): number
/**
* Get the number of sessions for a user that are graphical and on the
* same seat as the session of the calling process.
* @returns the number of sessions
*/
get_num_sessions(): number
/**
* Get the number of sessions for a user on any seat of any type.
* See also act_user_get_num_sessions().
*
* (Currently, this function is only implemented for systemd-logind.
* For ConsoleKit, it is equivalent to act_user_get_num_sessions.)
* @returns the number of sessions
*/
get_num_sessions_anywhere(): number
/**
* Returns the user accounts service object path of `user,`
* or %NULL if `user` doesn't have an object path associated
* with it.
* @returns the object path of the user
*/
get_object_path(): string
/**
* Get the password expiration policy for a user.
*
* Note this function is synchronous and ignores errors.
*/
get_password_expiration_policy(): [ /* expiration_time */ number, /* last_change_time */ number, /* min_days_between_changes */ number, /* max_days_between_changes */ number, /* days_to_warn */ number, /* days_after_expiration_until_lock */ number ]
/**
* Retrieves the password hint set by `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_password_hint(): string
/**
* Retrieves the password mode of `user`.
* @returns a #ActUserPasswordMode
*/
get_password_mode(): UserPasswordMode
/**
* Returns the id of the primary session of `user,` or %NULL if `user`
* has no primary session. The primary session will always be
* graphical and will be chosen from the sessions on the same seat as
* the seat of the session of the calling process.
* @returns the id of the primary session of the user
*/
get_primary_session_id(): string
/**
* Retrieves the display name of `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_real_name(): string
/**
* Returns whether or not the #ActUser account has retained state in accountsservice.
* @returns %TRUE or %FALSE
*/
get_saved(): boolean
/**
* Returns the path to the configured session for `user`.
* @returns a path to an icon
*/
get_session(): string
/**
* Returns the type of the configured session for `user`.
* @returns a path to an icon
*/
get_session_type(): string
/**
* Retrieves the shell assigned to `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_shell(): string
/**
* Retrieves the ID of `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_uid(): number
/**
* Retrieves the login name of `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_user_name(): string
/**
* Returns the path to the configured X session for `user`.
* @returns a path to an icon
*/
get_x_session(): string
/**
* Determines whether or not the user object is loaded and ready to read from.
* #ActUserManager:is-loaded property must be %TRUE before calling
* act_user_manager_list_users()
* @returns %TRUE or %FALSE
*/
is_loaded(): boolean
/**
* Retrieves whether the user is a local account or not.
* @returns %TRUE if the user is local
*/
is_local_account(): boolean
/**
* Returns whether or not #ActUser is currently graphically logged in
* on the same seat as the seat of the session of the calling process.
* @returns %TRUE or %FALSE
*/
is_logged_in(): boolean
/**
* Returns whether or not #ActUser is currently logged in in any way
* whatsoever. See also act_user_is_logged_in().
*
* (Currently, this function is only implemented for systemd-logind.
* For ConsoleKit, it is equivalent to act_user_is_logged_in.)
* @returns %TRUE or %FALSE
*/
is_logged_in_anywhere(): boolean
/**
* Retrieves whether the user is nonexistent or not.
* @returns %TRUE if the user is nonexistent
*/
is_nonexistent(): boolean
/**
* Returns whether or not #ActUser represents a 'system account' like
* 'root' or 'nobody'.
* @returns %TRUE or %FALSE
*/
is_system_account(): boolean
/**
* Changes the account type of `user`.
*
* Note this function is synchronous and ignores errors.
* @param account_type a #ActUserAccountType
*/
set_account_type(account_type: UserAccountType): void
/**
* If enabled is set to %TRUE then this user will automatically be logged in
* at boot up time. Only one user can be configured to auto login at any given
* time, so subsequent calls to act_user_set_automatic_login() override previous
* calls.
*
* Note this function is synchronous and ignores errors.
* @param enabled whether or not to autologin for user.
*/
set_automatic_login(enabled: boolean): void
/**
* Assigns a new email to `user`.
*
* Note this function is synchronous and ignores errors.
* @param email an email address
*/
set_email(email: string): void
/**
* Assigns a new icon for `user`.
*
* Note this function is synchronous and ignores errors.
* @param icon_file path to an icon
*/
set_icon_file(icon_file: string): void
/**
* Assigns a new locale for `user,` setting #ActUser:language.
*
* Note this function is synchronous and ignores errors.
* @param language a locale (for example, `en_US.utf8`), or the empty string to use the system default locale
*/
set_language(language: string): void
/**
* Assigns preferred languages for `user,` setting #ActUser:languages, and
* overriding #ActUser:language with the first item in the list if there is one.
*
* Note this function is synchronous and ignores errors.
* @param languages an array of locale (for example, `en_US.utf8`), or the empty string to use the system default locale
*/
set_languages(languages: string[]): void
/**
* Assigns a new location for `user`.
*
* Note this function is synchronous and ignores errors.
* @param location a location
*/
set_location(location: string): void
/**
* Note this function is synchronous and ignores errors.
* @param locked whether or not the account is locked
*/
set_locked(locked: boolean): void
/**
* Changes the password of `user` to `password`.
* `hint` is displayed to the user if they forget the password.
*
* Note this function is synchronous and ignores errors.
* @param password a password
* @param hint a hint to help user recall password
*/
set_password(password: string, hint: string): void
/**
* Set the password expiration policy for a user.
*
* Note this function is synchronous and ignores errors.
* @param min_days_between_changes location to write minimum number of days needed between password changes.
* @param max_days_between_changes location to write maximum number of days password can stay unchanged.
* @param days_to_warn location to write number of days to warn user password is about to expire.
* @param days_after_expiration_until_lock location to write number of days account will be locked after password expires.
*/
set_password_expiration_policy(min_days_between_changes: number, max_days_between_changes: number, days_to_warn: number, days_after_expiration_until_lock: number): void
set_password_hint(hint: string): void
/**
* Changes the password of `user`. If `password_mode` is
* ACT_USER_PASSWORD_MODE_SET_AT_LOGIN then the user will
* be asked for a new password at the next login. If `password_mode`
* is ACT_USER_PASSWORD_MODE_NONE then the user will not require
* a password to log in.
*
* Note this function is synchronous and ignores errors.
* @param password_mode a #ActUserPasswordMode
*/
set_password_mode(password_mode: UserPasswordMode): void
/**
* Assigns a new name for `user`.
*
* Note this function is synchronous and ignores errors.
* @param real_name a new name
*/
set_real_name(real_name: string): void
/**
* Assigns a new session for `user`.
*
* Note this function is synchronous and ignores errors.
* @param session a session (e.g. gnome)
*/
set_session(session: string): void
/**
* Assigns a type to the session for `user`.
*
* Note this function is synchronous and ignores errors.
* @param session_type a type of session (e.g. "wayland" or "x11")
*/
set_session_type(session_type: string): void
/**
* Set the user expiration policy for a user.
*
* Note this function is synchronous and ignores errors.
* @param expiration_time location to write users expires timestamp
*/
set_user_expiration_policy(expiration_time: number): void
/**
* Assigns a new username for `user`.
*
* Note this function is synchronous and ignores errors.
* @param user_name a new user name
*/
set_user_name(user_name: string): void
/**
* Assigns a new x session for `user`.
*
* Note this function is synchronous and ignores errors.
* @param x_session an x session (e.g. gnome)
*/
set_x_session(x_session: string): void
// Own signals of AccountsService-1.0.AccountsService.User
connect(sigName: "changed", callback: User.ChangedSignalCallback): number
connect_after(sigName: "changed", callback: User.ChangedSignalCallback): number
emit(sigName: "changed", ...args: any[]): void
connect(sigName: "sessions-changed", callback: User.SessionsChangedSignalCallback): number
connect_after(sigName: "sessions-changed", callback: User.SessionsChangedSignalCallback): number
emit(sigName: "sessions-changed", ...args: any[]): void
// Class property signals of AccountsService-1.0.AccountsService.User
connect(sigName: "notify::account-type", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::account-type", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::account-type", ...args: any[]): void
connect(sigName: "notify::automatic-login", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::automatic-login", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::automatic-login", ...args: any[]): void
connect(sigName: "notify::email", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::email", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::email", ...args: any[]): void
connect(sigName: "notify::home-directory", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::home-directory", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::home-directory", ...args: any[]): void
connect(sigName: "notify::icon-file", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::icon-file", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::icon-file", ...args: any[]): void
connect(sigName: "notify::is-loaded", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::is-loaded", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::is-loaded", ...args: any[]): void
connect(sigName: "notify::language", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::language", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::language", ...args: any[]): void
connect(sigName: "notify::local-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::local-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::local-account", ...args: any[]): void
connect(sigName: "notify::location", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::location", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::location", ...args: any[]): void
connect(sigName: "notify::locked", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::locked", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::locked", ...args: any[]): void
connect(sigName: "notify::login-frequency", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::login-frequency", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::login-frequency", ...args: any[]): void
connect(sigName: "notify::login-history", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::login-history", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::login-history", ...args: any[]): void
connect(sigName: "notify::login-time", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::login-time", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::login-time", ...args: any[]): void
connect(sigName: "notify::nonexistent", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::nonexistent", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::nonexistent", ...args: any[]): void
connect(sigName: "notify::password-hint", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::password-hint", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::password-hint", ...args: any[]): void
connect(sigName: "notify::password-mode", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::password-mode", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::password-mode", ...args: any[]): void
connect(sigName: "notify::real-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::real-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::real-name", ...args: any[]): void
connect(sigName: "notify::shell", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::shell", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::shell", ...args: any[]): void
connect(sigName: "notify::system-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::system-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::system-account", ...args: any[]): void
connect(sigName: "notify::uid", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::uid", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::uid", ...args: any[]): void
connect(sigName: "notify::user-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::user-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::user-name", ...args: any[]): void
connect(sigName: "notify::x-session", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::x-session", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::x-session", ...args: any[]): void
connect(sigName: string, callback: (...args: any[]) => void): number
connect_after(sigName: string, callback: (...args: any[]) => void): number
emit(sigName: string, ...args: any[]): void
disconnect(id: number): void
}
/**
* Represents a user account on the system.
* @class
*/
export class User extends GObject.Object {
// Own properties of AccountsService-1.0.AccountsService.User
static name: string
static $gtype: GObject.GType<User>
// Constructors of AccountsService-1.0.AccountsService.User
constructor(config?: User.ConstructorProperties)
_init(config?: User.ConstructorProperties): void
}
export module UserManager {
// Signal callback interfaces
/**
* Signal callback interface for `user-added`
*/
export interface UserAddedSignalCallback {
($obj: UserManager, user: User): void
}
/**
* Signal callback interface for `user-changed`
*/
export interface UserChangedSignalCallback {
($obj: UserManager, user: User): void
}
/**
* Signal callback interface for `user-is-logged-in-changed`
*/
export interface UserIsLoggedInChangedSignalCallback {
($obj: UserManager, user: User): void
}
/**
* Signal callback interface for `user-removed`
*/
export interface UserRemovedSignalCallback {
($obj: UserManager, user: User): void
}
// Constructor properties interface
export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
// Own constructor properties of AccountsService-1.0.AccountsService.UserManager
excludeUsernamesList?: any | null
hasMultipleUsers?: boolean | null
includeUsernamesList?: any | null
}
}
export interface UserManager {
// Own properties of AccountsService-1.0.AccountsService.UserManager
excludeUsernamesList: any
hasMultipleUsers: boolean
includeUsernamesList: any
readonly isLoaded: boolean
// Own fields of AccountsService-1.0.AccountsService.UserManager
parent: GObject.Object
// Owm methods of AccountsService-1.0.AccountsService.UserManager
/**
* Activate the session for a given user.
* @param user the user to activate
* @returns whether successfully activated
*/
activate_user_session(user: User): boolean
/**
* Caches a user account so it shows up via act_user_manager_list_users().
* @param username a user name
* @returns user object
*/
cache_user(username: string): User
/**
* Asynchronously caches a user account so it shows up via
* act_user_manager_list_users().
*
* For more details, see act_user_manager_cache_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param cancellable optional #GCancellable object, %NULL to ignore
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
cache_user_async(username: string, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of cache_user_async
/**
* Promisified version of {@link cache_user_async}
*
* Asynchronously caches a user account so it shows up via
* act_user_manager_list_users().
*
* For more details, see act_user_manager_cache_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param cancellable optional #GCancellable object, %NULL to ignore
* @returns A Promise of: user object
*/
cache_user_async(username: string, cancellable: Gio.Cancellable | null): globalThis.Promise<User>
/**
* Finishes an asynchronous user caching.
*
* See act_user_manager_cache_user_async().
* @param result a #GAsyncResult
* @returns user object
*/
cache_user_finish(result: Gio.AsyncResult): User
/**
* Check whether the user can switch to another session.
* @returns whether we can switch to another session
*/
can_switch(): boolean
/**
* Creates a user account on the system.
* @param username a unix user name
* @param fullname a unix GECOS value
* @param accounttype a #ActUserAccountType
* @returns user object
*/
create_user(username: string, fullname: string, accounttype: UserAccountType): User
/**
* Asynchronously creates a user account on the system.
*
* For more details, see act_user_manager_create_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param fullname a unix GECOS value
* @param accounttype a #ActUserAccountType
* @param cancellable optional #GCancellable object, %NULL to ignore
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
create_user_async(username: string, fullname: string, accounttype: UserAccountType, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of create_user_async
/**
* Promisified version of {@link create_user_async}
*
* Asynchronously creates a user account on the system.
*
* For more details, see act_user_manager_create_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param fullname a unix GECOS value
* @param accounttype a #ActUserAccountType
* @param cancellable optional #GCancellable object, %NULL to ignore
* @returns A Promise of: user object
*/
create_user_async(username: string, fullname: string, accounttype: UserAccountType, cancellable: Gio.Cancellable | null): globalThis.Promise<User>
/**
* Finishes an asynchronous user creation.
*
* See act_user_manager_create_user_async().
* @param result a #GAsyncResult
* @returns user object
*/
create_user_finish(result: Gio.AsyncResult): User
/**
* Deletes a user account on the system.
* @param user an #ActUser object
* @param remove_files %TRUE to delete the users home directory
* @returns %TRUE if the user account was successfully deleted
*/
delete_user(user: User, remove_files: boolean): boolean
/**
* Asynchronously deletes a user account from the system.
*
* For more details, see act_user_manager_delete_user(), which
* is the synchronous version of this call.
* @param user a #ActUser object
* @param remove_files %TRUE to delete the users home directory
* @param cancellable optional #GCancellable object, %NULL to ignore
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
delete_user_async(user: User, remove_files: boolean, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of delete_user_async
/**
* Promisified version of {@link delete_user_async}
*
* Asynchronously deletes a user account from the system.
*
* For more details, see act_user_manager_delete_user(), which
* is the synchronous version of this call.
* @param user a #ActUser object
* @param remove_files %TRUE to delete the users home directory
* @param cancellable optional #GCancellable object, %NULL to ignore
* @returns A Promise of: %TRUE if the user account was successfully deleted
*/
delete_user_async(user: User, remove_files: boolean, cancellable: Gio.Cancellable | null): globalThis.Promise<boolean>
/**
* Finishes an asynchronous user account deletion.
*
* See act_user_manager_delete_user_async().
* @param result a #GAsyncResult
* @returns %TRUE if the user account was successfully deleted
*/
delete_user_finish(result: Gio.AsyncResult): boolean
/**
* Retrieves a pointer to the #ActUser object for the login `username`
* from `manager`. Trying to use this object before its
* #ActUser:is-loaded property is %TRUE will result in undefined
* behavior.
* @param username the login name of the user to get.
* @returns #ActUser object
*/
get_user(username: string): User
/**
* Retrieves a pointer to the #ActUser object for the user with the
* given uid from `manager`. Trying to use this object before its
* #ActUser:is-loaded property is %TRUE will result in undefined
* behavior.
* @param id the uid of the user to get.
* @returns #ActUser object
*/
get_user_by_id(id: number): User
/**
* Switch the display to the login manager.
* @returns whether successful or not
*/
goto_login_session(): boolean
/**
* Get a list of system user accounts
* @returns List of #ActUser objects
*/
list_users(): User[]
/**
* Check whether or not the accounts service is running.
* @returns whether or not accounts service is running
*/
no_service(): boolean
/**
* Releases all metadata about a user account, including icon,
* language and session. If the user account is from a remote
* server and the user has never logged in before, then that
* account will no longer show up in ListCachedUsers() output.
* @param username a user name
* @returns %TRUE if successful, otherwise %FALSE
*/
uncache_user(username: string): boolean
uncache_user_async(username: string, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of uncache_user_async
/**
* Promisified version of {@link uncache_user_async}
*
*
* @param username
* @param cancellable
* @returns A Promise of: %TRUE if the user account was successfully uncached
*/
uncache_user_async(username: string, cancellable: Gio.Cancellable | null): globalThis.Promise<boolean>
/**
* Finishes an asynchronous user uncaching.
*
* See act_user_manager_uncache_user_async().
* @param result a #GAsyncResult
* @returns %TRUE if the user account was successfully uncached
*/
uncache_user_finish(result: Gio.AsyncResult): boolean
// Own virtual methods of AccountsService-1.0.AccountsService.UserManager
vfunc_user_added(user: User): void
vfunc_user_changed(user: User): void
vfunc_user_is_logged_in_changed(user: User): void
vfunc_user_removed(user: User): void
// Own signals of AccountsService-1.0.AccountsService.UserManager
connect(sigName: "user-added", callback: UserManager.UserAddedSignalCallback): number
connect_after(sigName: "user-added", callback: UserManager.UserAddedSignalCallback): number
emit(sigName: "user-added", user: User, ...args: any[]): void
connect(sigName: "user-changed", callback: UserManager.UserChangedSignalCallback): number
connect_after(sigName: "user-changed", callback: UserManager.UserChangedSignalCallback): number
emit(sigName: "user-changed", user: User, ...args: any[]): void
connect(sigName: "user-is-logged-in-changed", callback: UserManager.UserIsLoggedInChangedSignalCallback): number
connect_after(sigName: "user-is-logged-in-changed", callback: UserManager.UserIsLoggedInChangedSignalCallback): number
emit(sigName: "user-is-logged-in-changed", user: User, ...args: any[]): void
connect(sigName: "user-removed", callback: UserManager.UserRemovedSignalCallback): number
connect_after(sigName: "user-removed", callback: UserManager.UserRemovedSignalCallback): number
emit(sigName: "user-removed", user: User, ...args: any[]): void
// Class property signals of AccountsService-1.0.AccountsService.UserManager
connect(sigName: "notify::exclude-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::exclude-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::exclude-usernames-list", ...args: any[]): void
connect(sigName: "notify::has-multiple-users", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::has-multiple-users", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::has-multiple-users", ...args: any[]): void
connect(sigName: "notify::include-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::include-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::include-usernames-list", ...args: any[]): void
connect(sigName: "notify::is-loaded", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::is-loaded", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::is-loaded", ...args: any[]): void
connect(sigName: string, callback: (...args: any[]) => void): number
connect_after(sigName: string, callback: (...args: any[]) => void): number
emit(sigName: string, ...args: any[]): void
disconnect(id: number): void
}
/**
* A user manager object.
* @class
*/
export class UserManager extends GObject.Object {
// Own properties of AccountsService-1.0.AccountsService.UserManager
static name: string
static $gtype: GObject.GType<UserManager>
// Constructors of AccountsService-1.0.AccountsService.UserManager
constructor(config?: UserManager.ConstructorProperties)
_init(config?: UserManager.ConstructorProperties): void
/**
* Returns the user manager singleton instance. Calling this function will
* automatically being loading the user list if it isn't loaded already.
* The #ActUserManager:is-loaded property will be set to %TRUE when the users
* are finished loading and then act_user_manager_list_users() can be called.
* @returns user manager object
*/
static get_default(): UserManager
}
export interface UserClass {
// Own fields of AccountsService-1.0.AccountsService.UserClass
parent_class: GObject.ObjectClass
}
export abstract class UserClass {
// Own properties of AccountsService-1.0.AccountsService.UserClass
static name: string
}
export interface UserManagerClass {
// Own fields of AccountsService-1.0.AccountsService.UserManagerClass
parent_class: GObject.ObjectClass
user_added: (user_manager: UserManager, user: User) => void
user_removed: (user_manager: UserManager, user: User) => void
user_is_logged_in_changed: (user_manager: UserManager, user: User) => void
user_changed: (user_manager: UserManager, user: User) => void
}
export abstract class UserManagerClass {
// Own properties of AccountsService-1.0.AccountsService.UserManagerClass
static name: string
}
/**
* Name of the imported GIR library
* @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
export const __name__: string
/**
* Version of the imported GIR library
* @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
export const __version__: string
// END

View file

@ -0,0 +1,943 @@
/*
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*/
import './accountsservice-1.0-ambient.d.ts';
import './accountsservice-1.0-import.d.ts';
/**
* AccountsService-1.0
*/
import type Gio from '@girs/gio-2.0';
import type GObject from '@girs/gobject-2.0';
import type GLib from '@girs/glib-2.0';
export namespace AccountsService {
/**
* Type of user account
*/
enum UserAccountType {
/**
* Normal non-administrative user
*/
STANDARD,
/**
* Administrative user
*/
ADMINISTRATOR,
}
/**
* Various error codes returned by the accounts service.
*/
enum UserManagerError {
/**
* Generic failure
*/
FAILED,
/**
* The user already exists
*/
USER_EXISTS,
/**
* The user does not exist
*/
USER_DOES_NOT_EXIST,
/**
* Permission denied
*/
PERMISSION_DENIED,
/**
* Operation not supported
*/
NOT_SUPPORTED,
}
/**
* Mode for setting the user's password.
*/
enum UserPasswordMode {
/**
* Password set normally
*/
REGULAR,
/**
* Password will be chosen at next login
*/
SET_AT_LOGIN,
/**
* No password set
*/
NONE,
}
function user_manager_error_quark(): GLib.Quark
module User {
// Signal callback interfaces
/**
* Signal callback interface for `changed`
*/
interface ChangedSignalCallback {
($obj: User): void
}
/**
* Signal callback interface for `sessions-changed`
*/
interface SessionsChangedSignalCallback {
($obj: User): void
}
// Constructor properties interface
interface ConstructorProperties extends GObject.Object.ConstructorProperties {
}
}
interface User {
// Own properties of AccountsService-1.0.AccountsService.User
readonly accountType: number
readonly automaticLogin: boolean
readonly email: string | null
readonly homeDirectory: string | null
readonly iconFile: string | null
readonly isLoaded: boolean
/**
* The users locale, in the format
* `language[_territory][.codeset][`modifier]``, where `language` is an
* ISO 639 language code, `territory` is an ISO 3166 country code, and
* `codeset` is a character set or encoding identifier like `ISO-8859-1`
* or `UTF-8`; as specified by [`setlocale(3)`](man:setlocale(3)).
*
* The locale may be the empty string, which means the user is using the
* system default locale.
*
* The property may be %NULL if it wasnt possible to load it from the
* daemon.
*/
readonly language: string | null
readonly localAccount: boolean
readonly location: string | null
readonly locked: boolean
readonly loginFrequency: number
readonly loginHistory: GLib.Variant
readonly loginTime: number
readonly nonexistent: boolean
readonly passwordHint: string | null
readonly passwordMode: number
readonly realName: string | null
readonly shell: string | null
readonly systemAccount: boolean
readonly uid: number
readonly userName: string | null
readonly xSession: string | null
// Owm methods of AccountsService-1.0.AccountsService.User
/**
* Organize the user by login frequency and names.
* @param user2 a user
* @returns negative if @user1 is before @user2, zero if equal or positive if @user1 is after @user2
*/
collate(user2: User): number
/**
* Retrieves the account type of `user`.
* @returns a #ActUserAccountType
*/
get_account_type(): UserAccountType
/**
* Returns whether or not #ActUser is automatically logged in at boot time.
* @returns %TRUE or %FALSE
*/
get_automatic_login(): boolean
/**
* Retrieves the email address set by `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_email(): string
/**
* Retrieves the home directory for `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_home_dir(): string
/**
* Returns the path to the account icon belonging to `user`.
* @returns a path to an icon
*/
get_icon_file(): string
/**
* Returns the value of #ActUser:language.
* @returns the users language, or the empty string if they are using the system default language, or %NULL if there is no connection to the daemon
*/
get_language(): string | null
/**
* Returns the value of #ActUser:languages.
* @returns the users preferred languages, or the empty string if they are using the system default language, or %NULL if there is no connection to the daemon
*/
get_languages(): string[] | null
/**
* Retrieves the location set by `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_location(): string
/**
* Returns whether or not the #ActUser account is locked.
* @returns %TRUE or %FALSE
*/
get_locked(): boolean
/**
* Returns the number of times `user` has logged in.
* @returns the login frequency
*/
get_login_frequency(): number
/**
* Returns the login history for `user`.
* @returns a pointer to GVariant of type "a(xxa{sv})" which must not be modified or freed, or %NULL.
*/
get_login_history(): GLib.Variant
/**
* Returns the last login time for `user`.
* @returns the login time
*/
get_login_time(): number
/**
* Get the number of sessions for a user that are graphical and on the
* same seat as the session of the calling process.
* @returns the number of sessions
*/
get_num_sessions(): number
/**
* Get the number of sessions for a user on any seat of any type.
* See also act_user_get_num_sessions().
*
* (Currently, this function is only implemented for systemd-logind.
* For ConsoleKit, it is equivalent to act_user_get_num_sessions.)
* @returns the number of sessions
*/
get_num_sessions_anywhere(): number
/**
* Returns the user accounts service object path of `user,`
* or %NULL if `user` doesn't have an object path associated
* with it.
* @returns the object path of the user
*/
get_object_path(): string
/**
* Get the password expiration policy for a user.
*
* Note this function is synchronous and ignores errors.
*/
get_password_expiration_policy(): [ /* expiration_time */ number, /* last_change_time */ number, /* min_days_between_changes */ number, /* max_days_between_changes */ number, /* days_to_warn */ number, /* days_after_expiration_until_lock */ number ]
/**
* Retrieves the password hint set by `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_password_hint(): string
/**
* Retrieves the password mode of `user`.
* @returns a #ActUserPasswordMode
*/
get_password_mode(): UserPasswordMode
/**
* Returns the id of the primary session of `user,` or %NULL if `user`
* has no primary session. The primary session will always be
* graphical and will be chosen from the sessions on the same seat as
* the seat of the session of the calling process.
* @returns the id of the primary session of the user
*/
get_primary_session_id(): string
/**
* Retrieves the display name of `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_real_name(): string
/**
* Returns whether or not the #ActUser account has retained state in accountsservice.
* @returns %TRUE or %FALSE
*/
get_saved(): boolean
/**
* Returns the path to the configured session for `user`.
* @returns a path to an icon
*/
get_session(): string
/**
* Returns the type of the configured session for `user`.
* @returns a path to an icon
*/
get_session_type(): string
/**
* Retrieves the shell assigned to `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_shell(): string
/**
* Retrieves the ID of `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_uid(): number
/**
* Retrieves the login name of `user`.
* @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
*/
get_user_name(): string
/**
* Returns the path to the configured X session for `user`.
* @returns a path to an icon
*/
get_x_session(): string
/**
* Determines whether or not the user object is loaded and ready to read from.
* #ActUserManager:is-loaded property must be %TRUE before calling
* act_user_manager_list_users()
* @returns %TRUE or %FALSE
*/
is_loaded(): boolean
/**
* Retrieves whether the user is a local account or not.
* @returns %TRUE if the user is local
*/
is_local_account(): boolean
/**
* Returns whether or not #ActUser is currently graphically logged in
* on the same seat as the seat of the session of the calling process.
* @returns %TRUE or %FALSE
*/
is_logged_in(): boolean
/**
* Returns whether or not #ActUser is currently logged in in any way
* whatsoever. See also act_user_is_logged_in().
*
* (Currently, this function is only implemented for systemd-logind.
* For ConsoleKit, it is equivalent to act_user_is_logged_in.)
* @returns %TRUE or %FALSE
*/
is_logged_in_anywhere(): boolean
/**
* Retrieves whether the user is nonexistent or not.
* @returns %TRUE if the user is nonexistent
*/
is_nonexistent(): boolean
/**
* Returns whether or not #ActUser represents a 'system account' like
* 'root' or 'nobody'.
* @returns %TRUE or %FALSE
*/
is_system_account(): boolean
/**
* Changes the account type of `user`.
*
* Note this function is synchronous and ignores errors.
* @param account_type a #ActUserAccountType
*/
set_account_type(account_type: UserAccountType): void
/**
* If enabled is set to %TRUE then this user will automatically be logged in
* at boot up time. Only one user can be configured to auto login at any given
* time, so subsequent calls to act_user_set_automatic_login() override previous
* calls.
*
* Note this function is synchronous and ignores errors.
* @param enabled whether or not to autologin for user.
*/
set_automatic_login(enabled: boolean): void
/**
* Assigns a new email to `user`.
*
* Note this function is synchronous and ignores errors.
* @param email an email address
*/
set_email(email: string): void
/**
* Assigns a new icon for `user`.
*
* Note this function is synchronous and ignores errors.
* @param icon_file path to an icon
*/
set_icon_file(icon_file: string): void
/**
* Assigns a new locale for `user,` setting #ActUser:language.
*
* Note this function is synchronous and ignores errors.
* @param language a locale (for example, `en_US.utf8`), or the empty string to use the system default locale
*/
set_language(language: string): void
/**
* Assigns preferred languages for `user,` setting #ActUser:languages, and
* overriding #ActUser:language with the first item in the list if there is one.
*
* Note this function is synchronous and ignores errors.
* @param languages an array of locale (for example, `en_US.utf8`), or the empty string to use the system default locale
*/
set_languages(languages: string[]): void
/**
* Assigns a new location for `user`.
*
* Note this function is synchronous and ignores errors.
* @param location a location
*/
set_location(location: string): void
/**
* Note this function is synchronous and ignores errors.
* @param locked whether or not the account is locked
*/
set_locked(locked: boolean): void
/**
* Changes the password of `user` to `password`.
* `hint` is displayed to the user if they forget the password.
*
* Note this function is synchronous and ignores errors.
* @param password a password
* @param hint a hint to help user recall password
*/
set_password(password: string, hint: string): void
/**
* Set the password expiration policy for a user.
*
* Note this function is synchronous and ignores errors.
* @param min_days_between_changes location to write minimum number of days needed between password changes.
* @param max_days_between_changes location to write maximum number of days password can stay unchanged.
* @param days_to_warn location to write number of days to warn user password is about to expire.
* @param days_after_expiration_until_lock location to write number of days account will be locked after password expires.
*/
set_password_expiration_policy(min_days_between_changes: number, max_days_between_changes: number, days_to_warn: number, days_after_expiration_until_lock: number): void
set_password_hint(hint: string): void
/**
* Changes the password of `user`. If `password_mode` is
* ACT_USER_PASSWORD_MODE_SET_AT_LOGIN then the user will
* be asked for a new password at the next login. If `password_mode`
* is ACT_USER_PASSWORD_MODE_NONE then the user will not require
* a password to log in.
*
* Note this function is synchronous and ignores errors.
* @param password_mode a #ActUserPasswordMode
*/
set_password_mode(password_mode: UserPasswordMode): void
/**
* Assigns a new name for `user`.
*
* Note this function is synchronous and ignores errors.
* @param real_name a new name
*/
set_real_name(real_name: string): void
/**
* Assigns a new session for `user`.
*
* Note this function is synchronous and ignores errors.
* @param session a session (e.g. gnome)
*/
set_session(session: string): void
/**
* Assigns a type to the session for `user`.
*
* Note this function is synchronous and ignores errors.
* @param session_type a type of session (e.g. "wayland" or "x11")
*/
set_session_type(session_type: string): void
/**
* Set the user expiration policy for a user.
*
* Note this function is synchronous and ignores errors.
* @param expiration_time location to write users expires timestamp
*/
set_user_expiration_policy(expiration_time: number): void
/**
* Assigns a new username for `user`.
*
* Note this function is synchronous and ignores errors.
* @param user_name a new user name
*/
set_user_name(user_name: string): void
/**
* Assigns a new x session for `user`.
*
* Note this function is synchronous and ignores errors.
* @param x_session an x session (e.g. gnome)
*/
set_x_session(x_session: string): void
// Own signals of AccountsService-1.0.AccountsService.User
connect(sigName: "changed", callback: User.ChangedSignalCallback): number
connect_after(sigName: "changed", callback: User.ChangedSignalCallback): number
emit(sigName: "changed", ...args: any[]): void
connect(sigName: "sessions-changed", callback: User.SessionsChangedSignalCallback): number
connect_after(sigName: "sessions-changed", callback: User.SessionsChangedSignalCallback): number
emit(sigName: "sessions-changed", ...args: any[]): void
// Class property signals of AccountsService-1.0.AccountsService.User
connect(sigName: "notify::account-type", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::account-type", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::account-type", ...args: any[]): void
connect(sigName: "notify::automatic-login", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::automatic-login", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::automatic-login", ...args: any[]): void
connect(sigName: "notify::email", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::email", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::email", ...args: any[]): void
connect(sigName: "notify::home-directory", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::home-directory", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::home-directory", ...args: any[]): void
connect(sigName: "notify::icon-file", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::icon-file", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::icon-file", ...args: any[]): void
connect(sigName: "notify::is-loaded", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::is-loaded", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::is-loaded", ...args: any[]): void
connect(sigName: "notify::language", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::language", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::language", ...args: any[]): void
connect(sigName: "notify::local-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::local-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::local-account", ...args: any[]): void
connect(sigName: "notify::location", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::location", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::location", ...args: any[]): void
connect(sigName: "notify::locked", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::locked", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::locked", ...args: any[]): void
connect(sigName: "notify::login-frequency", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::login-frequency", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::login-frequency", ...args: any[]): void
connect(sigName: "notify::login-history", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::login-history", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::login-history", ...args: any[]): void
connect(sigName: "notify::login-time", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::login-time", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::login-time", ...args: any[]): void
connect(sigName: "notify::nonexistent", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::nonexistent", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::nonexistent", ...args: any[]): void
connect(sigName: "notify::password-hint", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::password-hint", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::password-hint", ...args: any[]): void
connect(sigName: "notify::password-mode", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::password-mode", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::password-mode", ...args: any[]): void
connect(sigName: "notify::real-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::real-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::real-name", ...args: any[]): void
connect(sigName: "notify::shell", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::shell", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::shell", ...args: any[]): void
connect(sigName: "notify::system-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::system-account", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::system-account", ...args: any[]): void
connect(sigName: "notify::uid", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::uid", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::uid", ...args: any[]): void
connect(sigName: "notify::user-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::user-name", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::user-name", ...args: any[]): void
connect(sigName: "notify::x-session", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::x-session", callback: (($obj: User, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::x-session", ...args: any[]): void
connect(sigName: string, callback: (...args: any[]) => void): number
connect_after(sigName: string, callback: (...args: any[]) => void): number
emit(sigName: string, ...args: any[]): void
disconnect(id: number): void
}
/**
* Represents a user account on the system.
* @class
*/
class User extends GObject.Object {
// Own properties of AccountsService-1.0.AccountsService.User
static name: string
static $gtype: GObject.GType<User>
// Constructors of AccountsService-1.0.AccountsService.User
constructor(config?: User.ConstructorProperties)
_init(config?: User.ConstructorProperties): void
}
module UserManager {
// Signal callback interfaces
/**
* Signal callback interface for `user-added`
*/
interface UserAddedSignalCallback {
($obj: UserManager, user: User): void
}
/**
* Signal callback interface for `user-changed`
*/
interface UserChangedSignalCallback {
($obj: UserManager, user: User): void
}
/**
* Signal callback interface for `user-is-logged-in-changed`
*/
interface UserIsLoggedInChangedSignalCallback {
($obj: UserManager, user: User): void
}
/**
* Signal callback interface for `user-removed`
*/
interface UserRemovedSignalCallback {
($obj: UserManager, user: User): void
}
// Constructor properties interface
interface ConstructorProperties extends GObject.Object.ConstructorProperties {
// Own constructor properties of AccountsService-1.0.AccountsService.UserManager
excludeUsernamesList?: any | null
hasMultipleUsers?: boolean | null
includeUsernamesList?: any | null
}
}
interface UserManager {
// Own properties of AccountsService-1.0.AccountsService.UserManager
excludeUsernamesList: any
hasMultipleUsers: boolean
includeUsernamesList: any
readonly isLoaded: boolean
// Own fields of AccountsService-1.0.AccountsService.UserManager
parent: GObject.Object
// Owm methods of AccountsService-1.0.AccountsService.UserManager
/**
* Activate the session for a given user.
* @param user the user to activate
* @returns whether successfully activated
*/
activate_user_session(user: User): boolean
/**
* Caches a user account so it shows up via act_user_manager_list_users().
* @param username a user name
* @returns user object
*/
cache_user(username: string): User
/**
* Asynchronously caches a user account so it shows up via
* act_user_manager_list_users().
*
* For more details, see act_user_manager_cache_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param cancellable optional #GCancellable object, %NULL to ignore
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
cache_user_async(username: string, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of cache_user_async
/**
* Promisified version of {@link cache_user_async}
*
* Asynchronously caches a user account so it shows up via
* act_user_manager_list_users().
*
* For more details, see act_user_manager_cache_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param cancellable optional #GCancellable object, %NULL to ignore
* @returns A Promise of: user object
*/
cache_user_async(username: string, cancellable: Gio.Cancellable | null): globalThis.Promise<User>
/**
* Finishes an asynchronous user caching.
*
* See act_user_manager_cache_user_async().
* @param result a #GAsyncResult
* @returns user object
*/
cache_user_finish(result: Gio.AsyncResult): User
/**
* Check whether the user can switch to another session.
* @returns whether we can switch to another session
*/
can_switch(): boolean
/**
* Creates a user account on the system.
* @param username a unix user name
* @param fullname a unix GECOS value
* @param accounttype a #ActUserAccountType
* @returns user object
*/
create_user(username: string, fullname: string, accounttype: UserAccountType): User
/**
* Asynchronously creates a user account on the system.
*
* For more details, see act_user_manager_create_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param fullname a unix GECOS value
* @param accounttype a #ActUserAccountType
* @param cancellable optional #GCancellable object, %NULL to ignore
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
create_user_async(username: string, fullname: string, accounttype: UserAccountType, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of create_user_async
/**
* Promisified version of {@link create_user_async}
*
* Asynchronously creates a user account on the system.
*
* For more details, see act_user_manager_create_user(), which
* is the synchronous version of this call.
* @param username a unix user name
* @param fullname a unix GECOS value
* @param accounttype a #ActUserAccountType
* @param cancellable optional #GCancellable object, %NULL to ignore
* @returns A Promise of: user object
*/
create_user_async(username: string, fullname: string, accounttype: UserAccountType, cancellable: Gio.Cancellable | null): globalThis.Promise<User>
/**
* Finishes an asynchronous user creation.
*
* See act_user_manager_create_user_async().
* @param result a #GAsyncResult
* @returns user object
*/
create_user_finish(result: Gio.AsyncResult): User
/**
* Deletes a user account on the system.
* @param user an #ActUser object
* @param remove_files %TRUE to delete the users home directory
* @returns %TRUE if the user account was successfully deleted
*/
delete_user(user: User, remove_files: boolean): boolean
/**
* Asynchronously deletes a user account from the system.
*
* For more details, see act_user_manager_delete_user(), which
* is the synchronous version of this call.
* @param user a #ActUser object
* @param remove_files %TRUE to delete the users home directory
* @param cancellable optional #GCancellable object, %NULL to ignore
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
delete_user_async(user: User, remove_files: boolean, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of delete_user_async
/**
* Promisified version of {@link delete_user_async}
*
* Asynchronously deletes a user account from the system.
*
* For more details, see act_user_manager_delete_user(), which
* is the synchronous version of this call.
* @param user a #ActUser object
* @param remove_files %TRUE to delete the users home directory
* @param cancellable optional #GCancellable object, %NULL to ignore
* @returns A Promise of: %TRUE if the user account was successfully deleted
*/
delete_user_async(user: User, remove_files: boolean, cancellable: Gio.Cancellable | null): globalThis.Promise<boolean>
/**
* Finishes an asynchronous user account deletion.
*
* See act_user_manager_delete_user_async().
* @param result a #GAsyncResult
* @returns %TRUE if the user account was successfully deleted
*/
delete_user_finish(result: Gio.AsyncResult): boolean
/**
* Retrieves a pointer to the #ActUser object for the login `username`
* from `manager`. Trying to use this object before its
* #ActUser:is-loaded property is %TRUE will result in undefined
* behavior.
* @param username the login name of the user to get.
* @returns #ActUser object
*/
get_user(username: string): User
/**
* Retrieves a pointer to the #ActUser object for the user with the
* given uid from `manager`. Trying to use this object before its
* #ActUser:is-loaded property is %TRUE will result in undefined
* behavior.
* @param id the uid of the user to get.
* @returns #ActUser object
*/
get_user_by_id(id: number): User
/**
* Switch the display to the login manager.
* @returns whether successful or not
*/
goto_login_session(): boolean
/**
* Get a list of system user accounts
* @returns List of #ActUser objects
*/
list_users(): User[]
/**
* Check whether or not the accounts service is running.
* @returns whether or not accounts service is running
*/
no_service(): boolean
/**
* Releases all metadata about a user account, including icon,
* language and session. If the user account is from a remote
* server and the user has never logged in before, then that
* account will no longer show up in ListCachedUsers() output.
* @param username a user name
* @returns %TRUE if successful, otherwise %FALSE
*/
uncache_user(username: string): boolean
uncache_user_async(username: string, cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void
// Overloads of uncache_user_async
/**
* Promisified version of {@link uncache_user_async}
*
*
* @param username
* @param cancellable
* @returns A Promise of: %TRUE if the user account was successfully uncached
*/
uncache_user_async(username: string, cancellable: Gio.Cancellable | null): globalThis.Promise<boolean>
/**
* Finishes an asynchronous user uncaching.
*
* See act_user_manager_uncache_user_async().
* @param result a #GAsyncResult
* @returns %TRUE if the user account was successfully uncached
*/
uncache_user_finish(result: Gio.AsyncResult): boolean
// Own virtual methods of AccountsService-1.0.AccountsService.UserManager
vfunc_user_added(user: User): void
vfunc_user_changed(user: User): void
vfunc_user_is_logged_in_changed(user: User): void
vfunc_user_removed(user: User): void
// Own signals of AccountsService-1.0.AccountsService.UserManager
connect(sigName: "user-added", callback: UserManager.UserAddedSignalCallback): number
connect_after(sigName: "user-added", callback: UserManager.UserAddedSignalCallback): number
emit(sigName: "user-added", user: User, ...args: any[]): void
connect(sigName: "user-changed", callback: UserManager.UserChangedSignalCallback): number
connect_after(sigName: "user-changed", callback: UserManager.UserChangedSignalCallback): number
emit(sigName: "user-changed", user: User, ...args: any[]): void
connect(sigName: "user-is-logged-in-changed", callback: UserManager.UserIsLoggedInChangedSignalCallback): number
connect_after(sigName: "user-is-logged-in-changed", callback: UserManager.UserIsLoggedInChangedSignalCallback): number
emit(sigName: "user-is-logged-in-changed", user: User, ...args: any[]): void
connect(sigName: "user-removed", callback: UserManager.UserRemovedSignalCallback): number
connect_after(sigName: "user-removed", callback: UserManager.UserRemovedSignalCallback): number
emit(sigName: "user-removed", user: User, ...args: any[]): void
// Class property signals of AccountsService-1.0.AccountsService.UserManager
connect(sigName: "notify::exclude-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::exclude-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::exclude-usernames-list", ...args: any[]): void
connect(sigName: "notify::has-multiple-users", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::has-multiple-users", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::has-multiple-users", ...args: any[]): void
connect(sigName: "notify::include-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::include-usernames-list", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::include-usernames-list", ...args: any[]): void
connect(sigName: "notify::is-loaded", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
connect_after(sigName: "notify::is-loaded", callback: (($obj: UserManager, pspec: GObject.ParamSpec) => void)): number
emit(sigName: "notify::is-loaded", ...args: any[]): void
connect(sigName: string, callback: (...args: any[]) => void): number
connect_after(sigName: string, callback: (...args: any[]) => void): number
emit(sigName: string, ...args: any[]): void
disconnect(id: number): void
}
/**
* A user manager object.
* @class
*/
class UserManager extends GObject.Object {
// Own properties of AccountsService-1.0.AccountsService.UserManager
static name: string
static $gtype: GObject.GType<UserManager>
// Constructors of AccountsService-1.0.AccountsService.UserManager
constructor(config?: UserManager.ConstructorProperties)
_init(config?: UserManager.ConstructorProperties): void
/**
* Returns the user manager singleton instance. Calling this function will
* automatically being loading the user list if it isn't loaded already.
* The #ActUserManager:is-loaded property will be set to %TRUE when the users
* are finished loading and then act_user_manager_list_users() can be called.
* @returns user manager object
*/
static get_default(): UserManager
}
interface UserClass {
// Own fields of AccountsService-1.0.AccountsService.UserClass
parent_class: GObject.ObjectClass
}
abstract class UserClass {
// Own properties of AccountsService-1.0.AccountsService.UserClass
static name: string
}
interface UserManagerClass {
// Own fields of AccountsService-1.0.AccountsService.UserManagerClass
parent_class: GObject.ObjectClass
user_added: (user_manager: UserManager, user: User) => void
user_removed: (user_manager: UserManager, user: User) => void
user_is_logged_in_changed: (user_manager: UserManager, user: User) => void
user_changed: (user_manager: UserManager, user: User) => void
}
abstract class UserManagerClass {
// Own properties of AccountsService-1.0.AccountsService.UserManagerClass
static name: string
}
/**
* Name of the imported GIR library
* @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string
/**
* Version of the imported GIR library
* @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string
}
export default AccountsService;
// END

View file

@ -0,0 +1,10 @@
// @ts-expect-error
import AccountsService from 'gi://AccountsService?version=1.0';
export { AccountsService };
export default AccountsService;

View file

@ -0,0 +1,60 @@
{
"name": "@girs/accountsservice-1.0",
"version": "1.0.0-3.3.0",
"description": "GJS TypeScript type definitions for AccountsService-1.0, generated from library version 1.0.0",
"type": "module",
"module": "accountsservice-1.0.js",
"main": "accountsservice-1.0.js",
"exports": {
"./ambient": {
"types": "./accountsservice-1.0-ambient.d.ts",
"default": "./accountsservice-1.0-ambient.js"
},
"./import": {
"types": "./accountsservice-1.0-import.d.ts",
"default": "./accountsservice-1.0-import.js"
},
".": {
"import": {
"types": "./accountsservice-1.0.d.ts",
"default": "./accountsservice-1.0.js"
},
"require": {
"types": "./accountsservice-1.0.d.cts",
"default": "./accountsservice-1.0.cjs"
}
}
},
"scripts": {
"test": "yarn test:esm && yarn test:cjs",
"test:esm": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit accountsservice-1.0.d.ts",
"test:cjs": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit accountsservice-1.0.d.cts"
},
"dependencies": {
"@girs/gio-2.0": "^2.78.0-3.3.0",
"@girs/gjs": "^3.3.0",
"@girs/glib-2.0": "^2.78.0-3.3.0",
"@girs/gobject-2.0": "^2.78.0-3.3.0"
},
"devDependencies": {
"typescript": "*"
},
"keywords": [
"Gir",
"TypeScript",
"types",
"GObject-Introspection",
"GJS",
"AccountsService-1.0"
],
"author": "ts-for-gir",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/gjsify/ts-for-gir.git"
},
"bugs": {
"url": "https://github.com/gjsify/ts-for-gir/issues"
},
"homepage": "https://github.com/gjsify/types/tree/main/accountsservice-1.0#readme"
}

View file

@ -0,0 +1,23 @@
{
"compilerOptions": {
// General settings for code interpretation
"target": "ESNext",
"module": "ESNext",
"lib": ["ESNext"],
"types": [],
"experimentalDecorators": true,
"moduleResolution": "node",
"noEmit": true,
"noEmitOnError": false,
"baseUrl": "./",
"rootDir": ".",
// General settings for code generation
"removeComments": false,
"inlineSourceMap": false,
"inlineSources": false,
"newLine": "LF"
},
"include": ["./accountsservice-1.0.d.ts"]
}

View file

@ -0,0 +1,7 @@
{
"entryPoints": ["./accountsservice-1.0.d.ts"],
"readme": "./README.md",
"name": "AccountsService-1.0",
"tsconfig": "./tsconfig.json"
}

105
home/ags/node_modules/@girs/gio-2.0/README.md generated vendored Normal file
View file

@ -0,0 +1,105 @@
# Gio-2.0
![version](https://img.shields.io/npm/v/@girs/gio-2.0)
![downloads/week](https://img.shields.io/npm/dw/@girs/gio-2.0)
GJS TypeScript type definitions for Gio-2.0, generated from library version 2.78.0 using [ts-for-gir](https://github.com/gjsify/ts-for-gir) v3.3.0.
GIO provides a modern and easy-to-use VFS API. It provides a file system abstraction which allows applications to access local and remote files with a single consistent API.
## Install
To use this type definitions, install them with NPM:
```bash
npm install @girs/gio-2.0
```
## Usage
You can import this package into your project like this:
```ts
import Gio from '@girs/gio-2.0';
```
Or if you prefer CommonJS, you can also use this:
```ts
const Gio = require('@girs/gio-2.0');
```
### Ambient Modules
You can also use [ambient modules](https://github.com/gjsify/ts-for-gir/tree/main/packages/cli#ambient-modules) to import this module like you would do this in JavaScript.
For this you need to include `@girs/gio-2.0` or `@girs/gio-2.0/ambient` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/gio-2.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/gio-2.0"],
...
}
```
Now you can import the ambient module with TypeScript support:
```ts
import Gio from 'gi://Gio?version=2.0';
```
### Global import
You can also import the module with Typescript support using the global `imports.gi` object of GJS.
For this you need to include `@girs/gio-2.0` or `@girs/gio-2.0/import` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/gio-2.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/gio-2.0"],
...
}
```
Now you have also type support for this, too:
```ts
const Gio = imports.gi.Gio;
```
### ESM vs. CommonJS
GJS supports two different import syntaxes. The new modern ESM syntax and the old global imports syntax.
In TypeScript projects for GJS and GNOME Shell extensions, you have the flexibility to use `ESM` syntax and then decide the import syntax for your bundled file. If your bundler is configured to use `CommonJS`, it will convert to the GJS-specific global imports syntax, like `const moduleName = imports.gi[moduleName]`. This is different from the traditional `require` syntax seen in Node.js. The global imports syntax is chosen because it aligns with the CommonJS format supported by NPM, which is used for the generated type definitions and this package.
On the other hand, if you configure your bundler to use ESM, it will retain the ESM import syntax. It's crucial to ensure that your bundler is set up to correctly translate and bundle these imports into either CommonJS or ESM format, depending on your project's requirements.
This approach is particularly important due to the `@girs` types, which include both `*.cjs `files, using the GJS global imports syntax, and `*.js` files, which utilize the ESM syntax. By appropriately setting up your bundler, you can control which syntax—CommonJS or ESM—is used in your project. The choice of CommonJS in this context is also due to the similarity between the GJS-specific global imports and CommonJS syntax, allowing for easier management and bundling in these specific types of projects.
Since GNOME Shell 45, you should only use ESM, even for GNOME Shell extensions. Before that, extensions had to use the global import syntax, unlike normal GJS applications, where ESM has been available for some time.
### Bundle
Depending on your project configuration, it is recommended to use a bundler like [esbuild](https://esbuild.github.io/). You can find examples using different bundlers [here](https://github.com/gjsify/ts-for-gir/tree/main/examples).
## Other packages
All existing pre-generated packages can be found on [gjsify/types](https://github.com/gjsify/types).

View file

@ -0,0 +1,12 @@
declare module 'gi://Gio?version=2.0' {
import Gio20 from '@girs/gio-2.0';
export default Gio20;
}
declare module 'gi://Gio' {
import Gio20 from '@girs/gio-2.0';
export default Gio20;
}

View file

@ -0,0 +1,2 @@
export {}

View file

@ -0,0 +1,12 @@
import Gio20 from '@girs/gio-2.0';
declare global {
export interface GjsGiImports {
Gio: typeof Gio20;
}
}
export default GjsGiImports;

View file

@ -0,0 +1,3 @@
const gi = globalThis.imports?.gi || {};
export default gi;

11
home/ags/node_modules/@girs/gio-2.0/gio-2.0.cjs generated vendored Normal file
View file

@ -0,0 +1,11 @@
imports.gi.versions.Gio = '2.0'
const Gio = imports.gi.Gio;
module.exports = Gio;

53528
home/ags/node_modules/@girs/gio-2.0/gio-2.0.d.cts generated vendored Normal file

File diff suppressed because it is too large Load diff

53533
home/ags/node_modules/@girs/gio-2.0/gio-2.0.d.ts generated vendored Normal file

File diff suppressed because it is too large Load diff

10
home/ags/node_modules/@girs/gio-2.0/gio-2.0.js generated vendored Normal file
View file

@ -0,0 +1,10 @@
// @ts-expect-error
import Gio from 'gi://Gio?version=2.0';
export { Gio };
export default Gio;

59
home/ags/node_modules/@girs/gio-2.0/package.json generated vendored Normal file
View file

@ -0,0 +1,59 @@
{
"name": "@girs/gio-2.0",
"version": "2.78.0-3.3.0",
"description": "GJS TypeScript type definitions for Gio-2.0, generated from library version 2.78.0",
"type": "module",
"module": "gio-2.0.js",
"main": "gio-2.0.js",
"exports": {
"./ambient": {
"types": "./gio-2.0-ambient.d.ts",
"default": "./gio-2.0-ambient.js"
},
"./import": {
"types": "./gio-2.0-import.d.ts",
"default": "./gio-2.0-import.js"
},
".": {
"import": {
"types": "./gio-2.0.d.ts",
"default": "./gio-2.0.js"
},
"require": {
"types": "./gio-2.0.d.cts",
"default": "./gio-2.0.cjs"
}
}
},
"scripts": {
"test": "yarn test:esm && yarn test:cjs",
"test:esm": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit gio-2.0.d.ts",
"test:cjs": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit gio-2.0.d.cts"
},
"dependencies": {
"@girs/gjs": "^3.3.0",
"@girs/glib-2.0": "^2.78.0-3.3.0",
"@girs/gobject-2.0": "^2.78.0-3.3.0"
},
"devDependencies": {
"typescript": "*"
},
"keywords": [
"Gir",
"TypeScript",
"types",
"GObject-Introspection",
"GJS",
"Gio-2.0"
],
"author": "ts-for-gir",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/gjsify/ts-for-gir.git"
},
"bugs": {
"url": "https://github.com/gjsify/ts-for-gir/issues"
},
"homepage": "https://github.com/gjsify/types/tree/main/gio-2.0#readme"
}

23
home/ags/node_modules/@girs/gio-2.0/tsconfig.json generated vendored Normal file
View file

@ -0,0 +1,23 @@
{
"compilerOptions": {
// General settings for code interpretation
"target": "ESNext",
"module": "ESNext",
"lib": ["ESNext"],
"types": [],
"experimentalDecorators": true,
"moduleResolution": "node",
"noEmit": true,
"noEmitOnError": false,
"baseUrl": "./",
"rootDir": ".",
// General settings for code generation
"removeComments": false,
"inlineSourceMap": false,
"inlineSources": false,
"newLine": "LF"
},
"include": ["./gio-2.0.d.ts"]
}

7
home/ags/node_modules/@girs/gio-2.0/typedoc.json generated vendored Normal file
View file

@ -0,0 +1,7 @@
{
"entryPoints": ["./gio-2.0.d.ts"],
"readme": "./README.md",
"name": "Gio-2.0",
"tsconfig": "./tsconfig.json"
}

126
home/ags/node_modules/@girs/gjs/README.md generated vendored Normal file
View file

@ -0,0 +1,126 @@
# Gjs
![version](https://img.shields.io/npm/v/@girs/gjs)
![downloads/week](https://img.shields.io/npm/dw/@girs/gjs)
GJS TypeScript type definitions for Gjs using [ts-for-gir](https://github.com/gjsify/ts-for-gir) v3.3.0.
[GJS](https://gitlab.gnome.org/GNOME/gjs) is a JavaScript runtime for the GNOME ecosystem. Using GJS and the type definitions in this NPM package, you can build GTK applications in JavaScript or TypeScript with type checking, better autocompletion and inline documentations.
## Install
To use this type definitions, install them with NPM:
```bash
npm install @girs/gjs
```
## Usage
You can import this package into your project like this:
```ts
import Gjs from '@girs/gjs';
```
Or if you prefer CommonJS, you can also use this:
```ts
const Gjs = require('@girs/gjs');
```
### Global types
After the import, the global types of GJS are also available:
```ts
import '@girs/gjs';
print('Hello World from print');
const ByteArray = imports.byteArray;
// And so on...
```
### Global DOM types
Some types that conflict with the DOM are outsourced to allow frameworks like Gjsify to rebuild the DOM API without causing type conflicts.
But you can easily import them:
```ts
import '@girs/gjs/dom';
console.log('Hello World from console');
const encoder = new TextEncoder();
const encoded = encoder.encode('𝓽𝓮𝔁𝓽');
setTimeout(() => {
// ...
}, 1000);
// And so on...
```
To avoid a type conflict with the DOM types it is recommended to either modify your `tsconfig.json` or `jsconfig.json` file to exclude the DOM lib, or to enable the `noLib` property.
### Ambient Modules
You can import the built in [ambient modules](https://github.com/gjsify/ts-for-gir/tree/main/packages/cli#ambient-modules) of GJS.
For this you need to include the `@girs/gjs` or `@girs/gjs/ambient` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/gjs'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/gjs"],
...
}
```
Now you can import `gettext`, `system` and `cairo` in ESM style with Typescript support:
```ts
import gettext from 'gettext';
import system from 'system';
import cairo from 'cairo';
```
### GIR modules
If you want to have types for [GObject Introspection](https://gi.readthedocs.io/en/latest/) modules, you have to add them to your dependencies and import them as well, see the description of these modules, e.g. [gtk-4.0](https://www.npmjs.com/package/@girs/gtk-4.0), [gio-2.0](https://www.npmjs.com/package/@girs/gio-2.0), [adw-1](https://www.npmjs.com/package/@girs/adw-1) and [much more](https://github.com/gjsify/types).
These types will then be available to you:
```ts
import '@girs/gjs'
import '@girs/gjs/dom'
import '@girs/gio-2.0'
import '@girs/gtk-4.0'
import '@girs/adw-1'
import Gio from 'gi://Gio?version=2.0';
import Gtk from 'gi://Gtk?version=4.0';
import Adwaita from 'gi://adw?version=1';
const button = new Gtk.Button();
// ...
```
### Bundle
Depending on your project configuration, it is recommended to use a bundler like [esbuild](https://esbuild.github.io/). You can find examples using different bundlers [here](https://github.com/gjsify/ts-for-gir/tree/main/examples).
## Other packages
All existing pre-generated packages can be found on [gjsify/types](https://github.com/gjsify/types).

20
home/ags/node_modules/@girs/gjs/ambient.d.ts generated vendored Normal file
View file

@ -0,0 +1,20 @@
// https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules
// https://stackoverflow.com/questions/45099605/ambient-declaration-with-an-imported-type-in-typescript
declare module 'gettext' {
export * from '@girs/gjs/gettext';
import Gettext from '@girs/gjs/gettext';
export default Gettext;
}
declare module 'system' {
export * from '@girs/gjs/system';
import System from '@girs/gjs/system';
export default System;
}
declare module 'cairo' {
import Cairo from '@girs/gjs/cairo';
export default Cairo;
}

3
home/ags/node_modules/@girs/gjs/ambient.js generated vendored Normal file
View file

@ -0,0 +1,3 @@
export {};

8
home/ags/node_modules/@girs/gjs/cairo.cjs generated vendored Normal file
View file

@ -0,0 +1,8 @@
const Cairo = imports.cairo;
module.exports = Cairo;
exports.default = Cairo;

10
home/ags/node_modules/@girs/gjs/cairo.d.cts generated vendored Normal file
View file

@ -0,0 +1,10 @@
// TODO: See ./cairo-1.0.d.ts
declare const Cairo: any;
export default Cairo;
// TODO declare named exports here, cairo doesn't have named exports for its esm module but for cjs we can use `const { Context } = imports.cairo` for that, see `./cairo.js`

8
home/ags/node_modules/@girs/gjs/cairo.d.ts generated vendored Normal file
View file

@ -0,0 +1,8 @@
// TODO: See ./cairo-1.0.d.ts
declare const Cairo: any;
export default Cairo;

8
home/ags/node_modules/@girs/gjs/cairo.js generated vendored Normal file
View file

@ -0,0 +1,8 @@
import Cairo from 'cairo';
// cairo doesn't have named exports, see https://gitlab.gnome.org/GNOME/gjs/-/blob/c2a714f348d6848037f072063e0a914fd537c4f4/installed-tests/js/testCairoModule.js#L14
export default Cairo;

316
home/ags/node_modules/@girs/gjs/dom.d.ts generated vendored Normal file
View file

@ -0,0 +1,316 @@
/**
* Gjs has implemented some functionality from the DOM API,
* this leads to a conflict when all DOM (`lib.dom.d.ts`) should be used.
* This should normally not be the case, since the other - not yet reimplemented - API's cannot be used in GJS anyway.
* In particular, Gjsify tries to rebuild the DOM API and therefore does not need these types.
* For this reason they are stored in this separate file to make them optional.
*
* See also https://github.com/microsoft/TypeScript/blob/main/lib/lib.dom.d.ts
*/
import type GLib from '@girs/glib-2.0';
declare global {
interface ImportMeta {
/**
* The absolute file: or resource: URL of the module.
*
* @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/ESModules.md#importmetaurl
*/
readonly url: string;
}
// Timers
// See https://gitlab.gnome.org/GNOME/gjs/-/blob/master/modules/esm/_timers.js
/**
* @version Gjs 1.71.1
* @param callback a callback function
* @param delay the duration in milliseconds to wait before running callback
* @param args arguments to pass to callback
*/
function setTimeout(callback: (...args: any[]) => any, delay?: number, ...args: any[]): GLib.Source
/**
* @version Gjs 1.71.1
* @param callback a callback function
* @param delay the duration in milliseconds to wait between calling callback
* @param args arguments to pass to callback
*/
function setInterval(callback: (...args: any[]) => any, delay?: number, ...args: any[]): GLib.Source
/**
* @version Gjs 1.71.1
* @param timeout the timeout to clear
*/
function clearTimeout(timeout: GLib.Source): void
/**
* @version Gjs 1.71.1
* @param timeout the timeout to clear
*/
function clearInterval(timeout: GLib.Source): void
interface Console {
/**
* Logs a critical message if the condition is not truthy.
* {@link console.error()} for additional information.
*
* @param condition a boolean condition which, if false, causes
* the log to print
* @param data formatting substitutions, if applicable
* @returns
*/
assert(condition: boolean, ...data: any[]): void
/**
* Resets grouping and clears the terminal on systems supporting ANSI
* terminal control sequences.
*
* In file-based stdout or systems which do not support clearing,
* console.clear() has no visual effect.
*
*/
clear(): void
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.DEBUG}.
*
* @param {...any} data formatting substitutions, if applicable
*/
debug(...data: any[]): void
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.CRITICAL}.
* Does not use {@link GLib.LogLevelFlags.ERROR} to avoid asserting and
* forcibly shutting down the application.
*
* @param data formatting substitutions, if applicable
*/
error(...data: any[]): void
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.INFO}.
*
* @param data formatting substitutions, if applicable
*/
info(...data: any[]): void
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.MESSAGE}.
*
* @param data formatting substitutions, if applicable
*/
log(...data: any[]): void
// 1.1.7 table(tabularData, properties)
table(tabularData: any, _properties: never): void
/**
* @param data formatting substitutions, if applicable
*/
trace(...data: any[]): void
/**
* @param data formatting substitutions, if applicable
*/
warn(...data: any[]): void
/**
* @param item an item to format generically
* @param [options] any additional options for the formatter. Unused
* in our implementation.
*/
dir(item: object, options: never): void
/**
* @param data formatting substitutions, if applicable
*/
dirxml(...data: any[]): void
// 1.2 Counting functions
// https://console.spec.whatwg.org/#counting
/**
* Logs how many times console.count(label) has been called with a given
* label.
* {@link console.countReset()} for resetting a count.
*
* @param label unique identifier for this action
*/
count(label: string): void
/**
* @param label the unique label to reset the count for
*/
countReset(label: string): void
// 1.3 Grouping functions
// https://console.spec.whatwg.org/#grouping
/**
* @param data formatting substitutions, if applicable
*/
group(...data: any[]): void
/**
* Alias for console.group()
*
* @param {...any} data formatting substitutions, if applicable
*/
groupCollapsed(...data: any[]): void
/**
*/
groupEnd(): void
// 1.4 Timing functions
// https://console.spec.whatwg.org/#timing
/**
* @param label unique identifier for this action, pass to
* console.timeEnd() to complete
*/
time(label: string): void
/**
* Logs the time since the last call to console.time(label) where label is
* the same.
*
* @param label unique identifier for this action, pass to
* console.timeEnd() to complete
* @param data string substitutions, if applicable
*/
timeLog(label: string, ...data: any[]): void
/**
* Logs the time since the last call to console.time(label) and completes
* the action.
* Call console.time(label) again to re-measure.
*
* @param label unique identifier for this action
*/
timeEnd(label: string): void
// Non-standard functions which are de-facto standards.
// Similar to Node, we define these as no-ops for now.
/**
* @deprecated Not implemented in GJS
*
* @param _label unique identifier for this action, pass to
* console.profileEnd to complete
*/
profile(_label: string): void
/**
* @deprecated Not implemented in GJS
*
* @param _label unique identifier for this action
*/
profileEnd(_label: string): void
/**
* @deprecated Not implemented in GJS
*
* @param _label unique identifier for this action
*/
timeStamp(_label: string): void
// GJS-specific extensions for integrating with GLib structured logging
/**
* @param logDomain the GLib log domain this Console should print
* with. Defaults to 'Gjs-Console'.
*/
setLogDomain(logDomain: string): void
logDomain: string
interact(): void
}
interface TextDecodeOptions {
// As of Gjs 1.73.2 stream mode is not supported yet.
// stream?: boolean
}
interface TextDecoderOptions {
/** Indicates whether the error mode is fatal. */
fatal?: boolean
/** Indicates whether whether the byte order mark is ignored. */
ignoreBOM?: boolean
}
/**
* The TextDecoder interface represents a decoder for a specific text encoding.
* It takes a stream of bytes as input and emits a stream of code points.
*
* @version Gjs 1.69.2
*/
interface TextDecoder {
/** A string containing the name of the decoder, that is a string describing the method the TextDecoder will use. */
readonly encoding: TextDecoderEncoding
/** A Boolean indicating whether the error mode is fatal. */
readonly fatal: boolean
/** A Boolean indicating whether the byte order mark is ignored. */
readonly ignoreBOM: boolean
/**
* Returns a string containing the text decoded with the method of the specific TextDecoder object.
*
* If the error mode is "fatal" and the encoder method encounter an error it WILL THROW a TypeError.
*
* @param input Buffer containing the text to decode
* @param options Object defining the decode options
*/
decode(input?: ArrayBufferView | ArrayBuffer, options?: TextDecodeOptions): string
}
interface TextEncoderEncodeIntoResult {
read?: number
written?: number
}
/**
* TextEncoder takes a stream of code points as input and emits a stream of bytes.
*
* @version Gjs 1.69.2
*/
interface TextEncoder {
readonly encoding: 'utf-8'
/**
* Takes a string as input, and returns a buffer containing the text given in parameters encoded with the UTF-8 method.
*
* @param input Text to encode.
*/
encode(input?: string): Uint8Array
/**
* Takes a string to encode and a destination Uint8Array to put resulting UTF-8 encoded text into,
* and returns a dictionary object indicating the progress of the encoding.
*
* This is potentially more performant than the older encode() method.
*
* @param source Text to encode.
* @param destination Buffer where to place the resulting UTF-8 encoded text into.
*/
encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult
}
const console: Console
const TextDecoder: {
prototype: TextDecoder
new (label?: TextDecoderEncoding, options?: TextDecoderOptions): TextDecoder
}
const TextEncoder: {
prototype: TextEncoder
new (): TextEncoder
}
}
export {}

3
home/ags/node_modules/@girs/gjs/dom.js generated vendored Normal file
View file

@ -0,0 +1,3 @@
export {};

8
home/ags/node_modules/@girs/gjs/gettext.cjs generated vendored Normal file
View file

@ -0,0 +1,8 @@
const Gettext = imports.gettext;
module.exports = Gettext;
exports.default = Gettext;

42
home/ags/node_modules/@girs/gjs/gettext.d.cts generated vendored Normal file
View file

@ -0,0 +1,42 @@
export enum LocaleCategory {
ALL,
COLLATE,
CTYPE,
MESSAGES,
MONETARY,
NUMERIC,
TIME,
}
export function setlocale(category: number, locale: string | null): string
export function textdomain(domainname: string | null): string
export function bindtextdomain(domainname: string, dirname: string | null): string
export function gettext(msgid: string): string
export function dgettext(domainname: string | null, msgid: string): string
export function dcgettext(domainname: string | null, msgid: string, category: number): string
export function ngettext(msgid: string, msgid_plural: string, n: number): string
export function dngettext(domainname: string, msgid: string, msgid_plural: string, n: number): string
export function pgettext(context: string, msgid: string): string
export function dpgettext(dom: string | null, context: string, msgid: string): string
export function domain(domainName: string): {
gettext: (msgid: string) => string
ngettext: (msgid: string, msgid_plural: string, n: number) => string
pgettext: (context: string, msgid: string) => string
}
declare const Gettext: {
LocaleCategory: typeof LocaleCategory,
setlocale: typeof setlocale,
textdomain: typeof textdomain,
bindtextdomain: typeof bindtextdomain,
gettext: typeof gettext,
dgettext: typeof dgettext,
dcgettext: typeof dcgettext,
ngettext: typeof ngettext,
dngettext: typeof dngettext,
pgettext: typeof pgettext,
dpgettext: typeof dpgettext,
domain: typeof domain,
}
export default Gettext

42
home/ags/node_modules/@girs/gjs/gettext.d.ts generated vendored Normal file
View file

@ -0,0 +1,42 @@
export enum LocaleCategory {
ALL,
COLLATE,
CTYPE,
MESSAGES,
MONETARY,
NUMERIC,
TIME,
}
export function setlocale(category: number, locale: string | null): string
export function textdomain(domainname: string | null): string
export function bindtextdomain(domainname: string, dirname: string | null): string
export function gettext(msgid: string): string
export function dgettext(domainname: string | null, msgid: string): string
export function dcgettext(domainname: string | null, msgid: string, category: number): string
export function ngettext(msgid: string, msgid_plural: string, n: number): string
export function dngettext(domainname: string, msgid: string, msgid_plural: string, n: number): string
export function pgettext(context: string, msgid: string): string
export function dpgettext(dom: string | null, context: string, msgid: string): string
export function domain(domainName: string): {
gettext: (msgid: string) => string
ngettext: (msgid: string, msgid_plural: string, n: number) => string
pgettext: (context: string, msgid: string) => string
}
declare const Gettext: {
LocaleCategory: typeof LocaleCategory,
setlocale: typeof setlocale,
textdomain: typeof textdomain,
bindtextdomain: typeof bindtextdomain,
gettext: typeof gettext,
dgettext: typeof dgettext,
dcgettext: typeof dcgettext,
ngettext: typeof ngettext,
dngettext: typeof dngettext,
pgettext: typeof pgettext,
dpgettext: typeof dpgettext,
domain: typeof domain,
}
export default Gettext

8
home/ags/node_modules/@girs/gjs/gettext.js generated vendored Normal file
View file

@ -0,0 +1,8 @@
import Gettext, { setlocale, textdomain, bindtextdomain, gettext, dgettext, dcgettext, ngettext, dngettext, pgettext, dpgettext, domain } from 'gettext';
export { setlocale, textdomain, bindtextdomain, gettext, dgettext, dcgettext, ngettext, dngettext, pgettext, dpgettext, domain }
export default Gettext;

6
home/ags/node_modules/@girs/gjs/gjs.cjs generated vendored Normal file
View file

@ -0,0 +1,6 @@
const imports = globalThis.imports || {};
module.exports = imports;
exports.default = imports;

459
home/ags/node_modules/@girs/gjs/gjs.d.cts generated vendored Normal file
View file

@ -0,0 +1,459 @@
/*
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in ts-for-gir itself or create a bug report on https://github.com/gjsify/ts-for-gir
*/
import './ambient.d.ts';
import type GObject from '@girs/gobject-2.0';
import type GLib from '@girs/glib-2.0';
import gettext from './gettext.js';
import system from './system.js';
import cairo from './cairo.js';
// https://gitlab.gnome.org/GNOME/gjs/-/blob/1.72.0/modules/script/package.js
declare namespace package {
/**
* Although there are references in the documentation of more properties that
* this object should accepts, only the following are actually used in the init code,
* and all the other have their values derived from them.
*/
interface PackageInitParams {
name: string
version: string
prefix: string
libdir: string
}
export const name: string | undefined
export const version: string | undefined
export const prefix: string | undefined
export const datadir: string | undefined
export const libdir: string | undefined
export const pkgdatadir: string | undefined
export const pkglibdir: string | undefined
export const moduledir: string | undefined
export const localedir: string | undefined
export function init(params: PackageInitParams): void
export function run(module: { main: (argv: string[]) => void }): void
/** shortcut to init+run */
export function start(params: PackageInitParams): void
export function require(libs: Record<string, string>): void
export function requireSymbol(lib: string, ver: string, symbol: string): void
export function checkSymbol(lib: string, ver: string, symbol: string): void
export function initGettext(): void
/** @deprecated Use JS string interpolation */
export function initFormat(): void
export function initSubmodule(module: string): void
}
declare namespace byteArray {
export class ByteArray {
static get(target: any, property: string, receiver: any): any
static set(target: any, property: string, value: any, receiver: any): boolean
length: number
protected _array: Uint8Array
constructor(x: Uint8Array | number)
toString(encoding?: TextDecoderEncoding): string
fromString(input: string, encoding?: TextDecoderEncoding): ByteArray
toGBytes(): GLib.Bytes
}
/** @deprecated Use {@link TextEncoder.encode} instead */
export function fromString(input: string, encoding?: TextDecoderEncoding): Uint8Array
/** @deprecated Use {@link GLib.Bytes.toArray} instead */
export function fromGBytes(input: GLib.Bytes): Uint8Array
/** @deprecated Use {@link TextDecoder.decode} instead */
export function toString(x: Uint8Array, encoding?: TextDecoderEncoding): string
/** @deprecated Use {@link GLib.Bytes new GLib.Bytes() } instead */
export function toGBytes(x: Uint8Array): GLib.Bytes
/** @deprecated Use {@link ByteArray new ByteArray()} instead */
export function fromArray(array: Iterable<number>): ByteArray
}
declare namespace lang {
// TODO: There is a lot more in Lang
export function Class(props: any): void
}
declare namespace format {
export function vprintf(str: string, args: string[]): string
export function printf(fmt: string, ...args: any[]): void
// Following docs from gjs/modules/format.js
/**
* This function is intended to extend the String object and provide
* an String.format API for string formatting.
* It has to be set up using String.prototype.format = Format.format;
* Usage:
* "somestring %s %d".format('hello', 5);
* It supports %s, %d, %x and %f, for %f it also support precisions like
* "%.2f".format(1.526). All specifiers can be prefixed with a minimum
* field width, e.g. "%5s".format("foo"). Unless the width is prefixed
* with '0', the formatted string will be padded with spaces.
*/
export function format(fmt: string, ...args: any[]): string
}
declare namespace mainloop {
export function quit(name: string): void
export function idle_source(handler: any, priority?: number): any
export function idle_add(handler: any, priority?: number): any
export function timeout_source(timeout: any, handler: any, priority?: number): any
export function timeout_seconds_source(timeout: any, handler: any, priority?: number): any
export function timeout_add(timeout: any, handler: any, priority?: number): any
export function timeout_add_seconds(timeout: any, handler: any, priority?: number): any
export function source_remove(id: any): any
export function run(name: string): void
}
/**
* You can use the `Signals.addSignalMethods` method to apply the `Signals` convenience methods to an `Object`.
* Generally, this is called on an object prototype, but may also be called on an object instance.
* You can use this Interface for this object or prototype to make the methods in typescript known
* @example
* ```ts
* const Signals = imports.signals;
*
* // Define an interface with the same name of your class to make the methods known
* interface Events extends Signals.Methods {}
*
* class Events {}
* Signals.addSignalMethods(Events.prototype);
*
* const events = new Events();
*
* // Typescript will not complain here
* events.emit("test-signal", "test argument");
* ```
*/
export interface SignalMethods {
/**
* Connects a callback to a signal for an object. Pass the returned ID to
* `disconnect()` to remove the handler.
*
* If `callback` returns `true`, emission will stop and no other handlers will be
* invoked.
*
* > Warning: Unlike GObject signals, `this` within a signal callback will always
* > refer to the global object (ie. `globalThis`).
*
* @param sigName A signal name
* @param callback A callback function
* @returns A handler ID
*/
connect(sigName: string, callback: (self: any, ...args: any[]) => void): number;
/**
* Emits a signal for an object. Emission stops if a signal handler returns `true`.
*
* Unlike GObject signals, it is not necessary to declare signals or define their
* signature. Simply call `emit()` with whatever signal name you wish, with
* whatever arguments you wish.
* @param sigName A signal name
* @param args Any number of arguments, of any type
*/
emit(sigName: string, ...args: any[]): void;
/**
* Disconnects a handler for a signal.
* @param id The ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Disconnects all signal handlers for an object.
*/
disconnectAll(): void
/**
* Checks if a handler ID is connected.
* @param id The ID of the handler to be disconnected
* @returns `true` if connected, or `false` if not
*/
signalHandlerIsConnected(id: number): boolean;
}
declare namespace signals {
export function addSignalMethods<T = any>(proto: T): proto is T & SignalMethods;
}
declare global {
// https://gitlab.gnome.org/GNOME/gjs/-/blob/1.73.2/modules/esm/_encoding/encodingMap.js#L7-232
type TextDecoderEncoding =
| 'unicode-1-1-utf-8'
| 'unicode11utf8'
| 'unicode20utf8'
| 'utf-8'
| 'utf8'
| 'x-unicode20utf8'
| '866'
| 'cp866'
| 'csibm866'
| 'ibm866'
| 'csisolatin2'
| 'iso-8859-2'
| 'iso-ir-101'
| 'iso8859-2'
| 'iso88592'
| 'iso_8859-2'
| 'iso_8859-2:1987'
| 'l2'
| 'latin2'
| 'csisolatin3'
| 'iso-8859-3'
| 'iso-ir-109'
| 'iso8859-3'
| 'iso88593'
| 'iso_8859-3'
| 'iso_8859-3:1988'
| 'l3'
| 'latin3'
| 'csisolatin4'
| 'iso-8859-4'
| 'iso-ir-110'
| 'iso8859-4'
| 'iso88594'
| 'iso_8859-4'
| 'iso_8859-4:1988'
| 'l4'
| 'latin4'
| 'csisolatincyrillic'
| 'cyrillic'
| 'iso-8859-5'
| 'iso-ir-144'
| 'iso8859-5'
| 'iso88595'
| 'iso_8859-5'
| 'iso_8859-5:1988'
| 'arabic'
| 'asmo-708'
| 'csiso88596e'
| 'csiso88596i'
| 'csisolatinarabic'
| 'ecma-114'
| 'iso-8859-6'
| 'iso-8859-6-e'
| 'iso-8859-6-i'
| 'iso-ir-127'
| 'iso8859-6'
| 'iso88596'
| 'iso_8859-6'
| 'iso_8859-6:1987'
| 'csisolatingreek'
| 'ecma-118'
| 'elot_928'
| 'greek'
| 'greek8'
| 'iso-8859-7'
| 'iso-ir-126'
| 'iso8859-7'
| 'iso88597'
| 'iso_8859-7'
| 'iso_8859-7:1987'
| 'sun_eu_greek'
| 'csiso88598e'
| 'csisolatinhebrew'
| 'hebrew'
| 'iso-8859-8'
| 'iso-8859-8-e'
| 'iso-ir-138'
| 'iso8859-8'
| 'iso88598'
| 'iso_8859-8'
| 'iso_8859-8:1988'
| 'visual'
| 'csiso88598i'
| 'iso-8859-8-i'
| 'logical'
| 'csisolatin6'
| 'iso-8859-10'
| 'iso-ir-157'
| 'iso8859-10'
| 'iso885910'
| 'l6'
| 'latin6'
| 'iso-8859-13'
| 'iso8859-13'
| 'iso885913'
| 'iso-8859-14'
| 'iso8859-14'
| 'iso885914'
| 'csisolatin9'
| 'iso-8859-15'
| 'iso8859-15'
| 'iso885915'
| 'iso_8859-15'
| 'l9'
| 'iso-8859-16'
| 'cskoi8r'
| 'koi'
| 'koi8'
| 'koi8-r'
| 'koi8_r'
| 'koi8-ru'
| 'koi8-u'
| 'csmacintosh'
| 'mac'
| 'macintosh'
| 'x-mac-roman'
| 'dos-874'
| 'iso-8859-11'
| 'iso8859-11'
| 'iso885911'
| 'tis-620'
| 'windows-874'
| 'cp1250'
| 'windows-1250'
| 'x-cp1250'
| 'cp1251'
| 'windows-1251'
| 'x-cp1251'
| 'ansi_x3.4-1968'
| 'ascii'
| 'cp1252'
| 'cp819'
| 'csisolatin1'
| 'ibm819'
| 'iso-8859-1'
| 'iso-ir-100'
| 'iso8859-1'
| 'iso88591'
| 'iso_8859-1'
| 'iso_8859-1:1987'
| 'l1'
| 'latin1'
| 'us-ascii'
| 'windows-1252'
| 'x-cp1252'
| 'cp1253'
| 'windows-1253'
| 'x-cp1253'
| 'cp1254'
| 'csisolatin5'
| 'iso-8859-9'
| 'iso-ir-148'
| 'iso8859-9'
| 'iso88599'
| 'iso_8859-9'
| 'iso_8859-9:1989'
| 'l5'
| 'latin5'
| 'windows-1254'
| 'x-cp1254'
| 'cp1255'
| 'windows-1255'
| 'x-cp1255'
| 'cp1256'
| 'windows-1256'
| 'x-cp1256'
| 'cp1257'
| 'windows-1257'
| 'x-cp1257'
| 'cp1258'
| 'windows-1258'
| 'x-cp1258'
| 'x-mac-cyrillic'
| 'x-mac-ukrainian'
| 'chinese'
| 'csgb2312'
| 'csiso58gb231280'
| 'gb2312'
| 'gb_2312'
| 'gb_2312-80'
| 'gbk'
| 'iso-ir-58'
| 'x-gbk'
| 'gb18030'
| 'big5'
| 'cn-big5'
| 'csbig5'
| 'x-x-big5'
| 'cseucpkdfmtjapanese'
| 'euc-jp'
| 'x-euc-jp'
| 'csiso2022jp'
| 'iso-2022-jp'
| 'csshiftjis'
| 'ms932'
| 'ms_kanji'
| 'shift-jis'
| 'shift_jis'
| 'sjis'
| 'windows-31j'
| 'x-sjis'
| 'cseuckr'
| 'csksc56011987'
| 'euc-kr'
| 'iso-ir-149'
| 'korean'
| 'ks_c_5601-1987'
| 'ks_c_5601-1989'
| 'ksc5601'
| 'ksc_5601'
| 'windows-949'
| 'unicodefffe'
| 'utf-16be'
| 'csunicode'
| 'iso-10646-ucs-2'
| 'ucs-2'
| 'unicode'
| 'unicodefeff'
| 'utf-16'
| 'utf-16le'
interface GjsGiImports {
// Will be extended by the import of more gir types
versions: {
[namespace: string]: string
}
}
interface GjsImports {
gi: GjsGiImports
lang: typeof lang
system: typeof system
signals: typeof signals
package: typeof package
mainloop: typeof mainloop
searchPath: string[]
gettext: typeof gettext
byteArray: typeof byteArray
format: typeof format
cairo: typeof cairo
}
function print(...args: any[]): void
function printerr(...args: any[]): void
function log(message: any): void
function logError(exception: object, message?: any): void
function logError(message?: any): void
const pkg: typeof package
interface BooleanConstructor {
$gtype: GObject.GType<boolean>
}
interface NumberConstructor {
$gtype: GObject.GType<number>
}
interface StringConstructor {
$gtype: GObject.GType<string>
}
const imports: GjsImports
const ARGV: string[]
}
declare const _imports: GjsImports
export default _imports
export { _imports as imports }

459
home/ags/node_modules/@girs/gjs/gjs.d.ts generated vendored Normal file
View file

@ -0,0 +1,459 @@
/*
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in ts-for-gir itself or create a bug report on https://github.com/gjsify/ts-for-gir
*/
import './ambient.d.ts';
import type GObject from '@girs/gobject-2.0';
import type GLib from '@girs/glib-2.0';
import gettext from './gettext.js';
import system from './system.js';
import cairo from './cairo.js';
// https://gitlab.gnome.org/GNOME/gjs/-/blob/1.72.0/modules/script/package.js
declare namespace package {
/**
* Although there are references in the documentation of more properties that
* this object should accepts, only the following are actually used in the init code,
* and all the other have their values derived from them.
*/
interface PackageInitParams {
name: string
version: string
prefix: string
libdir: string
}
export const name: string | undefined
export const version: string | undefined
export const prefix: string | undefined
export const datadir: string | undefined
export const libdir: string | undefined
export const pkgdatadir: string | undefined
export const pkglibdir: string | undefined
export const moduledir: string | undefined
export const localedir: string | undefined
export function init(params: PackageInitParams): void
export function run(module: { main: (argv: string[]) => void }): void
/** shortcut to init+run */
export function start(params: PackageInitParams): void
export function require(libs: Record<string, string>): void
export function requireSymbol(lib: string, ver: string, symbol: string): void
export function checkSymbol(lib: string, ver: string, symbol: string): void
export function initGettext(): void
/** @deprecated Use JS string interpolation */
export function initFormat(): void
export function initSubmodule(module: string): void
}
declare namespace byteArray {
export class ByteArray {
static get(target: any, property: string, receiver: any): any
static set(target: any, property: string, value: any, receiver: any): boolean
length: number
protected _array: Uint8Array
constructor(x: Uint8Array | number)
toString(encoding?: TextDecoderEncoding): string
fromString(input: string, encoding?: TextDecoderEncoding): ByteArray
toGBytes(): GLib.Bytes
}
/** @deprecated Use {@link TextEncoder.encode} instead */
export function fromString(input: string, encoding?: TextDecoderEncoding): Uint8Array
/** @deprecated Use {@link GLib.Bytes.toArray} instead */
export function fromGBytes(input: GLib.Bytes): Uint8Array
/** @deprecated Use {@link TextDecoder.decode} instead */
export function toString(x: Uint8Array, encoding?: TextDecoderEncoding): string
/** @deprecated Use {@link GLib.Bytes new GLib.Bytes() } instead */
export function toGBytes(x: Uint8Array): GLib.Bytes
/** @deprecated Use {@link ByteArray new ByteArray()} instead */
export function fromArray(array: Iterable<number>): ByteArray
}
declare namespace lang {
// TODO: There is a lot more in Lang
export function Class(props: any): void
}
declare namespace format {
export function vprintf(str: string, args: string[]): string
export function printf(fmt: string, ...args: any[]): void
// Following docs from gjs/modules/format.js
/**
* This function is intended to extend the String object and provide
* an String.format API for string formatting.
* It has to be set up using String.prototype.format = Format.format;
* Usage:
* "somestring %s %d".format('hello', 5);
* It supports %s, %d, %x and %f, for %f it also support precisions like
* "%.2f".format(1.526). All specifiers can be prefixed with a minimum
* field width, e.g. "%5s".format("foo"). Unless the width is prefixed
* with '0', the formatted string will be padded with spaces.
*/
export function format(fmt: string, ...args: any[]): string
}
declare namespace mainloop {
export function quit(name: string): void
export function idle_source(handler: any, priority?: number): any
export function idle_add(handler: any, priority?: number): any
export function timeout_source(timeout: any, handler: any, priority?: number): any
export function timeout_seconds_source(timeout: any, handler: any, priority?: number): any
export function timeout_add(timeout: any, handler: any, priority?: number): any
export function timeout_add_seconds(timeout: any, handler: any, priority?: number): any
export function source_remove(id: any): any
export function run(name: string): void
}
/**
* You can use the `Signals.addSignalMethods` method to apply the `Signals` convenience methods to an `Object`.
* Generally, this is called on an object prototype, but may also be called on an object instance.
* You can use this Interface for this object or prototype to make the methods in typescript known
* @example
* ```ts
* const Signals = imports.signals;
*
* // Define an interface with the same name of your class to make the methods known
* interface Events extends Signals.Methods {}
*
* class Events {}
* Signals.addSignalMethods(Events.prototype);
*
* const events = new Events();
*
* // Typescript will not complain here
* events.emit("test-signal", "test argument");
* ```
*/
export interface SignalMethods {
/**
* Connects a callback to a signal for an object. Pass the returned ID to
* `disconnect()` to remove the handler.
*
* If `callback` returns `true`, emission will stop and no other handlers will be
* invoked.
*
* > Warning: Unlike GObject signals, `this` within a signal callback will always
* > refer to the global object (ie. `globalThis`).
*
* @param sigName A signal name
* @param callback A callback function
* @returns A handler ID
*/
connect(sigName: string, callback: (self: any, ...args: any[]) => void): number;
/**
* Emits a signal for an object. Emission stops if a signal handler returns `true`.
*
* Unlike GObject signals, it is not necessary to declare signals or define their
* signature. Simply call `emit()` with whatever signal name you wish, with
* whatever arguments you wish.
* @param sigName A signal name
* @param args Any number of arguments, of any type
*/
emit(sigName: string, ...args: any[]): void;
/**
* Disconnects a handler for a signal.
* @param id The ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Disconnects all signal handlers for an object.
*/
disconnectAll(): void
/**
* Checks if a handler ID is connected.
* @param id The ID of the handler to be disconnected
* @returns `true` if connected, or `false` if not
*/
signalHandlerIsConnected(id: number): boolean;
}
declare namespace signals {
export function addSignalMethods<T = any>(proto: T): proto is T & SignalMethods;
}
declare global {
// https://gitlab.gnome.org/GNOME/gjs/-/blob/1.73.2/modules/esm/_encoding/encodingMap.js#L7-232
type TextDecoderEncoding =
| 'unicode-1-1-utf-8'
| 'unicode11utf8'
| 'unicode20utf8'
| 'utf-8'
| 'utf8'
| 'x-unicode20utf8'
| '866'
| 'cp866'
| 'csibm866'
| 'ibm866'
| 'csisolatin2'
| 'iso-8859-2'
| 'iso-ir-101'
| 'iso8859-2'
| 'iso88592'
| 'iso_8859-2'
| 'iso_8859-2:1987'
| 'l2'
| 'latin2'
| 'csisolatin3'
| 'iso-8859-3'
| 'iso-ir-109'
| 'iso8859-3'
| 'iso88593'
| 'iso_8859-3'
| 'iso_8859-3:1988'
| 'l3'
| 'latin3'
| 'csisolatin4'
| 'iso-8859-4'
| 'iso-ir-110'
| 'iso8859-4'
| 'iso88594'
| 'iso_8859-4'
| 'iso_8859-4:1988'
| 'l4'
| 'latin4'
| 'csisolatincyrillic'
| 'cyrillic'
| 'iso-8859-5'
| 'iso-ir-144'
| 'iso8859-5'
| 'iso88595'
| 'iso_8859-5'
| 'iso_8859-5:1988'
| 'arabic'
| 'asmo-708'
| 'csiso88596e'
| 'csiso88596i'
| 'csisolatinarabic'
| 'ecma-114'
| 'iso-8859-6'
| 'iso-8859-6-e'
| 'iso-8859-6-i'
| 'iso-ir-127'
| 'iso8859-6'
| 'iso88596'
| 'iso_8859-6'
| 'iso_8859-6:1987'
| 'csisolatingreek'
| 'ecma-118'
| 'elot_928'
| 'greek'
| 'greek8'
| 'iso-8859-7'
| 'iso-ir-126'
| 'iso8859-7'
| 'iso88597'
| 'iso_8859-7'
| 'iso_8859-7:1987'
| 'sun_eu_greek'
| 'csiso88598e'
| 'csisolatinhebrew'
| 'hebrew'
| 'iso-8859-8'
| 'iso-8859-8-e'
| 'iso-ir-138'
| 'iso8859-8'
| 'iso88598'
| 'iso_8859-8'
| 'iso_8859-8:1988'
| 'visual'
| 'csiso88598i'
| 'iso-8859-8-i'
| 'logical'
| 'csisolatin6'
| 'iso-8859-10'
| 'iso-ir-157'
| 'iso8859-10'
| 'iso885910'
| 'l6'
| 'latin6'
| 'iso-8859-13'
| 'iso8859-13'
| 'iso885913'
| 'iso-8859-14'
| 'iso8859-14'
| 'iso885914'
| 'csisolatin9'
| 'iso-8859-15'
| 'iso8859-15'
| 'iso885915'
| 'iso_8859-15'
| 'l9'
| 'iso-8859-16'
| 'cskoi8r'
| 'koi'
| 'koi8'
| 'koi8-r'
| 'koi8_r'
| 'koi8-ru'
| 'koi8-u'
| 'csmacintosh'
| 'mac'
| 'macintosh'
| 'x-mac-roman'
| 'dos-874'
| 'iso-8859-11'
| 'iso8859-11'
| 'iso885911'
| 'tis-620'
| 'windows-874'
| 'cp1250'
| 'windows-1250'
| 'x-cp1250'
| 'cp1251'
| 'windows-1251'
| 'x-cp1251'
| 'ansi_x3.4-1968'
| 'ascii'
| 'cp1252'
| 'cp819'
| 'csisolatin1'
| 'ibm819'
| 'iso-8859-1'
| 'iso-ir-100'
| 'iso8859-1'
| 'iso88591'
| 'iso_8859-1'
| 'iso_8859-1:1987'
| 'l1'
| 'latin1'
| 'us-ascii'
| 'windows-1252'
| 'x-cp1252'
| 'cp1253'
| 'windows-1253'
| 'x-cp1253'
| 'cp1254'
| 'csisolatin5'
| 'iso-8859-9'
| 'iso-ir-148'
| 'iso8859-9'
| 'iso88599'
| 'iso_8859-9'
| 'iso_8859-9:1989'
| 'l5'
| 'latin5'
| 'windows-1254'
| 'x-cp1254'
| 'cp1255'
| 'windows-1255'
| 'x-cp1255'
| 'cp1256'
| 'windows-1256'
| 'x-cp1256'
| 'cp1257'
| 'windows-1257'
| 'x-cp1257'
| 'cp1258'
| 'windows-1258'
| 'x-cp1258'
| 'x-mac-cyrillic'
| 'x-mac-ukrainian'
| 'chinese'
| 'csgb2312'
| 'csiso58gb231280'
| 'gb2312'
| 'gb_2312'
| 'gb_2312-80'
| 'gbk'
| 'iso-ir-58'
| 'x-gbk'
| 'gb18030'
| 'big5'
| 'cn-big5'
| 'csbig5'
| 'x-x-big5'
| 'cseucpkdfmtjapanese'
| 'euc-jp'
| 'x-euc-jp'
| 'csiso2022jp'
| 'iso-2022-jp'
| 'csshiftjis'
| 'ms932'
| 'ms_kanji'
| 'shift-jis'
| 'shift_jis'
| 'sjis'
| 'windows-31j'
| 'x-sjis'
| 'cseuckr'
| 'csksc56011987'
| 'euc-kr'
| 'iso-ir-149'
| 'korean'
| 'ks_c_5601-1987'
| 'ks_c_5601-1989'
| 'ksc5601'
| 'ksc_5601'
| 'windows-949'
| 'unicodefffe'
| 'utf-16be'
| 'csunicode'
| 'iso-10646-ucs-2'
| 'ucs-2'
| 'unicode'
| 'unicodefeff'
| 'utf-16'
| 'utf-16le'
interface GjsGiImports {
// Will be extended by the import of more gir types
versions: {
[namespace: string]: string
}
}
interface GjsImports {
gi: GjsGiImports
lang: typeof lang
system: typeof system
signals: typeof signals
package: typeof package
mainloop: typeof mainloop
searchPath: string[]
gettext: typeof gettext
byteArray: typeof byteArray
format: typeof format
cairo: typeof cairo
}
function print(...args: any[]): void
function printerr(...args: any[]): void
function log(message: any): void
function logError(exception: object, message?: any): void
function logError(message?: any): void
const pkg: typeof package
interface BooleanConstructor {
$gtype: GObject.GType<boolean>
}
interface NumberConstructor {
$gtype: GObject.GType<number>
}
interface StringConstructor {
$gtype: GObject.GType<string>
}
const imports: GjsImports
const ARGV: string[]
}
declare const _imports: GjsImports
export default _imports
export { _imports as imports }

6
home/ags/node_modules/@girs/gjs/gjs.js generated vendored Normal file
View file

@ -0,0 +1,6 @@
const imports = globalThis.imports || {};
export { imports }
export default imports;

88
home/ags/node_modules/@girs/gjs/package.json generated vendored Normal file
View file

@ -0,0 +1,88 @@
{
"name": "@girs/gjs",
"version": "3.3.0",
"description": "GJS TypeScript type definitions for Gjs",
"type": "module",
"module": "gjs.js",
"main": "gjs.js",
"exports": {
"./ambient": {
"types": "./ambient.d.ts",
"default": "./ambient.js"
},
"./gettext": {
"import": {
"types": "./gettext.d.ts",
"default": "./gettext.js"
},
"require": {
"types": "./gettext.d.cts",
"default": "./gettext.cjs"
}
},
"./system": {
"import": {
"types": "./system.d.ts",
"default": "./system.js"
},
"require": {
"types": "./system.d.cts",
"default": "./system.cjs"
}
},
"./cairo": {
"import": {
"types": "./cairo.d.ts",
"default": "./cairo.js"
},
"require": {
"types": "./cairo.d.cts",
"default": "./cairo.cjs"
}
},
"./dom": {
"types": "./dom.d.ts",
"default": "./dom.js"
},
".": {
"import": {
"types": "./gjs.d.ts",
"default": "./gjs.js"
},
"require": {
"types": "./gjs.d.cts",
"default": "./gjs.cjs"
}
}
},
"scripts": {
"test": "yarn test:esm && yarn test:cjs",
"test:esm": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit gjs.d.ts",
"test:cjs": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit gjs.d.cts"
},
"dependencies": {
"@girs/glib-2.0": "^2.78.0-3.3.0",
"@girs/gobject-2.0": "^2.78.0-3.3.0"
},
"devDependencies": {
"typescript": "*"
},
"keywords": [
"Gir",
"TypeScript",
"types",
"GObject-Introspection",
"GJS",
"Gjs"
],
"author": "ts-for-gir",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/gjsify/ts-for-gir.git"
},
"bugs": {
"url": "https://github.com/gjsify/ts-for-gir/issues"
},
"homepage": "https://github.com/gjsify/types/tree/main/gjs#readme"
}

7
home/ags/node_modules/@girs/gjs/system.cjs generated vendored Normal file
View file

@ -0,0 +1,7 @@
const System = imports.system;
module.exports = System;
exports.default = System;

175
home/ags/node_modules/@girs/gjs/system.d.cts generated vendored Normal file
View file

@ -0,0 +1,175 @@
import type GObject from '@girs/gobject-2.0';
/**
* This property contains the name of the script as it was invoked from the command
* line. In C and other languages, this information is contained in the first element of
* the platform's equivalent of argv, but GJS's ARGV only contains the
* subsequent command-line arguments. In other words, `ARGV[0]` in GJS is the same as `argv[1]` in C.
* @version Gjs 1.68
*/
export const programInvocationName: string
/**
* This property contains version information about GJS.
*/
export const version: number
/**
* The full path of the executed program.
* @version Gjs 1.68
*/
export const programPath: string | null
/**
* A list of arguments passed to the current process.
* This is effectively an alias for the global `ARGV`, which is misleading in that
* it is not equivalent to the platform'`s` argv.
* @version Gjs 1.68
*/
export const programArgs: string[]
/**
* Return the memory address of any object as a string.
* This is the address of memory being managed by the JavaScript engine, which may
* represent a wrapper around memory elsewhere.
* **Caution**, don't use this as a unique identifier!
* JavaScript's garbage collector can move objects around in memory, or
* deduplicate identical objects, so this value may change during the execution
* of a program.
* @param o Any Object
* @returns A hexadecimal string (e.g. `0xb4f170f0`)
*/
export function addressOf(o: any): string
/**
* Return the memory address of any GObject as a string.
* See also {@link addressOf}
* @param o Any {@link GObject.Object}-derived instance
* @returns A hexadecimal string (e.g. `0xb4f170f0`)
* @version Gjs 1.58
*/
export function addressOfGObject(o: GObject.Object): string
/**
* Inserts a breakpoint instruction into the code.
* **Warning**: Using this function in code run outside of GDB will abort the process.
* With `System.breakpoint()` calls in your code, a GJS program can be debugged by
* running it in GDB:
* ```bash
* gdb --args gjs script.js
* ```
* Once GDB has started, you can start the program with run. When the debugger
* hits a breakpoint it will pause execution of the process and return to the
* prompt. You can then use the standard `backtrace` command to print a C++ stack
* trace, or use `call gjs_dumpstack()` to print a JavaScript stack trace:
* ```bash
* (gdb) run
* tarting program: /usr/bin/gjs -m script.js
* ...
* Thread 1 "gjs" received signal SIGTRAP, Trace/breakpoint trap.
* (gdb) call gjs_dumpstack()
* == Stack trace for context 0x5555555b7180 ==
* #0 555555640548 i file:///path/to/script.js:4 (394b8c3cc060 @ 12)
* #1 5555556404c8 i file:///path/to/script.js:7 (394b8c3cc0b0 @ 6)
* #2 7fffffffd3a0 b self-hosted:2408 (394b8c3a9650 @ 753)
* #3 5555556403e8 i self-hosted:2355 (394b8c3a9600 @ 375)
* (gdb)
* ```
* To continue executing the program, you can use the `continue` (or `cont`) to
* resume the process and debug further.
* Remember that if you run the program outside of GDB, it will abort at the
* breakpoint, so make sure to remove any calls to `System.breakpoint()` when
* you're done debugging.
*/
export function breakpoint(): void
/**
* Clears the timezone cache.
* This is a workaround for SpiderMonkey Bug [#1004706](https://bugzilla.mozilla.org/show_bug.cgi?id=1004706).
*/
export function clearDateCaches(): void
/** Runs the garbage collector */
export function gc(): void
/**
* Return the reference count of any GObject-derived type. When an object's
* reference count is zero, it is cleaned up and erased from memory.
* @param o A {@link GObject.Object}
*/
export function refcount(o: GObject.Object): number
/**
* See also: The [heapgraph](https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/tools/heapgraph.md) utility in the GJS repository.
* Dump a representation of internal heap memory. If `path` is not given, GJS will
* write the contents to `stdout`.
* @param path Optional file path
*/
export function dumpHeap(path?: string): void
/**
* Dump internal garbage collector statistics. If `path` is not given, GJS will
* write the contents to `stdout`.
* @param path Optional file path
* @version Gjs 1.70
* @example Output:
* ```json
* {
* "gcBytes": 794624,
* "gcMaxBytes": 4294967295,
* "mallocBytes": 224459,
* "gcIsHighFrequencyMode": true,
* "gcNumber": 1,
* "majorGCCount": 1,
* "minorGCCount": 1,
* "sliceCount": 1,
* "zone": {
* "gcBytes": 323584,
* "gcTriggerBytes": 42467328,
* "gcAllocTrigger": 36097228.8,
* "mallocBytes": 120432,
* "mallocTriggerBytes": 59768832,
* "gcNumber": 1
* }
* }
* ```
*
*/
export function dumpMemoryInfo(path?: string): void
/**
* This works the same as C's exit() function; exits the program, passing a
* certain error code to the shell. The shell expects the error code to be zero if
* there was no error, or non-zero (any value you please) to indicate an error.
*
* This value is used by other tools such as `make`; if `make` calls a program that
* returns a non-zero error code, then `make` aborts the build.
* @param code An exit code
*/
export function exit(code: number): void
/**
* The System module provides common low-level facilities such as access to
* process arguments and exit(), as well as a number of useful functions and
* properties for debugging.
*
* Note that the majority of the functions and properties in this module should not
* be used in normal operation of a GJS application.
*/
declare const System: {
programInvocationName: typeof programInvocationName,
version: typeof version,
programPath: typeof programPath,
programArgs: typeof programArgs,
addressOf: typeof addressOf,
addressOfGObject: typeof addressOfGObject,
breakpoint: typeof breakpoint,
clearDateCaches: typeof clearDateCaches,
gc: typeof gc,
refcount: typeof refcount,
dumpHeap: typeof dumpHeap,
dumpMemoryInfo: typeof dumpMemoryInfo,
exit: typeof exit,
}
export default System

175
home/ags/node_modules/@girs/gjs/system.d.ts generated vendored Normal file
View file

@ -0,0 +1,175 @@
import type GObject from '@girs/gobject-2.0';
/**
* This property contains the name of the script as it was invoked from the command
* line. In C and other languages, this information is contained in the first element of
* the platform's equivalent of argv, but GJS's ARGV only contains the
* subsequent command-line arguments. In other words, `ARGV[0]` in GJS is the same as `argv[1]` in C.
* @version Gjs 1.68
*/
export const programInvocationName: string
/**
* This property contains version information about GJS.
*/
export const version: number
/**
* The full path of the executed program.
* @version Gjs 1.68
*/
export const programPath: string | null
/**
* A list of arguments passed to the current process.
* This is effectively an alias for the global `ARGV`, which is misleading in that
* it is not equivalent to the platform'`s` argv.
* @version Gjs 1.68
*/
export const programArgs: string[]
/**
* Return the memory address of any object as a string.
* This is the address of memory being managed by the JavaScript engine, which may
* represent a wrapper around memory elsewhere.
* **Caution**, don't use this as a unique identifier!
* JavaScript's garbage collector can move objects around in memory, or
* deduplicate identical objects, so this value may change during the execution
* of a program.
* @param o Any Object
* @returns A hexadecimal string (e.g. `0xb4f170f0`)
*/
export function addressOf(o: any): string
/**
* Return the memory address of any GObject as a string.
* See also {@link addressOf}
* @param o Any {@link GObject.Object}-derived instance
* @returns A hexadecimal string (e.g. `0xb4f170f0`)
* @version Gjs 1.58
*/
export function addressOfGObject(o: GObject.Object): string
/**
* Inserts a breakpoint instruction into the code.
* **Warning**: Using this function in code run outside of GDB will abort the process.
* With `System.breakpoint()` calls in your code, a GJS program can be debugged by
* running it in GDB:
* ```bash
* gdb --args gjs script.js
* ```
* Once GDB has started, you can start the program with run. When the debugger
* hits a breakpoint it will pause execution of the process and return to the
* prompt. You can then use the standard `backtrace` command to print a C++ stack
* trace, or use `call gjs_dumpstack()` to print a JavaScript stack trace:
* ```bash
* (gdb) run
* tarting program: /usr/bin/gjs -m script.js
* ...
* Thread 1 "gjs" received signal SIGTRAP, Trace/breakpoint trap.
* (gdb) call gjs_dumpstack()
* == Stack trace for context 0x5555555b7180 ==
* #0 555555640548 i file:///path/to/script.js:4 (394b8c3cc060 @ 12)
* #1 5555556404c8 i file:///path/to/script.js:7 (394b8c3cc0b0 @ 6)
* #2 7fffffffd3a0 b self-hosted:2408 (394b8c3a9650 @ 753)
* #3 5555556403e8 i self-hosted:2355 (394b8c3a9600 @ 375)
* (gdb)
* ```
* To continue executing the program, you can use the `continue` (or `cont`) to
* resume the process and debug further.
* Remember that if you run the program outside of GDB, it will abort at the
* breakpoint, so make sure to remove any calls to `System.breakpoint()` when
* you're done debugging.
*/
export function breakpoint(): void
/**
* Clears the timezone cache.
* This is a workaround for SpiderMonkey Bug [#1004706](https://bugzilla.mozilla.org/show_bug.cgi?id=1004706).
*/
export function clearDateCaches(): void
/** Runs the garbage collector */
export function gc(): void
/**
* Return the reference count of any GObject-derived type. When an object's
* reference count is zero, it is cleaned up and erased from memory.
* @param o A {@link GObject.Object}
*/
export function refcount(o: GObject.Object): number
/**
* See also: The [heapgraph](https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/tools/heapgraph.md) utility in the GJS repository.
* Dump a representation of internal heap memory. If `path` is not given, GJS will
* write the contents to `stdout`.
* @param path Optional file path
*/
export function dumpHeap(path?: string): void
/**
* Dump internal garbage collector statistics. If `path` is not given, GJS will
* write the contents to `stdout`.
* @param path Optional file path
* @version Gjs 1.70
* @example Output:
* ```json
* {
* "gcBytes": 794624,
* "gcMaxBytes": 4294967295,
* "mallocBytes": 224459,
* "gcIsHighFrequencyMode": true,
* "gcNumber": 1,
* "majorGCCount": 1,
* "minorGCCount": 1,
* "sliceCount": 1,
* "zone": {
* "gcBytes": 323584,
* "gcTriggerBytes": 42467328,
* "gcAllocTrigger": 36097228.8,
* "mallocBytes": 120432,
* "mallocTriggerBytes": 59768832,
* "gcNumber": 1
* }
* }
* ```
*
*/
export function dumpMemoryInfo(path?: string): void
/**
* This works the same as C's exit() function; exits the program, passing a
* certain error code to the shell. The shell expects the error code to be zero if
* there was no error, or non-zero (any value you please) to indicate an error.
*
* This value is used by other tools such as `make`; if `make` calls a program that
* returns a non-zero error code, then `make` aborts the build.
* @param code An exit code
*/
export function exit(code: number): void
/**
* The System module provides common low-level facilities such as access to
* process arguments and exit(), as well as a number of useful functions and
* properties for debugging.
*
* Note that the majority of the functions and properties in this module should not
* be used in normal operation of a GJS application.
*/
declare const System: {
programInvocationName: typeof programInvocationName,
version: typeof version,
programPath: typeof programPath,
programArgs: typeof programArgs,
addressOf: typeof addressOf,
addressOfGObject: typeof addressOfGObject,
breakpoint: typeof breakpoint,
clearDateCaches: typeof clearDateCaches,
gc: typeof gc,
refcount: typeof refcount,
dumpHeap: typeof dumpHeap,
dumpMemoryInfo: typeof dumpMemoryInfo,
exit: typeof exit,
}
export default System

7
home/ags/node_modules/@girs/gjs/system.js generated vendored Normal file
View file

@ -0,0 +1,7 @@
import System, { programInvocationName, version, programPath, programArgs, exit, addressOfGObject, addressOf, gc, refcount, dumpHeap, dumpMemoryInfo } from 'system';
export { programInvocationName, version, programPath, programArgs, exit, addressOfGObject, addressOf, gc, refcount, dumpHeap, dumpMemoryInfo };
export default System;

23
home/ags/node_modules/@girs/gjs/tsconfig.json generated vendored Normal file
View file

@ -0,0 +1,23 @@
{
"compilerOptions": {
// General settings for code interpretation
"target": "ESNext",
"module": "ESNext",
"lib": ["ESNext"],
"types": [],
"experimentalDecorators": true,
"moduleResolution": "node",
"noEmit": true,
"noEmitOnError": false,
"baseUrl": "./",
"rootDir": ".",
// General settings for code generation
"removeComments": false,
"inlineSourceMap": false,
"inlineSources": false,
"newLine": "LF"
},
"include": ["./dom.d.ts","./gjs.d.ts"]
}

7
home/ags/node_modules/@girs/gjs/typedoc.json generated vendored Normal file
View file

@ -0,0 +1,7 @@
{
"entryPoints": ["./gjs.d.ts"],
"readme": "./README.md",
"name": "Gjs",
"tsconfig": "./tsconfig.json"
}

105
home/ags/node_modules/@girs/glib-2.0/README.md generated vendored Normal file
View file

@ -0,0 +1,105 @@
# GLib-2.0
![version](https://img.shields.io/npm/v/@girs/glib-2.0)
![downloads/week](https://img.shields.io/npm/dw/@girs/glib-2.0)
GJS TypeScript type definitions for GLib-2.0, generated from library version 2.78.0 using [ts-for-gir](https://github.com/gjsify/ts-for-gir) v3.3.0.
GLib provides the core application building blocks for libraries and applications written in C. It provides the core object system used in GNOME, the main loop implementation, and a large set of utility functions for strings and common data structures.
## Install
To use this type definitions, install them with NPM:
```bash
npm install @girs/glib-2.0
```
## Usage
You can import this package into your project like this:
```ts
import GLib from '@girs/glib-2.0';
```
Or if you prefer CommonJS, you can also use this:
```ts
const GLib = require('@girs/glib-2.0');
```
### Ambient Modules
You can also use [ambient modules](https://github.com/gjsify/ts-for-gir/tree/main/packages/cli#ambient-modules) to import this module like you would do this in JavaScript.
For this you need to include `@girs/glib-2.0` or `@girs/glib-2.0/ambient` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/glib-2.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/glib-2.0"],
...
}
```
Now you can import the ambient module with TypeScript support:
```ts
import GLib from 'gi://GLib?version=2.0';
```
### Global import
You can also import the module with Typescript support using the global `imports.gi` object of GJS.
For this you need to include `@girs/glib-2.0` or `@girs/glib-2.0/import` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/glib-2.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/glib-2.0"],
...
}
```
Now you have also type support for this, too:
```ts
const GLib = imports.gi.GLib;
```
### ESM vs. CommonJS
GJS supports two different import syntaxes. The new modern ESM syntax and the old global imports syntax.
In TypeScript projects for GJS and GNOME Shell extensions, you have the flexibility to use `ESM` syntax and then decide the import syntax for your bundled file. If your bundler is configured to use `CommonJS`, it will convert to the GJS-specific global imports syntax, like `const moduleName = imports.gi[moduleName]`. This is different from the traditional `require` syntax seen in Node.js. The global imports syntax is chosen because it aligns with the CommonJS format supported by NPM, which is used for the generated type definitions and this package.
On the other hand, if you configure your bundler to use ESM, it will retain the ESM import syntax. It's crucial to ensure that your bundler is set up to correctly translate and bundle these imports into either CommonJS or ESM format, depending on your project's requirements.
This approach is particularly important due to the `@girs` types, which include both `*.cjs `files, using the GJS global imports syntax, and `*.js` files, which utilize the ESM syntax. By appropriately setting up your bundler, you can control which syntax—CommonJS or ESM—is used in your project. The choice of CommonJS in this context is also due to the similarity between the GJS-specific global imports and CommonJS syntax, allowing for easier management and bundling in these specific types of projects.
Since GNOME Shell 45, you should only use ESM, even for GNOME Shell extensions. Before that, extensions had to use the global import syntax, unlike normal GJS applications, where ESM has been available for some time.
### Bundle
Depending on your project configuration, it is recommended to use a bundler like [esbuild](https://esbuild.github.io/). You can find examples using different bundlers [here](https://github.com/gjsify/ts-for-gir/tree/main/examples).
## Other packages
All existing pre-generated packages can be found on [gjsify/types](https://github.com/gjsify/types).

View file

@ -0,0 +1,12 @@
declare module 'gi://GLib?version=2.0' {
import GLib20 from '@girs/glib-2.0';
export default GLib20;
}
declare module 'gi://GLib' {
import GLib20 from '@girs/glib-2.0';
export default GLib20;
}

View file

@ -0,0 +1,2 @@
export {}

View file

@ -0,0 +1,12 @@
import GLib20 from '@girs/glib-2.0';
declare global {
export interface GjsGiImports {
GLib: typeof GLib20;
}
}
export default GjsGiImports;

View file

@ -0,0 +1,3 @@
const gi = globalThis.imports?.gi || {};
export default gi;

11
home/ags/node_modules/@girs/glib-2.0/glib-2.0.cjs generated vendored Normal file
View file

@ -0,0 +1,11 @@
imports.gi.versions.GLib = '2.0'
const GLib = imports.gi.GLib;
module.exports = GLib;

26959
home/ags/node_modules/@girs/glib-2.0/glib-2.0.d.cts generated vendored Normal file

File diff suppressed because it is too large Load diff

26964
home/ags/node_modules/@girs/glib-2.0/glib-2.0.d.ts generated vendored Normal file

File diff suppressed because it is too large Load diff

10
home/ags/node_modules/@girs/glib-2.0/glib-2.0.js generated vendored Normal file
View file

@ -0,0 +1,10 @@
// @ts-expect-error
import GLib from 'gi://GLib?version=2.0';
export { GLib };
export default GLib;

58
home/ags/node_modules/@girs/glib-2.0/package.json generated vendored Normal file
View file

@ -0,0 +1,58 @@
{
"name": "@girs/glib-2.0",
"version": "2.78.0-3.3.0",
"description": "GJS TypeScript type definitions for GLib-2.0, generated from library version 2.78.0",
"type": "module",
"module": "glib-2.0.js",
"main": "glib-2.0.js",
"exports": {
"./ambient": {
"types": "./glib-2.0-ambient.d.ts",
"default": "./glib-2.0-ambient.js"
},
"./import": {
"types": "./glib-2.0-import.d.ts",
"default": "./glib-2.0-import.js"
},
".": {
"import": {
"types": "./glib-2.0.d.ts",
"default": "./glib-2.0.js"
},
"require": {
"types": "./glib-2.0.d.cts",
"default": "./glib-2.0.cjs"
}
}
},
"scripts": {
"test": "yarn test:esm && yarn test:cjs",
"test:esm": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit glib-2.0.d.ts",
"test:cjs": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit glib-2.0.d.cts"
},
"dependencies": {
"@girs/gjs": "^3.3.0",
"@girs/gobject-2.0": "^2.78.0-3.3.0"
},
"devDependencies": {
"typescript": "*"
},
"keywords": [
"Gir",
"TypeScript",
"types",
"GObject-Introspection",
"GJS",
"GLib-2.0"
],
"author": "ts-for-gir",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/gjsify/ts-for-gir.git"
},
"bugs": {
"url": "https://github.com/gjsify/ts-for-gir/issues"
},
"homepage": "https://github.com/gjsify/types/tree/main/glib-2.0#readme"
}

23
home/ags/node_modules/@girs/glib-2.0/tsconfig.json generated vendored Normal file
View file

@ -0,0 +1,23 @@
{
"compilerOptions": {
// General settings for code interpretation
"target": "ESNext",
"module": "ESNext",
"lib": ["ESNext"],
"types": [],
"experimentalDecorators": true,
"moduleResolution": "node",
"noEmit": true,
"noEmitOnError": false,
"baseUrl": "./",
"rootDir": ".",
// General settings for code generation
"removeComments": false,
"inlineSourceMap": false,
"inlineSources": false,
"newLine": "LF"
},
"include": ["./glib-2.0.d.ts"]
}

7
home/ags/node_modules/@girs/glib-2.0/typedoc.json generated vendored Normal file
View file

@ -0,0 +1,7 @@
{
"entryPoints": ["./glib-2.0.d.ts"],
"readme": "./README.md",
"name": "GLib-2.0",
"tsconfig": "./tsconfig.json"
}

105
home/ags/node_modules/@girs/gobject-2.0/README.md generated vendored Normal file
View file

@ -0,0 +1,105 @@
# GObject-2.0
![version](https://img.shields.io/npm/v/@girs/gobject-2.0)
![downloads/week](https://img.shields.io/npm/dw/@girs/gobject-2.0)
GJS TypeScript type definitions for GObject-2.0, generated from library version 2.78.0 using [ts-for-gir](https://github.com/gjsify/ts-for-gir) v3.3.0.
GObject provides the object system used for Pango and GTK+.
## Install
To use this type definitions, install them with NPM:
```bash
npm install @girs/gobject-2.0
```
## Usage
You can import this package into your project like this:
```ts
import GObject from '@girs/gobject-2.0';
```
Or if you prefer CommonJS, you can also use this:
```ts
const GObject = require('@girs/gobject-2.0');
```
### Ambient Modules
You can also use [ambient modules](https://github.com/gjsify/ts-for-gir/tree/main/packages/cli#ambient-modules) to import this module like you would do this in JavaScript.
For this you need to include `@girs/gobject-2.0` or `@girs/gobject-2.0/ambient` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/gobject-2.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/gobject-2.0"],
...
}
```
Now you can import the ambient module with TypeScript support:
```ts
import GObject from 'gi://GObject?version=2.0';
```
### Global import
You can also import the module with Typescript support using the global `imports.gi` object of GJS.
For this you need to include `@girs/gobject-2.0` or `@girs/gobject-2.0/import` in your `tsconfig` or entry point Typescript file:
`index.ts`:
```ts
import '@girs/gobject-2.0'
```
`tsconfig.json`:
```json
{
"compilerOptions": {
...
},
"include": ["@girs/gobject-2.0"],
...
}
```
Now you have also type support for this, too:
```ts
const GObject = imports.gi.GObject;
```
### ESM vs. CommonJS
GJS supports two different import syntaxes. The new modern ESM syntax and the old global imports syntax.
In TypeScript projects for GJS and GNOME Shell extensions, you have the flexibility to use `ESM` syntax and then decide the import syntax for your bundled file. If your bundler is configured to use `CommonJS`, it will convert to the GJS-specific global imports syntax, like `const moduleName = imports.gi[moduleName]`. This is different from the traditional `require` syntax seen in Node.js. The global imports syntax is chosen because it aligns with the CommonJS format supported by NPM, which is used for the generated type definitions and this package.
On the other hand, if you configure your bundler to use ESM, it will retain the ESM import syntax. It's crucial to ensure that your bundler is set up to correctly translate and bundle these imports into either CommonJS or ESM format, depending on your project's requirements.
This approach is particularly important due to the `@girs` types, which include both `*.cjs `files, using the GJS global imports syntax, and `*.js` files, which utilize the ESM syntax. By appropriately setting up your bundler, you can control which syntax—CommonJS or ESM—is used in your project. The choice of CommonJS in this context is also due to the similarity between the GJS-specific global imports and CommonJS syntax, allowing for easier management and bundling in these specific types of projects.
Since GNOME Shell 45, you should only use ESM, even for GNOME Shell extensions. Before that, extensions had to use the global import syntax, unlike normal GJS applications, where ESM has been available for some time.
### Bundle
Depending on your project configuration, it is recommended to use a bundler like [esbuild](https://esbuild.github.io/). You can find examples using different bundlers [here](https://github.com/gjsify/ts-for-gir/tree/main/examples).
## Other packages
All existing pre-generated packages can be found on [gjsify/types](https://github.com/gjsify/types).

View file

@ -0,0 +1,12 @@
declare module 'gi://GObject?version=2.0' {
import GObject20 from '@girs/gobject-2.0';
export default GObject20;
}
declare module 'gi://GObject' {
import GObject20 from '@girs/gobject-2.0';
export default GObject20;
}

View file

@ -0,0 +1,2 @@
export {}

View file

@ -0,0 +1,12 @@
import GObject20 from '@girs/gobject-2.0';
declare global {
export interface GjsGiImports {
GObject: typeof GObject20;
}
}
export default GjsGiImports;

View file

@ -0,0 +1,3 @@
const gi = globalThis.imports?.gi || {};
export default gi;

View file

@ -0,0 +1,11 @@
imports.gi.versions.GObject = '2.0'
const GObject = imports.gi.GObject;
module.exports = GObject;

7567
home/ags/node_modules/@girs/gobject-2.0/gobject-2.0.d.cts generated vendored Normal file

File diff suppressed because it is too large Load diff

7572
home/ags/node_modules/@girs/gobject-2.0/gobject-2.0.d.ts generated vendored Normal file

File diff suppressed because it is too large Load diff

10
home/ags/node_modules/@girs/gobject-2.0/gobject-2.0.js generated vendored Normal file
View file

@ -0,0 +1,10 @@
// @ts-expect-error
import GObject from 'gi://GObject?version=2.0';
export { GObject };
export default GObject;

58
home/ags/node_modules/@girs/gobject-2.0/package.json generated vendored Normal file
View file

@ -0,0 +1,58 @@
{
"name": "@girs/gobject-2.0",
"version": "2.78.0-3.3.0",
"description": "GJS TypeScript type definitions for GObject-2.0, generated from library version 2.78.0",
"type": "module",
"module": "gobject-2.0.js",
"main": "gobject-2.0.js",
"exports": {
"./ambient": {
"types": "./gobject-2.0-ambient.d.ts",
"default": "./gobject-2.0-ambient.js"
},
"./import": {
"types": "./gobject-2.0-import.d.ts",
"default": "./gobject-2.0-import.js"
},
".": {
"import": {
"types": "./gobject-2.0.d.ts",
"default": "./gobject-2.0.js"
},
"require": {
"types": "./gobject-2.0.d.cts",
"default": "./gobject-2.0.cjs"
}
}
},
"scripts": {
"test": "yarn test:esm && yarn test:cjs",
"test:esm": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit gobject-2.0.d.ts",
"test:cjs": "NODE_OPTIONS=--max_old_space_size=9216 tsc --noEmit gobject-2.0.d.cts"
},
"dependencies": {
"@girs/gjs": "^3.3.0",
"@girs/glib-2.0": "^2.78.0-3.3.0"
},
"devDependencies": {
"typescript": "*"
},
"keywords": [
"Gir",
"TypeScript",
"types",
"GObject-Introspection",
"GJS",
"GObject-2.0"
],
"author": "ts-for-gir",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/gjsify/ts-for-gir.git"
},
"bugs": {
"url": "https://github.com/gjsify/ts-for-gir/issues"
},
"homepage": "https://github.com/gjsify/types/tree/main/gobject-2.0#readme"
}

23
home/ags/node_modules/@girs/gobject-2.0/tsconfig.json generated vendored Normal file
View file

@ -0,0 +1,23 @@
{
"compilerOptions": {
// General settings for code interpretation
"target": "ESNext",
"module": "ESNext",
"lib": ["ESNext"],
"types": [],
"experimentalDecorators": true,
"moduleResolution": "node",
"noEmit": true,
"noEmitOnError": false,
"baseUrl": "./",
"rootDir": ".",
// General settings for code generation
"removeComments": false,
"inlineSourceMap": false,
"inlineSources": false,
"newLine": "LF"
},
"include": ["./gobject-2.0.d.ts"]
}

7
home/ags/node_modules/@girs/gobject-2.0/typedoc.json generated vendored Normal file
View file

@ -0,0 +1,7 @@
{
"entryPoints": ["./gobject-2.0.d.ts"],
"readme": "./README.md",
"name": "GObject-2.0",
"tsconfig": "./tsconfig.json"
}