adaptform 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -52,13 +52,13 @@ var BooleanType = class extends FieldType {
52
52
  };
53
53
 
54
54
  // src/core/utils/luxon-loader.ts
55
- var DateTime = null;
55
+ var DateTimeConstructor = null;
56
56
  var isLoading = false;
57
57
  var loadError = null;
58
58
  var loadPromise = null;
59
- function getDateTime() {
60
- if (DateTime) {
61
- return DateTime;
59
+ function getDateTimeConstructor() {
60
+ if (DateTimeConstructor) {
61
+ return DateTimeConstructor;
62
62
  }
63
63
  if (loadError) {
64
64
  throw loadError;
@@ -69,12 +69,12 @@ function getDateTime() {
69
69
  );
70
70
  }
71
71
  throw new Error(
72
- "Luxon is not initialized. Call initLuxon() first or install: npm install luxon"
72
+ "Luxon is not initialized. Install: npm install luxon"
73
73
  );
74
74
  }
75
75
  function initLuxon() {
76
- if (DateTime) {
77
- return Promise.resolve(DateTime);
76
+ if (DateTimeConstructor) {
77
+ return Promise.resolve(DateTimeConstructor);
78
78
  }
79
79
  if (loadPromise) {
80
80
  return loadPromise;
@@ -83,11 +83,11 @@ function initLuxon() {
83
83
  loadPromise = (async () => {
84
84
  try {
85
85
  const luxon = await import('luxon');
86
- DateTime = luxon.DateTime;
87
- return DateTime;
86
+ DateTimeConstructor = luxon.DateTime;
87
+ return DateTimeConstructor;
88
88
  } catch (error) {
89
89
  loadError = new Error(
90
- 'DateLuxonType requires the "luxon" package to be installed.\nPlease install it by running:\n\n npm install luxon\n # or\n yarn add luxon\n # or\n pnpm add luxon\n'
90
+ 'DateLuxonType requires the "luxon" package to be installed.\nInstall: npm install luxon'
91
91
  );
92
92
  throw loadError;
93
93
  } finally {
@@ -97,10 +97,10 @@ function initLuxon() {
97
97
  return loadPromise;
98
98
  }
99
99
  function isLuxonAvailable() {
100
- return DateTime !== null;
100
+ return DateTimeConstructor !== null;
101
101
  }
102
102
  function resetLuxon() {
103
- DateTime = null;
103
+ DateTimeConstructor = null;
104
104
  isLoading = false;
105
105
  loadError = null;
106
106
  loadPromise = null;
@@ -110,7 +110,7 @@ initLuxon().catch(() => {
110
110
 
111
111
  exports.BasePlugin = BasePlugin;
112
112
  exports.BooleanType = BooleanType;
113
- exports.getDateTime = getDateTime;
113
+ exports.getDateTimeConstructor = getDateTimeConstructor;
114
114
  exports.initLuxon = initLuxon;
115
115
  exports.isLuxonAvailable = isLuxonAvailable;
116
116
  exports.resetLuxon = resetLuxon;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import {PluginOptions} from \"@core/options\";\nimport Field from \"@core/fields/Field\";\n\nexport interface FieldPlugin<T = any> {\n pluginOptions?: PluginOptions\n\n init?(field: Field<T>): void\n\n toRawValue?(value: any, field: Field<T>): any\n\n toValueClear?(value: any, field: Field<T>): any\n}\n\nexport abstract class BasePlugin<T = any> implements FieldPlugin<T> {\n pluginOptions: PluginOptions\n\n constructor(pluginOptions: PluginOptions = {}) {\n this.pluginOptions = {\n priority: 0,\n ...pluginOptions\n }\n }\n}","import {FieldOptions} from \"@core/options\";\nimport Form from \"@core/Form\";\n\n\nexport default abstract class FieldType<T, O extends FieldOptions = FieldOptions> {\n options: O\n\n constructor(options: O) {\n this.options = {\n isRequired: true,\n messages: {},\n ...options\n } as O\n }\n\n abstract cast(rawValue: any): T | null\n\n abstract validate(value: T, form?: Form): string[]\n\n abstract getTypeName(): string\n}","import FieldType from \"@core/types/FieldType\";\nimport {BooleanOptions} from \"@core/options\";\n\nexport class BooleanType extends FieldType<boolean, BooleanOptions> {\n cast(rawValue: any): boolean | null {\n if (rawValue === null || rawValue === undefined) return null\n if (typeof rawValue === 'boolean') return rawValue\n\n if (typeof rawValue === 'string') {\n if (rawValue === 'true' || rawValue === '1') return true\n if (rawValue === 'false' || rawValue === '0') return false\n }\n\n if (typeof rawValue === 'number') {\n if (rawValue === 1) return true\n if (rawValue === 0) return false\n }\n\n return null\n }\n\n validate(value: boolean): string[] {\n const errors: string[] = []\n\n if (this.options.mustBeTrue && value !== true) {\n errors.push(this.options.messages?.mustBeTrue ?? 'Значение должно быть true')\n }\n\n if (this.options.mustBeFalse && value !== false) {\n errors.push(this.options.messages?.mustBeFalse ?? 'Значение должно быть false')\n }\n\n return errors\n }\n\n getTypeName(): string {\n return 'логическое значение'\n }\n}","import type { DateTime as LuxonDateTime } from 'luxon';\n\nlet DateTime: typeof LuxonDateTime | null = null;\nlet isLoading = false;\nlet loadError: Error | null = null;\nlet loadPromise: Promise<typeof LuxonDateTime> | null = null;\n\nexport function getDateTime(): typeof LuxonDateTime {\n if (DateTime) {\n return DateTime;\n }\n\n if (loadError) {\n throw loadError;\n }\n\n if (isLoading) {\n throw new Error(\n 'Luxon is still loading. Please await initLuxon() first.'\n );\n }\n\n throw new Error(\n 'Luxon is not initialized. Call initLuxon() first or install: npm install luxon'\n );\n}\n\nexport function initLuxon(): Promise<typeof LuxonDateTime> {\n if (DateTime) {\n return Promise.resolve(DateTime);\n }\n\n if (loadPromise) {\n return loadPromise;\n }\n\n isLoading = true;\n loadPromise = (async () => {\n try {\n // Пробуем загрузить через ESM (работает везде)\n const luxon = await import('luxon');\n DateTime = luxon.DateTime;\n return DateTime!;\n } catch (error) {\n loadError = new Error(\n 'DateLuxonType requires the \"luxon\" package to be installed.\\n' +\n 'Please install it by running:\\n\\n' +\n ' npm install luxon\\n' +\n ' # or\\n' +\n ' yarn add luxon\\n' +\n ' # or\\n' +\n ' pnpm add luxon\\n'\n );\n throw loadError;\n } finally {\n isLoading = false;\n }\n })();\n\n return loadPromise;\n}\n\nexport function isLuxonAvailable(): boolean {\n return DateTime !== null;\n}\n\nexport function resetLuxon(): void {\n DateTime = null;\n isLoading = false;\n loadError = null;\n loadPromise = null;\n}\n\ninitLuxon().catch(() => {\n});\n\nexport type { LuxonDateTime };"]}
1
+ {"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import {PluginOptions} from \"@core/options\";\nimport Field from \"@core/fields/Field\";\n\nexport interface FieldPlugin<T = any> {\n pluginOptions?: PluginOptions\n\n init?(field: Field<T>): void\n\n toRawValue?(value: any, field: Field<T>): any\n\n toValueClear?(value: any, field: Field<T>): any\n}\n\nexport abstract class BasePlugin<T = any> implements FieldPlugin<T> {\n pluginOptions: PluginOptions\n\n constructor(pluginOptions: PluginOptions = {}) {\n this.pluginOptions = {\n priority: 0,\n ...pluginOptions\n }\n }\n}","import {FieldOptions} from \"@core/options\";\nimport Form from \"@core/Form\";\n\n\nexport default abstract class FieldType<T, O extends FieldOptions = FieldOptions> {\n options: O\n\n constructor(options: O) {\n this.options = {\n isRequired: true,\n messages: {},\n ...options\n } as O\n }\n\n abstract cast(rawValue: any): T | null\n\n abstract validate(value: T, form?: Form): string[]\n\n abstract getTypeName(): string\n}","import FieldType from \"@core/types/FieldType\";\nimport {BooleanOptions} from \"@core/options\";\n\nexport class BooleanType extends FieldType<boolean, BooleanOptions> {\n cast(rawValue: any): boolean | null {\n if (rawValue === null || rawValue === undefined) return null\n if (typeof rawValue === 'boolean') return rawValue\n\n if (typeof rawValue === 'string') {\n if (rawValue === 'true' || rawValue === '1') return true\n if (rawValue === 'false' || rawValue === '0') return false\n }\n\n if (typeof rawValue === 'number') {\n if (rawValue === 1) return true\n if (rawValue === 0) return false\n }\n\n return null\n }\n\n validate(value: boolean): string[] {\n const errors: string[] = []\n\n if (this.options.mustBeTrue && value !== true) {\n errors.push(this.options.messages?.mustBeTrue ?? 'Значение должно быть true')\n }\n\n if (this.options.mustBeFalse && value !== false) {\n errors.push(this.options.messages?.mustBeFalse ?? 'Значение должно быть false')\n }\n\n return errors\n }\n\n getTypeName(): string {\n return 'логическое значение'\n }\n}","let DateTimeConstructor: any = null\nlet isLoading = false\nlet loadError: Error | null = null\nlet loadPromise: Promise<any> | null = null\n\nexport function getDateTimeConstructor(): any {\n if (DateTimeConstructor) {\n return DateTimeConstructor\n }\n\n if (loadError) {\n throw loadError\n }\n\n if (isLoading) {\n throw new Error(\n 'Luxon is still loading. Please await initLuxon() first.'\n )\n }\n\n throw new Error(\n 'Luxon is not initialized. Install: npm install luxon'\n )\n}\n\nexport function initLuxon(): Promise<any> {\n if (DateTimeConstructor) {\n return Promise.resolve(DateTimeConstructor)\n }\n\n if (loadPromise) {\n return loadPromise\n }\n\n isLoading = true\n loadPromise = (async () => {\n try {\n const luxon = await import('luxon')\n DateTimeConstructor = luxon.DateTime\n return DateTimeConstructor\n } catch (error) {\n loadError = new Error(\n 'DateLuxonType requires the \"luxon\" package to be installed.\\n' +\n 'Install: npm install luxon'\n )\n throw loadError\n } finally {\n isLoading = false\n }\n })()\n\n return loadPromise\n}\n\nexport function isLuxonAvailable(): boolean {\n return DateTimeConstructor !== null\n}\n\nexport function resetLuxon(): void {\n DateTimeConstructor = null\n isLoading = false\n loadError = null\n loadPromise = null\n}\n\ninitLuxon().catch(() => {})"]}
package/dist/index.d.cts CHANGED
@@ -1,6 +1,3 @@
1
- import { DateTime } from 'luxon';
2
- export { DateTime as LuxonDateTime } from 'luxon';
3
-
4
1
  interface FieldPlugin<T = any> {
5
2
  pluginOptions?: PluginOptions;
6
3
  init?(field: Field<T>): void;
@@ -88,8 +85,8 @@ interface DateOptions extends FieldOptions {
88
85
  messages?: messagesDateOptions;
89
86
  }
90
87
  interface DateLuxonOptions extends FieldOptions {
91
- minDate?: DateTime;
92
- maxDate?: DateTime;
88
+ minDate?: any;
89
+ maxDate?: any;
93
90
  inputFormat?: string;
94
91
  outputFormat?: string;
95
92
  isDatetime?: boolean;
@@ -231,9 +228,9 @@ declare class BooleanType extends FieldType<boolean, BooleanOptions> {
231
228
  getTypeName(): string;
232
229
  }
233
230
 
234
- declare function getDateTime(): typeof DateTime;
235
- declare function initLuxon(): Promise<typeof DateTime>;
231
+ declare function getDateTimeConstructor(): any;
232
+ declare function initLuxon(): Promise<any>;
236
233
  declare function isLuxonAvailable(): boolean;
237
234
  declare function resetLuxon(): void;
238
235
 
239
- export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions, getDateTime, initLuxon, isLuxonAvailable, type messagesArrayFieldOptions, type messagesArrayFormFieldOptions, type messagesBooleanOptions, type messagesDateLuxonOptions, type messagesDateOptions, type messagesDecimalOptions, type messagesNumberOptions, type messagesOptions, type messagesStringOptions, resetLuxon };
236
+ export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions, getDateTimeConstructor, initLuxon, isLuxonAvailable, type messagesArrayFieldOptions, type messagesArrayFormFieldOptions, type messagesBooleanOptions, type messagesDateLuxonOptions, type messagesDateOptions, type messagesDecimalOptions, type messagesNumberOptions, type messagesOptions, type messagesStringOptions, resetLuxon };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { DateTime } from 'luxon';
2
- export { DateTime as LuxonDateTime } from 'luxon';
3
-
4
1
  interface FieldPlugin<T = any> {
5
2
  pluginOptions?: PluginOptions;
6
3
  init?(field: Field<T>): void;
@@ -88,8 +85,8 @@ interface DateOptions extends FieldOptions {
88
85
  messages?: messagesDateOptions;
89
86
  }
90
87
  interface DateLuxonOptions extends FieldOptions {
91
- minDate?: DateTime;
92
- maxDate?: DateTime;
88
+ minDate?: any;
89
+ maxDate?: any;
93
90
  inputFormat?: string;
94
91
  outputFormat?: string;
95
92
  isDatetime?: boolean;
@@ -231,9 +228,9 @@ declare class BooleanType extends FieldType<boolean, BooleanOptions> {
231
228
  getTypeName(): string;
232
229
  }
233
230
 
234
- declare function getDateTime(): typeof DateTime;
235
- declare function initLuxon(): Promise<typeof DateTime>;
231
+ declare function getDateTimeConstructor(): any;
232
+ declare function initLuxon(): Promise<any>;
236
233
  declare function isLuxonAvailable(): boolean;
237
234
  declare function resetLuxon(): void;
238
235
 
239
- export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions, getDateTime, initLuxon, isLuxonAvailable, type messagesArrayFieldOptions, type messagesArrayFormFieldOptions, type messagesBooleanOptions, type messagesDateLuxonOptions, type messagesDateOptions, type messagesDecimalOptions, type messagesNumberOptions, type messagesOptions, type messagesStringOptions, resetLuxon };
236
+ export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions, getDateTimeConstructor, initLuxon, isLuxonAvailable, type messagesArrayFieldOptions, type messagesArrayFormFieldOptions, type messagesBooleanOptions, type messagesDateLuxonOptions, type messagesDateOptions, type messagesDecimalOptions, type messagesNumberOptions, type messagesOptions, type messagesStringOptions, resetLuxon };
package/dist/index.mjs CHANGED
@@ -50,13 +50,13 @@ var BooleanType = class extends FieldType {
50
50
  };
51
51
 
52
52
  // src/core/utils/luxon-loader.ts
53
- var DateTime = null;
53
+ var DateTimeConstructor = null;
54
54
  var isLoading = false;
55
55
  var loadError = null;
56
56
  var loadPromise = null;
57
- function getDateTime() {
58
- if (DateTime) {
59
- return DateTime;
57
+ function getDateTimeConstructor() {
58
+ if (DateTimeConstructor) {
59
+ return DateTimeConstructor;
60
60
  }
61
61
  if (loadError) {
62
62
  throw loadError;
@@ -67,12 +67,12 @@ function getDateTime() {
67
67
  );
68
68
  }
69
69
  throw new Error(
70
- "Luxon is not initialized. Call initLuxon() first or install: npm install luxon"
70
+ "Luxon is not initialized. Install: npm install luxon"
71
71
  );
72
72
  }
73
73
  function initLuxon() {
74
- if (DateTime) {
75
- return Promise.resolve(DateTime);
74
+ if (DateTimeConstructor) {
75
+ return Promise.resolve(DateTimeConstructor);
76
76
  }
77
77
  if (loadPromise) {
78
78
  return loadPromise;
@@ -81,11 +81,11 @@ function initLuxon() {
81
81
  loadPromise = (async () => {
82
82
  try {
83
83
  const luxon = await import('luxon');
84
- DateTime = luxon.DateTime;
85
- return DateTime;
84
+ DateTimeConstructor = luxon.DateTime;
85
+ return DateTimeConstructor;
86
86
  } catch (error) {
87
87
  loadError = new Error(
88
- 'DateLuxonType requires the "luxon" package to be installed.\nPlease install it by running:\n\n npm install luxon\n # or\n yarn add luxon\n # or\n pnpm add luxon\n'
88
+ 'DateLuxonType requires the "luxon" package to be installed.\nInstall: npm install luxon'
89
89
  );
90
90
  throw loadError;
91
91
  } finally {
@@ -95,10 +95,10 @@ function initLuxon() {
95
95
  return loadPromise;
96
96
  }
97
97
  function isLuxonAvailable() {
98
- return DateTime !== null;
98
+ return DateTimeConstructor !== null;
99
99
  }
100
100
  function resetLuxon() {
101
- DateTime = null;
101
+ DateTimeConstructor = null;
102
102
  isLoading = false;
103
103
  loadError = null;
104
104
  loadPromise = null;
@@ -106,6 +106,6 @@ function resetLuxon() {
106
106
  initLuxon().catch(() => {
107
107
  });
108
108
 
109
- export { BasePlugin, BooleanType, getDateTime, initLuxon, isLuxonAvailable, resetLuxon };
109
+ export { BasePlugin, BooleanType, getDateTimeConstructor, initLuxon, isLuxonAvailable, resetLuxon };
110
110
  //# sourceMappingURL=index.mjs.map
111
111
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":";AAaO,IAAe,aAAf,MAA6D;AAAA,EAGlE,WAAA,CAAY,aAAA,GAA+B,EAAC,EAAG;AAC7C,IAAA,IAAA,CAAK,aAAA,GAAgB;AAAA,MACnB,QAAA,EAAU,CAAA;AAAA,MACV,GAAG;AAAA,KACL;AAAA,EACF;AACF;;;AClBA,IAA8B,YAA9B,MAAkF;AAAA,EAGhF,YAAY,OAAA,EAAY;AACtB,IAAA,IAAA,CAAK,OAAA,GAAU;AAAA,MACb,UAAA,EAAY,IAAA;AAAA,MACZ,UAAU,EAAC;AAAA,MACX,GAAG;AAAA,KACL;AAAA,EACF;AAOF,CAAA;;;ACjBO,IAAM,WAAA,GAAN,cAA0B,SAAA,CAAmC;AAAA,EAClE,KAAK,QAAA,EAA+B;AAClC,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,EAAW,OAAO,IAAA;AACxD,IAAA,IAAI,OAAO,QAAA,KAAa,SAAA,EAAW,OAAO,QAAA;AAE1C,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,IAAI,QAAA,KAAa,MAAA,IAAU,QAAA,KAAa,GAAA,EAAK,OAAO,IAAA;AACpD,MAAA,IAAI,QAAA,KAAa,OAAA,IAAW,QAAA,KAAa,GAAA,EAAK,OAAO,KAAA;AAAA,IACvD;AAEA,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,IAAI,QAAA,KAAa,GAAG,OAAO,IAAA;AAC3B,MAAA,IAAI,QAAA,KAAa,GAAG,OAAO,KAAA;AAAA,IAC7B;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,SAAS,KAAA,EAA0B;AACjC,IAAA,MAAM,SAAmB,EAAC;AAE1B,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,KAAA,KAAU,IAAA,EAAM;AAC7C,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,cAAc,qHAA2B,CAAA;AAAA,IAC9E;AAEA,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,WAAA,IAAe,KAAA,KAAU,KAAA,EAAO;AAC/C,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,eAAe,sHAA4B,CAAA;AAAA,IAChF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,WAAA,GAAsB;AACpB,IAAA,OAAO,+GAAA;AAAA,EACT;AACF;;;ACpCA,IAAI,QAAA,GAAwC,IAAA;AAC5C,IAAI,SAAA,GAAY,KAAA;AAChB,IAAI,SAAA,GAA0B,IAAA;AAC9B,IAAI,WAAA,GAAoD,IAAA;AAEjD,SAAS,WAAA,GAAoC;AAClD,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,MAAM,SAAA;AAAA,EACR;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF;AAEO,SAAS,SAAA,GAA2C;AACzD,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,OAAA,CAAQ,QAAQ,QAAQ,CAAA;AAAA,EACjC;AAEA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,OAAO,WAAA;AAAA,EACT;AAEA,EAAA,SAAA,GAAY,IAAA;AACZ,EAAA,WAAA,GAAA,CAAe,YAAY;AACzB,IAAA,IAAI;AAEF,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAO,OAAO,CAAA;AAClC,MAAA,QAAA,GAAW,KAAA,CAAM,QAAA;AACjB,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,SAAA,GAAY,IAAI,KAAA;AAAA,QACd;AAAA,OAOF;AACA,MAAA,MAAM,SAAA;AAAA,IACR,CAAA,SAAE;AACA,MAAA,SAAA,GAAY,KAAA;AAAA,IACd;AAAA,EACF,CAAA,GAAG;AAEH,EAAA,OAAO,WAAA;AACT;AAEO,SAAS,gBAAA,GAA4B;AAC1C,EAAA,OAAO,QAAA,KAAa,IAAA;AACtB;AAEO,SAAS,UAAA,GAAmB;AACjC,EAAA,QAAA,GAAW,IAAA;AACX,EAAA,SAAA,GAAY,KAAA;AACZ,EAAA,SAAA,GAAY,IAAA;AACZ,EAAA,WAAA,GAAc,IAAA;AAChB;AAEA,SAAA,EAAU,CAAE,MAAM,MAAM;AACxB,CAAC,CAAA","file":"index.mjs","sourcesContent":["import {PluginOptions} from \"@core/options\";\nimport Field from \"@core/fields/Field\";\n\nexport interface FieldPlugin<T = any> {\n pluginOptions?: PluginOptions\n\n init?(field: Field<T>): void\n\n toRawValue?(value: any, field: Field<T>): any\n\n toValueClear?(value: any, field: Field<T>): any\n}\n\nexport abstract class BasePlugin<T = any> implements FieldPlugin<T> {\n pluginOptions: PluginOptions\n\n constructor(pluginOptions: PluginOptions = {}) {\n this.pluginOptions = {\n priority: 0,\n ...pluginOptions\n }\n }\n}","import {FieldOptions} from \"@core/options\";\nimport Form from \"@core/Form\";\n\n\nexport default abstract class FieldType<T, O extends FieldOptions = FieldOptions> {\n options: O\n\n constructor(options: O) {\n this.options = {\n isRequired: true,\n messages: {},\n ...options\n } as O\n }\n\n abstract cast(rawValue: any): T | null\n\n abstract validate(value: T, form?: Form): string[]\n\n abstract getTypeName(): string\n}","import FieldType from \"@core/types/FieldType\";\nimport {BooleanOptions} from \"@core/options\";\n\nexport class BooleanType extends FieldType<boolean, BooleanOptions> {\n cast(rawValue: any): boolean | null {\n if (rawValue === null || rawValue === undefined) return null\n if (typeof rawValue === 'boolean') return rawValue\n\n if (typeof rawValue === 'string') {\n if (rawValue === 'true' || rawValue === '1') return true\n if (rawValue === 'false' || rawValue === '0') return false\n }\n\n if (typeof rawValue === 'number') {\n if (rawValue === 1) return true\n if (rawValue === 0) return false\n }\n\n return null\n }\n\n validate(value: boolean): string[] {\n const errors: string[] = []\n\n if (this.options.mustBeTrue && value !== true) {\n errors.push(this.options.messages?.mustBeTrue ?? 'Значение должно быть true')\n }\n\n if (this.options.mustBeFalse && value !== false) {\n errors.push(this.options.messages?.mustBeFalse ?? 'Значение должно быть false')\n }\n\n return errors\n }\n\n getTypeName(): string {\n return 'логическое значение'\n }\n}","import type { DateTime as LuxonDateTime } from 'luxon';\n\nlet DateTime: typeof LuxonDateTime | null = null;\nlet isLoading = false;\nlet loadError: Error | null = null;\nlet loadPromise: Promise<typeof LuxonDateTime> | null = null;\n\nexport function getDateTime(): typeof LuxonDateTime {\n if (DateTime) {\n return DateTime;\n }\n\n if (loadError) {\n throw loadError;\n }\n\n if (isLoading) {\n throw new Error(\n 'Luxon is still loading. Please await initLuxon() first.'\n );\n }\n\n throw new Error(\n 'Luxon is not initialized. Call initLuxon() first or install: npm install luxon'\n );\n}\n\nexport function initLuxon(): Promise<typeof LuxonDateTime> {\n if (DateTime) {\n return Promise.resolve(DateTime);\n }\n\n if (loadPromise) {\n return loadPromise;\n }\n\n isLoading = true;\n loadPromise = (async () => {\n try {\n // Пробуем загрузить через ESM (работает везде)\n const luxon = await import('luxon');\n DateTime = luxon.DateTime;\n return DateTime!;\n } catch (error) {\n loadError = new Error(\n 'DateLuxonType requires the \"luxon\" package to be installed.\\n' +\n 'Please install it by running:\\n\\n' +\n ' npm install luxon\\n' +\n ' # or\\n' +\n ' yarn add luxon\\n' +\n ' # or\\n' +\n ' pnpm add luxon\\n'\n );\n throw loadError;\n } finally {\n isLoading = false;\n }\n })();\n\n return loadPromise;\n}\n\nexport function isLuxonAvailable(): boolean {\n return DateTime !== null;\n}\n\nexport function resetLuxon(): void {\n DateTime = null;\n isLoading = false;\n loadError = null;\n loadPromise = null;\n}\n\ninitLuxon().catch(() => {\n});\n\nexport type { LuxonDateTime };"]}
1
+ {"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import {PluginOptions} from \"@core/options\";\nimport Field from \"@core/fields/Field\";\n\nexport interface FieldPlugin<T = any> {\n pluginOptions?: PluginOptions\n\n init?(field: Field<T>): void\n\n toRawValue?(value: any, field: Field<T>): any\n\n toValueClear?(value: any, field: Field<T>): any\n}\n\nexport abstract class BasePlugin<T = any> implements FieldPlugin<T> {\n pluginOptions: PluginOptions\n\n constructor(pluginOptions: PluginOptions = {}) {\n this.pluginOptions = {\n priority: 0,\n ...pluginOptions\n }\n }\n}","import {FieldOptions} from \"@core/options\";\nimport Form from \"@core/Form\";\n\n\nexport default abstract class FieldType<T, O extends FieldOptions = FieldOptions> {\n options: O\n\n constructor(options: O) {\n this.options = {\n isRequired: true,\n messages: {},\n ...options\n } as O\n }\n\n abstract cast(rawValue: any): T | null\n\n abstract validate(value: T, form?: Form): string[]\n\n abstract getTypeName(): string\n}","import FieldType from \"@core/types/FieldType\";\nimport {BooleanOptions} from \"@core/options\";\n\nexport class BooleanType extends FieldType<boolean, BooleanOptions> {\n cast(rawValue: any): boolean | null {\n if (rawValue === null || rawValue === undefined) return null\n if (typeof rawValue === 'boolean') return rawValue\n\n if (typeof rawValue === 'string') {\n if (rawValue === 'true' || rawValue === '1') return true\n if (rawValue === 'false' || rawValue === '0') return false\n }\n\n if (typeof rawValue === 'number') {\n if (rawValue === 1) return true\n if (rawValue === 0) return false\n }\n\n return null\n }\n\n validate(value: boolean): string[] {\n const errors: string[] = []\n\n if (this.options.mustBeTrue && value !== true) {\n errors.push(this.options.messages?.mustBeTrue ?? 'Значение должно быть true')\n }\n\n if (this.options.mustBeFalse && value !== false) {\n errors.push(this.options.messages?.mustBeFalse ?? 'Значение должно быть false')\n }\n\n return errors\n }\n\n getTypeName(): string {\n return 'логическое значение'\n }\n}","let DateTimeConstructor: any = null\nlet isLoading = false\nlet loadError: Error | null = null\nlet loadPromise: Promise<any> | null = null\n\nexport function getDateTimeConstructor(): any {\n if (DateTimeConstructor) {\n return DateTimeConstructor\n }\n\n if (loadError) {\n throw loadError\n }\n\n if (isLoading) {\n throw new Error(\n 'Luxon is still loading. Please await initLuxon() first.'\n )\n }\n\n throw new Error(\n 'Luxon is not initialized. Install: npm install luxon'\n )\n}\n\nexport function initLuxon(): Promise<any> {\n if (DateTimeConstructor) {\n return Promise.resolve(DateTimeConstructor)\n }\n\n if (loadPromise) {\n return loadPromise\n }\n\n isLoading = true\n loadPromise = (async () => {\n try {\n const luxon = await import('luxon')\n DateTimeConstructor = luxon.DateTime\n return DateTimeConstructor\n } catch (error) {\n loadError = new Error(\n 'DateLuxonType requires the \"luxon\" package to be installed.\\n' +\n 'Install: npm install luxon'\n )\n throw loadError\n } finally {\n isLoading = false\n }\n })()\n\n return loadPromise\n}\n\nexport function isLuxonAvailable(): boolean {\n return DateTimeConstructor !== null\n}\n\nexport function resetLuxon(): void {\n DateTimeConstructor = null\n isLoading = false\n loadError = null\n loadPromise = null\n}\n\ninitLuxon().catch(() => {})"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adaptform",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Library of adaptive forms of validation",
5
5
  "keywords": [
6
6
  "form",