@api-client/core 0.17.5 → 0.17.7
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/build/src/modeling/Semantics.d.ts +8 -4
- package/build/src/modeling/Semantics.d.ts.map +1 -1
- package/build/src/modeling/Semantics.js +10 -5
- package/build/src/modeling/Semantics.js.map +1 -1
- package/build/src/modeling/definitions/Email.d.ts +2 -2
- package/build/src/modeling/definitions/Email.d.ts.map +1 -1
- package/build/src/modeling/definitions/Email.js.map +1 -1
- package/build/src/modeling/definitions/GeospatialCoordinates.d.ts +46 -1
- package/build/src/modeling/definitions/GeospatialCoordinates.d.ts.map +1 -1
- package/build/src/modeling/definitions/GeospatialCoordinates.js.map +1 -1
- package/build/src/modeling/definitions/Phone.d.ts +5 -7
- package/build/src/modeling/definitions/Phone.d.ts.map +1 -1
- package/build/src/modeling/definitions/Phone.js +2 -2
- package/build/src/modeling/definitions/Phone.js.map +1 -1
- package/build/src/modeling/definitions/PublicUniqueName.d.ts +1 -9
- package/build/src/modeling/definitions/PublicUniqueName.d.ts.map +1 -1
- package/build/src/modeling/definitions/PublicUniqueName.js +0 -1
- package/build/src/modeling/definitions/PublicUniqueName.js.map +1 -1
- package/build/src/modeling/definitions/SKU.d.ts +4 -1
- package/build/src/modeling/definitions/SKU.d.ts.map +1 -1
- package/build/src/modeling/definitions/SKU.js.map +1 -1
- package/build/src/modeling/definitions/URL.d.ts +1 -4
- package/build/src/modeling/definitions/URL.d.ts.map +1 -1
- package/build/src/modeling/definitions/URL.js +0 -1
- package/build/src/modeling/definitions/URL.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/modeling/Semantics.ts +10 -5
- package/src/modeling/definitions/Email.ts +2 -2
- package/src/modeling/definitions/GeospatialCoordinates.ts +46 -1
- package/src/modeling/definitions/Phone.ts +6 -8
- package/src/modeling/definitions/PublicUniqueName.ts +1 -10
- package/src/modeling/definitions/SKU.ts +4 -1
- package/src/modeling/definitions/URL.ts +1 -5
- package/tests/unit/modeling/definitions/derived.spec.ts +1 -2
- package/tests/unit/modeling/definitions/url.spec.ts +0 -1
- package/tests/unit/modeling/semantic-configs.spec.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicUniqueName.d.ts","sourceRoot":"","sources":["../../../../src/modeling/definitions/PublicUniqueName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"PublicUniqueName.d.ts","sourceRoot":"","sources":["../../../../src/modeling/definitions/PublicUniqueName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,EAAE,EAAE,YAAY,CAAC,gBAAgB,CAAA;IACjC,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,UAAU,mBAAmB,KAC5B,QAAQ,IAAI,+BAEd,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,GACzC,SAAQ,sBAA2B,KAClC,+BAaF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,sBAK/C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicUniqueName.js","sourceRoot":"","sources":["../../../../src/modeling/definitions/PublicUniqueName.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"PublicUniqueName.js","sourceRoot":"","sources":["../../../../src/modeling/definitions/PublicUniqueName.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAkD9C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAA6B,EACgB,EAAE;IAC/C,OAAO,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,gBAAgB,CAAA;AACtD,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,SAAiC,EAAE,EACF,EAAE;IACnC,MAAM,YAAY,GAAG;QACnB,GAAG,iCAAiC;QACpC,GAAG,MAAM;KACV,CAAA;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,YAAY,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAChD,CAAC;IAED,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,gBAAgB;QACjC,MAAM,EAAE,YAAY;KACrB,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAA2B;IACvE,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;CACvB,CAAA","sourcesContent":["import type { AppliedDataSemantic } from '../Semantics.js'\nimport { SemanticType } from '../Semantics.js'\n\n/**\n * Configuration options for the PublicUniqueName (slug) semantic.\n * Controls how slugs are generated and validated.\n */\nexport interface PublicUniqueNameConfig {\n /**\n * The key of the source field to generate the slug from.\n * Default to the field that is annotated with the Title semantic.\n */\n sourceField?: string\n /**\n * Separator character to use in the slug (default: '-').\n */\n separator?: string\n /**\n * Whether the slug is case sensitive (default: false).\n */\n caseSensitive?: boolean\n /**\n * Whether to allow Unicode characters in the slug (default: false).\n */\n allowUnicode?: boolean\n /**\n * Whether to allow duplicate slugs (default: false).\n */\n allowDuplicates?: boolean\n /**\n * Fallback field to use if the source field is empty or invalid.\n */\n fallbackField?: string\n /**\n * Custom metadata for the slug field.\n */\n metadata?: Record<string, unknown>\n /**\n * Index signature to allow additional properties.\n */\n [key: string]: unknown\n}\n\n/**\n * Type-safe configuration for PublicUniqueName semantic.\n */\nexport interface AppliedPublicUniqueNameSemantic extends AppliedDataSemantic {\n id: SemanticType.PublicUniqueName\n config?: PublicUniqueNameConfig\n}\n\n/**\n * Type guard to check if a semantic is a PublicUniqueName semantic.\n */\nexport const isPublicUniqueNameSemantic = (\n semantic: AppliedDataSemantic\n): semantic is AppliedPublicUniqueNameSemantic => {\n return semantic.id === SemanticType.PublicUniqueName\n}\n\n/**\n * Helper function to create a PublicUniqueName semantic with configuration.\n */\nexport const createPublicUniqueNameSemantic = (\n config: PublicUniqueNameConfig = {}\n): AppliedPublicUniqueNameSemantic => {\n const mergedConfig = {\n ...DEFAULT_PUBLIC_UNIQUE_NAME_CONFIG,\n ...config,\n }\n if (config.metadata) {\n mergedConfig.metadata = { ...config.metadata }\n }\n\n return {\n id: SemanticType.PublicUniqueName,\n config: mergedConfig,\n }\n}\n\n/**\n * Default configuration for PublicUniqueName semantic.\n */\nexport const DEFAULT_PUBLIC_UNIQUE_NAME_CONFIG: PublicUniqueNameConfig = {\n separator: '-',\n caseSensitive: false,\n allowUnicode: false,\n allowDuplicates: false,\n}\n"]}
|
|
@@ -51,9 +51,12 @@ export interface SKUConfig {
|
|
|
51
51
|
*/
|
|
52
52
|
autoGenerate?: boolean;
|
|
53
53
|
/**
|
|
54
|
-
* Field
|
|
54
|
+
* Field key to use as source for auto-generation.
|
|
55
55
|
* Only used when autoGenerate is true.
|
|
56
56
|
* If not specified, uses random generation.
|
|
57
|
+
*
|
|
58
|
+
* The kay can be any field that provides a meaningful value for the SKU. It can also be a key of
|
|
59
|
+
* a property in one of the parent entities.
|
|
57
60
|
*/
|
|
58
61
|
autoGenerateSource?: string;
|
|
59
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SKU.d.ts","sourceRoot":"","sources":["../../../../src/modeling/definitions/SKU.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAEhE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAElC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB
|
|
1
|
+
{"version":3,"file":"SKU.d.ts","sourceRoot":"","sources":["../../../../src/modeling/definitions/SKU.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAEhE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAElC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAElC;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,EAAE,EAAE,YAAY,CAAC,GAAG,CAAA;IACpB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,mBAAmB,KAAG,QAAQ,IAAI,kBAEzE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAQ,SAAc,KAAG,kBAe1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAOhC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;;IAQH;;OAEG;;IAOH;;OAEG;;IASH;;OAEG;;CAOK,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,KAAG,MAAM,EAwB3D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,SAAQ,SAA8B,KAAG,MAAM,EAqC9F,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SKU.js","sourceRoot":"","sources":["../../../../src/modeling/definitions/SKU.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AppliedDataSemantic } from '../Semantics.js'\nimport { SemanticType } from '../Semantics.js'\n\n/**\n * Supported SKU validation modes.\n */\nexport type SKUValidationMode = 'strict' | 'lenient' | 'custom'\n\n/**\n * Supported SKU case transformation modes.\n */\nexport type SKUCaseMode = 'uppercase' | 'lowercase' | 'preserve'\n\n/**\n * Configuration options for the SKU semantic.\n * Controls SKU validation, formatting, uniqueness enforcement, and pattern matching.\n */\nexport interface SKUConfig {\n /**\n * The validation mode for SKU format.\n *\n * - 'strict': Enforces alphanumeric characters with optional hyphens/underscores\n * - 'lenient': Allows more special characters but still validates basic format\n * - 'custom': Uses custom regex pattern defined in `customPattern`\n */\n validationMode?: SKUValidationMode\n\n /**\n * Custom regex pattern for SKU validation when using 'custom' validation mode.\n * Only used when validationMode is 'custom'.\n */\n customPattern?: string\n\n /**\n * Case transformation to apply to SKUs.\n * - 'uppercase': Convert to uppercase (recommended for consistency)\n * - 'lowercase': Convert to lowercase\n * - 'preserve': Keep original case\n */\n caseMode?: SKUCaseMode\n\n /**\n * Prefix to automatically add to SKUs if not present.\n * Useful for organizing SKUs by category (e.g., 'PROD-', 'SKU-').\n */\n prefix?: string\n\n /**\n * Whether to enforce global uniqueness across all entities.\n * When true, creates unique database constraints.\n * Default: true\n */\n enforceUniqueness?: boolean\n\n /**\n * Whether to auto-generate SKUs when not provided.\n * When true, generates SKUs based on other fields or random values.\n * Default: false\n */\n autoGenerate?: boolean\n\n /**\n * Field name to use as source for auto-generation.\n * Only used when autoGenerate is true.\n * If not specified, uses random generation.\n */\n autoGenerateSource?: string\n\n /**\n * Whether to validate that SKU doesn't conflict with reserved words or patterns.\n * Default: true\n */\n validateReservedWords?: boolean\n\n /**\n * List of reserved SKU values that cannot be used.\n * Common examples: 'ADMIN', 'TEST', 'NULL', 'DEFAULT'\n */\n reservedValues?: string[]\n\n /**\n * Custom metadata for the SKU field.\n */\n metadata?: Record<string, unknown>\n\n /**\n * Index signature to allow additional properties.\n */\n [key: string]: unknown\n}\n\n/**\n * Type-safe configuration for SKU semantic.\n */\nexport interface AppliedSKUSemantic extends AppliedDataSemantic {\n id: SemanticType.SKU\n config?: SKUConfig\n}\n\n/**\n * Type guard to check if a semantic is a SKU semantic.\n */\nexport const isSKUSemantic = (semantic: AppliedDataSemantic): semantic is AppliedSKUSemantic => {\n return semantic.id === SemanticType.SKU\n}\n\n/**\n * Helper function to create a SKU semantic with configuration.\n */\nexport const createSKUSemantic = (config: SKUConfig = {}): AppliedSKUSemantic => {\n const mergedConfig = {\n ...DEFAULT_SKU_CONFIG,\n ...config,\n }\n\n // Merge metadata separately\n if (config.metadata) {\n mergedConfig.metadata = { ...config.metadata }\n }\n\n return {\n id: SemanticType.SKU,\n config: mergedConfig,\n }\n}\n\n/**\n * Default configuration for SKU semantic.\n * Optimized for common product catalog use cases.\n */\nexport const DEFAULT_SKU_CONFIG: SKUConfig = {\n validationMode: 'strict',\n caseMode: 'uppercase',\n enforceUniqueness: true,\n autoGenerate: false,\n validateReservedWords: true,\n reservedValues: ['ADMIN', 'TEST', 'NULL', 'DEFAULT', 'UNDEFINED', 'SAMPLE', 'DEMO'],\n}\n\n/**\n * Predefined configurations for common use cases.\n */\nexport const SKU_PRESETS = {\n /**\n * Standard product SKU with strict validation and uppercase formatting.\n */\n PRODUCT_STANDARD: createSKUSemantic({\n validationMode: 'strict',\n caseMode: 'uppercase',\n prefix: 'PROD-',\n enforceUniqueness: true,\n }),\n\n /**\n * Simple SKU configuration for basic catalogs.\n */\n SIMPLE: createSKUSemantic({\n validationMode: 'lenient',\n caseMode: 'preserve',\n enforceUniqueness: true,\n }),\n\n /**\n * Auto-generating SKU from product name.\n */\n AUTO_GENERATE: createSKUSemantic({\n validationMode: 'strict',\n caseMode: 'uppercase',\n autoGenerate: true,\n autoGenerateSource: 'name',\n enforceUniqueness: true,\n }),\n\n /**\n * Flexible SKU for variable product types.\n */\n FLEXIBLE: createSKUSemantic({\n validationMode: 'lenient',\n caseMode: 'preserve',\n enforceUniqueness: true,\n validateReservedWords: false,\n }),\n} as const\n\n/**\n * Helper function to validate a SKU configuration.\n */\nexport const validateSKUConfig = (config: SKUConfig): string[] => {\n const errors: string[] = []\n\n if (config.validationMode === 'custom' && !config.customPattern) {\n errors.push('customPattern is required when validationMode is custom')\n }\n\n if (config.customPattern) {\n try {\n new RegExp(config.customPattern)\n } catch {\n errors.push('customPattern must be a valid regular expression')\n }\n }\n\n if (config.prefix && config.prefix.length === 0) {\n errors.push('prefix cannot be empty string')\n }\n\n if (config.autoGenerateSource && !config.autoGenerate) {\n errors.push('autoGenerate must be true when autoGenerateSource is specified')\n }\n\n return errors\n}\n\n/**\n * Helper function to validate SKU value against configuration.\n */\nexport const validateSKUValue = (value: string, config: SKUConfig = DEFAULT_SKU_CONFIG): string[] => {\n const errors: string[] = []\n const mergedConfig = { ...DEFAULT_SKU_CONFIG, ...config }\n\n if (!value || typeof value !== 'string') {\n errors.push('SKU value must be a non-empty string')\n return errors\n }\n\n if (mergedConfig.validateReservedWords && mergedConfig.reservedValues) {\n const normalizedValue = value.toUpperCase()\n if (mergedConfig.reservedValues.some((reserved) => reserved.toUpperCase() === normalizedValue)) {\n errors.push(`SKU cannot use reserved value: ${value}`)\n }\n }\n\n // Validation pattern checks\n if (mergedConfig.validationMode === 'strict') {\n if (!/^[A-Za-z0-9_-]+$/.test(value)) {\n errors.push('SKU can only contain alphanumeric characters, hyphens, and underscores')\n }\n } else if (mergedConfig.validationMode === 'lenient') {\n if (!/^[A-Za-z0-9_.-]+$/.test(value)) {\n errors.push('SKU contains invalid characters')\n }\n } else if (mergedConfig.validationMode === 'custom' && mergedConfig.customPattern) {\n try {\n const regex = new RegExp(mergedConfig.customPattern)\n if (!regex.test(value)) {\n errors.push('SKU does not match the required pattern')\n }\n } catch {\n errors.push('Invalid custom pattern configuration')\n }\n }\n\n return errors\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SKU.js","sourceRoot":"","sources":["../../../../src/modeling/definitions/SKU.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAqG9C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAA6B,EAAkC,EAAE;IAC7F,OAAO,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,GAAG,CAAA;AACzC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAE,EAAsB,EAAE;IAC9E,MAAM,YAAY,GAAG;QACnB,GAAG,kBAAkB;QACrB,GAAG,MAAM;KACV,CAAA;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,YAAY,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAChD,CAAC;IAED,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,GAAG;QACpB,MAAM,EAAE,YAAY;KACrB,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,cAAc,EAAE,QAAQ;IACxB,QAAQ,EAAE,WAAW;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,IAAI;IAC3B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;CACpF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;;OAEG;IACH,gBAAgB,EAAE,iBAAiB,CAAC;QAClC,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,OAAO;QACf,iBAAiB,EAAE,IAAI;KACxB,CAAC;IAEF;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;QACxB,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,IAAI;KACxB,CAAC;IAEF;;OAEG;IACH,aAAa,EAAE,iBAAiB,CAAC;QAC/B,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,IAAI;QAClB,kBAAkB,EAAE,MAAM;QAC1B,iBAAiB,EAAE,IAAI;KACxB,CAAC;IAEF;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAC;QAC1B,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,IAAI;QACvB,qBAAqB,EAAE,KAAK;KAC7B,CAAC;CACM,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAiB,EAAY,EAAE;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,IAAI,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IAC/E,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,SAAoB,kBAAkB,EAAY,EAAE;IAClG,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,MAAM,EAAE,CAAA;IAEzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;QACnD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,YAAY,CAAC,qBAAqB,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QACtE,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAC3C,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;YAC/F,MAAM,CAAC,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAA;QACvF,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,CAAC,cAAc,KAAK,QAAQ,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;YACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA","sourcesContent":["import type { AppliedDataSemantic } from '../Semantics.js'\nimport { SemanticType } from '../Semantics.js'\n\n/**\n * Supported SKU validation modes.\n */\nexport type SKUValidationMode = 'strict' | 'lenient' | 'custom'\n\n/**\n * Supported SKU case transformation modes.\n */\nexport type SKUCaseMode = 'uppercase' | 'lowercase' | 'preserve'\n\n/**\n * Configuration options for the SKU semantic.\n * Controls SKU validation, formatting, uniqueness enforcement, and pattern matching.\n */\nexport interface SKUConfig {\n /**\n * The validation mode for SKU format.\n *\n * - 'strict': Enforces alphanumeric characters with optional hyphens/underscores\n * - 'lenient': Allows more special characters but still validates basic format\n * - 'custom': Uses custom regex pattern defined in `customPattern`\n */\n validationMode?: SKUValidationMode\n\n /**\n * Custom regex pattern for SKU validation when using 'custom' validation mode.\n * Only used when validationMode is 'custom'.\n */\n customPattern?: string\n\n /**\n * Case transformation to apply to SKUs.\n * - 'uppercase': Convert to uppercase (recommended for consistency)\n * - 'lowercase': Convert to lowercase\n * - 'preserve': Keep original case\n */\n caseMode?: SKUCaseMode\n\n /**\n * Prefix to automatically add to SKUs if not present.\n * Useful for organizing SKUs by category (e.g., 'PROD-', 'SKU-').\n */\n prefix?: string\n\n /**\n * Whether to enforce global uniqueness across all entities.\n * When true, creates unique database constraints.\n * Default: true\n */\n enforceUniqueness?: boolean\n\n /**\n * Whether to auto-generate SKUs when not provided.\n * When true, generates SKUs based on other fields or random values.\n * Default: false\n */\n autoGenerate?: boolean\n\n /**\n * Field key to use as source for auto-generation.\n * Only used when autoGenerate is true.\n * If not specified, uses random generation.\n *\n * The kay can be any field that provides a meaningful value for the SKU. It can also be a key of\n * a property in one of the parent entities.\n */\n autoGenerateSource?: string\n\n /**\n * Whether to validate that SKU doesn't conflict with reserved words or patterns.\n * Default: true\n */\n validateReservedWords?: boolean\n\n /**\n * List of reserved SKU values that cannot be used.\n * Common examples: 'ADMIN', 'TEST', 'NULL', 'DEFAULT'\n */\n reservedValues?: string[]\n\n /**\n * Custom metadata for the SKU field.\n */\n metadata?: Record<string, unknown>\n\n /**\n * Index signature to allow additional properties.\n */\n [key: string]: unknown\n}\n\n/**\n * Type-safe configuration for SKU semantic.\n */\nexport interface AppliedSKUSemantic extends AppliedDataSemantic {\n id: SemanticType.SKU\n config?: SKUConfig\n}\n\n/**\n * Type guard to check if a semantic is a SKU semantic.\n */\nexport const isSKUSemantic = (semantic: AppliedDataSemantic): semantic is AppliedSKUSemantic => {\n return semantic.id === SemanticType.SKU\n}\n\n/**\n * Helper function to create a SKU semantic with configuration.\n */\nexport const createSKUSemantic = (config: SKUConfig = {}): AppliedSKUSemantic => {\n const mergedConfig = {\n ...DEFAULT_SKU_CONFIG,\n ...config,\n }\n\n // Merge metadata separately\n if (config.metadata) {\n mergedConfig.metadata = { ...config.metadata }\n }\n\n return {\n id: SemanticType.SKU,\n config: mergedConfig,\n }\n}\n\n/**\n * Default configuration for SKU semantic.\n * Optimized for common product catalog use cases.\n */\nexport const DEFAULT_SKU_CONFIG: SKUConfig = {\n validationMode: 'strict',\n caseMode: 'uppercase',\n enforceUniqueness: true,\n autoGenerate: false,\n validateReservedWords: true,\n reservedValues: ['ADMIN', 'TEST', 'NULL', 'DEFAULT', 'UNDEFINED', 'SAMPLE', 'DEMO'],\n}\n\n/**\n * Predefined configurations for common use cases.\n */\nexport const SKU_PRESETS = {\n /**\n * Standard product SKU with strict validation and uppercase formatting.\n */\n PRODUCT_STANDARD: createSKUSemantic({\n validationMode: 'strict',\n caseMode: 'uppercase',\n prefix: 'PROD-',\n enforceUniqueness: true,\n }),\n\n /**\n * Simple SKU configuration for basic catalogs.\n */\n SIMPLE: createSKUSemantic({\n validationMode: 'lenient',\n caseMode: 'preserve',\n enforceUniqueness: true,\n }),\n\n /**\n * Auto-generating SKU from product name.\n */\n AUTO_GENERATE: createSKUSemantic({\n validationMode: 'strict',\n caseMode: 'uppercase',\n autoGenerate: true,\n autoGenerateSource: 'name',\n enforceUniqueness: true,\n }),\n\n /**\n * Flexible SKU for variable product types.\n */\n FLEXIBLE: createSKUSemantic({\n validationMode: 'lenient',\n caseMode: 'preserve',\n enforceUniqueness: true,\n validateReservedWords: false,\n }),\n} as const\n\n/**\n * Helper function to validate a SKU configuration.\n */\nexport const validateSKUConfig = (config: SKUConfig): string[] => {\n const errors: string[] = []\n\n if (config.validationMode === 'custom' && !config.customPattern) {\n errors.push('customPattern is required when validationMode is custom')\n }\n\n if (config.customPattern) {\n try {\n new RegExp(config.customPattern)\n } catch {\n errors.push('customPattern must be a valid regular expression')\n }\n }\n\n if (config.prefix && config.prefix.length === 0) {\n errors.push('prefix cannot be empty string')\n }\n\n if (config.autoGenerateSource && !config.autoGenerate) {\n errors.push('autoGenerate must be true when autoGenerateSource is specified')\n }\n\n return errors\n}\n\n/**\n * Helper function to validate SKU value against configuration.\n */\nexport const validateSKUValue = (value: string, config: SKUConfig = DEFAULT_SKU_CONFIG): string[] => {\n const errors: string[] = []\n const mergedConfig = { ...DEFAULT_SKU_CONFIG, ...config }\n\n if (!value || typeof value !== 'string') {\n errors.push('SKU value must be a non-empty string')\n return errors\n }\n\n if (mergedConfig.validateReservedWords && mergedConfig.reservedValues) {\n const normalizedValue = value.toUpperCase()\n if (mergedConfig.reservedValues.some((reserved) => reserved.toUpperCase() === normalizedValue)) {\n errors.push(`SKU cannot use reserved value: ${value}`)\n }\n }\n\n // Validation pattern checks\n if (mergedConfig.validationMode === 'strict') {\n if (!/^[A-Za-z0-9_-]+$/.test(value)) {\n errors.push('SKU can only contain alphanumeric characters, hyphens, and underscores')\n }\n } else if (mergedConfig.validationMode === 'lenient') {\n if (!/^[A-Za-z0-9_.-]+$/.test(value)) {\n errors.push('SKU contains invalid characters')\n }\n } else if (mergedConfig.validationMode === 'custom' && mergedConfig.customPattern) {\n try {\n const regex = new RegExp(mergedConfig.customPattern)\n if (!regex.test(value)) {\n errors.push('SKU does not match the required pattern')\n }\n } catch {\n errors.push('Invalid custom pattern configuration')\n }\n }\n\n return errors\n}\n"]}
|
|
@@ -5,12 +5,9 @@ import { SemanticType } from '../Semantics.js';
|
|
|
5
5
|
* Controls validation, allowed protocols, and formatting.
|
|
6
6
|
*/
|
|
7
7
|
export interface URLConfig {
|
|
8
|
-
/**
|
|
9
|
-
* List of allowed protocols (e.g., ['http', 'https']).
|
|
10
|
-
*/
|
|
11
|
-
allowedProtocols?: string[];
|
|
12
8
|
/**
|
|
13
9
|
* Whether to require HTTPS protocol (default: false).
|
|
10
|
+
* When not set, both HTTP and HTTPS are allowed.
|
|
14
11
|
*/
|
|
15
12
|
requireHttps?: boolean;
|
|
16
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"URL.d.ts","sourceRoot":"","sources":["../../../../src/modeling/definitions/URL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB
|
|
1
|
+
{"version":3,"file":"URL.d.ts","sourceRoot":"","sources":["../../../../src/modeling/definitions/URL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,EAAE,EAAE,YAAY,CAAC,GAAG,CAAA;IACpB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,mBAAmB,KAAG,QAAQ,IAAI,kBAEzE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAQ,SAAc,KAAG,kBAa1D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAQhC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"URL.js","sourceRoot":"","sources":["../../../../src/modeling/definitions/URL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"URL.js","sourceRoot":"","sources":["../../../../src/modeling/definitions/URL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAsD9C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAA6B,EAAkC,EAAE;IAC7F,OAAO,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,GAAG,CAAA;AACzC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAE,EAAsB,EAAE;IAC9E,MAAM,YAAY,GAAG;QACnB,GAAG,kBAAkB;QACrB,GAAG,MAAM;KACV,CAAA;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,YAAY,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAChD,CAAC;IAED,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,GAAG;QACpB,MAAM,EAAE,YAAY;KACrB,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,KAAK;CAC3B,CAAA","sourcesContent":["import type { AppliedDataSemantic } from '../Semantics.js'\nimport { SemanticType } from '../Semantics.js'\n\n/**\n * Configuration options for the URL semantic.\n * Controls validation, allowed protocols, and formatting.\n */\nexport interface URLConfig {\n /**\n * Whether to require HTTPS protocol (default: false).\n * When not set, both HTTP and HTTPS are allowed.\n */\n requireHttps?: boolean\n /**\n * Whether to allow query parameters in the URL.\n */\n allowQueryParams?: boolean\n /**\n * Whether to allow URL fragments (e.g., #section).\n */\n allowFragments?: boolean\n /**\n * Whether to allow internationalized domain names.\n */\n allowInternational?: boolean\n /**\n * Whether to allow IP addresses as hostnames.\n */\n allowIP?: boolean\n /**\n * Whether to allow port numbers in the URL.\n */\n allowPort?: boolean\n /**\n * Whether to allow authentication info (user:pass@host).\n */\n allowAuthentication?: boolean\n /**\n * Custom metadata for the URL field.\n */\n metadata?: Record<string, unknown>\n /**\n * Index signature to allow additional properties.\n */\n [key: string]: unknown\n}\n\n/**\n * Type-safe configuration for URL semantic.\n */\nexport interface AppliedURLSemantic extends AppliedDataSemantic {\n id: SemanticType.URL\n config?: URLConfig\n}\n\n/**\n * Type guard to check if a semantic is a URL semantic.\n */\nexport const isURLSemantic = (semantic: AppliedDataSemantic): semantic is AppliedURLSemantic => {\n return semantic.id === SemanticType.URL\n}\n\n/**\n * Helper function to create a URL semantic with configuration.\n */\nexport const createURLSemantic = (config: URLConfig = {}): AppliedURLSemantic => {\n const mergedConfig = {\n ...DEFAULT_URL_CONFIG,\n ...config,\n }\n if (config.metadata) {\n mergedConfig.metadata = { ...config.metadata }\n }\n\n return {\n id: SemanticType.URL,\n config: mergedConfig,\n }\n}\n\n/**\n * Default configuration for URL semantic.\n */\nexport const DEFAULT_URL_CONFIG: URLConfig = {\n requireHttps: false,\n allowQueryParams: true,\n allowFragments: true,\n allowInternational: true,\n allowIP: true,\n allowPort: true,\n allowAuthentication: false,\n}\n"]}
|