@avstantso/utils-misc 1.2.1 → 1.2.3

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
@@ -1,6 +1,20 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## [1.2.3] - 2026-01-31
5
+
6
+ ### Changed
7
+
8
+ - Updated `@avstantso/ts` dependency (Updated @avstantso/ts dependency (fix String, Filter))
9
+
10
+
11
+ ## [1.2.2] - 2026-01-29
12
+
13
+ ### Changed
14
+
15
+ - CustomStringType return type fix
16
+
17
+
4
18
  ## [1.2.1] - 2026-01-18
5
19
 
6
20
  ### Changed
@@ -58,7 +58,7 @@ declare namespace AVStantso {
58
58
  /**
59
59
  * @summary Type by metadata
60
60
  */
61
- type Type<M extends Metadata> = TS.Opaque<M['Name'], string>;
61
+ type Type<M extends Metadata, R extends TS.Opaque<M['Name'], string> & {} = TS.Opaque<M['Name'], string> & {}> = R;
62
62
  /**
63
63
  * @summary Type controller
64
64
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/_global/instance-proxy.ts","../src/_global/indirect-new.ts","../src/_global/async-access-lock.ts","../src/_global/external-promise.ts","../src/_global/custom-string-type.ts","../src/_global/cases.ts","../src/_global/html-utils.ts","../src/_global/date-utils.ts","../src/export.ts"],"sourcesContent":["namespace AVStantso {\n const symbolInstance = Symbol('instance');\n const symbolSetInstance = Symbol('setInstance');\n\n export namespace InstanceProxy {\n export type Instance = object | TS.Func;\n\n export type Wrap<TInstance extends Instance = Instance, R = unknown> = <\n P extends keyof TInstance\n >(\n instance: () => TInstance,\n p: P\n ) => R;\n\n export namespace Config {\n export type Options<TInstance extends Instance = Instance> = {\n original: TInstance;\n wrap?: Wrap<TInstance>;\n };\n }\n export type Config = NodeJS.Dict<Instance | Config.Options>;\n\n export type Proxy<TInstance extends Instance = Instance> = TInstance\n & Proxy.Control<TInstance>;\n\n export namespace Proxy {\n export type Control<TInstance extends Instance = Instance> = {\n [symbolInstance]: TInstance;\n [symbolSetInstance](instance: TInstance): void;\n };\n }\n\n export type Result<TConfig extends Config> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof TConfig]: TConfig[K] extends Config.Options<any>\n ? Proxy<TConfig[K]['original']>\n : Proxy<TConfig[K]>;\n };\n\n export type Key<TProxy extends Proxy> = TProxy extends Proxy<infer TInstance>\n ? keyof TInstance\n : never;\n }\n\n export namespace Code {\n type Instance = AVStantso.InstanceProxy.Instance;\n\n /**\n * @summary Create instances proxies with old linking by `setInstance`\n * @param config Original instances map\n */\n export namespace InstanceProxy {\n /**\n * @summary Create instance proxy with old linking by `setInstance`\n * @param original Original instance\n * @param name Original name\n */\n export type Make = <TInstance extends Instance>(\n original: TInstance,\n name?: string,\n wrap?: AVStantso.InstanceProxy.Wrap<TInstance>\n ) => AVStantso.InstanceProxy.Proxy<TInstance>;\n }\n\n export interface InstanceProxy {\n /**\n * @summary Create instances proxies with old linking by `setInstance`\n * @param config Original instances map\n */\n <TConfig extends AVStantso.InstanceProxy.Config>(\n config: TConfig,\n generalWrap?: AVStantso.InstanceProxy.Wrap\n ): AVStantso.InstanceProxy.Result<TConfig>;\n\n /**\n * @summary Create instance proxy with old linking by `setInstance`\n * @param original Original instance\n * @param name Original name\n */\n Make: InstanceProxy.Make;\n\n /**\n * @summary Create instance proxy config options\n * @param original Original instance\n * @param wrap Wrap property callback\n */\n Options<TInstance extends Instance = Instance>(\n original: TInstance,\n wrap?: AVStantso.InstanceProxy.Wrap<TInstance>\n ): AVStantso.InstanceProxy.Config.Options<TInstance>;\n\n /**\n * @summary General behavior of all `InstanceProxy` instances.\\\n * If `true` — must called `setInstance` for every `InstanceProxy`\n * @default true\n */\n strict: boolean;\n\n /**\n * @summary Control symbols\n */\n Symbol: {\n /**\n * @summary `instance` symbol\n */\n instance: symbol;\n\n /**\n * @summary `setInstance` symbol\n */\n setInstance: symbol;\n },\n\n /**\n * @summary Get `instance` for `proxy`\n */\n GetInstance<TInstance extends Instance = Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>,\n ): TInstance;\n\n /**\n * @summary Set `instance` for `proxy`\n */\n SetInstance<TInstance extends Instance = Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>,\n instance: TInstance\n ): TInstance;\n }\n }\n\n export interface Code {\n /**\n * @summary Create instances proxies with old linking by `setInstance`\n * @param config Original instances map\n */\n InstanceProxy: Code.InstanceProxy;\n }\n\n export const InstanceProxy: Code.InstanceProxy = avstantso._reg.InstanceProxy(({ JS }) => {\n let strictInstanceProxy = true;\n\n const MakeInstanceProxy: Code.InstanceProxy.Make = (original, name, wrap) => {\n type TInstance = typeof original;\n\n let instance: TInstance;\n const instanceName = name || (JS.is.function(original) ? original.name : undefined);\n\n function getInstance() {\n if (!instance) {\n if (strictInstanceProxy)\n throw new AVStantso_InvalidStateError(\n 'InstanceProxy',\n 'instance',\n `Need instance. Use InstanceProxy.SetInstance(${instanceName\n }, <Instance>) for setup instance`\n );\n\n return original;\n }\n\n return instance;\n }\n\n function setInstance(value: TInstance) {\n instance = value;\n };\n\n return new Proxy(original as InstanceProxy.Proxy<TInstance>, {\n has: (target, p) => {\n switch (p) {\n case symbolInstance:\n case symbolSetInstance:\n return true;\n default:\n return Reflect.has(getInstance(), p);\n }\n },\n get: (target, p) => {\n switch (p) {\n case symbolInstance:\n return getInstance();\n case symbolSetInstance:\n return setInstance;\n }\n\n if (wrap)\n return wrap(getInstance, p as keyof TInstance);\n\n const inst = getInstance();\n const r = Reflect.get(inst, p);\n return JS.is.function(r) ? r.bind(inst) : r;\n },\n apply(target, thisArg, argArray) {\n return (getInstance() as TS.Func).apply(thisArg, argArray);\n }\n });\n };\n\n function InstanceProxy(config: InstanceProxy.Config, generalWrap?: InstanceProxy.Wrap) {\n return Object.fromEntries(\n Object.entries(config).map(([key, value]) => {\n if ('original' in value && value.original) {\n const { original, wrap } = value;\n return [key, MakeInstanceProxy(original, key, wrap || generalWrap)];\n }\n\n else\n return [key, MakeInstanceProxy(value, key, generalWrap)];\n })\n );\n }\n\n function validateProxy(proxy: InstanceProxy.Proxy, symbol: symbol) {\n if (!(symbol in proxy))\n throw new AVStantso_NotSupportedError(\n proxy,\n String(symbol),\n 'Passed \"proxy\" must be a InstanceProxy instance'\n );\n }\n\n return Object.defineProperties(InstanceProxy, {\n Make: { value: MakeInstanceProxy, writable: false },\n\n Options: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (original: any, wrap?: any) => ({ original, wrap }),\n writable: false\n },\n\n strict: {\n get: () => strictInstanceProxy,\n set: (value: boolean) => (strictInstanceProxy = value)\n },\n\n Symbol: {\n value: Object.freeze({\n instance: symbolInstance,\n setInstance: symbolSetInstance\n }),\n writable: false\n },\n\n GetInstance: {\n value<TInstance extends InstanceProxy.Instance = InstanceProxy.Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>\n ): TInstance {\n validateProxy(proxy, symbolInstance);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (proxy as any)[symbolInstance];\n },\n writable: false\n },\n\n SetInstance: {\n value<TInstance extends InstanceProxy.Instance = InstanceProxy.Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>,\n instance: TInstance\n ): TInstance {\n validateProxy(proxy, symbolSetInstance);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (proxy as any)[symbolSetInstance](instance);\n\n return proxy;\n },\n writable: false\n }\n\n }) as Code.InstanceProxy;\n });\n}\n","namespace AVStantso {\n /**\n * @summary Indirect `new` lock. Supports class instansi through static method\n * @EXAMPLE(@IndirectNew.ExpressControllerOrMiddleware)\n */\n export namespace IndirectNew {\n export type Class = string | TS.Class;\n export type Method = AVStantso_InstanceMethodError.Method;\n }\n\n export interface IndirectNew {\n /**\n * @summary Protect create from direct `new`\n */\n protection(instance?: object): void;\n\n /**\n * @summary Acquire lock for enable create\n * @returns Lock restore method\n */\n acquire(): () => void;\n }\n\n class IndirectNewError extends AVStantso_BaseError {\n constructor(\n Class: IndirectNew.Class,\n method: IndirectNew.Method,\n message?: string\n ) {\n super(\n message\n || `Use \"%CN.${\n 'string' === typeof method ? method : method.name\n }(...)\" instead of \"new %CN(...)\"`.replaceAll(\n '%CN',\n 'string' === typeof Class ? Class : Class.name\n )\n );\n\n Object.assign(this, { Class, method });\n }\n }\n\n class IndirectNewLock implements IndirectNew {\n #locked = true;\n\n constructor(\n private readonly method: IndirectNew.Method,\n private readonly Class: IndirectNew.Class\n ) {}\n\n protection(instance?: object) {\n if (!this.#locked) return true;\n\n throw new IndirectNewError(\n this.Class || instance && Object.getPrototypeOf(instance).constructor || '<class>',\n this.method\n );\n }\n\n #release() {\n this.#locked = true;\n }\n\n acquire() {\n this.#locked = false;\n return this.#release.bind(this);\n }\n }\n\n export namespace Code {\n /**\n * @summary Create indirect `new` lock. Supports class instansi through static method\n * @param method Method for correct creation. Will shown if error.\n * @param Class Class or class name. Will shown if error.\n */\n export interface IndirectNew {\n /**\n * @summary Create indirect `new` lock. Supports class instansi through static method\n * @param method Method for correct creation. Will shown if error.\n * @param Class Class or class name. Will shown if error.\n */\n (\n method: IndirectNew.Method,\n Class?: IndirectNew.Class\n ): AVStantso.IndirectNew;\n\n /**\n * Check `candidate` is `IndirectNew`\n * @param candidate\n */\n is(candidate: unknown): candidate is AVStantso.IndirectNew;\n\n /**\n * Indirect `new` internal error class\n * @param candidate\n */\n readonly Error: IndirectNewError;\n }\n }\n\n export interface Code {\n /**\n * @summary Create indirect `new` lock. Supports class instansi through static method\n * @param method Method for correct creation. Will shown if error.\n * @param Class Class or class name. Will shown if error.\n */\n IndirectNew: Code.IndirectNew;\n }\n\n export const IndirectNew: Code.IndirectNew = avstantso._reg.IndirectNew(() => {\n function IndirectNew(\n method: IndirectNew.Method,\n Class?: IndirectNew.Class\n ): IndirectNew {\n return Object.seal(new IndirectNewLock(method, Class));\n }\n\n function isIndirectNew(\n candidate: unknown\n ): candidate is IndirectNewLock {\n return candidate instanceof IndirectNewLock;\n };\n IndirectNew.is = isIndirectNew;\n\n return Object.defineProperties(\n IndirectNew,\n {\n Error: {\n value: IndirectNewError,\n writable: false\n }\n }\n ) as unknown as Code.IndirectNew;\n });\n}\n","namespace AVStantso {\n /**\n * @summary Create an asynchronous lock for access to a shared resource.\\\n * ≈Critical section for initialization/deinitialization.\n */\n export namespace AsyncAccessLock {\n export type Callback = () => Promise<unknown>;\n\n export type IncOrDec = {\n (action: Callback): Promise<unknown>;\n\n callback(action: Callback): Callback;\n };\n\n /**\n * @summary AsyncAccessLock options\n */\n export type Options = AsyncTasksManager.Option;\n }\n\n export interface AsyncAccessLock {\n /**\n * @summary Increment usage\n */\n inc: AsyncAccessLock.IncOrDec;\n\n /**\n * @summary Dencrement usage\n */\n dec: AsyncAccessLock.IncOrDec;\n }\n\n export interface Code {\n /**\n * @summary Create an asynchronous lock for access to a shared resource.\\\n * ≈Critical section for initialization/deinitialization.\n */\n AsyncAccessLock(options?: AVStantso.AsyncAccessLock.Options): AsyncAccessLock;\n }\n\n export const AsyncAccessLock: Code['AsyncAccessLock'] = avstantso._reg.AsyncAccessLock(\n ({ AsyncTasksManager }) => {\n function AsyncAccessLockFactory(options: AsyncAccessLock.Options) {\n type CB = AsyncAccessLock.Callback;\n\n const manager = (() => {\n const m = options?.manager;\n return !m\n ? undefined\n : AsyncTasksManager.is(m)\n ? m\n : AsyncTasksManager;\n })();\n\n const cooperators: ((value?: unknown) => void)[] = [];\n let lock = false, counter = 0;\n\n function MkAccessLockMethod(dCounter: -1 | 1) {\n async function asyncAccessLockRaw(action: CB) {\n if (lock)\n await new Promise((resolve) => cooperators.push(resolve));\n\n if (dCounter > 0 ? counter < 1 : counter === 1) {\n lock = true;\n try {\n await action();\n\n counter += dCounter;\n\n for (const co of cooperators)\n co();\n } finally {\n lock = false;\n }\n }\n\n else\n counter += dCounter;\n };\n\n const asyncAccessLock = manager\n ? (action: CB) => manager.regTask(asyncAccessLockRaw(action))\n : asyncAccessLockRaw;\n\n return Object.assign(\n asyncAccessLock,\n {\n callback: (action: CB) => () => asyncAccessLock(action)\n }\n );\n }\n\n return { inc: MkAccessLockMethod(+1), dec: MkAccessLockMethod(-1) };\n }\n\n return AsyncAccessLockFactory;\n });\n}\n","namespace AVStantso {\n export interface Code {\n /**\n * @summary Create promise and return is's `resolve`, `reject` for external usage\n * @EXAMPLE(@ExternalPromise.In.checkProcessExists)\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ExternalPromise<T>(): [Promise<T>, (value: T) => void, (reason?: any) => void];\n }\n\n export const ExternalPromise: Code['ExternalPromise'] = avstantso._reg.ExternalPromise(\n () => {\n return function ExternalPromise() {\n const r = [];\n const promise = new Promise((resolve, reject) => r.push(resolve, reject));\n r.unshift(promise);\n return r;\n } as Code['ExternalPromise'];\n });\n}\n","namespace AVStantso {\n /**\n * @summary Custom opaque string meta-type\n * @EXAMPLE(@CustomStringType.Hex24)\n * @EXAMPLE(@CustomStringType.UUID)\n */\n export namespace CustomStringType {\n /**\n * @summary Metadata of custom opaque string meta-type\n */\n export type Metadata<Size extends number = number> = {\n /**\n * @summary Type name\n */\n Name: string;\n /**\n * @summary Fixed string size, if setted\n */\n Size?: Size;\n\n /**\n * @default true\n */\n Strict?: boolean;\n\n /**\n * @summary Validation RegExp\n */\n RegExp?: RegExp;\n\n /**\n * @summary Validation function\n */\n Validate?(candidate: string): boolean;\n\n /**\n * @summary Generate value method, if supported\n */\n Gen?(): string;\n };\n\n /**\n * @summary Type by metadata\n */\n export type Type<M extends Metadata> = TS.Opaque<M['Name'], string>;\n\n /**\n * @summary Type controller\n */\n export type Controller<\n Name extends string = string,\n Size extends number = number,\n Meta extends Metadata = Metadata,\n T extends Type<Meta> = Type<Meta>\n > = {\n /**\n * @summary Cast with check\n */\n (value: string): T;\n\n /**\n * @summary Fixed string size\n */\n readonly Meta: Meta;\n\n /**\n * @summary Fixed string size\n */\n readonly Name: Name;\n\n /**\n * @summary Fixed string size\n */\n readonly Size: Size;\n\n /**\n * @summary Designtime only field for `typedef`\n */\n readonly Type?: T;\n\n /**\n * @summary Check candidate is T\n */\n is(candidate: unknown): candidate is T;\n } & (Meta extends { Gen(): string } ? {\n /**\n * @summary Generate new value\n */\n Gen(): T;\n } : unknown);\n }\n\n export namespace Code {\n /**\n * @summary CustomStringType utilities\n */\n export namespace CustomStringType {\n /**\n * @summary Declaration callback for reuse size as const inside\n */\n export type DeclarationCallback<Size extends number = number> = (\n Size: Size\n ) => AVStantso.CustomStringType.Metadata<Size>;\n }\n\n export interface CustomStringType {\n /**\n * @summary Create CustomStringType by size and metadata from `declarationCallback`\n * @param metadata Metadata for define custom string type\n */\n <Size extends number, C extends CustomStringType.DeclarationCallback<Size>>(\n Size: Size,\n declarationCallback: C\n ): AVStantso.CustomStringType.Controller<\n ReturnType<C>['Name'],\n Size,\n ReturnType<C> & { Size: Size }\n >;\n\n /**\n * @summary Create CustomStringType by `metadata`\n * @param metadata Metadata for define custom string type\n */\n <M extends AVStantso.CustomStringType.Metadata>(\n metadata: M\n ): AVStantso.CustomStringType.Controller<\n M['Name'],\n M['Size'],\n M\n >;\n }\n }\n\n export interface Code {\n /**\n * @summary CustomStringType utilities\n */\n CustomStringType: Code.CustomStringType;\n }\n\n export const CustomStringType: Code.CustomStringType = avstantso._reg.CustomStringType(\n ({ JS }) => {\n function CustomStringTypeFactory(...params: TS.Arr) {\n const Meta = Object.freeze(\n JS.is.number(params[0]) ? { Size: params[0], ...params[1](params[0]) } : { ...params[0] }\n );\n const { Name, Size, Strict = true, RegExp, Validate, Gen } = Meta;\n\n function CustomStringTypeController(value: string): string {\n if (undefined === value || null === value) return value;\n\n const s = String(value);\n if (Strict){\n if (undefined !== Size && Size !== s.length)\n throw new AVStantso_InvalidArgumentError(\n 'custom-string-type',\n 'validate-length',\n { value },\n `${Name} length must be ${Size\n } but value \"${value}\" length is ${s.length}`\n );\n\n if (RegExp && !RegExp.test(s))\n throw new AVStantso_InvalidArgumentError(\n 'custom-string-type',\n 'validate-reg-exp',\n { value },\n `${Name} must satisfy ${RegExp.source\n } but value \"${value}\"`\n );\n\n if (Validate && !Validate(s))\n throw new AVStantso_InvalidArgumentError(\n 'custom-string-type',\n 'validate-by-func',\n { value },\n `${Name} must pass validation by ${Validate.name || 'Validate'\n }. It's fails for value \"${value}\"`\n );\n }\n\n return s;\n }\n\n function isCustomStringType(candidate: unknown) {\n return !!(candidate\n && JS.is.string(candidate)\n && (undefined === Size || Size === candidate.length)\n && (!RegExp || RegExp.test(candidate))\n && (!Validate || Validate(candidate)));\n };\n\n return Object.assign(\n CustomStringTypeController,\n {\n Meta: Meta,\n Name,\n Size,\n is: isCustomStringType\n },\n Gen && { Gen }\n );\n }\n\n return CustomStringTypeFactory as unknown as Code.CustomStringType;\n });\n}\n","namespace AVStantso {\n const cases = ['camel', 'pascal', 'snake', 'kebab'] as const;\n\n /**\n * @summary Common cases of naming in code\n */\n export namespace Cases {\n export type Func = (str: string) => string;\n\n export type Key = typeof cases[number];\n\n export type Union = Cases.Key | Cases.Func;\n\n export type Resolve = (caseUnion: Union) => Cases.Func;\n }\n\n export type Cases = Record<Cases.Key, Cases.Func> & { Resolve: Cases.Resolve };\n\n export interface Code {\n /**\n * @summary Common cases of naming in code\n */\n Cases: Cases;\n }\n\n export const Cases: Cases = avstantso._reg.Cases(({ JS }) => {\n type ChangeEachWord = (word: string, index?: number) => string;\n\n // iOS not supports my old regex: (?<=...)\n // /^[a-z]|[A-Z]|(?<=[^A-Za-z0-9])[a-z0-9]/g,\n\n const WORDS_REG_EXP = /[A-Z]{2,}(?=[A-Z])(?!=[A-Z])|[A-Z]?[a-z]*[0-9]*/g;\n\n function Make(changeEachWord: ChangeEachWord, seporator = ''): Cases.Func {\n return (str) => {\n if (!str) return str;\n\n const words = Array.from(\n str.matchAll(WORDS_REG_EXP),\n (m) => m[0]\n );\n\n let r: string;\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n if (w) r = (!r ? '' : r + seporator) + changeEachWord(w, i);\n }\n\n return r || '';\n };\n }\n\n const cewCap: ChangeEachWord = (word) =>\n // word.toCapitalized is not suitable: need lowercase other letters\n word.charAt(0).toLocaleUpperCase() + word.slice(1).toLocaleLowerCase();\n\n const cewUncap: ChangeEachWord = (word) =>\n word.toLocaleLowerCase();\n\n return {\n camel: Make((word, index) => (!index ? cewUncap(word) : cewCap(word))),\n pascal: Make(cewCap),\n snake: Make(cewUncap, '_'),\n kebab: Make(cewUncap, '-'),\n\n Resolve(caseUnion) {\n if (JS.is.function(caseUnion)) return caseUnion;\n\n if (!cases.includes(caseUnion))\n throw new AVStantso_InvalidArgumentError(\n 'Cases',\n 'Resolve',\n { caseUnion }\n );\n\n return Cases[caseUnion];\n }\n };\n });\n}\n","namespace AVStantso {\n export namespace Code {\n /**\n * @summary HTML strings utilities\n */\n export interface HTMLUtils {\n /**\n * @summary Convert string identifier to valid HTML identifier\n */\n str2ValidId(id: string): string;\n\n /**\n * @summary Remove tags from HTML string\n */\n removeTags(html: string): string;\n\n /**\n * @summary Hash a string to RGB color in string.\\\n * By default add HTML color prefix `#`\n */\n str2Color(str: string, prefix?: string): string\n }\n }\n\n export interface Code {\n /**\n * @summary HTML strings utilities\n */\n HTMLUtils: Code.HTMLUtils;\n }\n\n /**\n * @summary HTML strings utilities\n */\n export const HTMLUtils: Code.HTMLUtils = avstantso._reg.HTMLUtils(() => {\n function str2ValidId(id: string) {\n if (!id) return id;\n\n return id\n .replace(/@|\\^|^[^a-z/]|[^a-z0-9_/-]/gi, ([m]) => {\n switch (m) {\n case '@': return '-at-';\n case '^': return '-hat-';\n default: return '-x-';\n }\n })\n .replace(/-{2,}/g, '-')\n .replace(/-?\\/-?/g, '--')\n .replace(/^-+|-+$/g, '');\n }\n\n function removeTags(html: string) {\n return html && html.replace(/<\\/?[^>]*>?|\\/?[^<>]*>/g, '');\n }\n\n // Source:\n // https://stackoverflow.com/questions/3426404/create-a-hexadecimal-colour-based-on-a-string-with-javascript\n function str2Color(str: string, prefix = '#') {\n /* eslint-disable no-bitwise */\n let hash = 0;\n (str || '').split('').forEach((char) => {\n hash = char.charCodeAt(0) + ((hash << 5) - hash);\n });\n\n let color = prefix;\n for (let i = 0; i < 3; i++) {\n const value = (hash >> (i * 8)) & 0xff;\n color += value.toString(16).padStart(2, '0');\n }\n\n return color;\n /* eslint-enable no-bitwise */\n }\n\n return { str2ValidId, removeTags, str2Color };\n });\n}\n","namespace AVStantso {\n export namespace Code {\n /**\n * @summary Dates utilities\n */\n export interface DateUtils {\n /**\n * @summary Calculate full years of age\n * @param dob Date of birthsday\n * @param to For the specified date. if undefined, Date.now() used\n * @returns Full years of age\n */\n fullYearOfAge(dob: Date, to?: Date): number;\n }\n }\n\n export interface Code {\n /**\n * @summary Dates utilities\n */\n DateUtils: Code.DateUtils;\n }\n\n /**\n * @summary HTML strings utilities\n */\n export const DateUtils: Code.DateUtils = avstantso._reg.DateUtils(() => {\n function fullYearOfAge(dob: Date, to?: Date): number {\n const month_diff = (to ? to.getTime() : Date.now()) - dob.getTime();\n const age_dt = new Date(month_diff);\n const year = age_dt.getUTCFullYear();\n return Math.abs(year - 1970);\n }\n\n return { fullYearOfAge };\n });\n}\n","import InstanceProxy = AVStantso.InstanceProxy;\nimport IndirectNew = AVStantso.IndirectNew;\nimport AsyncAccessLock = AVStantso.AsyncAccessLock;\nimport ExternalPromise = AVStantso.ExternalPromise;\nimport CustomStringType = AVStantso.CustomStringType;\nimport Cases = AVStantso.Cases;\nimport HTMLUtils = AVStantso.HTMLUtils;\nimport DateUtils = AVStantso.DateUtils;\n\nexport {\n InstanceProxy,\n IndirectNew,\n AsyncAccessLock,\n ExternalPromise,\n CustomStringType,\n Cases,\n HTMLUtils,\n DateUtils\n};\n"],"names":["AVStantso"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/_global/instance-proxy.ts","../src/_global/indirect-new.ts","../src/_global/async-access-lock.ts","../src/_global/external-promise.ts","../src/_global/custom-string-type.ts","../src/_global/cases.ts","../src/_global/html-utils.ts","../src/_global/date-utils.ts","../src/export.ts"],"sourcesContent":["namespace AVStantso {\n const symbolInstance = Symbol('instance');\n const symbolSetInstance = Symbol('setInstance');\n\n export namespace InstanceProxy {\n export type Instance = object | TS.Func;\n\n export type Wrap<TInstance extends Instance = Instance, R = unknown> = <\n P extends keyof TInstance\n >(\n instance: () => TInstance,\n p: P\n ) => R;\n\n export namespace Config {\n export type Options<TInstance extends Instance = Instance> = {\n original: TInstance;\n wrap?: Wrap<TInstance>;\n };\n }\n export type Config = NodeJS.Dict<Instance | Config.Options>;\n\n export type Proxy<TInstance extends Instance = Instance> = TInstance\n & Proxy.Control<TInstance>;\n\n export namespace Proxy {\n export type Control<TInstance extends Instance = Instance> = {\n [symbolInstance]: TInstance;\n [symbolSetInstance](instance: TInstance): void;\n };\n }\n\n export type Result<TConfig extends Config> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof TConfig]: TConfig[K] extends Config.Options<any>\n ? Proxy<TConfig[K]['original']>\n : Proxy<TConfig[K]>;\n };\n\n export type Key<TProxy extends Proxy> = TProxy extends Proxy<infer TInstance>\n ? keyof TInstance\n : never;\n }\n\n export namespace Code {\n type Instance = AVStantso.InstanceProxy.Instance;\n\n /**\n * @summary Create instances proxies with old linking by `setInstance`\n * @param config Original instances map\n */\n export namespace InstanceProxy {\n /**\n * @summary Create instance proxy with old linking by `setInstance`\n * @param original Original instance\n * @param name Original name\n */\n export type Make = <TInstance extends Instance>(\n original: TInstance,\n name?: string,\n wrap?: AVStantso.InstanceProxy.Wrap<TInstance>\n ) => AVStantso.InstanceProxy.Proxy<TInstance>;\n }\n\n export interface InstanceProxy {\n /**\n * @summary Create instances proxies with old linking by `setInstance`\n * @param config Original instances map\n */\n <TConfig extends AVStantso.InstanceProxy.Config>(\n config: TConfig,\n generalWrap?: AVStantso.InstanceProxy.Wrap\n ): AVStantso.InstanceProxy.Result<TConfig>;\n\n /**\n * @summary Create instance proxy with old linking by `setInstance`\n * @param original Original instance\n * @param name Original name\n */\n Make: InstanceProxy.Make;\n\n /**\n * @summary Create instance proxy config options\n * @param original Original instance\n * @param wrap Wrap property callback\n */\n Options<TInstance extends Instance = Instance>(\n original: TInstance,\n wrap?: AVStantso.InstanceProxy.Wrap<TInstance>\n ): AVStantso.InstanceProxy.Config.Options<TInstance>;\n\n /**\n * @summary General behavior of all `InstanceProxy` instances.\\\n * If `true` — must called `setInstance` for every `InstanceProxy`\n * @default true\n */\n strict: boolean;\n\n /**\n * @summary Control symbols\n */\n Symbol: {\n /**\n * @summary `instance` symbol\n */\n instance: symbol;\n\n /**\n * @summary `setInstance` symbol\n */\n setInstance: symbol;\n },\n\n /**\n * @summary Get `instance` for `proxy`\n */\n GetInstance<TInstance extends Instance = Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>,\n ): TInstance;\n\n /**\n * @summary Set `instance` for `proxy`\n */\n SetInstance<TInstance extends Instance = Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>,\n instance: TInstance\n ): TInstance;\n }\n }\n\n export interface Code {\n /**\n * @summary Create instances proxies with old linking by `setInstance`\n * @param config Original instances map\n */\n InstanceProxy: Code.InstanceProxy;\n }\n\n export const InstanceProxy: Code.InstanceProxy = avstantso._reg.InstanceProxy(({ JS }) => {\n let strictInstanceProxy = true;\n\n const MakeInstanceProxy: Code.InstanceProxy.Make = (original, name, wrap) => {\n type TInstance = typeof original;\n\n let instance: TInstance;\n const instanceName = name || (JS.is.function(original) ? original.name : undefined);\n\n function getInstance() {\n if (!instance) {\n if (strictInstanceProxy)\n throw new AVStantso_InvalidStateError(\n 'InstanceProxy',\n 'instance',\n `Need instance. Use InstanceProxy.SetInstance(${instanceName\n }, <Instance>) for setup instance`\n );\n\n return original;\n }\n\n return instance;\n }\n\n function setInstance(value: TInstance) {\n instance = value;\n };\n\n return new Proxy(original as InstanceProxy.Proxy<TInstance>, {\n has: (target, p) => {\n switch (p) {\n case symbolInstance:\n case symbolSetInstance:\n return true;\n default:\n return Reflect.has(getInstance(), p);\n }\n },\n get: (target, p) => {\n switch (p) {\n case symbolInstance:\n return getInstance();\n case symbolSetInstance:\n return setInstance;\n }\n\n if (wrap)\n return wrap(getInstance, p as keyof TInstance);\n\n const inst = getInstance();\n const r = Reflect.get(inst, p);\n return JS.is.function(r) ? r.bind(inst) : r;\n },\n apply(target, thisArg, argArray) {\n return (getInstance() as TS.Func).apply(thisArg, argArray);\n }\n });\n };\n\n function InstanceProxy(config: InstanceProxy.Config, generalWrap?: InstanceProxy.Wrap) {\n return Object.fromEntries(\n Object.entries(config).map(([key, value]) => {\n if ('original' in value && value.original) {\n const { original, wrap } = value;\n return [key, MakeInstanceProxy(original, key, wrap || generalWrap)];\n }\n\n else\n return [key, MakeInstanceProxy(value, key, generalWrap)];\n })\n );\n }\n\n function validateProxy(proxy: InstanceProxy.Proxy, symbol: symbol) {\n if (!(symbol in proxy))\n throw new AVStantso_NotSupportedError(\n proxy,\n String(symbol),\n 'Passed \"proxy\" must be a InstanceProxy instance'\n );\n }\n\n return Object.defineProperties(InstanceProxy, {\n Make: { value: MakeInstanceProxy, writable: false },\n\n Options: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (original: any, wrap?: any) => ({ original, wrap }),\n writable: false\n },\n\n strict: {\n get: () => strictInstanceProxy,\n set: (value: boolean) => (strictInstanceProxy = value)\n },\n\n Symbol: {\n value: Object.freeze({\n instance: symbolInstance,\n setInstance: symbolSetInstance\n }),\n writable: false\n },\n\n GetInstance: {\n value<TInstance extends InstanceProxy.Instance = InstanceProxy.Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>\n ): TInstance {\n validateProxy(proxy, symbolInstance);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (proxy as any)[symbolInstance];\n },\n writable: false\n },\n\n SetInstance: {\n value<TInstance extends InstanceProxy.Instance = InstanceProxy.Instance>(\n proxy: AVStantso.InstanceProxy.Proxy<TInstance>,\n instance: TInstance\n ): TInstance {\n validateProxy(proxy, symbolSetInstance);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (proxy as any)[symbolSetInstance](instance);\n\n return proxy;\n },\n writable: false\n }\n\n }) as Code.InstanceProxy;\n });\n}\n","namespace AVStantso {\n /**\n * @summary Indirect `new` lock. Supports class instansi through static method\n * @EXAMPLE(@IndirectNew.ExpressControllerOrMiddleware)\n */\n export namespace IndirectNew {\n export type Class = string | TS.Class;\n export type Method = AVStantso_InstanceMethodError.Method;\n }\n\n export interface IndirectNew {\n /**\n * @summary Protect create from direct `new`\n */\n protection(instance?: object): void;\n\n /**\n * @summary Acquire lock for enable create\n * @returns Lock restore method\n */\n acquire(): () => void;\n }\n\n class IndirectNewError extends AVStantso_BaseError {\n constructor(\n Class: IndirectNew.Class,\n method: IndirectNew.Method,\n message?: string\n ) {\n super(\n message\n || `Use \"%CN.${\n 'string' === typeof method ? method : method.name\n }(...)\" instead of \"new %CN(...)\"`.replaceAll(\n '%CN',\n 'string' === typeof Class ? Class : Class.name\n )\n );\n\n Object.assign(this, { Class, method });\n }\n }\n\n class IndirectNewLock implements IndirectNew {\n #locked = true;\n\n constructor(\n private readonly method: IndirectNew.Method,\n private readonly Class: IndirectNew.Class\n ) {}\n\n protection(instance?: object) {\n if (!this.#locked) return true;\n\n throw new IndirectNewError(\n this.Class || instance && Object.getPrototypeOf(instance).constructor || '<class>',\n this.method\n );\n }\n\n #release() {\n this.#locked = true;\n }\n\n acquire() {\n this.#locked = false;\n return this.#release.bind(this);\n }\n }\n\n export namespace Code {\n /**\n * @summary Create indirect `new` lock. Supports class instansi through static method\n * @param method Method for correct creation. Will shown if error.\n * @param Class Class or class name. Will shown if error.\n */\n export interface IndirectNew {\n /**\n * @summary Create indirect `new` lock. Supports class instansi through static method\n * @param method Method for correct creation. Will shown if error.\n * @param Class Class or class name. Will shown if error.\n */\n (\n method: IndirectNew.Method,\n Class?: IndirectNew.Class\n ): AVStantso.IndirectNew;\n\n /**\n * Check `candidate` is `IndirectNew`\n * @param candidate\n */\n is(candidate: unknown): candidate is AVStantso.IndirectNew;\n\n /**\n * Indirect `new` internal error class\n * @param candidate\n */\n readonly Error: IndirectNewError;\n }\n }\n\n export interface Code {\n /**\n * @summary Create indirect `new` lock. Supports class instansi through static method\n * @param method Method for correct creation. Will shown if error.\n * @param Class Class or class name. Will shown if error.\n */\n IndirectNew: Code.IndirectNew;\n }\n\n export const IndirectNew: Code.IndirectNew = avstantso._reg.IndirectNew(() => {\n function IndirectNew(\n method: IndirectNew.Method,\n Class?: IndirectNew.Class\n ): IndirectNew {\n return Object.seal(new IndirectNewLock(method, Class));\n }\n\n function isIndirectNew(\n candidate: unknown\n ): candidate is IndirectNewLock {\n return candidate instanceof IndirectNewLock;\n };\n IndirectNew.is = isIndirectNew;\n\n return Object.defineProperties(\n IndirectNew,\n {\n Error: {\n value: IndirectNewError,\n writable: false\n }\n }\n ) as unknown as Code.IndirectNew;\n });\n}\n","namespace AVStantso {\n /**\n * @summary Create an asynchronous lock for access to a shared resource.\\\n * ≈Critical section for initialization/deinitialization.\n */\n export namespace AsyncAccessLock {\n export type Callback = () => Promise<unknown>;\n\n export type IncOrDec = {\n (action: Callback): Promise<unknown>;\n\n callback(action: Callback): Callback;\n };\n\n /**\n * @summary AsyncAccessLock options\n */\n export type Options = AsyncTasksManager.Option;\n }\n\n export interface AsyncAccessLock {\n /**\n * @summary Increment usage\n */\n inc: AsyncAccessLock.IncOrDec;\n\n /**\n * @summary Dencrement usage\n */\n dec: AsyncAccessLock.IncOrDec;\n }\n\n export interface Code {\n /**\n * @summary Create an asynchronous lock for access to a shared resource.\\\n * ≈Critical section for initialization/deinitialization.\n */\n AsyncAccessLock(options?: AVStantso.AsyncAccessLock.Options): AsyncAccessLock;\n }\n\n export const AsyncAccessLock: Code['AsyncAccessLock'] = avstantso._reg.AsyncAccessLock(\n ({ AsyncTasksManager }) => {\n function AsyncAccessLockFactory(options: AsyncAccessLock.Options) {\n type CB = AsyncAccessLock.Callback;\n\n const manager = (() => {\n const m = options?.manager;\n return !m\n ? undefined\n : AsyncTasksManager.is(m)\n ? m\n : AsyncTasksManager;\n })();\n\n const cooperators: ((value?: unknown) => void)[] = [];\n let lock = false, counter = 0;\n\n function MkAccessLockMethod(dCounter: -1 | 1) {\n async function asyncAccessLockRaw(action: CB) {\n if (lock)\n await new Promise((resolve) => cooperators.push(resolve));\n\n if (dCounter > 0 ? counter < 1 : counter === 1) {\n lock = true;\n try {\n await action();\n\n counter += dCounter;\n\n for (const co of cooperators)\n co();\n } finally {\n lock = false;\n }\n }\n\n else\n counter += dCounter;\n };\n\n const asyncAccessLock = manager\n ? (action: CB) => manager.regTask(asyncAccessLockRaw(action))\n : asyncAccessLockRaw;\n\n return Object.assign(\n asyncAccessLock,\n {\n callback: (action: CB) => () => asyncAccessLock(action)\n }\n );\n }\n\n return { inc: MkAccessLockMethod(+1), dec: MkAccessLockMethod(-1) };\n }\n\n return AsyncAccessLockFactory;\n });\n}\n","namespace AVStantso {\n export interface Code {\n /**\n * @summary Create promise and return is's `resolve`, `reject` for external usage\n * @EXAMPLE(@ExternalPromise.In.checkProcessExists)\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ExternalPromise<T>(): [Promise<T>, (value: T) => void, (reason?: any) => void];\n }\n\n export const ExternalPromise: Code['ExternalPromise'] = avstantso._reg.ExternalPromise(\n () => {\n return function ExternalPromise() {\n const r = [];\n const promise = new Promise((resolve, reject) => r.push(resolve, reject));\n r.unshift(promise);\n return r;\n } as Code['ExternalPromise'];\n });\n}\n","namespace AVStantso {\n /**\n * @summary Custom opaque string meta-type\n * @EXAMPLE(@CustomStringType.Hex24)\n * @EXAMPLE(@CustomStringType.UUID)\n */\n export namespace CustomStringType {\n /**\n * @summary Metadata of custom opaque string meta-type\n */\n export type Metadata<Size extends number = number> = {\n /**\n * @summary Type name\n */\n Name: string;\n /**\n * @summary Fixed string size, if setted\n */\n Size?: Size;\n\n /**\n * @default true\n */\n Strict?: boolean;\n\n /**\n * @summary Validation RegExp\n */\n RegExp?: RegExp;\n\n /**\n * @summary Validation function\n */\n Validate?(candidate: string): boolean;\n\n /**\n * @summary Generate value method, if supported\n */\n Gen?(): string;\n };\n\n /**\n * @summary Type by metadata\n */\n export type Type<\n M extends Metadata,\n R extends TS.Opaque<M['Name'], string> & {} = TS.Opaque<M['Name'], string> & {}\n > = R;\n\n /**\n * @summary Type controller\n */\n export type Controller<\n Name extends string = string,\n Size extends number = number,\n Meta extends Metadata = Metadata,\n T extends Type<Meta> = Type<Meta>\n > = {\n /**\n * @summary Cast with check\n */\n (value: string): T;\n\n /**\n * @summary Fixed string size\n */\n readonly Meta: Meta;\n\n /**\n * @summary Fixed string size\n */\n readonly Name: Name;\n\n /**\n * @summary Fixed string size\n */\n readonly Size: Size;\n\n /**\n * @summary Designtime only field for `typedef`\n */\n readonly Type?: T;\n\n /**\n * @summary Check candidate is T\n */\n is(candidate: unknown): candidate is T;\n } & (Meta extends { Gen(): string } ? {\n /**\n * @summary Generate new value\n */\n Gen(): T;\n } : unknown);\n }\n\n export namespace Code {\n /**\n * @summary CustomStringType utilities\n */\n export namespace CustomStringType {\n /**\n * @summary Declaration callback for reuse size as const inside\n */\n export type DeclarationCallback<Size extends number = number> = (\n Size: Size\n ) => AVStantso.CustomStringType.Metadata<Size>;\n }\n\n export interface CustomStringType {\n /**\n * @summary Create CustomStringType by size and metadata from `declarationCallback`\n * @param metadata Metadata for define custom string type\n */\n <Size extends number, C extends CustomStringType.DeclarationCallback<Size>>(\n Size: Size,\n declarationCallback: C\n ): AVStantso.CustomStringType.Controller<\n ReturnType<C>['Name'],\n Size,\n ReturnType<C> & { Size: Size }\n >;\n\n /**\n * @summary Create CustomStringType by `metadata`\n * @param metadata Metadata for define custom string type\n */\n <M extends AVStantso.CustomStringType.Metadata>(\n metadata: M\n ): AVStantso.CustomStringType.Controller<\n M['Name'],\n M['Size'],\n M\n >;\n }\n }\n\n export interface Code {\n /**\n * @summary CustomStringType utilities\n */\n CustomStringType: Code.CustomStringType;\n }\n\n export const CustomStringType: Code.CustomStringType = avstantso._reg.CustomStringType(\n ({ JS }) => {\n function CustomStringTypeFactory(...params: TS.Arr) {\n const Meta = Object.freeze(\n JS.is.number(params[0]) ? { Size: params[0], ...params[1](params[0]) } : { ...params[0] }\n );\n const { Name, Size, Strict = true, RegExp, Validate, Gen } = Meta;\n\n function CustomStringTypeController(value: string): string {\n if (undefined === value || null === value) return value;\n\n const s = String(value);\n if (Strict){\n if (undefined !== Size && Size !== s.length)\n throw new AVStantso_InvalidArgumentError(\n 'custom-string-type',\n 'validate-length',\n { value },\n `${Name} length must be ${Size\n } but value \"${value}\" length is ${s.length}`\n );\n\n if (RegExp && !RegExp.test(s))\n throw new AVStantso_InvalidArgumentError(\n 'custom-string-type',\n 'validate-reg-exp',\n { value },\n `${Name} must satisfy ${RegExp.source\n } but value \"${value}\"`\n );\n\n if (Validate && !Validate(s))\n throw new AVStantso_InvalidArgumentError(\n 'custom-string-type',\n 'validate-by-func',\n { value },\n `${Name} must pass validation by ${Validate.name || 'Validate'\n }. It's fails for value \"${value}\"`\n );\n }\n\n return s;\n }\n\n function isCustomStringType(candidate: unknown) {\n return !!(candidate\n && JS.is.string(candidate)\n && (undefined === Size || Size === candidate.length)\n && (!RegExp || RegExp.test(candidate))\n && (!Validate || Validate(candidate)));\n };\n\n return Object.assign(\n CustomStringTypeController,\n {\n Meta: Meta,\n Name,\n Size,\n is: isCustomStringType\n },\n Gen && { Gen }\n );\n }\n\n return CustomStringTypeFactory as unknown as Code.CustomStringType;\n });\n}\n","namespace AVStantso {\n const cases = ['camel', 'pascal', 'snake', 'kebab'] as const;\n\n /**\n * @summary Common cases of naming in code\n */\n export namespace Cases {\n export type Func = (str: string) => string;\n\n export type Key = typeof cases[number];\n\n export type Union = Cases.Key | Cases.Func;\n\n export type Resolve = (caseUnion: Union) => Cases.Func;\n }\n\n export type Cases = Record<Cases.Key, Cases.Func> & { Resolve: Cases.Resolve };\n\n export interface Code {\n /**\n * @summary Common cases of naming in code\n */\n Cases: Cases;\n }\n\n export const Cases: Cases = avstantso._reg.Cases(({ JS }) => {\n type ChangeEachWord = (word: string, index?: number) => string;\n\n // iOS not supports my old regex: (?<=...)\n // /^[a-z]|[A-Z]|(?<=[^A-Za-z0-9])[a-z0-9]/g,\n\n const WORDS_REG_EXP = /[A-Z]{2,}(?=[A-Z])(?!=[A-Z])|[A-Z]?[a-z]*[0-9]*/g;\n\n function Make(changeEachWord: ChangeEachWord, seporator = ''): Cases.Func {\n return (str) => {\n if (!str) return str;\n\n const words = Array.from(\n str.matchAll(WORDS_REG_EXP),\n (m) => m[0]\n );\n\n let r: string;\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n if (w) r = (!r ? '' : r + seporator) + changeEachWord(w, i);\n }\n\n return r || '';\n };\n }\n\n const cewCap: ChangeEachWord = (word) =>\n // word.toCapitalized is not suitable: need lowercase other letters\n word.charAt(0).toLocaleUpperCase() + word.slice(1).toLocaleLowerCase();\n\n const cewUncap: ChangeEachWord = (word) =>\n word.toLocaleLowerCase();\n\n return {\n camel: Make((word, index) => (!index ? cewUncap(word) : cewCap(word))),\n pascal: Make(cewCap),\n snake: Make(cewUncap, '_'),\n kebab: Make(cewUncap, '-'),\n\n Resolve(caseUnion) {\n if (JS.is.function(caseUnion)) return caseUnion;\n\n if (!cases.includes(caseUnion))\n throw new AVStantso_InvalidArgumentError(\n 'Cases',\n 'Resolve',\n { caseUnion }\n );\n\n return Cases[caseUnion];\n }\n };\n });\n}\n","namespace AVStantso {\n export namespace Code {\n /**\n * @summary HTML strings utilities\n */\n export interface HTMLUtils {\n /**\n * @summary Convert string identifier to valid HTML identifier\n */\n str2ValidId(id: string): string;\n\n /**\n * @summary Remove tags from HTML string\n */\n removeTags(html: string): string;\n\n /**\n * @summary Hash a string to RGB color in string.\\\n * By default add HTML color prefix `#`\n */\n str2Color(str: string, prefix?: string): string\n }\n }\n\n export interface Code {\n /**\n * @summary HTML strings utilities\n */\n HTMLUtils: Code.HTMLUtils;\n }\n\n /**\n * @summary HTML strings utilities\n */\n export const HTMLUtils: Code.HTMLUtils = avstantso._reg.HTMLUtils(() => {\n function str2ValidId(id: string) {\n if (!id) return id;\n\n return id\n .replace(/@|\\^|^[^a-z/]|[^a-z0-9_/-]/gi, ([m]) => {\n switch (m) {\n case '@': return '-at-';\n case '^': return '-hat-';\n default: return '-x-';\n }\n })\n .replace(/-{2,}/g, '-')\n .replace(/-?\\/-?/g, '--')\n .replace(/^-+|-+$/g, '');\n }\n\n function removeTags(html: string) {\n return html && html.replace(/<\\/?[^>]*>?|\\/?[^<>]*>/g, '');\n }\n\n // Source:\n // https://stackoverflow.com/questions/3426404/create-a-hexadecimal-colour-based-on-a-string-with-javascript\n function str2Color(str: string, prefix = '#') {\n /* eslint-disable no-bitwise */\n let hash = 0;\n (str || '').split('').forEach((char) => {\n hash = char.charCodeAt(0) + ((hash << 5) - hash);\n });\n\n let color = prefix;\n for (let i = 0; i < 3; i++) {\n const value = (hash >> (i * 8)) & 0xff;\n color += value.toString(16).padStart(2, '0');\n }\n\n return color;\n /* eslint-enable no-bitwise */\n }\n\n return { str2ValidId, removeTags, str2Color };\n });\n}\n","namespace AVStantso {\n export namespace Code {\n /**\n * @summary Dates utilities\n */\n export interface DateUtils {\n /**\n * @summary Calculate full years of age\n * @param dob Date of birthsday\n * @param to For the specified date. if undefined, Date.now() used\n * @returns Full years of age\n */\n fullYearOfAge(dob: Date, to?: Date): number;\n }\n }\n\n export interface Code {\n /**\n * @summary Dates utilities\n */\n DateUtils: Code.DateUtils;\n }\n\n /**\n * @summary HTML strings utilities\n */\n export const DateUtils: Code.DateUtils = avstantso._reg.DateUtils(() => {\n function fullYearOfAge(dob: Date, to?: Date): number {\n const month_diff = (to ? to.getTime() : Date.now()) - dob.getTime();\n const age_dt = new Date(month_diff);\n const year = age_dt.getUTCFullYear();\n return Math.abs(year - 1970);\n }\n\n return { fullYearOfAge };\n });\n}\n","import InstanceProxy = AVStantso.InstanceProxy;\nimport IndirectNew = AVStantso.IndirectNew;\nimport AsyncAccessLock = AVStantso.AsyncAccessLock;\nimport ExternalPromise = AVStantso.ExternalPromise;\nimport CustomStringType = AVStantso.CustomStringType;\nimport Cases = AVStantso.Cases;\nimport HTMLUtils = AVStantso.HTMLUtils;\nimport DateUtils = AVStantso.DateUtils;\n\nexport {\n InstanceProxy,\n IndirectNew,\n AsyncAccessLock,\n ExternalPromise,\n CustomStringType,\n Cases,\n HTMLUtils,\n DateUtils\n};\n"],"names":["AVStantso"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@avstantso/utils-misc",
3
3
  "license": "MIT",
4
4
  "author": "avstantso",
5
- "version": "1.2.1",
5
+ "version": "1.2.3",
6
6
  "description": "AVStantso framework utils misc",
7
7
  "keywords": [
8
8
  "InstanceProxy"
@@ -23,12 +23,12 @@
23
23
  "test": "NODE_ENV=test jest --coverage"
24
24
  },
25
25
  "dependencies": {
26
- "@avstantso/concepts": "1.2.1",
26
+ "@avstantso/concepts": "1.2.2",
27
27
  "@avstantso/core": "1.2.1",
28
28
  "@avstantso/errors": "1.2.1",
29
- "@avstantso/js": "1.2.1",
29
+ "@avstantso/js": "1.2.2",
30
30
  "@avstantso/std-ext": "1.2.1",
31
- "@avstantso/ts": "1.2.1"
31
+ "@avstantso/ts": "1.3.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@avstantso/dev-basic": "1.0.0"