@avstantso/core 1.0.2 → 1.0.4

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/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.0.4] - 2026-01-16
6
+
7
+ ### Fixed
8
+
9
+ - Fix `ReferenceError: process is not defined` in Vite build by using `globalThis.Buffer` instead of `process?.versions?.node`
10
+
11
+ ## [1.0.3] - 2026-01-16
12
+
13
+ ### Fixed
14
+
15
+ - Add check before global registration to prevent "Cannot redefine property" error during Vite hot reload
16
+
5
17
  ## [1.0.2] - 2026-01-15
6
18
 
7
19
  ### Fixed
package/dist/index.js CHANGED
@@ -16,21 +16,23 @@ const avstantso$1 = {};
16
16
  // A.V.Stantso:
17
17
  // To bypass `Jest` restrictions on global variables,
18
18
  // + rewrite protection
19
- Object.defineProperties(globalThis, {
20
- avstantso: {
21
- value: avstantso$1,
22
- writable: false,
23
- configurable: false
24
- }
25
- });
19
+ if (!('avstantso' in globalThis))
20
+ Object.defineProperties(globalThis, {
21
+ avstantso: {
22
+ value: avstantso$1,
23
+ writable: false,
24
+ configurable: false
25
+ }
26
+ });
26
27
  // A.V.Stantso:
27
28
  // For use in import in modules code
28
- Object.defineProperties(globalThis, {
29
- AVStantso: {
30
- get: () => avstantso$1,
31
- configurable: false
32
- }
33
- });
29
+ if (!('AVStantso' in globalThis))
30
+ Object.defineProperties(globalThis, {
31
+ AVStantso: {
32
+ get: () => avstantso$1,
33
+ configurable: false
34
+ }
35
+ });
34
36
  {
35
37
  const structs = ['object', 'function'];
36
38
  function isStruct(obj) {
@@ -227,8 +229,8 @@ var AVStantso$2;
227
229
  empty: () => new Date(0),
228
230
  clone: (instance) => new Date(instance)
229
231
  });
