proto.io 0.0.174 → 0.0.175
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/file/database.d.ts +2 -2
- package/dist/adapters/file/database.mjs +2 -2
- package/dist/adapters/file/filesystem.d.ts +2 -2
- package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
- package/dist/adapters/storage/progres.d.ts +1 -1
- package/dist/adapters/storage/progres.mjs +3 -3
- package/dist/client.d.ts +3 -3
- package/dist/client.js +1 -1
- package/dist/client.mjs +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +46 -311
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +51 -316
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{index-uwXdnxqN.d.ts → index-B9CWU0y7.d.ts} +32 -2
- package/dist/internals/index-B9CWU0y7.d.ts.map +1 -0
- package/dist/internals/{index-R0gbIGc-.mjs → index-BPbXumUi.mjs} +18 -44
- package/dist/internals/index-BPbXumUi.mjs.map +1 -0
- package/dist/internals/{index-CGX3qcjQ.d.ts → index-BQqYdjaH.d.ts} +2 -2
- package/dist/internals/index-BQqYdjaH.d.ts.map +1 -0
- package/dist/internals/{index-CE5tdYK8.d.ts → index-BYZpj31o.d.ts} +17 -68
- package/dist/internals/index-BYZpj31o.d.ts.map +1 -0
- package/dist/internals/{index--ifyu-GL.mjs → index-CTsc042s.mjs} +2 -2
- package/dist/internals/{index--ifyu-GL.mjs.map → index-CTsc042s.mjs.map} +1 -1
- package/dist/internals/{index-S_gTMQBh.js → index-CvA0tbwx.js} +17 -43
- package/dist/internals/index-CvA0tbwx.js.map +1 -0
- package/dist/internals/{index-C3fbOqmn.mjs → index-DHQhYGsJ.mjs} +2 -2
- package/dist/internals/{index-C3fbOqmn.mjs.map → index-DHQhYGsJ.mjs.map} +1 -1
- package/dist/internals/{random-DPRG8oW6.mjs → random-BMQpRlGH.mjs} +3 -3
- package/dist/internals/{random-DPRG8oW6.mjs.map → random-BMQpRlGH.mjs.map} +1 -1
- package/package.json +1 -1
- package/dist/internals/index-CE5tdYK8.d.ts.map +0 -1
- package/dist/internals/index-CGX3qcjQ.d.ts.map +0 -1
- package/dist/internals/index-R0gbIGc-.mjs.map +0 -1
- package/dist/internals/index-S_gTMQBh.js.map +0 -1
- package/dist/internals/index-uwXdnxqN.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index--ifyu-GL.mjs","sources":["../../../src/internals/schema.ts","../../../src/internals/object/index.ts"],"sourcesContent":["//\n// schema.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { _TValue } from './types';\n\nexport namespace TSchema {\n /**\n * Access Control List represented as an array of strings.\n */\n export type ACL = string[];\n\n /**\n * Access Control Lists for read and update operations.\n */\n export type ACLs = { \n /**\n * ACL for read operation.\n */\n read: TSchema.ACL; \n\n /**\n * ACL for update operation.\n */\n update: TSchema.ACL; \n };\n\n /**\n * Primitive data types.\n */\n export type Primitive = 'boolean' | 'number' | 'decimal' | 'string' | 'date' | 'object' | 'array';\n\n /**\n * Primitive type with an optional default value.\n */\n export type PrimitiveType = Primitive | { \n /**\n * The type of the primitive.\n */\n type: Primitive; \n\n /**\n * Optional default value.\n */\n default?: _TValue; \n };\n\n /**\n * Vector type with a specified dimension and an optional default value.\n */\n export type VectorType = { \n /**\n * The type of the vector.\n */\n type: 'vector'; \n\n /**\n * The dimension of the vector.\n */\n dimension: number; \n\n /**\n * Optional default value.\n */\n default?: number[]; \n };\n\n /**\n * Shape type with a specified shape.\n */\n export type ShapeType = { \n /**\n * The type of the shape.\n */\n type: 'shape'; \n\n /**\n * The shape definition.\n */\n shape: Record<string, DataType>; \n };\n\n /**\n * Pointer type with a target.\n */\n export type PointerType = { \n /**\n * The type of the pointer.\n */\n type: 'pointer'; \n\n /**\n * The target class of the pointer.\n */\n target: string; \n };\n\n /**\n * Relation type with a target and an optional foreign field.\n */\n export type RelationType = { \n /**\n * The type of the relation.\n */\n type: 'relation'; \n\n /**\n * The target class of the relation.\n */\n target: string; \n\n /**\n * Optional foreign field.\n */\n foreignField?: string; \n };\n\n /**\n * Data type which can be a primitive, vector, shape, pointer, or relation type.\n */\n export type DataType = PrimitiveType | VectorType | ShapeType | PointerType | RelationType;\n\n /**\n * Class Level Permissions.\n */\n export type CLPs = {\n /**\n * ACL for get operation.\n */\n get?: TSchema.ACL;\n\n /**\n * ACL for find operation.\n */\n find?: TSchema.ACL;\n\n /**\n * ACL for count operation.\n */\n count?: TSchema.ACL;\n\n /**\n * ACL for create operation.\n */\n create?: TSchema.ACL;\n\n /**\n * ACL for update operation.\n */\n update?: TSchema.ACL;\n\n /**\n * ACL for delete operation.\n */\n delete?: TSchema.ACL;\n };\n\n /**\n * Field Level Permissions.\n */\n export type FLPs = {\n /**\n * ACL for read operation.\n */\n read?: TSchema.ACL;\n\n /**\n * ACL for create operation.\n */\n create?: TSchema.ACL;\n\n /**\n * ACL for update operation.\n */\n update?: TSchema.ACL;\n };\n\n /**\n * Indexes for the schema.\n */\n export type Indexes = {\n /**\n * Type of the index, default is 'basic'.\n */\n type?: 'basic';\n\n /**\n * Keys for the index.\n */\n keys: Record<string, 1 | -1>;\n\n /**\n * Whether the index is unique.\n */\n unique?: boolean;\n } | {\n /**\n * Type of the index, must be 'vector'.\n */\n type: 'vector';\n\n /**\n * Keys for the vector index.\n */\n keys: string | string[];\n\n /**\n * Method for the vector index.\n */\n method?: 'hnsw' | 'ivfflat';\n };\n}\n\nexport const isPrimitive = (x: TSchema.DataType): x is TSchema.PrimitiveType => _.isString(x) || (x.type !== 'pointer' && x.type !== 'relation' && x.type !== 'shape');\nexport const isVector = (x: TSchema.DataType): x is TSchema.VectorType => !_.isString(x) && x.type === 'vector';\nexport const dimensionOf = (x: TSchema.DataType) => isVector(x) ? x.dimension : 0;\nexport const isShape = (x: TSchema.DataType): x is TSchema.ShapeType => !_.isString(x) && x.type === 'shape';\nexport const isPointer = (x: TSchema.DataType): x is TSchema.PointerType => !_.isString(x) && x.type === 'pointer';\nexport const isRelation = (x: TSchema.DataType): x is TSchema.RelationType => !_.isString(x) && x.type === 'relation';\nexport const _typeof = (x: TSchema.DataType) => _.isString(x) ? x : x.type !== 'pointer' && x.type !== 'relation' ? x.type : x.target;\n\nexport const shapePaths = (x: TSchema.ShapeType): {\n path: string,\n type: Exclude<TSchema.DataType, TSchema.ShapeType>,\n}[] => _.flatMap(x.shape, (v, k) => (\n isShape(v) ? _.map(shapePaths(v), x => ({ path: `${k}.${x.path}`, type: x.type })) : { path: k, type: v }\n));\n\nexport interface TSchema {\n /**\n * Fields of the schema, where each field is a data type.\n */\n fields: Record<string, TSchema.DataType>;\n\n /**\n * Class level permissions for the schema.\n */\n classLevelPermissions?: TSchema.CLPs;\n\n /**\n * Additional object permissions for the schema.\n */\n additionalObjectPermissions?: TSchema.ACLs;\n\n /**\n * Field level permissions for the schema, where each field can have its own permissions.\n */\n fieldLevelPermissions?: Record<string, TSchema.FLPs>;\n\n /**\n * Secure fields in the schema.\n */\n secureFields?: string[];\n\n /**\n * Indexes for the schema.\n */\n indexes?: TSchema.Indexes[];\n}\n\nexport const defaultObjectKeyTypes: Record<string, TSchema.DataType> = {\n _id: 'string',\n __v: 'number',\n __i: 'number',\n _created_at: 'date',\n _updated_at: 'date',\n _expired_at: 'date',\n _rperm: 'array',\n _wperm: 'array',\n};\n\nexport const defaultObjectReadonlyKeys = ['_id', '__v', '__i', '_created_at', '_updated_at'];\nexport const defaultObjectKeys = [...defaultObjectReadonlyKeys, '_expired_at', '_rperm', '_wperm'];\n","//\n// object.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { PVK } from '../private';\nimport { ExtraOptions } from '../options';\nimport { Decimal } from 'decimal.js';\nimport { TPrimitiveValue, TValue, _TValue } from '../types';\nimport { TSchema, defaultObjectKeys, defaultObjectReadonlyKeys } from '../schema';\nimport { PathName } from '../query/types';\nimport { TUpdateOp, TUpdateOpKeys } from './types';\nimport { ProtoType } from '../proto';\nimport { TQuery } from '../query';\n\nexport const isPrimitiveValue = (x: any): x is TPrimitiveValue => {\n if (_.isNil(x) || _.isNumber(x) || _.isBoolean(x) || _.isString(x) || _.isDate(x)) return true;\n if (x instanceof Decimal) return true;\n return false;\n}\n\nexport const isValue = (x: any): x is TValue => {\n if (isPrimitiveValue(x) || x instanceof TObject) return true;\n if (_.isArray(x)) return _.every(x, v => isValue(v));\n if (_.isPlainObject(x)) return _.every(x, v => isValue(v));\n return false;\n}\n\nexport const cloneValue = <T extends TValue>(x: T): T => {\n if (isPrimitiveValue(x) || x instanceof TObject) return x;\n if (_.isArray(x)) return x.map(v => cloneValue(v)) as T;\n return _.mapValues(x, v => cloneValue(v)) as T;\n}\n\nexport const _decodeValue = (value: _TValue): _TValue => {\n if (isPrimitiveValue(value)) return value;\n if (_.isArray(value)) return _.map(value, x => _decodeValue(x));\n if (_.isString(value.$date)) return new Date(value.$date);\n if (_.isString(value.$decimal)) return new Decimal(value.$decimal);\n return _.transform(value, (r, v, k) => {\n r[k.startsWith('$') ? k.substring(1) : k] = _decodeValue(v);\n }, {} as any);\n};\n\nexport const _encodeValue = (value: TValue): _TValue => {\n if (value instanceof TObject) throw Error('Invalid data type');\n if (_.isDate(value)) return { $date: value.toISOString() };\n if (value instanceof Decimal) return { $decimal: value.toString() };\n if (isPrimitiveValue(value)) return value;\n if (_.isArray(value)) return _.map(value, x => _encodeValue(x));\n return _.transform(value, (r, v, k) => {\n r[k.startsWith('$') ? `$${k}` : k] = _encodeValue(v);\n }, {} as any);\n};\n\nexport const decodeUpdateOp = (update: TUpdateOp) => {\n const pairs = _.toPairs(update);\n if (pairs.length !== 1) throw Error('Invalid update operation');\n return pairs[0] as [typeof TUpdateOpKeys[number], TValue];\n}\n\n/**\n * Interface representing a object.\n */\nexport interface TObject {\n /**\n * Clones the object.\n * @returns A clone of the object.\n */\n clone(): TObject;\n\n /**\n * Gets a relation query for the specified key.\n * @param key - The key of the relation.\n * @returns A query object for the relation.\n */\n relation<T extends string>(key: PathName<T>): TQuery<string, any, boolean>;\n\n /**\n * Fetches the object with the specified keys included.\n * @param keys - The keys to include.\n * @param options - Additional options for the fetch operation.\n * @returns A promise that resolves to the fetched object.\n */\n fetchWithInclude(keys: string[], options?: ExtraOptions<boolean>): PromiseLike<this>;\n\n /**\n * Saves the object.\n * @param options - Additional options for the save operation.\n * @returns A promise that resolves to the saved object.\n */\n save(options?: ExtraOptions<boolean> & { cascadeSave?: boolean }): PromiseLike<this>;\n\n /**\n * Destroys the object.\n * @param options - Additional options for the destroy operation.\n * @returns A promise that resolves to the destroyed object.\n */\n destroy(options?: ExtraOptions<boolean>): PromiseLike<this>;\n}\n\n/**\n * Class representing a object.\n */\nexport class TObject {\n\n static defaultReadonlyKeys = defaultObjectReadonlyKeys;\n static defaultKeys = defaultObjectKeys;\n\n /** @internal */\n [PVK]: {\n className: string;\n attributes: Record<string, TValue>;\n mutated: Record<string, TUpdateOp>;\n extra: Record<string, any>;\n };\n\n constructor(\n className: string,\n attributes?: Record<string, TValue> | ((self: TObject) => Record<string, TValue>),\n ) {\n const _attributes = _.isFunction(attributes) ? attributes(this) : attributes ?? {};\n this[PVK] = {\n className,\n attributes: cloneValue(_attributes),\n mutated: {},\n extra: {},\n }\n }\n\n /**\n * Gets the class name of the object.\n */\n get className(): string {\n return this[PVK].className;\n }\n\n /**\n * Gets the attributes of the object.\n */\n get attributes(): Record<string, TValue> {\n return cloneValue(this[PVK].attributes);\n }\n\n /**\n * Gets the object ID.\n */\n get objectId(): string | undefined {\n return this[PVK].attributes._id as string;\n }\n\n /**\n * Gets the creation date of the object.\n */\n get createdAt(): Date | undefined {\n return this[PVK].attributes._created_at as Date;\n }\n\n /**\n * Gets the last updated date of the object.\n */\n get updatedAt(): Date | undefined {\n return this[PVK].attributes._updated_at as Date;\n }\n\n /**\n * Gets the version number of the object.\n */\n get __v(): number {\n return this[PVK].attributes.__v as number;\n }\n\n /**\n * Gets the sequence number of the object.\n */\n get __i(): number {\n return this[PVK].attributes.__i as number;\n }\n\n /**\n * Gets the expiration date of the object.\n */\n get expiredAt(): Date | undefined {\n return this.get('_expired_at');\n }\n\n /**\n * Sets the expiration date of the object.\n * @param value - The expiration date.\n */\n set expiredAt(value: Date | undefined) {\n this.set('_expired_at', value);\n }\n\n /**\n * Gets the access control list (ACL) of the object.\n * @returns The ACL of the object.\n */\n acl(): TSchema.ACLs {\n return {\n read: this.get('_rperm') ?? ['*'],\n update: this.get('_wperm') ?? ['*'],\n };\n }\n\n /**\n * Sets the access control list (ACL) of the object.\n * @param value - The ACL to set.\n */\n setAcl(value: Partial<TSchema.ACLs>) {\n this.set('_rperm', value.read ?? ['*']);\n this.set('_wperm', value.update ?? ['*']);\n }\n\n /**\n * Sets the read access control list (ACL) of the object.\n * @param value - The read ACL to set.\n */\n setReadAcl(value: TSchema.ACL) {\n this.set('_rperm', value);\n }\n\n /**\n * Sets the write access control list (ACL) of the object.\n * @param value - The write ACL to set.\n */\n setWriteAcl(value: TSchema.ACL) {\n this.set('_wperm', value);\n }\n\n /**\n * Gets the keys of the object's attributes and mutated attributes.\n * @returns An array of keys.\n */\n keys(): string[] {\n return _.uniq([..._.keys(this[PVK].attributes), ..._.compact(_.map(_.keys(this[PVK].mutated), x => _.first(_.toPath(x))))]);\n }\n\n /**\n * Gets an iterator for the entries of the object's attributes.\n * @returns An iterator for the entries.\n */\n *entries() {\n for (const key of this.keys()) {\n yield [key, this.get(key)] as [string, any];\n }\n }\n\n /** @internal */\n *_set_entries() {\n for (const [key, op] of _.entries(this[PVK].mutated)) {\n for (const [_op, value] of _.entries(op)) {\n if (_op === '$set') yield [key, value] as [string, any];\n }\n }\n }\n\n /**\n * Converts the object to a plain object.\n * @returns The plain object representation of the object.\n */\n toObject() {\n const toObject = (value: TValue): _TValue => {\n if (isPrimitiveValue(value)) return value;\n if (value instanceof TObject) return value.toObject();\n if (_.isArray(value)) return _.map(value, toObject);\n return _.mapValues(value, toObject);\n }\n return _.fromPairs(_.map(this.keys(), k => [k, toObject(this.get(k))]));\n }\n\n private _value(key: string): TValue {\n let value: TValue = this[PVK].attributes;\n for (const k of _.toPath(key)) {\n if (isPrimitiveValue(value)) return null;\n if (value instanceof TObject) {\n value = value.get(k);\n } else {\n value = _.get(value, k);\n }\n }\n return cloneValue(value);\n }\n\n /**\n * Get the value of the attribute.\n * @param key - The key of the attribute.\n * @returns The value of the attribute.\n */\n get<T extends string>(key: PathName<T>): any {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (_.isNil(this[PVK].mutated[key])) return this._value(key);\n const [op, value] = decodeUpdateOp(this[PVK].mutated[key]);\n return op === '$set' ? value : this._value(key);\n }\n\n /**\n * Set the value of the attribute.\n * @param key - The key of the attribute.\n * @param value - The value to set.\n */\n set<T extends string>(key: PathName<T>, value: TValue | undefined) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $set: value ?? null };\n }\n\n /**\n * Is the object dirty.\n */\n get isDirty(): boolean {\n return !_.isEmpty(this[PVK].mutated);\n }\n\n /**\n * Increment the value of the attribute.\n * @param key - The key to increment.\n * @param value - The value to increment by.\n */\n increment<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $inc: value };\n }\n\n /**\n * Decrement the value of the attribute.\n * @param key - The key to decrement.\n * @param value - The value to decrement by.\n */\n decrement<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $dec: value };\n }\n\n /**\n * Multiplies the value of the specified attribute.\n * @param key - The key of the attribute to multiply.\n * @param value - The multiplier value.\n */\n multiply<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $mul: value };\n }\n\n /**\n * Divides the value of the specified attribute.\n * @param key - The key of the attribute to divide.\n * @param value - The divisor value.\n */\n divide<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $div: value };\n }\n\n /**\n * Sets the value of the specified attribute to the maximum of the current value and the provided value.\n * @param key - The key of the attribute to compare.\n * @param value - The value to compare against.\n */\n max<T extends string>(key: PathName<T>, value: TValue) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $max: value };\n }\n\n /**\n * Sets the value of the specified attribute to the minimum of the current value and the provided value.\n * @param key - The key of the attribute to compare.\n * @param value - The value to compare against.\n */\n min<T extends string>(key: PathName<T>, value: TValue) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $min: value };\n }\n\n /**\n * Adds the specified values to the set of the specified attribute.\n * @param key - The key of the attribute.\n * @param values - The values to add to the set.\n */\n addToSet<T extends string>(key: PathName<T>, values: TValue[]) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $addToSet: values };\n }\n\n /**\n * Adds the values to the array of the attribute.\n * @param key - The key of the attribute.\n * @param values - The values to add.\n */\n push<T extends string>(key: PathName<T>, values: TValue[]) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $push: values };\n }\n\n /**\n * Removes the values from the array of the attribute.\n * @param key - The key of the attribute.\n * @param values - The values to remove.\n */\n removeAll<T extends string>(key: PathName<T>, values: TValue[]) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $removeAll: values };\n }\n\n /**\n * Removes the first elements from the array of the attribute.\n * @param key - The key of the attribute.\n * @param count - The number of elements to remove. Defaults to 1.\n */\n popFirst<T extends string>(key: PathName<T>, count = 1) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $popFirst: count };\n }\n\n /**\n * Removes the last elements from the array of the attribute.\n * @param key - The key of the attribute.\n * @param count - The number of elements to remove. Defaults to 1.\n */\n popLast<T extends string>(key: PathName<T>, count = 1) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $popLast: count };\n }\n\n /**\n * Fetches the object data.\n * @param options - Additional options for the fetch operation.\n * @returns A promise that resolves to the fetched object.\n */\n async fetch(options?: ExtraOptions<boolean>) {\n return this.fetchWithInclude(_.keys(this[PVK].attributes), options);\n }\n\n /**\n * Fetches the object data if needed.\n * @param keys - The keys of the attributes to fetch.\n * @param options - Additional options for the fetch operation.\n * @returns A promise that resolves to the fetched object.\n */\n async fetchIfNeeded(keys: string[], options?: ExtraOptions<boolean>) {\n const current = _.keys(this[PVK].attributes);\n if (_.every(keys, k => _.includes(current, k))) return this;\n return this.fetchWithInclude(_.uniq([...current, ...keys]), options);\n }\n\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-CTsc042s.mjs","sources":["../../../src/internals/schema.ts","../../../src/internals/object/index.ts"],"sourcesContent":["//\n// schema.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { _TValue } from './types';\n\nexport namespace TSchema {\n /**\n * Access Control List represented as an array of strings.\n */\n export type ACL = string[];\n\n /**\n * Access Control Lists for read and update operations.\n */\n export type ACLs = { \n /**\n * ACL for read operation.\n */\n read: TSchema.ACL; \n\n /**\n * ACL for update operation.\n */\n update: TSchema.ACL; \n };\n\n /**\n * Primitive data types.\n */\n export type Primitive = 'boolean' | 'number' | 'decimal' | 'string' | 'date' | 'object' | 'array';\n\n /**\n * Primitive type with an optional default value.\n */\n export type PrimitiveType = Primitive | { \n /**\n * The type of the primitive.\n */\n type: Primitive; \n\n /**\n * Optional default value.\n */\n default?: _TValue; \n };\n\n /**\n * Vector type with a specified dimension and an optional default value.\n */\n export type VectorType = { \n /**\n * The type of the vector.\n */\n type: 'vector'; \n\n /**\n * The dimension of the vector.\n */\n dimension: number; \n\n /**\n * Optional default value.\n */\n default?: number[]; \n };\n\n /**\n * Shape type with a specified shape.\n */\n export type ShapeType = { \n /**\n * The type of the shape.\n */\n type: 'shape'; \n\n /**\n * The shape definition.\n */\n shape: Record<string, DataType>; \n };\n\n /**\n * Pointer type with a target.\n */\n export type PointerType = { \n /**\n * The type of the pointer.\n */\n type: 'pointer'; \n\n /**\n * The target class of the pointer.\n */\n target: string; \n };\n\n /**\n * Relation type with a target and an optional foreign field.\n */\n export type RelationType = { \n /**\n * The type of the relation.\n */\n type: 'relation'; \n\n /**\n * The target class of the relation.\n */\n target: string; \n\n /**\n * Optional foreign field.\n */\n foreignField?: string; \n };\n\n /**\n * Data type which can be a primitive, vector, shape, pointer, or relation type.\n */\n export type DataType = PrimitiveType | VectorType | ShapeType | PointerType | RelationType;\n\n /**\n * Class Level Permissions.\n */\n export type CLPs = {\n /**\n * ACL for get operation.\n */\n get?: TSchema.ACL;\n\n /**\n * ACL for find operation.\n */\n find?: TSchema.ACL;\n\n /**\n * ACL for count operation.\n */\n count?: TSchema.ACL;\n\n /**\n * ACL for create operation.\n */\n create?: TSchema.ACL;\n\n /**\n * ACL for update operation.\n */\n update?: TSchema.ACL;\n\n /**\n * ACL for delete operation.\n */\n delete?: TSchema.ACL;\n };\n\n /**\n * Field Level Permissions.\n */\n export type FLPs = {\n /**\n * ACL for read operation.\n */\n read?: TSchema.ACL;\n\n /**\n * ACL for create operation.\n */\n create?: TSchema.ACL;\n\n /**\n * ACL for update operation.\n */\n update?: TSchema.ACL;\n };\n\n /**\n * Indexes for the schema.\n */\n export type Indexes = {\n /**\n * Type of the index, default is 'basic'.\n */\n type?: 'basic';\n\n /**\n * Keys for the index.\n */\n keys: Record<string, 1 | -1>;\n\n /**\n * Whether the index is unique.\n */\n unique?: boolean;\n } | {\n /**\n * Type of the index, must be 'vector'.\n */\n type: 'vector';\n\n /**\n * Keys for the vector index.\n */\n keys: string | string[];\n\n /**\n * Method for the vector index.\n */\n method?: 'hnsw' | 'ivfflat';\n };\n}\n\nexport const isPrimitive = (x: TSchema.DataType): x is TSchema.PrimitiveType => _.isString(x) || (x.type !== 'pointer' && x.type !== 'relation' && x.type !== 'shape');\nexport const isVector = (x: TSchema.DataType): x is TSchema.VectorType => !_.isString(x) && x.type === 'vector';\nexport const dimensionOf = (x: TSchema.DataType) => isVector(x) ? x.dimension : 0;\nexport const isShape = (x: TSchema.DataType): x is TSchema.ShapeType => !_.isString(x) && x.type === 'shape';\nexport const isPointer = (x: TSchema.DataType): x is TSchema.PointerType => !_.isString(x) && x.type === 'pointer';\nexport const isRelation = (x: TSchema.DataType): x is TSchema.RelationType => !_.isString(x) && x.type === 'relation';\nexport const _typeof = (x: TSchema.DataType) => _.isString(x) ? x : x.type !== 'pointer' && x.type !== 'relation' ? x.type : x.target;\n\nexport const shapePaths = (x: TSchema.ShapeType): {\n path: string,\n type: Exclude<TSchema.DataType, TSchema.ShapeType>,\n}[] => _.flatMap(x.shape, (v, k) => (\n isShape(v) ? _.map(shapePaths(v), x => ({ path: `${k}.${x.path}`, type: x.type })) : { path: k, type: v }\n));\n\nexport interface TSchema {\n /**\n * Fields of the schema, where each field is a data type.\n */\n fields: Record<string, TSchema.DataType>;\n\n /**\n * Class level permissions for the schema.\n */\n classLevelPermissions?: TSchema.CLPs;\n\n /**\n * Additional object permissions for the schema.\n */\n additionalObjectPermissions?: TSchema.ACLs;\n\n /**\n * Field level permissions for the schema, where each field can have its own permissions.\n */\n fieldLevelPermissions?: Record<string, TSchema.FLPs>;\n\n /**\n * Secure fields in the schema.\n */\n secureFields?: string[];\n\n /**\n * Indexes for the schema.\n */\n indexes?: TSchema.Indexes[];\n}\n\nexport const defaultObjectKeyTypes: Record<string, TSchema.DataType> = {\n _id: 'string',\n __v: 'number',\n __i: 'number',\n _created_at: 'date',\n _updated_at: 'date',\n _expired_at: 'date',\n _rperm: 'array',\n _wperm: 'array',\n};\n\nexport const defaultObjectReadonlyKeys = ['_id', '__v', '__i', '_created_at', '_updated_at'];\nexport const defaultObjectKeys = [...defaultObjectReadonlyKeys, '_expired_at', '_rperm', '_wperm'];\n","//\n// object.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { PVK } from '../private';\nimport { ExtraOptions } from '../options';\nimport { Decimal } from 'decimal.js';\nimport { TPrimitiveValue, TValue, _TValue } from '../types';\nimport { TSchema, defaultObjectKeys, defaultObjectReadonlyKeys } from '../schema';\nimport { PathName } from '../query/types';\nimport { TUpdateOp, TUpdateOpKeys } from './types';\nimport { ProtoType } from '../proto';\nimport { TQuery } from '../query';\n\nexport const isPrimitiveValue = (x: any): x is TPrimitiveValue => {\n if (_.isNil(x) || _.isNumber(x) || _.isBoolean(x) || _.isString(x) || _.isDate(x)) return true;\n if (x instanceof Decimal) return true;\n return false;\n}\n\nexport const isValue = (x: any): x is TValue => {\n if (isPrimitiveValue(x) || x instanceof TObject) return true;\n if (_.isArray(x)) return _.every(x, v => isValue(v));\n if (_.isPlainObject(x)) return _.every(x, v => isValue(v));\n return false;\n}\n\nexport const cloneValue = <T extends TValue>(x: T): T => {\n if (isPrimitiveValue(x) || x instanceof TObject) return x;\n if (_.isArray(x)) return x.map(v => cloneValue(v)) as T;\n return _.mapValues(x, v => cloneValue(v)) as T;\n}\n\nexport const _decodeValue = (value: _TValue): _TValue => {\n if (isPrimitiveValue(value)) return value;\n if (_.isArray(value)) return _.map(value, x => _decodeValue(x));\n if (_.isString(value.$date)) return new Date(value.$date);\n if (_.isString(value.$decimal)) return new Decimal(value.$decimal);\n return _.transform(value, (r, v, k) => {\n r[k.startsWith('$') ? k.substring(1) : k] = _decodeValue(v);\n }, {} as any);\n};\n\nexport const _encodeValue = (value: TValue): _TValue => {\n if (value instanceof TObject) throw Error('Invalid data type');\n if (_.isDate(value)) return { $date: value.toISOString() };\n if (value instanceof Decimal) return { $decimal: value.toString() };\n if (isPrimitiveValue(value)) return value;\n if (_.isArray(value)) return _.map(value, x => _encodeValue(x));\n return _.transform(value, (r, v, k) => {\n r[k.startsWith('$') ? `$${k}` : k] = _encodeValue(v);\n }, {} as any);\n};\n\nexport const decodeUpdateOp = (update: TUpdateOp) => {\n const pairs = _.toPairs(update);\n if (pairs.length !== 1) throw Error('Invalid update operation');\n return pairs[0] as [typeof TUpdateOpKeys[number], TValue];\n}\n\n/**\n * Interface representing a object.\n */\nexport interface TObject {\n /**\n * Clones the object.\n * @returns A clone of the object.\n */\n clone(): TObject;\n\n /**\n * Gets a relation query for the specified key.\n * @param key - The key of the relation.\n * @returns A query object for the relation.\n */\n relation<T extends string>(key: PathName<T>): TQuery<string, any, boolean>;\n\n /**\n * Fetches the object with the specified keys included.\n * @param keys - The keys to include.\n * @param options - Additional options for the fetch operation.\n * @returns A promise that resolves to the fetched object.\n */\n fetchWithInclude(keys: string[], options?: ExtraOptions<boolean>): PromiseLike<this>;\n\n /**\n * Saves the object.\n * @param options - Additional options for the save operation.\n * @returns A promise that resolves to the saved object.\n */\n save(options?: ExtraOptions<boolean> & { cascadeSave?: boolean }): PromiseLike<this>;\n\n /**\n * Destroys the object.\n * @param options - Additional options for the destroy operation.\n * @returns A promise that resolves to the destroyed object.\n */\n destroy(options?: ExtraOptions<boolean>): PromiseLike<this>;\n}\n\n/**\n * Class representing a object.\n */\nexport class TObject {\n\n static defaultReadonlyKeys = defaultObjectReadonlyKeys;\n static defaultKeys = defaultObjectKeys;\n\n /** @internal */\n [PVK]: {\n className: string;\n attributes: Record<string, TValue>;\n mutated: Record<string, TUpdateOp>;\n extra: Record<string, any>;\n };\n\n constructor(\n className: string,\n attributes?: Record<string, TValue> | ((self: TObject) => Record<string, TValue>),\n ) {\n const _attributes = _.isFunction(attributes) ? attributes(this) : attributes ?? {};\n this[PVK] = {\n className,\n attributes: cloneValue(_attributes),\n mutated: {},\n extra: {},\n }\n }\n\n /**\n * Gets the class name of the object.\n */\n get className(): string {\n return this[PVK].className;\n }\n\n /**\n * Gets the attributes of the object.\n */\n get attributes(): Record<string, TValue> {\n return cloneValue(this[PVK].attributes);\n }\n\n /**\n * Gets the object ID.\n */\n get objectId(): string | undefined {\n return this[PVK].attributes._id as string;\n }\n\n /**\n * Gets the creation date of the object.\n */\n get createdAt(): Date | undefined {\n return this[PVK].attributes._created_at as Date;\n }\n\n /**\n * Gets the last updated date of the object.\n */\n get updatedAt(): Date | undefined {\n return this[PVK].attributes._updated_at as Date;\n }\n\n /**\n * Gets the version number of the object.\n */\n get __v(): number {\n return this[PVK].attributes.__v as number;\n }\n\n /**\n * Gets the sequence number of the object.\n */\n get __i(): number {\n return this[PVK].attributes.__i as number;\n }\n\n /**\n * Gets the expiration date of the object.\n */\n get expiredAt(): Date | undefined {\n return this.get('_expired_at');\n }\n\n /**\n * Sets the expiration date of the object.\n * @param value - The expiration date.\n */\n set expiredAt(value: Date | undefined) {\n this.set('_expired_at', value);\n }\n\n /**\n * Gets the access control list (ACL) of the object.\n * @returns The ACL of the object.\n */\n acl(): TSchema.ACLs {\n return {\n read: this.get('_rperm') ?? ['*'],\n update: this.get('_wperm') ?? ['*'],\n };\n }\n\n /**\n * Sets the access control list (ACL) of the object.\n * @param value - The ACL to set.\n */\n setAcl(value: Partial<TSchema.ACLs>) {\n this.set('_rperm', value.read ?? ['*']);\n this.set('_wperm', value.update ?? ['*']);\n }\n\n /**\n * Sets the read access control list (ACL) of the object.\n * @param value - The read ACL to set.\n */\n setReadAcl(value: TSchema.ACL) {\n this.set('_rperm', value);\n }\n\n /**\n * Sets the write access control list (ACL) of the object.\n * @param value - The write ACL to set.\n */\n setWriteAcl(value: TSchema.ACL) {\n this.set('_wperm', value);\n }\n\n /**\n * Gets the keys of the object's attributes and mutated attributes.\n * @returns An array of keys.\n */\n keys(): string[] {\n return _.uniq([..._.keys(this[PVK].attributes), ..._.compact(_.map(_.keys(this[PVK].mutated), x => _.first(_.toPath(x))))]);\n }\n\n /**\n * Gets an iterator for the entries of the object's attributes.\n * @returns An iterator for the entries.\n */\n *entries() {\n for (const key of this.keys()) {\n yield [key, this.get(key)] as [string, any];\n }\n }\n\n /** @internal */\n *_set_entries() {\n for (const [key, op] of _.entries(this[PVK].mutated)) {\n for (const [_op, value] of _.entries(op)) {\n if (_op === '$set') yield [key, value] as [string, any];\n }\n }\n }\n\n /**\n * Converts the object to a plain object.\n * @returns The plain object representation of the object.\n */\n toObject() {\n const toObject = (value: TValue): _TValue => {\n if (isPrimitiveValue(value)) return value;\n if (value instanceof TObject) return value.toObject();\n if (_.isArray(value)) return _.map(value, toObject);\n return _.mapValues(value, toObject);\n }\n return _.fromPairs(_.map(this.keys(), k => [k, toObject(this.get(k))]));\n }\n\n private _value(key: string): TValue {\n let value: TValue = this[PVK].attributes;\n for (const k of _.toPath(key)) {\n if (isPrimitiveValue(value)) return null;\n if (value instanceof TObject) {\n value = value.get(k);\n } else {\n value = _.get(value, k);\n }\n }\n return cloneValue(value);\n }\n\n /**\n * Get the value of the attribute.\n * @param key - The key of the attribute.\n * @returns The value of the attribute.\n */\n get<T extends string>(key: PathName<T>): any {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (_.isNil(this[PVK].mutated[key])) return this._value(key);\n const [op, value] = decodeUpdateOp(this[PVK].mutated[key]);\n return op === '$set' ? value : this._value(key);\n }\n\n /**\n * Set the value of the attribute.\n * @param key - The key of the attribute.\n * @param value - The value to set.\n */\n set<T extends string>(key: PathName<T>, value: TValue | undefined) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $set: value ?? null };\n }\n\n /**\n * Is the object dirty.\n */\n get isDirty(): boolean {\n return !_.isEmpty(this[PVK].mutated);\n }\n\n /**\n * Increment the value of the attribute.\n * @param key - The key to increment.\n * @param value - The value to increment by.\n */\n increment<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $inc: value };\n }\n\n /**\n * Decrement the value of the attribute.\n * @param key - The key to decrement.\n * @param value - The value to decrement by.\n */\n decrement<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $dec: value };\n }\n\n /**\n * Multiplies the value of the specified attribute.\n * @param key - The key of the attribute to multiply.\n * @param value - The multiplier value.\n */\n multiply<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $mul: value };\n }\n\n /**\n * Divides the value of the specified attribute.\n * @param key - The key of the attribute to divide.\n * @param value - The divisor value.\n */\n divide<T extends string>(key: PathName<T>, value: number) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $div: value };\n }\n\n /**\n * Sets the value of the specified attribute to the maximum of the current value and the provided value.\n * @param key - The key of the attribute to compare.\n * @param value - The value to compare against.\n */\n max<T extends string>(key: PathName<T>, value: TValue) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $max: value };\n }\n\n /**\n * Sets the value of the specified attribute to the minimum of the current value and the provided value.\n * @param key - The key of the attribute to compare.\n * @param value - The value to compare against.\n */\n min<T extends string>(key: PathName<T>, value: TValue) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $min: value };\n }\n\n /**\n * Adds the specified values to the set of the specified attribute.\n * @param key - The key of the attribute.\n * @param values - The values to add to the set.\n */\n addToSet<T extends string>(key: PathName<T>, values: TValue[]) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $addToSet: values };\n }\n\n /**\n * Adds the values to the array of the attribute.\n * @param key - The key of the attribute.\n * @param values - The values to add.\n */\n push<T extends string>(key: PathName<T>, values: TValue[]) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $push: values };\n }\n\n /**\n * Removes the values from the array of the attribute.\n * @param key - The key of the attribute.\n * @param values - The values to remove.\n */\n removeAll<T extends string>(key: PathName<T>, values: TValue[]) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $removeAll: values };\n }\n\n /**\n * Removes the first elements from the array of the attribute.\n * @param key - The key of the attribute.\n * @param count - The number of elements to remove. Defaults to 1.\n */\n popFirst<T extends string>(key: PathName<T>, count = 1) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $popFirst: count };\n }\n\n /**\n * Removes the last elements from the array of the attribute.\n * @param key - The key of the attribute.\n * @param count - The number of elements to remove. Defaults to 1.\n */\n popLast<T extends string>(key: PathName<T>, count = 1) {\n if (_.isEmpty(key)) throw Error('Invalid key');\n if (TObject.defaultReadonlyKeys.includes(_.first(_.toPath(key))!)) return;\n this[PVK].mutated[key] = { $popLast: count };\n }\n\n /**\n * Fetches the object data.\n * @param options - Additional options for the fetch operation.\n * @returns A promise that resolves to the fetched object.\n */\n async fetch(options?: ExtraOptions<boolean>) {\n return this.fetchWithInclude(_.keys(this[PVK].attributes), options);\n }\n\n /**\n * Fetches the object data if needed.\n * @param keys - The keys of the attributes to fetch.\n * @param options - Additional options for the fetch operation.\n * @returns A promise that resolves to the fetched object.\n */\n async fetchIfNeeded(keys: string[], options?: ExtraOptions<boolean>) {\n const current = _.keys(this[PVK].attributes);\n if (_.every(keys, k => _.includes(current, k))) return this;\n return this.fetchWithInclude(_.uniq([...current, ...keys]), options);\n }\n\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1117,7 +1117,7 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1117
1117
|
};
|
|
1118
1118
|
}
|
|
1119
1119
|
_requestOpt(options) {
|
|
1120
|
-
const {
|
|
1120
|
+
const { ...opts } = options ?? {};
|
|
1121
1121
|
return {
|
|
1122
1122
|
method: 'post',
|
|
1123
1123
|
url: this.url,
|
|
@@ -1130,24 +1130,18 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1130
1130
|
explain(options) {
|
|
1131
1131
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1132
1132
|
operation: 'explain',
|
|
1133
|
-
context: options?.context ?? {},
|
|
1134
|
-
silent: options?.silent,
|
|
1135
1133
|
...this._queryOptions,
|
|
1136
1134
|
}, this._requestOpt(options));
|
|
1137
1135
|
}
|
|
1138
1136
|
count(options) {
|
|
1139
1137
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1140
1138
|
operation: 'count',
|
|
1141
|
-
context: options?.context ?? {},
|
|
1142
|
-
silent: options?.silent,
|
|
1143
1139
|
...this._queryOptions,
|
|
1144
1140
|
}, this._requestOpt(options));
|
|
1145
1141
|
}
|
|
1146
1142
|
find(options) {
|
|
1147
1143
|
const request = () => this._proto[_private.PVK].request(this._proto, {
|
|
1148
1144
|
operation: 'find',
|
|
1149
|
-
context: options?.context ?? {},
|
|
1150
|
-
silent: options?.silent,
|
|
1151
1145
|
...this._queryOptions,
|
|
1152
1146
|
}, this._requestOpt(options));
|
|
1153
1147
|
return utilsJs.asyncStream(request);
|
|
@@ -1155,8 +1149,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1155
1149
|
random(opts, options) {
|
|
1156
1150
|
const request = () => this._proto[_private.PVK].request(this._proto, {
|
|
1157
1151
|
operation: 'random',
|
|
1158
|
-
context: options?.context ?? {},
|
|
1159
|
-
silent: options?.silent,
|
|
1160
1152
|
random: opts,
|
|
1161
1153
|
...this._queryOptions,
|
|
1162
1154
|
}, this._requestOpt(options));
|
|
@@ -1165,8 +1157,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1165
1157
|
nonrefs(options) {
|
|
1166
1158
|
const request = () => this._proto[_private.PVK].request(this._proto, {
|
|
1167
1159
|
operation: 'nonrefs',
|
|
1168
|
-
context: options?.context ?? {},
|
|
1169
|
-
silent: options?.silent,
|
|
1170
1160
|
...this._queryOptions,
|
|
1171
1161
|
}, this._requestOpt(options));
|
|
1172
1162
|
return utilsJs.asyncStream(request);
|
|
@@ -1174,8 +1164,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1174
1164
|
insert(attrs, options) {
|
|
1175
1165
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1176
1166
|
operation: 'insert',
|
|
1177
|
-
context: options?.context ?? {},
|
|
1178
|
-
silent: options?.silent,
|
|
1179
1167
|
attributes: attrs,
|
|
1180
1168
|
...this._queryOptions,
|
|
1181
1169
|
}, this._requestOpt(options));
|
|
@@ -1183,8 +1171,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1183
1171
|
insertMany(values, options) {
|
|
1184
1172
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1185
1173
|
operation: 'insertMany',
|
|
1186
|
-
context: options?.context ?? {},
|
|
1187
|
-
silent: options?.silent,
|
|
1188
1174
|
attributes: values,
|
|
1189
1175
|
...this._queryOptions,
|
|
1190
1176
|
}, this._requestOpt(options));
|
|
@@ -1192,8 +1178,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1192
1178
|
updateOne(update, options) {
|
|
1193
1179
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1194
1180
|
operation: 'updateOne',
|
|
1195
|
-
context: options?.context ?? {},
|
|
1196
|
-
silent: options?.silent,
|
|
1197
1181
|
update,
|
|
1198
1182
|
...this._queryOptions,
|
|
1199
1183
|
}, this._requestOpt(options));
|
|
@@ -1201,8 +1185,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1201
1185
|
updateMany(update, options) {
|
|
1202
1186
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1203
1187
|
operation: 'updateMany',
|
|
1204
|
-
context: options?.context ?? {},
|
|
1205
|
-
silent: options?.silent,
|
|
1206
1188
|
update,
|
|
1207
1189
|
...this._queryOptions,
|
|
1208
1190
|
}, this._requestOpt(options));
|
|
@@ -1210,8 +1192,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1210
1192
|
upsertOne(update, setOnInsert, options) {
|
|
1211
1193
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1212
1194
|
operation: 'upsertOne',
|
|
1213
|
-
context: options?.context ?? {},
|
|
1214
|
-
silent: options?.silent,
|
|
1215
1195
|
update,
|
|
1216
1196
|
setOnInsert,
|
|
1217
1197
|
...this._queryOptions,
|
|
@@ -1220,8 +1200,6 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1220
1200
|
upsertMany(update, setOnInsert, options) {
|
|
1221
1201
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1222
1202
|
operation: 'upsertMany',
|
|
1223
|
-
context: options?.context ?? {},
|
|
1224
|
-
silent: options?.silent,
|
|
1225
1203
|
update,
|
|
1226
1204
|
setOnInsert,
|
|
1227
1205
|
...this._queryOptions,
|
|
@@ -1230,16 +1208,12 @@ class _ProtoClientQuery extends TQuery {
|
|
|
1230
1208
|
deleteOne(options) {
|
|
1231
1209
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1232
1210
|
operation: 'deleteOne',
|
|
1233
|
-
context: options?.context ?? {},
|
|
1234
|
-
silent: options?.silent,
|
|
1235
1211
|
...this._queryOptions,
|
|
1236
1212
|
}, this._requestOpt(options));
|
|
1237
1213
|
}
|
|
1238
1214
|
deleteMany(options) {
|
|
1239
1215
|
return this._proto[_private.PVK].request(this._proto, {
|
|
1240
1216
|
operation: 'deleteMany',
|
|
1241
|
-
context: options?.context ?? {},
|
|
1242
|
-
silent: options?.silent,
|
|
1243
1217
|
...this._queryOptions,
|
|
1244
1218
|
}, this._requestOpt(options));
|
|
1245
1219
|
}
|
|
@@ -1330,7 +1304,7 @@ class Service {
|
|
|
1330
1304
|
}
|
|
1331
1305
|
}
|
|
1332
1306
|
async _request(config, retry = 0) {
|
|
1333
|
-
const { master, abortSignal, serializeOpts,
|
|
1307
|
+
const { master, abortSignal, serializeOpts, headers, ...opts } = config ?? {};
|
|
1334
1308
|
const res = await this.service.request({
|
|
1335
1309
|
signal: abortSignal,
|
|
1336
1310
|
headers: {
|
|
@@ -1448,7 +1422,7 @@ class ProtoClientInternal {
|
|
|
1448
1422
|
this.service = new Service(this, options.axiosOptions);
|
|
1449
1423
|
}
|
|
1450
1424
|
async request(proto, data, options) {
|
|
1451
|
-
const { serializeOpts,
|
|
1425
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1452
1426
|
const res = await this.service.request({
|
|
1453
1427
|
baseURL: this.options.endpoint,
|
|
1454
1428
|
data: serialize(data, serializeOpts),
|
|
@@ -1461,7 +1435,7 @@ class ProtoClientInternal {
|
|
|
1461
1435
|
this.service.setSessionToken(token);
|
|
1462
1436
|
}
|
|
1463
1437
|
async sessionInfo(proto, options) {
|
|
1464
|
-
const { serializeOpts,
|
|
1438
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1465
1439
|
const res = await this.service.request({
|
|
1466
1440
|
method: 'get',
|
|
1467
1441
|
baseURL: this.options.endpoint,
|
|
@@ -1472,7 +1446,7 @@ class ProtoClientInternal {
|
|
|
1472
1446
|
return proto.rebind(deserialize(res.data));
|
|
1473
1447
|
}
|
|
1474
1448
|
async currentUser(proto, options) {
|
|
1475
|
-
const { serializeOpts,
|
|
1449
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1476
1450
|
const res = await this.service.request({
|
|
1477
1451
|
method: 'get',
|
|
1478
1452
|
baseURL: this.options.endpoint,
|
|
@@ -1486,7 +1460,7 @@ class ProtoClientInternal {
|
|
|
1486
1460
|
return user ?? undefined;
|
|
1487
1461
|
}
|
|
1488
1462
|
async config(options) {
|
|
1489
|
-
const { serializeOpts,
|
|
1463
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1490
1464
|
const res = await this.service.request({
|
|
1491
1465
|
method: 'get',
|
|
1492
1466
|
baseURL: this.options.endpoint,
|
|
@@ -1497,7 +1471,7 @@ class ProtoClientInternal {
|
|
|
1497
1471
|
return deserialize(res.data);
|
|
1498
1472
|
}
|
|
1499
1473
|
async configAcl(options) {
|
|
1500
|
-
const { serializeOpts,
|
|
1474
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1501
1475
|
const res = await this.service.request({
|
|
1502
1476
|
method: 'get',
|
|
1503
1477
|
baseURL: this.options.endpoint,
|
|
@@ -1508,7 +1482,7 @@ class ProtoClientInternal {
|
|
|
1508
1482
|
return deserialize(res.data);
|
|
1509
1483
|
}
|
|
1510
1484
|
async setConfig(values, options) {
|
|
1511
|
-
const { serializeOpts,
|
|
1485
|
+
const { serializeOpts, acl, ...opts } = options ?? {};
|
|
1512
1486
|
await this.service.request({
|
|
1513
1487
|
method: 'post',
|
|
1514
1488
|
baseURL: this.options.endpoint,
|
|
@@ -1519,7 +1493,7 @@ class ProtoClientInternal {
|
|
|
1519
1493
|
});
|
|
1520
1494
|
}
|
|
1521
1495
|
async logout(options) {
|
|
1522
|
-
const { serializeOpts,
|
|
1496
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1523
1497
|
await this.service.request({
|
|
1524
1498
|
method: 'post',
|
|
1525
1499
|
baseURL: this.options.endpoint,
|
|
@@ -1533,7 +1507,7 @@ class ProtoClientInternal {
|
|
|
1533
1507
|
throw Error('Invalid user');
|
|
1534
1508
|
if (_.isEmpty(password))
|
|
1535
1509
|
throw Error('Invalid password');
|
|
1536
|
-
const { serializeOpts,
|
|
1510
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1537
1511
|
await this.service.request({
|
|
1538
1512
|
method: 'post',
|
|
1539
1513
|
baseURL: this.options.endpoint,
|
|
@@ -1546,7 +1520,7 @@ class ProtoClientInternal {
|
|
|
1546
1520
|
async unsetPassword(user, options) {
|
|
1547
1521
|
if (!user.objectId)
|
|
1548
1522
|
throw Error('Invalid user');
|
|
1549
|
-
const { serializeOpts,
|
|
1523
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1550
1524
|
await this.service.request({
|
|
1551
1525
|
method: 'post',
|
|
1552
1526
|
baseURL: this.options.endpoint,
|
|
@@ -1556,7 +1530,7 @@ class ProtoClientInternal {
|
|
|
1556
1530
|
});
|
|
1557
1531
|
}
|
|
1558
1532
|
async schema(options) {
|
|
1559
|
-
const { serializeOpts,
|
|
1533
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1560
1534
|
const res = await this.service.request({
|
|
1561
1535
|
method: 'get',
|
|
1562
1536
|
baseURL: this.options.endpoint,
|
|
@@ -1579,7 +1553,7 @@ class ProtoClientInternal {
|
|
|
1579
1553
|
return object;
|
|
1580
1554
|
}
|
|
1581
1555
|
async createFile(proto, object, options) {
|
|
1582
|
-
const { serializeOpts,
|
|
1556
|
+
const { serializeOpts, uploadToken, ...opts } = options ?? {};
|
|
1583
1557
|
const { data } = object[_private.PVK].extra;
|
|
1584
1558
|
if (_.isNil(data))
|
|
1585
1559
|
throw Error('Invalid file object');
|
|
@@ -1633,7 +1607,7 @@ class ProtoClientInternal {
|
|
|
1633
1607
|
return object;
|
|
1634
1608
|
}
|
|
1635
1609
|
fileData(proto, object, options) {
|
|
1636
|
-
const { serializeOpts,
|
|
1610
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1637
1611
|
const filename = object.filename;
|
|
1638
1612
|
if (_.isNil(filename))
|
|
1639
1613
|
throw Error('Invalid filename');
|
|
@@ -1657,7 +1631,7 @@ class ProtoClientInternal {
|
|
|
1657
1631
|
});
|
|
1658
1632
|
}
|
|
1659
1633
|
async notify(proto, data, options) {
|
|
1660
|
-
const { serializeOpts,
|
|
1634
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1661
1635
|
await this.service.request({
|
|
1662
1636
|
method: 'post',
|
|
1663
1637
|
baseURL: this.options.endpoint,
|
|
@@ -1684,7 +1658,7 @@ class ProtoClientInternal {
|
|
|
1684
1658
|
if (!object.objectId)
|
|
1685
1659
|
throw Error('Invalid object');
|
|
1686
1660
|
const request = async () => {
|
|
1687
|
-
const { serializeOpts,
|
|
1661
|
+
const { serializeOpts, ...opts } = options ?? {};
|
|
1688
1662
|
const res = await this.service.request({
|
|
1689
1663
|
method: 'get',
|
|
1690
1664
|
baseURL: this.options.endpoint,
|
|
@@ -1815,4 +1789,4 @@ exports.isQuery = isQuery;
|
|
|
1815
1789
|
exports.isRole = isRole;
|
|
1816
1790
|
exports.isUser = isUser;
|
|
1817
1791
|
exports.serialize = serialize;
|
|
1818
|
-
//# sourceMappingURL=index-
|
|
1792
|
+
//# sourceMappingURL=index-CvA0tbwx.js.map
|