@acorex-platform/module-identifier-management-client 0.0.15 → 0.0.18
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-identifier-management-client.mjs","sources":["../../../../libs/modules/identifier-management/client/src/lib/manifest.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier-evaluator-scope.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier.plugin.ts","../../../../libs/modules/identifier-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/menu.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/entity.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/setting.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/identifier-management.module.ts","../../../../libs/modules/identifier-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier-rule.repository.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/token-registry.service.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/engine.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/utils.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.providers.ts","../../../../libs/modules/identifier-management/client/src/acorex-platform-module-identifier-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Identifier Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const IdentifierManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { InjectionToken } from '@angular/core';\nimport type { AXPIdentifierRule } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Public Types: Requests & Results ----\n\nexport interface AXPIdentifierRequest {\n /** Identifier id, e.g. 'employee-code' */\n id: string;\n /** Optional tenant partition */\n tenantId?: string;\n /** Optional application partition */\n appId?: string;\n /** Arbitrary payload for tokens to read from */\n payload?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierResult {\n code: string;\n ruleId: string;\n scopeHash: string;\n consumed: boolean;\n meta?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierPeekResult extends AXPIdentifierResult {\n consumed: false;\n commitToken: string; // opaque token for safe finalization\n}\n\n//#endregion\n\n//#region ---- Rule Definition ----\n\nexport type { AXPIdentifierRule };\n\n//#endregion\n\n//#region ---- Main Port (UI) ----\n\nexport abstract class AXPIdentifierService {\n abstract generate(req: AXPIdentifierRequest): Promise<AXPIdentifierResult>;\n abstract peek(req: AXPIdentifierRequest): Promise<AXPIdentifierPeekResult>;\n abstract validate(code: string, entity: string, tenantId?: string): Promise<boolean>;\n abstract commitWithToken(token: string): Promise<AXPIdentifierResult>;\n /** Optional helper for manual codes; stricter and may reject if not next sequence */\n abstract commitByCode(req: AXPIdentifierRequest, code: string): Promise<AXPIdentifierResult>;\n}\n\n\nexport const AXP_IDENTIFIER_SERVICE = new InjectionToken<AXPIdentifierService>('AXP_IDENTIFIER_SERVICE');\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\n/** @deprecated Rules are loaded from {@link IDENTIFIER_RULE_ENTITY} entity storage. */\nexport const AXP_IDENTIFIER_RULES = new InjectionToken<AXPIdentifierRule[]>(\n 'AXP_IDENTIFIER_RULES'\n);\n\n//#endregion\n\n\n","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-client/core\";\nimport { inject } from \"@angular/core\";\nimport { AXP_IDENTIFIER_SERVICE } from \"./core/identifier.types\";\nimport { AXPSessionService } from \"@acorex-platform/framework-client/auth\";\n\nexport class AXMIdentifierEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected identifierService = inject(AXP_IDENTIFIER_SERVICE);\n protected sessionService = inject(AXPSessionService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('identifier', {\n peek: async (id: string) => {\n const identifier = await this.identifierService.peek({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n },\n generate: async (id: string) => {\n const identifier = await this.identifierService.generate({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n }\n })\n }\n}","import { AXPEntityActionPlugin } from \"@acorex-platform/framework-client/layout/entity\";\n\nconst IDENTIFIER_DEFAULT_VALUE = (rule: string) => `{{ identifier.peek(\"${rule}\") }}`;\n\nexport const identifierPlugin: AXPEntityActionPlugin = {\n name: 'identifier',\n order: 40,\n apply: (ctx, options: { field: string; rule: string }) => {\n if (!options?.field || !options?.rule) return;\n\n const defaultValue = IDENTIFIER_DEFAULT_VALUE(options.rule);\n const entity = ctx.entity as any;\n\n // Direct property: update in-place\n const propHandle = ctx.properties.find(options.field);\n const existingProp = propHandle.get();\n if (existingProp) {\n propHandle.update((p) => {\n const next = { ...p } as any;\n next.schema = { ...(next.schema ?? {}) };\n next.schema.defaultValue = defaultValue;\n return next;\n });\n } else if (options.field.includes('.')) {\n // Nested path (e.g. party.code): use generic propertyOverrides extension\n entity.extensions ??= {};\n entity.extensions.propertyOverrides ??= {};\n entity.extensions.propertyOverrides[options.field] = {\n schema: { ...(entity.extensions.propertyOverrides[options.field]?.schema ?? {}), defaultValue },\n };\n }\n\n entity.extensions ??= {};\n entity.extensions.identifier = { field: options.field, rule: options.rule };\n },\n};\n\n","import {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport { AXMPermissionsKeys, RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXMPermissionsKeys.IdentifierManagement;\n\n context\n .addGroup(\n RootConfig.module.name,\n '@identifier-management:permissions.manage.title',\n '@identifier-management:permissions.manage.description',\n )\n .addPermission(\n keys.IdentifierRules,\n '@identifier-management:entities.identifier-rule.permissions.manage.title',\n '@identifier-management:entities.identifier-rule.permissions.manage.description',\n )\n .endPermission()\n .endGroup();\n }\n}\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPIdentifierManagementMenuKeys,\n AXMPermissionsKeys,\n RootConfig,\n} from '@acorex-platform/module-identifier-management-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n\n context.find(AXPCommonMenuKeys.Platform).addItems([\n {\n name: AXPIdentifierManagementMenuKeys.IdentifierRules,\n text: RootConfig.entities.identifierRule.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.identifierRule.name),\n icon: RootConfig.entities.identifierRule.icon,\n priority: 4,\n policy: {\n features: [module.name],\n permissions: [AXMPermissionsKeys.IdentifierManagement.IdentifierRules],\n },\n },\n ]);\n }\n}\n","\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n@Injectable()\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n public preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: { name: string }) => ({\n module: module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.identifierRule.name:\n return (await import('@acorex-platform/module-identifier-management-client/contracts')).identifierRuleFactory();\n default:\n break;\n }\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const m = RootConfig.module.name;\n const entities = Object.values(RootConfig.entities) as { name: string }[];\n return Promise.resolve(entities.map((e) => ({ name: e.name, module: m })));\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { IdentifierManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXMIdentifierEvaluatorScopeProvider } from './features/shared/identifier-evaluator-scope.provider';\nimport { identifierPlugin } from \"./features/shared/identifier.plugin\";\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMSettingProvider } from './setting.provider';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: identifierPlugin,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMIdentifierEvaluatorScopeProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: IdentifierManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n ]\n})\nexport class AXMIdentifierManagementModule { }\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXPEntityStorageService } from '@acorex-platform/framework-client/layout/entity';\r\r\nimport {\r\r\n IDENTIFIER_RULE_ENTITY,\r\r\n type AXPIdentifierRule,\r\r\n} from '@acorex-platform/module-identifier-management-client/contracts';\r\r\nimport { inject, Injectable } from '@angular/core';\r\r\nimport { get } from 'lodash';\r\r\n\r\r\n//#region ---- Identifier rule repository ----\r\r\n\r\r\n/**\r\r\n * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} entity storage (mock or API).\r\r\n */\r\r\n@Injectable({ providedIn: 'root' })\r\r\nexport class AXPIdentifierRuleRepository {\r\r\n private readonly storage = inject(AXPEntityStorageService);\r\r\n\r\r\n async findById(id: string): Promise<AXPIdentifierRule | undefined> {\r\r\n const rules = await this.listAll();\r\r\n return rules.find((rule) => rule.name === id && !rule.isDisabled);\r\r\n }\r\r\n\r\r\n async listEnabled(): Promise<AXPIdentifierRule[]> {\r\r\n const rules = await this.listAll();\r\r\n return rules.filter((rule) => !rule.isDisabled);\r\r\n }\r\r\n\r\r\n private async listAll(): Promise<AXPIdentifierRule[]> {\r\r\n try {\r\r\n const response = await this.storage.query(IDENTIFIER_RULE_ENTITY, { skip: 0, take: 1000 });\r\r\n const items = response.items ?? [];\r\r\n return items\r\r\n .map((item) => this.mapEntityToRule(item))\r\r\n .filter((rule): rule is AXPIdentifierRule => rule != null);\r\r\n } catch {\r\r\n return [];\r\r\n }\r\r\n }\r\r\n\r\r\n private mapEntityToRule(record: unknown): AXPIdentifierRule | null {\r\r\n if (!record || typeof record !== 'object') {\r\r\n return null;\r\r\n }\r\r\n const nameRaw = get(record, 'name') ?? get(record, 'id');\r\r\n const pattern = get(record, 'pattern');\r\r\n if (typeof nameRaw !== 'string' || typeof pattern !== 'string') {\r\r\n return null;\r\r\n }\r\r\n const scopeConfig = get(record, 'scopeConfig');\r\r\n const enabledLegacy = get(record, 'enabled');\r\r\n const isDisabledRaw = get(record, 'isDisabled');\r\r\n const isDisabled =\r\r\n typeof isDisabledRaw === 'boolean'\r\r\n ? isDisabledRaw\r\r\n : enabledLegacy === false;\r\r\n\r\r\n return {\r\r\n name: nameRaw,\r\r\n title: String(get(record, 'title') ?? nameRaw),\r\r\n entity: String(get(record, 'entity') ?? ''),\r\r\n pattern,\r\r\n isDisabled,\r\r\n scopeConfig:\r\r\n scopeConfig && typeof scopeConfig === 'object'\r\r\n ? (scopeConfig as AXPIdentifierRule['scopeConfig'])\r\r\n : {},\r\r\n };\r\r\n }\r\r\n}\r\r\n\r\r\n//#endregion\r\r\n","//#region ---- Token Contracts ----\n\nimport { AXPIdentifierRequest } from './identifier.types';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXPPatternToken {\n name: string;\n args: string[];\n raw: string;\n index: number;\n}\n\nexport interface AXPEvalServices {\n sequence: AXPSequenceProvider;\n checksum: AXPChecksumProvider;\n lookup?: AXPLookupProvider;\n policy?: AXPPolicyProvider;\n clock?: AXPClockProvider;\n}\n\nexport interface AXPEvalContext {\n pattern: string;\n request: AXPIdentifierRequest;\n cache: Map<string, unknown>;\n now: Date;\n services: AXPEvalServices;\n evaluationMode: 'preview' | 'commit';\n}\n\nexport interface AXPTokenHandler {\n readonly name: string;\n readonly priority?: number;\n validate?(token: AXPPatternToken): void | never;\n eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string>;\n meta?: {\n title?: string;\n description?: string;\n category?: string;\n examples?: string[];\n argHints?: string[];\n version?: string;\n };\n}\n\nexport interface AXPTokenRegistry {\n register(handler: AXPTokenHandler): void;\n unregister(name: string): void;\n get(name: string): AXPTokenHandler | undefined;\n list(): AXPTokenHandler[];\n}\n\n//#endregion\n\n//#region ---- Sequence & Utilities ----\n\nexport interface AXPSequenceProvider {\n next(scopeHash: string, ruleId: string, options?: { pad?: number; consume?: boolean }): Promise<number>;\n}\n\nexport interface AXPChecksumProvider {\n compute(algo: 'luhn' | 'mod11', input: string): string;\n}\n\nexport interface AXPLookupProvider {\n get(key: string, params?: Record<string, unknown>): Promise<string | undefined>;\n}\n\nexport interface AXPPolicyProvider {\n isAllowed(tokenName: string, request: AXPIdentifierRequest): boolean;\n}\n\nexport interface AXPClockProvider {\n now(): Date;\n}\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\nexport const AXP_TOKEN_HANDLERS = new InjectionToken<AXPTokenHandler[]>(\n 'AXP_TOKEN_HANDLERS'\n);\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXPTokenHandler, AXPTokenRegistry, AXP_TOKEN_HANDLERS } from './tokens.types';\n\n//#endregion\n\n@Injectable({ providedIn: 'root' })\nexport class AXPTokenRegistryService implements AXPTokenRegistry {\n //#region ---- Fields ----\n\n private readonly handlers = new Map<string, AXPTokenHandler>();\n private readonly providerHandlers = inject(AXP_TOKEN_HANDLERS, { optional: true }) ?? [];\n\n //#endregion\n\n //#region ---- Public API ----\n\n register(handler: AXPTokenHandler): void {\n const existing = this.handlers.get(handler.name);\n if (!existing || (handler.priority ?? 0) > (existing.priority ?? 0)) {\n this.handlers.set(handler.name, handler);\n }\n }\n\n unregister(name: string): void {\n this.handlers.delete(name);\n }\n\n get(name: string): AXPTokenHandler | undefined {\n // provider-provided take precedence by priority\n const fromProviders = this.providerHandlers\n .filter((h) => h.name === name)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];\n if (fromProviders) return fromProviders;\n return this.handlers.get(name);\n }\n\n list(): AXPTokenHandler[] {\n const map = new Map<string, AXPTokenHandler>();\n const put = (h: AXPTokenHandler) => {\n const prev = map.get(h.name);\n if (!prev || (h.priority ?? 0) > (prev.priority ?? 0)) map.set(h.name, h);\n };\n this.providerHandlers.forEach(put);\n Array.from(this.handlers.values()).forEach(put);\n return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n }\n\n //#endregion\n}\n\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken } from './tokens.types';\nimport { inject } from '@angular/core';\nimport { AXPTokenRegistryService } from './token-registry.service';\n\n//#endregion\n\n//#region ---- Engine Contracts ----\n\nexport type AXPCompiledFragment = AXPPatternToken | { type: 'literal'; text: string };\n\nexport interface AXPCompiledPattern {\n pattern: string;\n tokens: AXPCompiledFragment[];\n}\n\nexport interface AXPPatternEngine {\n compile(pattern: string): AXPCompiledPattern;\n evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string>;\n}\n\n//#endregion\n\n//#region ---- Simple Pattern Engine Impl ----\n\nconst TOKEN_REGEX = /\\{([^{}]+)\\}/g; // matches {token[:args]}\n\nexport class AXPSimplePatternEngine implements AXPPatternEngine {\n private readonly registry = inject(AXPTokenRegistryService);\n\n compile(pattern: string): AXPCompiledPattern {\n const tokens: AXPCompiledFragment[] = [];\n let match: RegExpExecArray | null;\n let index = 0;\n let lastIndex = 0;\n while ((match = TOKEN_REGEX.exec(pattern)) !== null) {\n // push any literal text before this token\n const literal = pattern.slice(lastIndex, match.index);\n if (literal) {\n tokens.push({ type: 'literal', text: literal });\n }\n const raw = match[0];\n const inner = match[1];\n const [name, ...args] = inner.split(':');\n const token: AXPPatternToken = {\n name: name.trim(),\n args: args.length ? inner.substring(inner.indexOf(':') + 1).split(':') : [],\n raw,\n index: index++,\n };\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token: ${token.name}`);\n }\n handler.validate?.(token);\n tokens.push(token);\n lastIndex = match.index + raw.length;\n }\n // trailing literal\n const tail = pattern.slice(lastIndex);\n if (tail) {\n tokens.push({ type: 'literal', text: tail });\n }\n return { pattern, tokens };\n }\n\n async evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string> {\n let built = '';\n for (const frag of compiled.tokens) {\n if ((frag as any).type === 'literal') {\n built += (frag as any).text as string;\n continue;\n }\n const token = frag as AXPPatternToken;\n ctx.cache.set('__acc__', built);\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token at eval: ${token.name}`);\n }\n const fragment = await handler.eval(token, ctx);\n built += fragment;\n }\n return built;\n }\n}\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport {AXPDataGenerator} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\nexport function buildScopeHash(parts: Array<string | undefined>): string {\n return parts.filter(Boolean).join('|');\n}\n\nexport function padNumber(num: number, size: number): string {\n const s = String(num);\n if (s.length >= size) return s;\n return '0'.repeat(size - s.length) + s;\n}\n\nexport function uuid(): string {\n return AXPDataGenerator.uuid();\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken, AXPTokenHandler } from './tokens.types';\nimport { padNumber } from './utils';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Built-in Token Handlers (Injectable) ----\n\n@Injectable()\nexport class DateToken implements AXPTokenHandler {\n readonly name = 'date';\n readonly meta = { title: 'Date', description: 'Formats current date', argHints: ['YYYY', 'YYYYMM', 'YYYYMMDD'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const fmt = token.args[0] ?? 'YYYYMMDD';\n const d = ctx.services.clock?.now() ?? ctx.now;\n const y = String(d.getFullYear());\n const m = padNumber(d.getMonth() + 1, 2);\n const day = padNumber(d.getDate(), 2);\n switch (fmt) {\n case 'YYYY':\n return y;\n case 'YYYYMM':\n return y + m;\n case 'YYYYMMDD':\n default:\n return y + m + day;\n }\n }\n}\n\n@Injectable()\nexport class ConstToken implements AXPTokenHandler {\n readonly name = 'const';\n readonly meta = { title: 'Constant', description: 'Fixed literal value' };\n async eval(token: AXPPatternToken): Promise<string> {\n return token.args.join(':');\n }\n}\n\n@Injectable()\nexport class FieldToken implements AXPTokenHandler {\n readonly name = 'field';\n readonly meta = { title: 'Field', description: 'Reads a value from request.payload' };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const key = token.args[0];\n if (!key) return '';\n const value = ctx.request.payload?.[key];\n return value == null ? '' : String(value);\n }\n}\n\n@Injectable()\nexport class TenantToken implements AXPTokenHandler {\n readonly name = 'tenant';\n readonly meta = { title: 'Tenant', description: 'Tenant scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.tenantId ?? '';\n }\n}\n\n@Injectable()\nexport class AppToken implements AXPTokenHandler {\n readonly name = 'app';\n readonly meta = { title: 'App', description: 'Application scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.appId ?? '';\n }\n}\n\n@Injectable()\nexport class SeqToken implements AXPTokenHandler {\n readonly name = 'seq';\n readonly meta = { title: 'Sequence', description: 'Auto-increment sequence', argHints: ['pad'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const pad = Number(token.args[0] ?? '0') || 0;\n const consume = ctx.evaluationMode === 'commit';\n const ruleId = ctx.cache.get('ruleId') as string;\n const n = await ctx.services.sequence.next(ctx.cache.get('scopeHash') as string, ruleId, { pad, consume });\n return pad ? padNumber(n, pad) : String(n);\n }\n}\n\n@Injectable()\nexport class CheckToken implements AXPTokenHandler {\n readonly name = 'check';\n readonly meta = { title: 'Checksum', description: 'Checksum of the string built so far', argHints: ['luhn|mod11'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const algo = (token.args[0] as 'luhn' | 'mod11') ?? 'luhn';\n const acc = String(ctx.cache.get('__acc__') ?? '');\n return ctx.services.checksum.compute(algo, acc);\n }\n}\n\n//#endregion\n","import { Provider } from '@angular/core';\nimport { AXP_TOKEN_HANDLERS } from './tokens.types';\nimport { AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken } from './tokens-default';\n\nexport const AXP_DEFAULT_TOKEN_PROVIDERS: Provider[] = [\n { provide: AXP_TOKEN_HANDLERS, useClass: DateToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: ConstToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: FieldToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: TenantToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: AppToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: SeqToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: CheckToken, multi: true },\n];\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-identifier-management-client.mjs","sources":["../../../../libs/modules/identifier-management/client/src/lib/manifest.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier-evaluator-scope.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier.plugin.ts","../../../../libs/modules/identifier-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/menu.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/entity.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/setting.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/identifier-management.module.ts","../../../../libs/modules/identifier-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier-rule.repository.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/token-registry.service.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/engine.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/utils.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.providers.ts","../../../../libs/modules/identifier-management/client/src/acorex-platform-module-identifier-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Identifier Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const IdentifierManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { InjectionToken } from '@angular/core';\nimport type { AXPIdentifierRule } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Public Types: Requests & Results ----\n\nexport interface AXPIdentifierRequest {\n /** Identifier id, e.g. 'employee-code' */\n id: string;\n /** Optional tenant partition */\n tenantId?: string;\n /** Optional application partition */\n appId?: string;\n /** Arbitrary payload for tokens to read from */\n payload?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierResult {\n code: string;\n ruleId: string;\n scopeHash: string;\n consumed: boolean;\n meta?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierPeekResult extends AXPIdentifierResult {\n consumed: false;\n commitToken: string; // opaque token for safe finalization\n}\n\n//#endregion\n\n//#region ---- Rule Definition ----\n\nexport type { AXPIdentifierRule };\n\n//#endregion\n\n//#region ---- Main Port (UI) ----\n\nexport abstract class AXPIdentifierService {\n abstract generate(req: AXPIdentifierRequest): Promise<AXPIdentifierResult>;\n abstract peek(req: AXPIdentifierRequest): Promise<AXPIdentifierPeekResult>;\n abstract validate(code: string, entity: string, tenantId?: string): Promise<boolean>;\n abstract commitWithToken(token: string): Promise<AXPIdentifierResult>;\n /** Optional helper for manual codes; stricter and may reject if not next sequence */\n abstract commitByCode(req: AXPIdentifierRequest, code: string): Promise<AXPIdentifierResult>;\n}\n\n\nexport const AXP_IDENTIFIER_SERVICE = new InjectionToken<AXPIdentifierService>('AXP_IDENTIFIER_SERVICE');\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\n/** @deprecated Rules are loaded from {@link IDENTIFIER_RULE_ENTITY} entity storage. */\nexport const AXP_IDENTIFIER_RULES = new InjectionToken<AXPIdentifierRule[]>(\n 'AXP_IDENTIFIER_RULES'\n);\n\n//#endregion\n\n\n","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\nimport { AXP_IDENTIFIER_SERVICE } from \"./core/identifier.types\";\nimport { AXPSessionService } from \"@acorex-platform/framework-client/auth\";\n\nexport class AXMIdentifierEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected identifierService = inject(AXP_IDENTIFIER_SERVICE);\n protected sessionService = inject(AXPSessionService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('identifier', {\n peek: async (id: string) => {\n const identifier = await this.identifierService.peek({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n },\n generate: async (id: string) => {\n const identifier = await this.identifierService.generate({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n }\n })\n }\n}","import { AXPEntityActionPlugin } from \"@acorex-platform/framework-client/layout/entity\";\n\nconst IDENTIFIER_DEFAULT_VALUE = (rule: string) => `{{ identifier.peek(\"${rule}\") }}`;\n\nexport const identifierPlugin: AXPEntityActionPlugin = {\n name: 'identifier',\n order: 40,\n apply: (ctx, options: { field: string; rule: string }) => {\n if (!options?.field || !options?.rule) return;\n\n const defaultValue = IDENTIFIER_DEFAULT_VALUE(options.rule);\n const entity = ctx.entity as any;\n\n // Direct property: update in-place\n const propHandle = ctx.properties.find(options.field);\n const existingProp = propHandle.get();\n if (existingProp) {\n propHandle.update((p) => {\n const next = { ...p } as any;\n next.schema = { ...(next.schema ?? {}) };\n next.schema.defaultValue = defaultValue;\n return next;\n });\n } else if (options.field.includes('.')) {\n // Nested path (e.g. party.code): use generic propertyOverrides extension\n entity.extensions ??= {};\n entity.extensions.propertyOverrides ??= {};\n entity.extensions.propertyOverrides[options.field] = {\n schema: { ...(entity.extensions.propertyOverrides[options.field]?.schema ?? {}), defaultValue },\n };\n }\n\n entity.extensions ??= {};\n entity.extensions.identifier = { field: options.field, rule: options.rule };\n },\n};\n\n","import {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport { AXMPermissionsKeys, RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXMPermissionsKeys.IdentifierManagement;\n\n context\n .addGroup(\n RootConfig.module.name,\n '@identifier-management:permissions.manage.title',\n '@identifier-management:permissions.manage.description',\n )\n .addPermission(\n keys.IdentifierRules,\n '@identifier-management:entities.identifier-rule.permissions.manage.title',\n '@identifier-management:entities.identifier-rule.permissions.manage.description',\n )\n .endPermission()\n .endGroup();\n }\n}\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPIdentifierManagementMenuKeys,\n AXMPermissionsKeys,\n RootConfig,\n} from '@acorex-platform/module-identifier-management-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n\n context.find(AXPCommonMenuKeys.Platform).addItems([\n {\n name: AXPIdentifierManagementMenuKeys.IdentifierRules,\n text: RootConfig.entities.identifierRule.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.identifierRule.name),\n icon: RootConfig.entities.identifierRule.icon,\n priority: 4,\n policy: {\n features: [module.name],\n permissions: [AXMPermissionsKeys.IdentifierManagement.IdentifierRules],\n },\n },\n ]);\n }\n}\n","\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n@Injectable()\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n public preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: { name: string }) => ({\n module: module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.identifierRule.name:\n return (await import('@acorex-platform/module-identifier-management-client/contracts')).identifierRuleFactory();\n default:\n break;\n }\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const m = RootConfig.module.name;\n const entities = Object.values(RootConfig.entities) as { name: string }[];\n return Promise.resolve(entities.map((e) => ({ name: e.name, module: m })));\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { IdentifierManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXMIdentifierEvaluatorScopeProvider } from './features/shared/identifier-evaluator-scope.provider';\nimport { identifierPlugin } from \"./features/shared/identifier.plugin\";\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMSettingProvider } from './setting.provider';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: identifierPlugin,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMIdentifierEvaluatorScopeProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: IdentifierManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n ]\n})\nexport class AXMIdentifierManagementModule { }\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXPEntityStorageService } from '@acorex-platform/framework-client/layout/entity';\r\r\nimport {\r\r\n IDENTIFIER_RULE_ENTITY,\r\r\n type AXPIdentifierRule,\r\r\n} from '@acorex-platform/module-identifier-management-client/contracts';\r\r\nimport { inject, Injectable } from '@angular/core';\r\r\nimport { get } from 'lodash';\r\r\n\r\r\n//#region ---- Identifier rule repository ----\r\r\n\r\r\n/**\r\r\n * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} entity storage (mock or API).\r\r\n */\r\r\n@Injectable({ providedIn: 'root' })\r\r\nexport class AXPIdentifierRuleRepository {\r\r\n private readonly storage = inject(AXPEntityStorageService);\r\r\n\r\r\n async findById(id: string): Promise<AXPIdentifierRule | undefined> {\r\r\n const rules = await this.listAll();\r\r\n return rules.find((rule) => rule.name === id && !rule.isDisabled);\r\r\n }\r\r\n\r\r\n async listEnabled(): Promise<AXPIdentifierRule[]> {\r\r\n const rules = await this.listAll();\r\r\n return rules.filter((rule) => !rule.isDisabled);\r\r\n }\r\r\n\r\r\n private async listAll(): Promise<AXPIdentifierRule[]> {\r\r\n try {\r\r\n const response = await this.storage.query(IDENTIFIER_RULE_ENTITY, { skip: 0, take: 1000 });\r\r\n const items = response.items ?? [];\r\r\n return items\r\r\n .map((item) => this.mapEntityToRule(item))\r\r\n .filter((rule): rule is AXPIdentifierRule => rule != null);\r\r\n } catch {\r\r\n return [];\r\r\n }\r\r\n }\r\r\n\r\r\n private mapEntityToRule(record: unknown): AXPIdentifierRule | null {\r\r\n if (!record || typeof record !== 'object') {\r\r\n return null;\r\r\n }\r\r\n const nameRaw = get(record, 'name') ?? get(record, 'id');\r\r\n const pattern = get(record, 'pattern');\r\r\n if (typeof nameRaw !== 'string' || typeof pattern !== 'string') {\r\r\n return null;\r\r\n }\r\r\n const scopeConfig = get(record, 'scopeConfig');\r\r\n const enabledLegacy = get(record, 'enabled');\r\r\n const isDisabledRaw = get(record, 'isDisabled');\r\r\n const isDisabled =\r\r\n typeof isDisabledRaw === 'boolean'\r\r\n ? isDisabledRaw\r\r\n : enabledLegacy === false;\r\r\n\r\r\n return {\r\r\n name: nameRaw,\r\r\n title: String(get(record, 'title') ?? nameRaw),\r\r\n entity: String(get(record, 'entity') ?? ''),\r\r\n pattern,\r\r\n isDisabled,\r\r\n scopeConfig:\r\r\n scopeConfig && typeof scopeConfig === 'object'\r\r\n ? (scopeConfig as AXPIdentifierRule['scopeConfig'])\r\r\n : {},\r\r\n };\r\r\n }\r\r\n}\r\r\n\r\r\n//#endregion\r\r\n","//#region ---- Token Contracts ----\n\nimport { AXPIdentifierRequest } from './identifier.types';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXPPatternToken {\n name: string;\n args: string[];\n raw: string;\n index: number;\n}\n\nexport interface AXPEvalServices {\n sequence: AXPSequenceProvider;\n checksum: AXPChecksumProvider;\n lookup?: AXPLookupProvider;\n policy?: AXPPolicyProvider;\n clock?: AXPClockProvider;\n}\n\nexport interface AXPEvalContext {\n pattern: string;\n request: AXPIdentifierRequest;\n cache: Map<string, unknown>;\n now: Date;\n services: AXPEvalServices;\n evaluationMode: 'preview' | 'commit';\n}\n\nexport interface AXPTokenHandler {\n readonly name: string;\n readonly priority?: number;\n validate?(token: AXPPatternToken): void | never;\n eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string>;\n meta?: {\n title?: string;\n description?: string;\n category?: string;\n examples?: string[];\n argHints?: string[];\n version?: string;\n };\n}\n\nexport interface AXPTokenRegistry {\n register(handler: AXPTokenHandler): void;\n unregister(name: string): void;\n get(name: string): AXPTokenHandler | undefined;\n list(): AXPTokenHandler[];\n}\n\n//#endregion\n\n//#region ---- Sequence & Utilities ----\n\nexport interface AXPSequenceProvider {\n next(scopeHash: string, ruleId: string, options?: { pad?: number; consume?: boolean }): Promise<number>;\n}\n\nexport interface AXPChecksumProvider {\n compute(algo: 'luhn' | 'mod11', input: string): string;\n}\n\nexport interface AXPLookupProvider {\n get(key: string, params?: Record<string, unknown>): Promise<string | undefined>;\n}\n\nexport interface AXPPolicyProvider {\n isAllowed(tokenName: string, request: AXPIdentifierRequest): boolean;\n}\n\nexport interface AXPClockProvider {\n now(): Date;\n}\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\nexport const AXP_TOKEN_HANDLERS = new InjectionToken<AXPTokenHandler[]>(\n 'AXP_TOKEN_HANDLERS'\n);\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXPTokenHandler, AXPTokenRegistry, AXP_TOKEN_HANDLERS } from './tokens.types';\n\n//#endregion\n\n@Injectable({ providedIn: 'root' })\nexport class AXPTokenRegistryService implements AXPTokenRegistry {\n //#region ---- Fields ----\n\n private readonly handlers = new Map<string, AXPTokenHandler>();\n private readonly providerHandlers = inject(AXP_TOKEN_HANDLERS, { optional: true }) ?? [];\n\n //#endregion\n\n //#region ---- Public API ----\n\n register(handler: AXPTokenHandler): void {\n const existing = this.handlers.get(handler.name);\n if (!existing || (handler.priority ?? 0) > (existing.priority ?? 0)) {\n this.handlers.set(handler.name, handler);\n }\n }\n\n unregister(name: string): void {\n this.handlers.delete(name);\n }\n\n get(name: string): AXPTokenHandler | undefined {\n // provider-provided take precedence by priority\n const fromProviders = this.providerHandlers\n .filter((h) => h.name === name)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];\n if (fromProviders) return fromProviders;\n return this.handlers.get(name);\n }\n\n list(): AXPTokenHandler[] {\n const map = new Map<string, AXPTokenHandler>();\n const put = (h: AXPTokenHandler) => {\n const prev = map.get(h.name);\n if (!prev || (h.priority ?? 0) > (prev.priority ?? 0)) map.set(h.name, h);\n };\n this.providerHandlers.forEach(put);\n Array.from(this.handlers.values()).forEach(put);\n return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n }\n\n //#endregion\n}\n\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken } from './tokens.types';\nimport { inject } from '@angular/core';\nimport { AXPTokenRegistryService } from './token-registry.service';\n\n//#endregion\n\n//#region ---- Engine Contracts ----\n\nexport type AXPCompiledFragment = AXPPatternToken | { type: 'literal'; text: string };\n\nexport interface AXPCompiledPattern {\n pattern: string;\n tokens: AXPCompiledFragment[];\n}\n\nexport interface AXPPatternEngine {\n compile(pattern: string): AXPCompiledPattern;\n evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string>;\n}\n\n//#endregion\n\n//#region ---- Simple Pattern Engine Impl ----\n\nconst TOKEN_REGEX = /\\{([^{}]+)\\}/g; // matches {token[:args]}\n\nexport class AXPSimplePatternEngine implements AXPPatternEngine {\n private readonly registry = inject(AXPTokenRegistryService);\n\n compile(pattern: string): AXPCompiledPattern {\n const tokens: AXPCompiledFragment[] = [];\n let match: RegExpExecArray | null;\n let index = 0;\n let lastIndex = 0;\n while ((match = TOKEN_REGEX.exec(pattern)) !== null) {\n // push any literal text before this token\n const literal = pattern.slice(lastIndex, match.index);\n if (literal) {\n tokens.push({ type: 'literal', text: literal });\n }\n const raw = match[0];\n const inner = match[1];\n const [name, ...args] = inner.split(':');\n const token: AXPPatternToken = {\n name: name.trim(),\n args: args.length ? inner.substring(inner.indexOf(':') + 1).split(':') : [],\n raw,\n index: index++,\n };\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token: ${token.name}`);\n }\n handler.validate?.(token);\n tokens.push(token);\n lastIndex = match.index + raw.length;\n }\n // trailing literal\n const tail = pattern.slice(lastIndex);\n if (tail) {\n tokens.push({ type: 'literal', text: tail });\n }\n return { pattern, tokens };\n }\n\n async evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string> {\n let built = '';\n for (const frag of compiled.tokens) {\n if ((frag as any).type === 'literal') {\n built += (frag as any).text as string;\n continue;\n }\n const token = frag as AXPPatternToken;\n ctx.cache.set('__acc__', built);\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token at eval: ${token.name}`);\n }\n const fragment = await handler.eval(token, ctx);\n built += fragment;\n }\n return built;\n }\n}\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport {AXPDataGenerator} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\nexport function buildScopeHash(parts: Array<string | undefined>): string {\n return parts.filter(Boolean).join('|');\n}\n\nexport function padNumber(num: number, size: number): string {\n const s = String(num);\n if (s.length >= size) return s;\n return '0'.repeat(size - s.length) + s;\n}\n\nexport function uuid(): string {\n return AXPDataGenerator.uuid();\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken, AXPTokenHandler } from './tokens.types';\nimport { padNumber } from './utils';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Built-in Token Handlers (Injectable) ----\n\n@Injectable()\nexport class DateToken implements AXPTokenHandler {\n readonly name = 'date';\n readonly meta = { title: 'Date', description: 'Formats current date', argHints: ['YYYY', 'YYYYMM', 'YYYYMMDD'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const fmt = token.args[0] ?? 'YYYYMMDD';\n const d = ctx.services.clock?.now() ?? ctx.now;\n const y = String(d.getFullYear());\n const m = padNumber(d.getMonth() + 1, 2);\n const day = padNumber(d.getDate(), 2);\n switch (fmt) {\n case 'YYYY':\n return y;\n case 'YYYYMM':\n return y + m;\n case 'YYYYMMDD':\n default:\n return y + m + day;\n }\n }\n}\n\n@Injectable()\nexport class ConstToken implements AXPTokenHandler {\n readonly name = 'const';\n readonly meta = { title: 'Constant', description: 'Fixed literal value' };\n async eval(token: AXPPatternToken): Promise<string> {\n return token.args.join(':');\n }\n}\n\n@Injectable()\nexport class FieldToken implements AXPTokenHandler {\n readonly name = 'field';\n readonly meta = { title: 'Field', description: 'Reads a value from request.payload' };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const key = token.args[0];\n if (!key) return '';\n const value = ctx.request.payload?.[key];\n return value == null ? '' : String(value);\n }\n}\n\n@Injectable()\nexport class TenantToken implements AXPTokenHandler {\n readonly name = 'tenant';\n readonly meta = { title: 'Tenant', description: 'Tenant scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.tenantId ?? '';\n }\n}\n\n@Injectable()\nexport class AppToken implements AXPTokenHandler {\n readonly name = 'app';\n readonly meta = { title: 'App', description: 'Application scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.appId ?? '';\n }\n}\n\n@Injectable()\nexport class SeqToken implements AXPTokenHandler {\n readonly name = 'seq';\n readonly meta = { title: 'Sequence', description: 'Auto-increment sequence', argHints: ['pad'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const pad = Number(token.args[0] ?? '0') || 0;\n const consume = ctx.evaluationMode === 'commit';\n const ruleId = ctx.cache.get('ruleId') as string;\n const n = await ctx.services.sequence.next(ctx.cache.get('scopeHash') as string, ruleId, { pad, consume });\n return pad ? padNumber(n, pad) : String(n);\n }\n}\n\n@Injectable()\nexport class CheckToken implements AXPTokenHandler {\n readonly name = 'check';\n readonly meta = { title: 'Checksum', description: 'Checksum of the string built so far', argHints: ['luhn|mod11'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const algo = (token.args[0] as 'luhn' | 'mod11') ?? 'luhn';\n const acc = String(ctx.cache.get('__acc__') ?? '');\n return ctx.services.checksum.compute(algo, acc);\n }\n}\n\n//#endregion\n","import { Provider } from '@angular/core';\nimport { AXP_TOKEN_HANDLERS } from './tokens.types';\nimport { AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken } from './tokens-default';\n\nexport const AXP_DEFAULT_TOKEN_PROVIDERS: Provider[] = [\n { provide: AXP_TOKEN_HANDLERS, useClass: DateToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: ConstToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: FieldToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: TenantToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: AppToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: SeqToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: CheckToken, multi: true },\n];\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|