230
- // Only for Node-js
231
- if (process?.versions?.node)
232
+ // Only if Buffer is available (Node.js or browser polyfill)
233
+ if (globalThis.Buffer)
232
234
  register(Buffer, {
233
235
  empty: () => Buffer.from(''),
234
236
  clone: (instance) => Buffer.from(instance)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/_global/_register.ts","../src/_global/generic.ts","../src/_global/func.ts","../src/_global/catch/_register.ts","../src/_global/atomic-objects/_register.ts","../src/_global/X.ts","../src/export.ts"],"sourcesContent":["namespace AVStantso {\n /**\n * @summary TypeScript helpers\n */\n export namespace TS {\n /**\n * @summary Object key types union supported by TypeScript\n */\n export type Key = string | number | symbol;\n\n /**\n * @summary Array of object keys types union supported by TypeScript\n * @see Key\n */\n export type Keys = readonly Key[];\n\n /**\n * @summary Record of key to key\n * @example\n * type k2k = CheckType<Key2Key<'a' | 'b' | 'c'>, { a: 'a', b: 'b', c: 'c' }>;\n */\n export type Key2Key<K extends Key> = { [K0 in K]: K0 };\n\n /**\n * @summary Any array.\\\n * ⚠ Please use for check or constraint, not for define\n * @example\n * type IsStruct<T extends object> = T extends Arr ? false : true;\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export type Arr = any[];\n\n /**\n * @summary Any readonly array.\\\n * ⚠ Please use for check or constraint, not for define\n * @example\n * type IsStruct<T extends object> = T extends ArrR ? false : true;\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export type ArrR = readonly any[];\n\n /**\n * @summary [O]ne or readonly [L]ist of `T`\n * @template T Value or item type\n */\n export type OL<T> = T | readonly T[];\n\n /**\n * @summary Function type\n * @template R Result type\n * @template P Params array\n */\n export type Func<R = unknown, P extends Arr = Arr> = (...params: P) => R;\n export namespace Func {\n //#region Is\n /**\n * @summary Check extends `T` to `Function`\n * @template T Tested type\n * @template IfTrue Result, if `T` extends `Function`\n * @template IfFalse Result, if NOT `T` extends `Function`\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@Is.Flat.Tests)\n */\n export type Is<T, IfTrue = true, IfFalse = false> = T extends undefined\n ? false\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n : T extends Function\n ? IfTrue\n : IfFalse;\n\n namespace Is {\n //#region @Is.Flat.Tests — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-object-type */\n\n type n = CheckType<Is<never>, never>;\n type ud = CheckType<Is<undefined>, false>;\n type uk = CheckType<Is<unknown>, false>;\n\n type o = CheckType<Is<{ name: string }>, false>;\n type e = CheckType<Is<{}>, false>;\n type f = CheckType<Is<() => 42>, true>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-object-type */\n //#endregion\n }\n //#endregion\n\n /**\n * @summary Function type returns `Promise`\n * @template R Result of promise type\n * @template P Params array\n */\n export type Promise<R = unknown, P extends Arr = Arr> = Func<globalThis.Promise<R>, P>;\n }\n\n /**\n * @summary Procedure type\n * @template P Params array\n */\n export type Proc<P extends Arr = Arr> = (...params: P) => void;\n export namespace Proc {\n /**\n * @summary Procedure type returns `Promise<void>`\n * @template P Params array\n */\n export type Promise<P extends Arr = Arr> = Func.Promise<void, P>;\n }\n\n /**\n * @summary Function type\n * @template I Instance type\n * @template P Params array\n */\n export type Class<I = unknown, P extends Arr = Arr> = new (...params: P) => I;\n\n\n //#region HasString\n /**\n * @summary `U` union includes `string`, not a set of literals only or other types\n * @template U Tested type union\n * @template IfTrue Result, if `T` includes `string`\n * @template IfFalse Result, if `T` NOT includes `string`\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@HasString)\n */\n export type HasString<U, IfTrue = true, IfFalse = false> =\n 'some string unused elsewhere: fd3d7784-363b-415f-817a-8575171d736f' extends U\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n ? {} extends U\n ? IfFalse\n : IfTrue\n : IfFalse;\n //#endregion\n\n namespace HasString {\n //#region @HasString — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type */\n\n type n = CheckType<HasString<never>, false>;\n type u = CheckType<HasString<undefined>, false>;\n type uk = CheckType<HasString<unknown>, false>;\n type a = CheckType<HasString<any>, false>;\n\n type r1 = CheckType<HasString<string>, true>;\n type r2 = CheckType<HasString<1 | 2 | 3>, false>;\n type r3 = CheckType<HasString<'A' | 'B' | 'C'>, false>;\n type r4 = CheckType<HasString<'A' | 'B' | 'C' | string>, true>;\n type r5 = CheckType<HasString<''>, false>;\n type r6 = CheckType<HasString<{}>, false>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type */\n //#endregion\n }\n }\n\n /**\n * @summary Interface for access to `AVStantso` namespace code through `avstantso` global property\n */\n export interface Code {\n /**\n * @summary Has `symbol` factory function\n */\n HasSymbol<Symb extends symbol>(symb: Symb): <R>(obj: unknown) => obj is { [K in Symb]: R };\n\n /**\n * @summary Recursively freeze all internals.\\\n * ⚠ Must called from applications index files after all extensions by libraries\\\n * Unavailable after call `freeze` method\n */\n freeze?(): void;\n\n /**\n * @summary `symbol` for custom freeze\n * @see freeze\n */\n symbolFreeze: symbol;\n\n /**\n * @summary External state for debugging\\\n * Unavailable after call `freeze` method\n * @description Used in tests, for separate initilizing code and test code\n * @example\n * // in debugging _global file\n * namespace AVStantso {\n * avstantso._reg.foo(() => () => {\n * if (avstantso.debugState) console.log(`foo called!`);\n *\n * return 123;\n * });\n *\n * avstantso.foo(); // don`t write to console\n * }\n *\n * // in test file\n * avstantso.debugState = true;\n *\n * avstantso.foo(); // write to console\n */\n debugState: unknown;\n }\n\n export namespace Code {\n export namespace _Reg {\n namespace Initializer {\n export type Func<T> = (code: Partial<AVStantso.Code>) => T;\n }\n\n /**\n * @summary Registration method\n * @param initializer Initializer for field `TField`\n */\n export type Method<\n T extends object,\n TField extends keyof T,\n F extends T[TField] = T[TField],\n P extends Partial<F> = Partial<F>\n > =\n // ⚠ TS.Func.Is not works in this place\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n (initializer: F extends Function\n ? Initializer.Func<F>\n : P | Initializer.Func<P>\n ) => F;\n\n export type Recursive<T extends object> =\n {\n [K in keyof T]: T[K] extends object\n ? T[K] extends TS.Arr[]\n ? Method<T, K>\n : Recursive<T[K]> & Method<T, K>\n : Method<T, K>;\n };\n }\n\n /**\n * @summary Access to registration proxy structure\n */\n export type _Reg = _Reg.Recursive<Code>;\n }\n}\n\n/**\n * @summary Access to `AVStantso` namespace code\n * @description Lowercase uses in `avstantso` for avoid errors in `Jest`\n *\n * ⚠ In all cases usage constants and functions from namespace `AVStantso`\\\n * this must be through `avstantso` global variable\n *\n * ⚠ All exported namespace `AVStantso` constants and functions\\\n * must be expressed through `avstantso` global variable\n */\nconst avstantso = {} as AVStantso.Code & {\n /**\n * @summary Access to registration proxy structure.\\\n * Unavailable after call `freeze` method\n */\n _reg?: AVStantso.Code._Reg;\n};\n\n// A.V.Stantso:\n// To bypass `Jest` restrictions on global variables,\n// + rewrite protection\nObject.defineProperties(globalThis, {\n avstantso: {\n value: avstantso,\n writable: false,\n configurable: false\n }\n});\n\n// A.V.Stantso:\n// For use in import in modules code\nObject.defineProperties(globalThis, {\n AVStantso: {\n get: () => avstantso,\n configurable: false\n }\n});\n\n{\n const structs = ['object', 'function'];\n function isStruct(obj: unknown): obj is AVStantso.TS.Func | object {\n const r = obj && (structs.indexOf(typeof obj) + 1);\n return r as unknown as boolean;\n }\n\n function HasSymbol<Symb extends symbol>(symb: Symb) {\n return <R>(obj: unknown): obj is { [K in Symb]: R } =>\n isStruct(obj) && symb in obj;\n }\n\n const symbolFreeze = Symbol('freeze');\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type Level = object & any;\n type Field = keyof Level;\n\n /**\n * @summary Register `field`. ⚠ Override not supported now\n * @this this Hierarchy level\n * @param field Field for registration\n * @param initializer Initializaton value or callback\n * @returns Current value of `field`\n */\n function regField(this: Level, field: Field, initializer: unknown) {\n if (field in this) return this[field]; // Override not supported now\n\n const value = 'function' === typeof initializer ? initializer(avstantso) : initializer;\n\n Object.defineProperty(this, field, { value, writable: false });\n\n return value;\n }\n\n /**\n * @summary `_reg` factory for one level\n * @param level Hierarchy level\n * @returns Registration proxy\n */\n function RegLevel(level: Level): unknown {\n return new Proxy(regField.bind(level), {\n get(target, p) {\n return p in target\n ? Reflect.get(target, p)\n : p in level\n ? RegLevel(level[p])\n : regField.bind(level, p);\n }\n });\n }\n\n\n function freeze(this: typeof avstantso) {\n delete this._reg;\n delete this.debugState;\n delete this.freeze;\n\n const walked = new Set();\n\n const hasCustomFreeze = HasSymbol(symbolFreeze);\n\n function deepFreeze(obj: unknown, path: string[] = []) {\n try {\n const ti = structs.indexOf(typeof obj);\n\n if (!obj || ti < 0 || walked.has(obj)) return obj;\n\n walked.add(obj);\n\n if (hasCustomFreeze<() => void>(obj))\n return obj[symbolFreeze].call(obj);\n\n const entries = Object.entries(Object.getOwnPropertyDescriptors(obj));\n // console.log('Freeze %O entries: %O',\n // path.length ? path.join('.') : 'root',\n // entries\n // );\n\n for (const [key, dsc] of entries)\n if (ti\n ? !(key in deepFreeze) // Except standard function properties\n : !Array.isArray(dsc.value)\n )\n deepFreeze(dsc.value, [...path, key]);\n\n return Object.freeze(obj);\n } catch (e) {\n throw ('path' in e) ? e : Object.assign(e, { path });\n }\n };\n\n deepFreeze(this);\n }\n\n Object.defineProperties(avstantso, {\n _reg: {\n value: RegLevel(avstantso),\n configurable: true\n },\n\n HasSymbol: {\n value: HasSymbol,\n writable: false\n },\n\n symbolFreeze: {\n value: symbolFreeze,\n writable: false\n },\n\n freeze: {\n value: freeze,\n configurable: true\n },\n\n debugState: {\n value: undefined, writable: true, configurable: true\n }\n });\n}\n","namespace AVStantso {\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export namespace Code {\n /**\n * @summary Generics utils\n */\n export namespace Generic {\n /**\n * @summary Generics validator\n * @template B Base type\n */\n export interface Validator<B = unknown> {\n /**\n * @summary Type validation function\n * @template T Type for validation\n */\n <T extends B>(value: T): T;\n\n /**\n * @summary Type validation with `Object.freeze` function\n * @template T Type for validation\n */\n withFreeze<T extends B>(value: T): Readonly<T>;\n }\n\n /**\n * @summary Cast to avoid generics problem.\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `any` or `TTo`\n */\n export interface Cast {\n /**\n * @summary Cast to avoid generics problem\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `any`\n */\n <TFrom = any>(from: TFrom): any;\n\n /**\n * @summary Cast to avoid generics problem\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `TTo`\n */\n To<TTo = any, TFrom = any>(from: TFrom): TTo;\n }\n }\n\n export interface Generic {\n /**\n * @summary Generics validator factory\n * @template B Base type\n */\n Validator<B = unknown>(): Generic.Validator<B>;\n\n /**\n * @summary Type validation function\n * @template T Type for validation\n */\n validate: Generic.Validator;\n\n /**\n * @summary Cast to avoid generics problem.\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `any` or `TTo`\n */\n Cast: Generic.Cast;\n }\n }\n\n export interface Code {\n /**\n * @summary Generics utils\n */\n Generic: Code.Generic;\n }\n\n export const Generic: Code.Generic = avstantso._reg.Generic(() => {\n function Validator<B = unknown>() {\n function validate<T extends B>(value: T): T {\n return value;\n };\n\n function validateWithFreez<T extends B>(value: T): T {\n return Object.freeze(value);\n };\n\n return Object.assign(\n validate,\n { withFreeze: validateWithFreez }\n );\n }\n\n function Cast<TFrom = any>(from: TFrom): any {\n return from as any;\n }\n\n return {\n Validator,\n validate: Validator(),\n Cast: Object.assign(\n Cast,\n { To: Cast }\n )\n };\n });\n}\n","namespace AVStantso {\n const fpd = Object.assign(\n {},\n Object.getOwnPropertyDescriptors(Function.prototype),\n Object.getOwnPropertyDescriptors(function () {})\n );\n\n export namespace TS.Func {\n /**\n * @summary `getOwnPropertyDescriptors` of basic function type\n */\n export type PropertyDescriptors = {\n [K in keyof typeof fpd as TS.HasString<K, never, K>]: (typeof fpd)[K]\n };\n\n /**\n * @summary You must exclude this keys on add new props of function\n * @example\n * type MyKeys = 'id' | 'value' | 'name';\n *\n * // ❌\n * type Is_$Bad: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in MyKeys]: (candidate: unknown) => candidate is K;\n * }\n *\n * // ✅\n * type Is_$Good: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in TS.Func.Restrict<MyKeys>]: (candidate: unknown) => candidate is K;\n * }\n */\n export type RestrictionsForExt = keyof PropertyDescriptors;\n\n /**\n * @summary Restricted keys exclude shortcut\n * @example\n * type MyKeys = 'id' | 'value' | 'name';\n *\n * // ❌\n * type Is_$Bad: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in MyKeys]: (candidate: unknown) => candidate is K;\n * }\n *\n * // ✅\n * type Is_$Good: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in TS.Func.Restrict<MyKeys>]: (candidate: unknown) => candidate is K;\n * }\n */\n export type Restrict<T extends Key> = Exclude<T, RestrictionsForExt>;\n }\n\n export namespace Code {\n /**\n * @summary Functions utilities\n */\n export interface Func {\n /**\n * @summary `getOwnPropertyDescriptors` of basic function\n */\n OwnPropertyDescriptors: AVStantso.TS.Func.PropertyDescriptors;\n\n /**\n * @summary Check can use prop for function extends\n * @param propName Ext prop name\n * @returns `true` — can add to function, else `false`\n * @example\n * const Types = ['insert', 'update', 'name'] as const;\n * type Type = typeof Types[number];\n * type Data<T extends Type> =\n * | (T extends 'insert' ? {\n * type: 'insert',\n * value: 'xxx'\n * } : never)\n * | (T extends 'update' ? {\n * type: 'update',\n * value: 15\n * } : never)\n * | (T extends 'name' ? {\n * type: 'name',\n * id: string;\n * value: string;\n * }: never);\n *\n * function _isTypeOfData<T extends Type>(type: T, data: Data<Type>): data is Data<T> {\n * return data.type === type;\n * }\n *\n * const isTypeOfData = Object.assign(\n * _isTypeOfData,\n * Object.fromEntries(\n * Types\n * // 👇\n * .filter(Func.isPropAllowed)\n * .map((type) => [\n * type,\n * _isTypeOfData.bind(null, type)\n * ])\n * )\n * )\n * @EXAMPLE(@Code.Func.isPropAllowed)\n */\n isPropAllowed: {\n (propName: TS.Key): boolean;\n\n /**\n * @summary Check can NOT use prop for function extends\n * @param propName Ext prop name\n * @returns `true` — can't add to function, else `false`\n * @EXAMPLE(@Code.Func.isPropAllowed.Not)\n */\n Not: (propName: TS.Key) => boolean\n }\n\n /**\n * @summary Function has extended properties\n * @param f Function being tested\n * @returns 'true' if has extended properties, else 'false'\n * @example\n * function a() {\n * return 14;\n * }\n * expect(isExt(a)).toBe(false);\n *\n * const aa = () => 'xyz';\n * expect(isExt(aa)).toBe(false);\n *\n * const b = Object.assign(\n * function b() {\n * return 14;\n * },\n * { x: 19 }\n * );\n * expect(isExt(b)).toBe(true);\n *\n * const bb = Object.assign(\n * () => 14,\n * { x: 19 }\n * );\n * expect(isExt(bb)).toBe(true);\n *\n * function c() {\n * return 'abc';\n * }\n * Object.defineProperties(c, { y: { value: 34 } });\n * expect(isExt(c)).toBe(true);\n *\n * const cc = () => 'abc';\n * Object.defineProperties(cc, { y: { value: 34 } });\n * expect(isExt(cc)).toBe(true);\n *\n * function d() {\n * return 'abcd';\n * }\n * d.z = 16;\n * expect(isExt(d)).toBe(true);\n *\n * const dd = () => 'abcd';\n * dd.z = 16;\n * expect(isExt(dd)).toBe(true);\n * @EXAMPLE(@Code.Func.isExt)\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n isExt(f: Function): boolean;\n\n /**\n * @summary `DEV` dynamic function named as `name`. No affect in `PROD`.\n * @param name Name\n * @param func Implementation\n * @returns In `DEV` — Named function; In `PROD` — `func`\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n Dynamic<N extends string, F extends Function>(name: N, func: F): F;\n }\n }\n\n export interface Code {\n /**\n * @summary Functions utilities\n */\n Func: Code.Func;\n }\n\n export const Func = avstantso._reg.Func( {\n OwnPropertyDescriptors: fpd,\n isPropAllowed: Object.assign(\n function isPropAllowed(propName: string): boolean {\n return !(propName in fpd);\n },\n {\n /**\n * @summary Check can NOT use prop for function extends\n */\n Not: function isPropNotAllowed(propName: string): boolean {\n return propName in fpd;\n }\n }\n ),\n isExt(f: unknown) {\n for (const k in Object.getOwnPropertyDescriptors(f))\n if (!(k in fpd))\n return true;\n\n return false;\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n Dynamic<N extends string, F extends Function>(\n name: N,\n func: F\n ): F {\n return !process.env.IS_DEV\n ? func\n : new Function(\n 'func',\n `return function ${name}(...params){ return func(...params); };`\n )(func);\n }\n } as Code.Func);\n}\n","namespace AVStantso {\n export namespace Catch {\n /**\n * @summary Catch handler\n * @param error Error\n */\n export type Handler<T = unknown> = (error: T) => unknown;\n\n export namespace Core {\n /**\n * @summary `Core` catch handler version\n * @param error Error\n */\n export type Handler = Catch.Handler;\n }\n }\n\n /**\n * @summary Common catch method for errors\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface Catch extends Catch.Core.Handler { }\n\n export namespace Code {\n export namespace Catch {\n /**\n * @summary Catch filter handler\n * @param error Error\n */\n export type Filter<T = unknown> = (error: T) => boolean;\n }\n\n /**\n * @summary Catch helpers utility\n */\n export interface Catch extends AVStantso.Catch {\n _addFilter(...filters: [Catch.Filter, ...Catch.Filter[]]): void;\n _default: AVStantso.Catch.Handler;\n }\n }\n\n export interface Code {\n /**\n * @summary Catch helpers utility\n */\n Catch: Code.Catch;\n }\n\n export const Catch = avstantso._reg.Catch(() => {\n type Filter = Code.Catch.Filter;\n\n const catchFilters: Filter[] = [];\n\n function DoCatch(error: unknown): unknown {\n return catchFilters.length && catchFilters.some((f) => f(error))\n ? undefined\n : DoCatch._default(error);\n }\n\n DoCatch._addFilter = (...filters: [Filter, ...Filter[]]): void => {\n catchFilters.push(...filters);\n };\n\n DoCatch._default = (error: unknown) => {\n if (error instanceof Error)\n throw error;\n else\n throw new Error(`${error}`);\n };\n\n return DoCatch;\n });\n}\n","namespace AVStantso {\n /**\n * @summary Interface registry of atomic objects types\n */\n export namespace AtomicObjects {\n /**\n * @summary Atomic object class options\n */\n export interface Options<TClass extends TS.Class = TS.Class> {\n empty?(): InstanceType<TClass>;\n\n /**\n * @summary Clone rule for atomic object\n */\n clone(instance: InstanceType<TClass>): InstanceType<TClass>\n }\n\n /**\n * @summary Atomic object class descriptor\n */\n export type Descriptor<TClass extends TS.Class = TS.Class> =\n { Class: TClass } & Options<TClass>;\n }\n\n export interface AtomicObjects {\n Date: Date;\n\n /**\n * @requires `'buffer'` library required for browser and register manually.\\\n * For Node-js: automatic register builtin class `Buffer`\n */\n Buffer: Buffer;\n }\n\n export namespace Code {\n /**\n * @summary Atomic objects registry management\n */\n export interface AtomicObjects {\n /**\n * @summary Readonly map of registered classes of atomic objects and class options\n */\n classes: ReadonlyMap<TS.Class, AVStantso.AtomicObjects.Options>;\n\n /**\n * @summary Class registration of atomic object and add options\n * @param atomicObjectClass Class of atomic object\n * @param options Atomic object class options\n */\n register<TClass extends TS.Class>(\n atomicObjectClass: TClass,\n options : AVStantso.AtomicObjects.Options<TClass>\n ): void;\n\n /**\n * @summary Check object is atomic. 'false' for non-object values\n * @param testObject Tested object\n * @returns 'true' is object is atomic, else `false`\n */\n is(testObject: object | unknown): boolean;\n\n /**\n * @summary Get atomic object descriptor or `undefined`, if not class name, object not atomic or non-object value\n * @param testObjectOrClassName Tested object or class name\n * @returns 'AtomicObjects.AVStantso.AtomicObjects.Descriptor' if object is atomic or find class name, else `undefined`\n * @see AVStantso.AtomicObjects.Descriptor\n */\n descriptor: {\n /**\n * @summary Get atomic object descriptor or `undefined`, if object not atomic or non-object value\n * @param testObject Tested object\n * @returns 'AtomicObjects.AVStantso.AtomicObjects.Descriptor' if object is atomic, else `undefined`\n * @see AVStantso.AtomicObjects.Descriptor\n */\n (testObject: object | unknown): AVStantso.AtomicObjects.Descriptor;\n\n /**\n * @summary Get atomic object descriptor or `undefined`, if class name not found\n * @param className Class name\n * @returns 'AtomicObjects.AVStantso.AtomicObjects.Descriptor' if find class name, else `undefined`\n * @see AVStantso.AtomicObjects.Descriptor\n */\n (className: string): AVStantso.AtomicObjects.Descriptor;\n }\n }\n }\n\n export interface Code {\n /**\n * @summary Atomic objects registry management\n */\n AtomicObjects: Code.AtomicObjects;\n }\n\n export const AtomicObjects = avstantso._reg.AtomicObjects(() => {\n const classes = new Map<TS.Class, AVStantso.AtomicObjects.Options>();\n\n function register<TClass extends TS.Class>(\n atomicObjectClass: TClass,\n options : AVStantso.AtomicObjects.Options<TClass>\n ) {\n classes.set(atomicObjectClass, options);\n }\n\n function is(testObject: object): boolean {\n if ('object' === typeof testObject)\n for (const Class of classes.keys())\n if (testObject instanceof Class) return true;\n\n return false;\n }\n\n function descriptor(param: object | string): AVStantso.AtomicObjects.Descriptor {\n const i = ['object', 'string'].indexOf(typeof param);\n\n if (i >= 0)\n for (const [Class, options] of classes.entries())\n if (i ? param === Class.name : param instanceof Class)\n return { Class, ...options };\n }\n\n register(Date, {\n empty: () => new Date(0),\n clone: (instance) => new Date(instance)\n });\n\n // Only for Node-js\n if (process?.versions?.node) register(Buffer, {\n empty: () => Buffer.from(''),\n clone: (instance) => Buffer.from(instance)\n });\n\n return { classes, register, is, descriptor } as AVStantso.Code.AtomicObjects;\n });\n}\n","namespace AVStantso {\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export interface Code {\n /**\n * @summary Not `X`, but an oblique cross `❌`. It can be fed to `Promise.then` / `Promise.catch` instead of an empty value\n * @returns `undefined`\n */\n X<T = any>(): T;\n }\n\n /**\n * @summary Not `X`, but an oblique cross `❌`. It can be fed to `Promise.then` / `Promise.catch` instead of an empty value\n * @returns `undefined`\n */\n export const X = avstantso._reg.X(() => function X(){} as Code['X']);\n}\n","import Func = AVStantso.Func;\nimport X = AVStantso.X;\nimport Generic = AVStantso.Generic;\nexport { Func, X, Generic };\n"],"names":["avstantso","AVStantso"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/_global/_register.ts","../src/_global/generic.ts","../src/_global/func.ts","../src/_global/catch/_register.ts","../src/_global/atomic-objects/_register.ts","../src/_global/X.ts","../src/export.ts"],"sourcesContent":["namespace AVStantso {\n /**\n * @summary TypeScript helpers\n */\n export namespace TS {\n /**\n * @summary Object key types union supported by TypeScript\n */\n export type Key = string | number | symbol;\n\n /**\n * @summary Array of object keys types union supported by TypeScript\n * @see Key\n */\n export type Keys = readonly Key[];\n\n /**\n * @summary Record of key to key\n * @example\n * type k2k = CheckType<Key2Key<'a' | 'b' | 'c'>, { a: 'a', b: 'b', c: 'c' }>;\n */\n export type Key2Key<K extends Key> = { [K0 in K]: K0 };\n\n /**\n * @summary Any array.\\\n * ⚠ Please use for check or constraint, not for define\n * @example\n * type IsStruct<T extends object> = T extends Arr ? false : true;\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export type Arr = any[];\n\n /**\n * @summary Any readonly array.\\\n * ⚠ Please use for check or constraint, not for define\n * @example\n * type IsStruct<T extends object> = T extends ArrR ? false : true;\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export type ArrR = readonly any[];\n\n /**\n * @summary [O]ne or readonly [L]ist of `T`\n * @template T Value or item type\n */\n export type OL<T> = T | readonly T[];\n\n /**\n * @summary Function type\n * @template R Result type\n * @template P Params array\n */\n export type Func<R = unknown, P extends Arr = Arr> = (...params: P) => R;\n export namespace Func {\n //#region Is\n /**\n * @summary Check extends `T` to `Function`\n * @template T Tested type\n * @template IfTrue Result, if `T` extends `Function`\n * @template IfFalse Result, if NOT `T` extends `Function`\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@Is.Flat.Tests)\n */\n export type Is<T, IfTrue = true, IfFalse = false> = T extends undefined\n ? false\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n : T extends Function\n ? IfTrue\n : IfFalse;\n\n namespace Is {\n //#region @Is.Flat.Tests — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-object-type */\n\n type n = CheckType<Is<never>, never>;\n type ud = CheckType<Is<undefined>, false>;\n type uk = CheckType<Is<unknown>, false>;\n\n type o = CheckType<Is<{ name: string }>, false>;\n type e = CheckType<Is<{}>, false>;\n type f = CheckType<Is<() => 42>, true>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-object-type */\n //#endregion\n }\n //#endregion\n\n /**\n * @summary Function type returns `Promise`\n * @template R Result of promise type\n * @template P Params array\n */\n export type Promise<R = unknown, P extends Arr = Arr> = Func<globalThis.Promise<R>, P>;\n }\n\n /**\n * @summary Procedure type\n * @template P Params array\n */\n export type Proc<P extends Arr = Arr> = (...params: P) => void;\n export namespace Proc {\n /**\n * @summary Procedure type returns `Promise<void>`\n * @template P Params array\n */\n export type Promise<P extends Arr = Arr> = Func.Promise<void, P>;\n }\n\n /**\n * @summary Function type\n * @template I Instance type\n * @template P Params array\n */\n export type Class<I = unknown, P extends Arr = Arr> = new (...params: P) => I;\n\n\n //#region HasString\n /**\n * @summary `U` union includes `string`, not a set of literals only or other types\n * @template U Tested type union\n * @template IfTrue Result, if `T` includes `string`\n * @template IfFalse Result, if `T` NOT includes `string`\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@HasString)\n */\n export type HasString<U, IfTrue = true, IfFalse = false> =\n 'some string unused elsewhere: fd3d7784-363b-415f-817a-8575171d736f' extends U\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n ? {} extends U\n ? IfFalse\n : IfTrue\n : IfFalse;\n //#endregion\n\n namespace HasString {\n //#region @HasString — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type */\n\n type n = CheckType<HasString<never>, false>;\n type u = CheckType<HasString<undefined>, false>;\n type uk = CheckType<HasString<unknown>, false>;\n type a = CheckType<HasString<any>, false>;\n\n type r1 = CheckType<HasString<string>, true>;\n type r2 = CheckType<HasString<1 | 2 | 3>, false>;\n type r3 = CheckType<HasString<'A' | 'B' | 'C'>, false>;\n type r4 = CheckType<HasString<'A' | 'B' | 'C' | string>, true>;\n type r5 = CheckType<HasString<''>, false>;\n type r6 = CheckType<HasString<{}>, false>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type */\n //#endregion\n }\n }\n\n /**\n * @summary Interface for access to `AVStantso` namespace code through `avstantso` global property\n */\n export interface Code {\n /**\n * @summary Has `symbol` factory function\n */\n HasSymbol<Symb extends symbol>(symb: Symb): <R>(obj: unknown) => obj is { [K in Symb]: R };\n\n /**\n * @summary Recursively freeze all internals.\\\n * ⚠ Must called from applications index files after all extensions by libraries\\\n * Unavailable after call `freeze` method\n */\n freeze?(): void;\n\n /**\n * @summary `symbol` for custom freeze\n * @see freeze\n */\n symbolFreeze: symbol;\n\n /**\n * @summary External state for debugging\\\n * Unavailable after call `freeze` method\n * @description Used in tests, for separate initilizing code and test code\n * @example\n * // in debugging _global file\n * namespace AVStantso {\n * avstantso._reg.foo(() => () => {\n * if (avstantso.debugState) console.log(`foo called!`);\n *\n * return 123;\n * });\n *\n * avstantso.foo(); // don`t write to console\n * }\n *\n * // in test file\n * avstantso.debugState = true;\n *\n * avstantso.foo(); // write to console\n */\n debugState: unknown;\n }\n\n export namespace Code {\n export namespace _Reg {\n namespace Initializer {\n export type Func<T> = (code: Partial<AVStantso.Code>) => T;\n }\n\n /**\n * @summary Registration method\n * @param initializer Initializer for field `TField`\n */\n export type Method<\n T extends object,\n TField extends keyof T,\n F extends T[TField] = T[TField],\n P extends Partial<F> = Partial<F>\n > =\n // ⚠ TS.Func.Is not works in this place\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n (initializer: F extends Function\n ? Initializer.Func<F>\n : P | Initializer.Func<P>\n ) => F;\n\n export type Recursive<T extends object> =\n {\n [K in keyof T]: T[K] extends object\n ? T[K] extends TS.Arr[]\n ? Method<T, K>\n : Recursive<T[K]> & Method<T, K>\n : Method<T, K>;\n };\n }\n\n /**\n * @summary Access to registration proxy structure\n */\n export type _Reg = _Reg.Recursive<Code>;\n }\n}\n\n/**\n * @summary Access to `AVStantso` namespace code\n * @description Lowercase uses in `avstantso` for avoid errors in `Jest`\n *\n * ⚠ In all cases usage constants and functions from namespace `AVStantso`\\\n * this must be through `avstantso` global variable\n *\n * ⚠ All exported namespace `AVStantso` constants and functions\\\n * must be expressed through `avstantso` global variable\n */\nconst avstantso = {} as AVStantso.Code & {\n /**\n * @summary Access to registration proxy structure.\\\n * Unavailable after call `freeze` method\n */\n _reg?: AVStantso.Code._Reg;\n};\n\n// A.V.Stantso:\n// To bypass `Jest` restrictions on global variables,\n// + rewrite protection\nif (!('avstantso' in globalThis))\n Object.defineProperties(globalThis, {\n avstantso: {\n value: avstantso,\n writable: false,\n configurable: false\n }\n });\n\n// A.V.Stantso:\n// For use in import in modules code\nif (!('AVStantso' in globalThis))\n Object.defineProperties(globalThis, {\n AVStantso: {\n get: () => avstantso,\n configurable: false\n }\n });\n\n{\n const structs = ['object', 'function'];\n function isStruct(obj: unknown): obj is AVStantso.TS.Func | object {\n const r = obj && (structs.indexOf(typeof obj) + 1);\n return r as unknown as boolean;\n }\n\n function HasSymbol<Symb extends symbol>(symb: Symb) {\n return <R>(obj: unknown): obj is { [K in Symb]: R } =>\n isStruct(obj) && symb in obj;\n }\n\n const symbolFreeze = Symbol('freeze');\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type Level = object & any;\n type Field = keyof Level;\n\n /**\n * @summary Register `field`. ⚠ Override not supported now\n * @this this Hierarchy level\n * @param field Field for registration\n * @param initializer Initializaton value or callback\n * @returns Current value of `field`\n */\n function regField(this: Level, field: Field, initializer: unknown) {\n if (field in this) return this[field]; // Override not supported now\n\n const value = 'function' === typeof initializer ? initializer(avstantso) : initializer;\n\n Object.defineProperty(this, field, { value, writable: false });\n\n return value;\n }\n\n /**\n * @summary `_reg` factory for one level\n * @param level Hierarchy level\n * @returns Registration proxy\n */\n function RegLevel(level: Level): unknown {\n return new Proxy(regField.bind(level), {\n get(target, p) {\n return p in target\n ? Reflect.get(target, p)\n : p in level\n ? RegLevel(level[p])\n : regField.bind(level, p);\n }\n });\n }\n\n\n function freeze(this: typeof avstantso) {\n delete this._reg;\n delete this.debugState;\n delete this.freeze;\n\n const walked = new Set();\n\n const hasCustomFreeze = HasSymbol(symbolFreeze);\n\n function deepFreeze(obj: unknown, path: string[] = []) {\n try {\n const ti = structs.indexOf(typeof obj);\n\n if (!obj || ti < 0 || walked.has(obj)) return obj;\n\n walked.add(obj);\n\n if (hasCustomFreeze<() => void>(obj))\n return obj[symbolFreeze].call(obj);\n\n const entries = Object.entries(Object.getOwnPropertyDescriptors(obj));\n // console.log('Freeze %O entries: %O',\n // path.length ? path.join('.') : 'root',\n // entries\n // );\n\n for (const [key, dsc] of entries)\n if (ti\n ? !(key in deepFreeze) // Except standard function properties\n : !Array.isArray(dsc.value)\n )\n deepFreeze(dsc.value, [...path, key]);\n\n return Object.freeze(obj);\n } catch (e) {\n throw ('path' in e) ? e : Object.assign(e, { path });\n }\n };\n\n deepFreeze(this);\n }\n\n Object.defineProperties(avstantso, {\n _reg: {\n value: RegLevel(avstantso),\n configurable: true\n },\n\n HasSymbol: {\n value: HasSymbol,\n writable: false\n },\n\n symbolFreeze: {\n value: symbolFreeze,\n writable: false\n },\n\n freeze: {\n value: freeze,\n configurable: true\n },\n\n debugState: {\n value: undefined, writable: true, configurable: true\n }\n });\n}\n","namespace AVStantso {\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export namespace Code {\n /**\n * @summary Generics utils\n */\n export namespace Generic {\n /**\n * @summary Generics validator\n * @template B Base type\n */\n export interface Validator<B = unknown> {\n /**\n * @summary Type validation function\n * @template T Type for validation\n */\n <T extends B>(value: T): T;\n\n /**\n * @summary Type validation with `Object.freeze` function\n * @template T Type for validation\n */\n withFreeze<T extends B>(value: T): Readonly<T>;\n }\n\n /**\n * @summary Cast to avoid generics problem.\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `any` or `TTo`\n */\n export interface Cast {\n /**\n * @summary Cast to avoid generics problem\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `any`\n */\n <TFrom = any>(from: TFrom): any;\n\n /**\n * @summary Cast to avoid generics problem\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `TTo`\n */\n To<TTo = any, TFrom = any>(from: TFrom): TTo;\n }\n }\n\n export interface Generic {\n /**\n * @summary Generics validator factory\n * @template B Base type\n */\n Validator<B = unknown>(): Generic.Validator<B>;\n\n /**\n * @summary Type validation function\n * @template T Type for validation\n */\n validate: Generic.Validator;\n\n /**\n * @summary Cast to avoid generics problem.\\\n * ⛔ Use with caution, risk of bad code\n * @param from as TFrom\n * @returns `from` as `any` or `TTo`\n */\n Cast: Generic.Cast;\n }\n }\n\n export interface Code {\n /**\n * @summary Generics utils\n */\n Generic: Code.Generic;\n }\n\n export const Generic: Code.Generic = avstantso._reg.Generic(() => {\n function Validator<B = unknown>() {\n function validate<T extends B>(value: T): T {\n return value;\n };\n\n function validateWithFreez<T extends B>(value: T): T {\n return Object.freeze(value);\n };\n\n return Object.assign(\n validate,\n { withFreeze: validateWithFreez }\n );\n }\n\n function Cast<TFrom = any>(from: TFrom): any {\n return from as any;\n }\n\n return {\n Validator,\n validate: Validator(),\n Cast: Object.assign(\n Cast,\n { To: Cast }\n )\n };\n });\n}\n","namespace AVStantso {\n const fpd = Object.assign(\n {},\n Object.getOwnPropertyDescriptors(Function.prototype),\n Object.getOwnPropertyDescriptors(function () {})\n );\n\n export namespace TS.Func {\n /**\n * @summary `getOwnPropertyDescriptors` of basic function type\n */\n export type PropertyDescriptors = {\n [K in keyof typeof fpd as TS.HasString<K, never, K>]: (typeof fpd)[K]\n };\n\n /**\n * @summary You must exclude this keys on add new props of function\n * @example\n * type MyKeys = 'id' | 'value' | 'name';\n *\n * // ❌\n * type Is_$Bad: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in MyKeys]: (candidate: unknown) => candidate is K;\n * }\n *\n * // ✅\n * type Is_$Good: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in TS.Func.Restrict<MyKeys>]: (candidate: unknown) => candidate is K;\n * }\n */\n export type RestrictionsForExt = keyof PropertyDescriptors;\n\n /**\n * @summary Restricted keys exclude shortcut\n * @example\n * type MyKeys = 'id' | 'value' | 'name';\n *\n * // ❌\n * type Is_$Bad: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in MyKeys]: (candidate: unknown) => candidate is K;\n * }\n *\n * // ✅\n * type Is_$Good: (<T extends MyKeys>(k: T, candidate: unknown) => candidate is T) & {\n * [K in TS.Func.Restrict<MyKeys>]: (candidate: unknown) => candidate is K;\n * }\n */\n export type Restrict<T extends Key> = Exclude<T, RestrictionsForExt>;\n }\n\n export namespace Code {\n /**\n * @summary Functions utilities\n */\n export interface Func {\n /**\n * @summary `getOwnPropertyDescriptors` of basic function\n */\n OwnPropertyDescriptors: AVStantso.TS.Func.PropertyDescriptors;\n\n /**\n * @summary Check can use prop for function extends\n * @param propName Ext prop name\n * @returns `true` — can add to function, else `false`\n * @example\n * const Types = ['insert', 'update', 'name'] as const;\n * type Type = typeof Types[number];\n * type Data<T extends Type> =\n * | (T extends 'insert' ? {\n * type: 'insert',\n * value: 'xxx'\n * } : never)\n * | (T extends 'update' ? {\n * type: 'update',\n * value: 15\n * } : never)\n * | (T extends 'name' ? {\n * type: 'name',\n * id: string;\n * value: string;\n * }: never);\n *\n * function _isTypeOfData<T extends Type>(type: T, data: Data<Type>): data is Data<T> {\n * return data.type === type;\n * }\n *\n * const isTypeOfData = Object.assign(\n * _isTypeOfData,\n * Object.fromEntries(\n * Types\n * // 👇\n * .filter(Func.isPropAllowed)\n * .map((type) => [\n * type,\n * _isTypeOfData.bind(null, type)\n * ])\n * )\n * )\n * @EXAMPLE(@Code.Func.isPropAllowed)\n */\n isPropAllowed: {\n (propName: TS.Key): boolean;\n\n /**\n * @summary Check can NOT use prop for function extends\n * @param propName Ext prop name\n * @returns `true` — can't add to function, else `false`\n * @EXAMPLE(@Code.Func.isPropAllowed.Not)\n */\n Not: (propName: TS.Key) => boolean\n }\n\n /**\n * @summary Function has extended properties\n * @param f Function being tested\n * @returns 'true' if has extended properties, else 'false'\n * @example\n * function a() {\n * return 14;\n * }\n * expect(isExt(a)).toBe(false);\n *\n * const aa = () => 'xyz';\n * expect(isExt(aa)).toBe(false);\n *\n * const b = Object.assign(\n * function b() {\n * return 14;\n * },\n * { x: 19 }\n * );\n * expect(isExt(b)).toBe(true);\n *\n * const bb = Object.assign(\n * () => 14,\n * { x: 19 }\n * );\n * expect(isExt(bb)).toBe(true);\n *\n * function c() {\n * return 'abc';\n * }\n * Object.defineProperties(c, { y: { value: 34 } });\n * expect(isExt(c)).toBe(true);\n *\n * const cc = () => 'abc';\n * Object.defineProperties(cc, { y: { value: 34 } });\n * expect(isExt(cc)).toBe(true);\n *\n * function d() {\n * return 'abcd';\n * }\n * d.z = 16;\n * expect(isExt(d)).toBe(true);\n *\n * const dd = () => 'abcd';\n * dd.z = 16;\n * expect(isExt(dd)).toBe(true);\n * @EXAMPLE(@Code.Func.isExt)\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n isExt(f: Function): boolean;\n\n /**\n * @summary `DEV` dynamic function named as `name`. No affect in `PROD`.\n * @param name Name\n * @param func Implementation\n * @returns In `DEV` — Named function; In `PROD` — `func`\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n Dynamic<N extends string, F extends Function>(name: N, func: F): F;\n }\n }\n\n export interface Code {\n /**\n * @summary Functions utilities\n */\n Func: Code.Func;\n }\n\n export const Func = avstantso._reg.Func( {\n OwnPropertyDescriptors: fpd,\n isPropAllowed: Object.assign(\n function isPropAllowed(propName: string): boolean {\n return !(propName in fpd);\n },\n {\n /**\n * @summary Check can NOT use prop for function extends\n */\n Not: function isPropNotAllowed(propName: string): boolean {\n return propName in fpd;\n }\n }\n ),\n isExt(f: unknown) {\n for (const k in Object.getOwnPropertyDescriptors(f))\n if (!(k in fpd))\n return true;\n\n return false;\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n Dynamic<N extends string, F extends Function>(\n name: N,\n func: F\n ): F {\n return !process.env.IS_DEV\n ? func\n : new Function(\n 'func',\n `return function ${name}(...params){ return func(...params); };`\n )(func);\n }\n } as Code.Func);\n}\n","namespace AVStantso {\n export namespace Catch {\n /**\n * @summary Catch handler\n * @param error Error\n */\n export type Handler<T = unknown> = (error: T) => unknown;\n\n export namespace Core {\n /**\n * @summary `Core` catch handler version\n * @param error Error\n */\n export type Handler = Catch.Handler;\n }\n }\n\n /**\n * @summary Common catch method for errors\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface Catch extends Catch.Core.Handler { }\n\n export namespace Code {\n export namespace Catch {\n /**\n * @summary Catch filter handler\n * @param error Error\n */\n export type Filter<T = unknown> = (error: T) => boolean;\n }\n\n /**\n * @summary Catch helpers utility\n */\n export interface Catch extends AVStantso.Catch {\n _addFilter(...filters: [Catch.Filter, ...Catch.Filter[]]): void;\n _default: AVStantso.Catch.Handler;\n }\n }\n\n export interface Code {\n /**\n * @summary Catch helpers utility\n */\n Catch: Code.Catch;\n }\n\n export const Catch = avstantso._reg.Catch(() => {\n type Filter = Code.Catch.Filter;\n\n const catchFilters: Filter[] = [];\n\n function DoCatch(error: unknown): unknown {\n return catchFilters.length && catchFilters.some((f) => f(error))\n ? undefined\n : DoCatch._default(error);\n }\n\n DoCatch._addFilter = (...filters: [Filter, ...Filter[]]): void => {\n catchFilters.push(...filters);\n };\n\n DoCatch._default = (error: unknown) => {\n if (error instanceof Error)\n throw error;\n else\n throw new Error(`${error}`);\n };\n\n return DoCatch;\n });\n}\n","namespace AVStantso {\n /**\n * @summary Interface registry of atomic objects types\n */\n export namespace AtomicObjects {\n /**\n * @summary Atomic object class options\n */\n export interface Options<TClass extends TS.Class = TS.Class> {\n empty?(): InstanceType<TClass>;\n\n /**\n * @summary Clone rule for atomic object\n */\n clone(instance: InstanceType<TClass>): InstanceType<TClass>\n }\n\n /**\n * @summary Atomic object class descriptor\n */\n export type Descriptor<TClass extends TS.Class = TS.Class> =\n { Class: TClass } & Options<TClass>;\n }\n\n export interface AtomicObjects {\n Date: Date;\n\n /**\n * @requires `'buffer'` library required for browser and register manually.\\\n * For Node-js: automatic register builtin class `Buffer`\n */\n Buffer: Buffer;\n }\n\n export namespace Code {\n /**\n * @summary Atomic objects registry management\n */\n export interface AtomicObjects {\n /**\n * @summary Readonly map of registered classes of atomic objects and class options\n */\n classes: ReadonlyMap<TS.Class, AVStantso.AtomicObjects.Options>;\n\n /**\n * @summary Class registration of atomic object and add options\n * @param atomicObjectClass Class of atomic object\n * @param options Atomic object class options\n */\n register<TClass extends TS.Class>(\n atomicObjectClass: TClass,\n options : AVStantso.AtomicObjects.Options<TClass>\n ): void;\n\n /**\n * @summary Check object is atomic. 'false' for non-object values\n * @param testObject Tested object\n * @returns 'true' is object is atomic, else `false`\n */\n is(testObject: object | unknown): boolean;\n\n /**\n * @summary Get atomic object descriptor or `undefined`, if not class name, object not atomic or non-object value\n * @param testObjectOrClassName Tested object or class name\n * @returns 'AtomicObjects.AVStantso.AtomicObjects.Descriptor' if object is atomic or find class name, else `undefined`\n * @see AVStantso.AtomicObjects.Descriptor\n */\n descriptor: {\n /**\n * @summary Get atomic object descriptor or `undefined`, if object not atomic or non-object value\n * @param testObject Tested object\n * @returns 'AtomicObjects.AVStantso.AtomicObjects.Descriptor' if object is atomic, else `undefined`\n * @see AVStantso.AtomicObjects.Descriptor\n */\n (testObject: object | unknown): AVStantso.AtomicObjects.Descriptor;\n\n /**\n * @summary Get atomic object descriptor or `undefined`, if class name not found\n * @param className Class name\n * @returns 'AtomicObjects.AVStantso.AtomicObjects.Descriptor' if find class name, else `undefined`\n * @see AVStantso.AtomicObjects.Descriptor\n */\n (className: string): AVStantso.AtomicObjects.Descriptor;\n }\n }\n }\n\n export interface Code {\n /**\n * @summary Atomic objects registry management\n */\n AtomicObjects: Code.AtomicObjects;\n }\n\n export const AtomicObjects = avstantso._reg.AtomicObjects(() => {\n const classes = new Map<TS.Class, AVStantso.AtomicObjects.Options>();\n\n function register<TClass extends TS.Class>(\n atomicObjectClass: TClass,\n options : AVStantso.AtomicObjects.Options<TClass>\n ) {\n classes.set(atomicObjectClass, options);\n }\n\n function is(testObject: object): boolean {\n if ('object' === typeof testObject)\n for (const Class of classes.keys())\n if (testObject instanceof Class) return true;\n\n return false;\n }\n\n function descriptor(param: object | string): AVStantso.AtomicObjects.Descriptor {\n const i = ['object', 'string'].indexOf(typeof param);\n\n if (i >= 0)\n for (const [Class, options] of classes.entries())\n if (i ? param === Class.name : param instanceof Class)\n return { Class, ...options };\n }\n\n register(Date, {\n empty: () => new Date(0),\n clone: (instance) => new Date(instance)\n });\n\n // Only if Buffer is available (Node.js or browser polyfill)\n if (globalThis.Buffer) register(Buffer, {\n empty: () => Buffer.from(''),\n clone: (instance) => Buffer.from(instance)\n });\n\n return { classes, register, is, descriptor } as AVStantso.Code.AtomicObjects;\n });\n}\n","namespace AVStantso {\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export interface Code {\n /**\n * @summary Not `X`, but an oblique cross `❌`. It can be fed to `Promise.then` / `Promise.catch` instead of an empty value\n * @returns `undefined`\n */\n X<T = any>(): T;\n }\n\n /**\n * @summary Not `X`, but an oblique cross `❌`. It can be fed to `Promise.then` / `Promise.catch` instead of an empty value\n * @returns `undefined`\n */\n export const X = avstantso._reg.X(() => function X(){} as Code['X']);\n}\n","import Func = AVStantso.Func;\nimport X = AVStantso.X;\nimport Generic = AVStantso.Generic;\nexport { Func, X, Generic };\n"],"names":["avstantso","AVStantso"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@avstantso/core",
3
3
  "license": "MIT",
4
4
  "author": "avstantso",
5
- "version": "1.0.2",
5
+ "version": "1.0.4",
6
6
  "description": "Core global AVStantso singleton",
7
7
  "keywords": [
8
8
  "AVStantso singleton"