UNPKG

@mathrunet/masamune

Version:

Manages packages for the server portion (NodeJS) of the Masamune framework.

459 lines (458 loc) 11.8 kB
import * as firestore from "firebase-admin/firestore"; import { DocumentModel } from "../exntensions/firestore.extension"; /** * The source of ModelFieldValue. * * ModelFieldValueのソース。 */ export type ModelFieldValueSource = "user" | "server"; /** * DynamicMap interface. * * DynamicMapのインターフェース。 */ export type DynamicMap = { [key: string]: any; }; /** * DynamicList interface. * * DynamicListのインターフェース。 */ export type DynamicList = any[]; /** * ModelWhere interface. * * ModelWhereのインターフェース。 */ export type ModelFieldValueWhere = { [field: string]: any; } | undefined; /** * ModelCondition interface. * * ModelConditionのインターフェース。 */ export type ModelFieldValueCondition = { [field: string]: any; } | undefined; /** * Class for generating values for `ModelFieldValue` in katana_model. * * katana_modelの`ModelFieldValue`用の値を生成するためのクラス。 */ export declare class ModelFieldValue { constructor(type: string, source?: ModelFieldValueSource); "@type": string; "@source": ModelFieldValueSource; } /** * ModelServerCommandBase interface. * * katana_modelの`ModelServerCommandBase`用のインターフェース。 */ export declare class ModelServerCommandBase extends ModelFieldValue { constructor({ command, publicParameters, privateParameters, source }: { command: string; publicParameters: { [field: string]: any; }; privateParameters: { [field: string]: any; }; source?: ModelFieldValueSource; }); "@command": string; "@public": { [field: string]: any; }; "@private": { [field: string]: any; }; /** * Get the value of the command. * * コマンドの値を取得します。 * * @returns The value of the command. */ value(): string; } /** * ModelCounter interface. * * katana_modelの`ModelCounter`用のインターフェース。 */ export declare class ModelCounter extends ModelFieldValue { constructor(value: number, increment?: number, source?: ModelFieldValueSource); "@increment": number; "@value": number; /** * Get the value of the counter. * * カウンターの値を取得します。 * * @returns The value of the counter. */ value(): number; } /** * ModelTimestamp interface. * * katana_modelの`ModelTimestamp`用のインターフェース。 */ export declare class ModelTimestamp extends ModelFieldValue { constructor(time?: Date, source?: ModelFieldValueSource); "@time": number; /** * Get the value of the timestamp. * * タイムスタンプの値を取得します。 * * @returns */ value(): Date; } /** * ModelDate interface. * * katana_modelの`ModelDate`用のインターフェース。 */ export declare class ModelDate extends ModelFieldValue { constructor(date?: Date, source?: ModelFieldValueSource); "@time": number; /** * Get the value of the timestamp. * * タイムスタンプの値を取得します。 * * @returns */ value(): Date; } /** * ModelTime interface. * * katana_modelの`ModelTime`用のインターフェース。 */ export declare class ModelTime extends ModelFieldValue { constructor(time?: Date, source?: ModelFieldValueSource); "@time": number; /** * Get the value of the timestamp. * * タイムスタンプの値を取得します。 * * @returns */ value(): Date; } /** * ModelTimestampRange interface. * * katana_modelの`ModelTimestampRange`用のインターフェース。 */ export declare class ModelTimestampRange extends ModelFieldValue { constructor(start?: Date, end?: Date, source?: ModelFieldValueSource); "@start": number; "@end": number; /** * Get the value of the timestamp. * * タイムスタンプの値を取得します。 * * @returns */ value(): { start: Date; end: Date; }; } /** * ModelDateRange interface. * * katana_modelの`ModelDateRange`用のインターフェース。 */ export declare class ModelDateRange extends ModelFieldValue { constructor(start?: Date, end?: Date, source?: ModelFieldValueSource); "@start": number; "@end": number; /** * Get the value of the timestamp. * * タイムスタンプの値を取得します。 * * @returns */ value(): { start: Date; end: Date; }; } /** * ModelTimeRange interface. * * katana_modelの`ModelTimeRange`用のインターフェース。 */ export declare class ModelTimeRange extends ModelFieldValue { constructor(start?: Date, end?: Date, source?: ModelFieldValueSource); "@start": number; "@end": number; /** * Get the value of the timestamp. * * タイムスタンプの値を取得します。 * * @returns */ value(): { start: Date; end: Date; }; } /** * ModelLocale interface. * * katana_modelの`ModelLocale`用のインターフェース。 */ export declare class ModelLocale extends ModelFieldValue { constructor(language: string, country?: string, source?: ModelFieldValueSource); "@language": string; "@country"?: string; /** * Get the value of the locale. * * ロケールの値を取得します。 * * @returns The value of the locale. */ value(): string; } /** * ModelLocalizedValue interface. * * katana_modelの`ModelLocalizedValue`用のインターフェース。 */ export declare class ModelLocalizedValue extends ModelFieldValue { constructor(localized: ModelLocalizedLocaleVaue[], source?: ModelFieldValueSource); "@localized": ModelLocalizedLocaleVaue[]; /** * Get the value of the localized value. * * ローカライズされた値の値を取得します。 * * @returns The value of the localized value. */ value(): ModelLocalizedLocaleVaue[]; /** * Get the value of the localized value for the specified locale. * * 指定されたロケールのローカライズされた値の値を取得します。 * * @param locale The locale to get the value for. * @returns The value of the localized value for the specified locale. */ get(locale: string): ModelLocalizedLocaleVaue | null; } /** * The value of ModelLocalizedValue. * * ModelLocalizedValueの値。 */ export declare class ModelLocalizedLocaleVaue { constructor({ language, country, value }: { language: string; country?: string; value: string | number | boolean | { [field: string]: any; } | string[] | number[] | boolean[]; }); language: string; country?: string; value: string | number | boolean | { [field: string]: any; } | string[] | number[] | boolean[]; } /** * ModelUri interface. * * katana_modelの`ModelUri`用のインターフェース。 */ export declare class ModelUri extends ModelFieldValue { constructor(uri: string, source?: ModelFieldValueSource); "@uri": string; /** * Get the value of the uri. * * URIの値を取得します。 * * @returns The value of the uri. */ value(): string; } /** * ModelImageUri interface. * * katana_modelの`ModelImageUri`用のインターフェース。 */ export declare class ModelImageUri extends ModelFieldValue { constructor(uri: string, source?: ModelFieldValueSource); "@uri": string; /** * Get the value of the uri. * * URIの値を取得します。 * * @returns The value of the uri. */ value(): string; } /** * ModelVideoUri interface. * * katana_modelの`ModelVideoUri`用のインターフェース。 */ export declare class ModelVideoUri extends ModelFieldValue { constructor(uri: string, source?: ModelFieldValueSource); "@uri": string; /** * Get the value of the uri. * * URIの値を取得します。 * * @returns The value of the uri. */ value(): string; } /** * ModelSearch interface. * * katana_modelの`ModelSearch`用のインターフェース。 */ export declare class ModelSearch extends ModelFieldValue { constructor(list: string[], source?: ModelFieldValueSource); "@list": string[]; /** * Get the value of the search. * * 検索の値を取得します。 * * @returns The value of the search. */ value(): string[]; } /** * ModelToken interface. * * katana_modelの`ModelToken`用のインターフェース。 */ export declare class ModelToken extends ModelFieldValue { constructor(list: string[], source?: ModelFieldValueSource); "@list": string[]; /** * Get the value of the token. * * トークンの値を取得します。 * * @returns The value of the token. */ value(): string[]; } /** * ModelGeoValue interface. * * katana_modelの`ModelGeoValue`用のインターフェース。 */ export declare class ModelGeoValue extends ModelFieldValue { constructor(latitude: number, longitude: number, source?: ModelFieldValueSource); "@latitude": number; "@longitude": number; /** * Get the value of the geo value. * * 地理値の値を取得します。 * * @returns The value of the geo value. */ value(): { latitude: number; longitude: number; }; } /** * ModelVectorValue interface. * * katana_modelの`ModelVectorValue`用のインターフェース。 */ export declare class ModelVectorValue extends ModelFieldValue { constructor(vector: number[], source?: ModelFieldValueSource); "@vector": number[]; /** * Get the value of the vector value. * * ベクトル値の値を取得します。 * * @returns The value of the vector value. */ value(): number[]; } /** * ModelRefBase interface. * * katana_modelの`ModelRefBase`用のインターフェース。 */ export declare class ModelRefBase extends ModelFieldValue { constructor(ref: string, doc?: firestore.DocumentReference | undefined, source?: ModelFieldValueSource); "@ref": string; "@doc": firestore.DocumentReference | undefined; /** * Get the value of the ref. * * リファレンスの値を取得します。 * * @returns The value of the ref. */ value(): string; /** * Load the document. * * ドキュメントを読み込みます。 * * @returns The value of the ref. */ load(): Promise<DocumentModel<firestore.DocumentData, firestore.DocumentData>>; /** * Save the document. * * ドキュメントを保存します。 * * @param data The data to save. * @param options The options to save. * @returns The value of the ref. */ save(data: firestore.PartialWithFieldValue<firestore.DocumentData>, options: firestore.SetOptions): Promise<void>; /** * Delete the document. * * ドキュメントを削除します。 * * @returns The value of the ref. */ delete(): Promise<void>; /** * Get the id of the ref. * * リファレンスのIDを取得します。 * * @returns The id of the ref. */ get id(): string; /** * Get the ref of the document. * * ドキュメントのリファレンスを取得します。 * * @returns The ref of the document. */ get ref(): firestore.DocumentReference | undefined; }