@keetanetwork/anchor 0.0.13 → 0.0.15
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/lib/certificates.d.ts +83 -21
- package/lib/certificates.d.ts.map +1 -1
- package/lib/certificates.generated.d.ts +3 -0
- package/lib/certificates.generated.d.ts.map +1 -0
- package/lib/certificates.generated.js +120 -0
- package/lib/certificates.generated.js.map +1 -0
- package/lib/certificates.js +508 -117
- package/lib/certificates.js.map +1 -1
- package/lib/http-server.d.ts +2 -1
- package/lib/http-server.d.ts.map +1 -1
- package/lib/http-server.js +5 -5
- package/lib/http-server.js.map +1 -1
- package/lib/log/index.d.ts +6 -57
- package/lib/log/index.d.ts.map +1 -1
- package/lib/log/index.js +5 -205
- package/lib/log/index.js.map +1 -1
- package/lib/log/target_console.d.ts +3 -11
- package/lib/log/target_console.d.ts.map +1 -1
- package/lib/log/target_console.js +3 -42
- package/lib/log/target_console.js.map +1 -1
- package/lib/resolver.d.ts +2 -1
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +22 -22
- package/lib/resolver.js.map +1 -1
- package/lib/utils/asn1.d.ts +10 -1
- package/lib/utils/asn1.d.ts.map +1 -1
- package/lib/utils/asn1.js +1413 -0
- package/lib/utils/asn1.js.map +1 -1
- package/lib/utils/buffer.d.ts +3 -0
- package/lib/utils/buffer.d.ts.map +1 -1
- package/lib/utils/buffer.js +32 -0
- package/lib/utils/buffer.js.map +1 -1
- package/lib/utils/external.d.ts +43 -0
- package/lib/utils/external.d.ts.map +1 -0
- package/lib/utils/external.js +115 -0
- package/lib/utils/external.js.map +1 -0
- package/lib/utils/guards.d.ts +14 -0
- package/lib/utils/guards.d.ts.map +1 -0
- package/lib/utils/guards.js +31 -0
- package/lib/utils/guards.js.map +1 -0
- package/lib/utils/index.d.ts +3 -1
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +3 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/oid.d.ts +7 -0
- package/lib/utils/oid.d.ts.map +1 -0
- package/lib/utils/oid.js +22 -0
- package/lib/utils/oid.js.map +1 -0
- package/lib/utils/signing.d.ts.map +1 -1
- package/lib/utils/signing.js +26 -2
- package/lib/utils/signing.js.map +1 -1
- package/npm-shrinkwrap.json +76 -216
- package/package.json +2 -2
- package/services/asset-movement/common.js +7 -7
- package/services/fx/server.js +1 -1
- package/services/fx/server.js.map +1 -1
- package/services/kyc/client.d.ts.map +1 -1
- package/services/kyc/client.js +1 -8
- package/services/kyc/client.js.map +1 -1
- package/services/kyc/common.d.ts +39 -3
- package/services/kyc/common.d.ts.map +1 -1
- package/services/kyc/common.generated.d.ts +5 -0
- package/services/kyc/common.generated.d.ts.map +1 -0
- package/services/kyc/common.generated.js +241 -0
- package/services/kyc/common.generated.js.map +1 -0
- package/services/kyc/common.js +68 -1
- package/services/kyc/common.js.map +1 -1
- package/services/kyc/iso20022.generated.d.ts +336 -0
- package/services/kyc/iso20022.generated.d.ts.map +1 -0
- package/services/kyc/iso20022.generated.js +287 -0
- package/services/kyc/iso20022.generated.js.map +1 -0
- package/services/kyc/oids.generated.d.ts +104 -0
- package/services/kyc/oids.generated.d.ts.map +1 -0
- package/services/kyc/oids.generated.js +163 -0
- package/services/kyc/oids.generated.js.map +1 -0
- package/services/kyc/server.d.ts +141 -0
- package/services/kyc/server.d.ts.map +1 -0
- package/services/kyc/server.js +183 -0
- package/services/kyc/server.js.map +1 -0
- package/services/kyc/utils/generate-kyc-schema.d.ts +3 -0
- package/services/kyc/utils/generate-kyc-schema.d.ts.map +1 -0
- package/services/kyc/utils/generate-kyc-schema.js +1342 -0
- package/services/kyc/utils/generate-kyc-schema.js.map +1 -0
- package/lib/log/common.d.ts +0 -35
- package/lib/log/common.d.ts.map +0 -1
- package/lib/log/common.js +0 -19
- package/lib/log/common.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-kyc-schema.js","sourceRoot":"","sources":["../../../../src/services/kyc/utils/generate-kyc-schema.ts"],"names":[],"mappings":"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","sourcesContent":["#! /usr/bin/env ts-node\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as typia from 'typia';\n\ntype oidSchemaContentsAttribute = {\n\t[key: string]: {\n\t\toid: number[];\n\t\ttype?: string;\n\t\ttoken?: string;\n\t\tdescription: string;\n\t\treference: string;\n\t\tfields?: {\n\t\t\t[key: string]: {\n\t\t\t\ttype: string;\n\t\t\t\toptional?: boolean;\n\t\t\t};\n\t\t};\n\t\tchoices?: {\n\t\t\t[key: string]: {\n\t\t\t\ttype: string;\n\t\t\t};\n\t\t};\n\t\tfield_order?: string[];\n\t};\n}\ntype oidSchemaContents = {\n\talgorithms: {\n\t\t[key: string]: number[]\n\t};\n\tsensitive_attributes: oidSchemaContentsAttribute;\n\tplain_attributes: oidSchemaContentsAttribute;\n\tiso20022_types: {\n\t\tprimitives: {\n\t\t\t[key: string]: {\n\t\t\t\toid: number[];\n\t\t\t\ttype: string;\n\t\t\t\tdescription: string;\n\t\t\t};\n\t\t};\n\t\tenumerations: {\n\t\t\t[key: string]: {\n\t\t\t\toid: number[];\n\t\t\t\tvalues: string[];\n\t\t\t\tdescription: string;\n\t\t\t};\n\t\t};\n\t\tchoices: {\n\t\t\t[key: string]: {\n\t\t\t\toid: number[];\n\t\t\t\tchoices: {\n\t\t\t\t\t[key: string]: {\n\t\t\t\t\t\ttype: string;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t\tdescription: string;\n\t\t\t};\n\t\t};\n\t\tsequences: {\n\t\t\t[key: string]: {\n\t\t\t\toid: number[];\n\t\t\t\tfields: {\n\t\t\t\t\t[key: string]: {\n\t\t\t\t\t\ttype: string;\n\t\t\t\t\t\toptional?: boolean;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t\tfield_order?: string[];\n\t\t\t\tdescription: string;\n\t\t\t};\n\t\t};\n\t};\n\textensions: {\n\t\t[key: string]: {\n\t\t\toid?: number[];\n\t\t\ttype?: string;\n\t\t\tdescription: string;\n\t\t\treference?: string;\n\t\t\tfields?: {\n\t\t\t\t[key: string]: {\n\t\t\t\t\ttype: string;\n\t\t\t\t\toptional?: boolean;\n\t\t\t\t};\n\t\t\t};\n\t\t\tfield_order?: string[];\n\t\t};\n\t};\n};\n/*\n * Populated in `main` function\n */\nlet oidSchema: oidSchemaContents;\n\n// --- Utility Functions ---\nfunction oidArrayToString(oid: (string | number)[]): string {\n\treturn(oid.join('.'));\n}\nfunction toConstantCase(str: string): string {\n\treturn(str.replace(/[A-Z]/g, function(part) {\n\t\treturn(`_${part}`);\n\t}).toUpperCase());\n}\nfunction toPascalCase(str: string): string {\n\treturn(str.split(/[_-]/).map(function(part) {\n\t\treturn(part.charAt(0).toUpperCase() + part.slice(1));\n\t}).join(''));\n}\nfunction toSnakeCase(str: string): string {\n\treturn(str.replace(/([A-Z])/g, '_$1').toLowerCase().replace(/^_/, ''));\n}\n\n// --- Type Resolution ---\nfunction resolveTypeReference(typeName: string): string {\n\tif (typeName.startsWith('SEQUENCE OF ')) {\n\t\treturn(`${resolveTypeReference(typeName.substring('SEQUENCE OF '.length).trim())}[]`);\n\t}\n\tswitch (typeName.trim()) {\n\t\tcase 'UTF8String':\n\t\tcase 'Utf8String':\n\t\t\treturn('string');\n\t\tcase 'GeneralizedTime':\n\t\t\treturn('Date');\n\t\tcase 'ENUMERATED':\n\t\t\treturn('string');\n\t\tcase 'OBJECT IDENTIFIER':\n\t\t\treturn('ASN1.ASN1OID');\n\t\tcase 'OCTET STRING':\n\t\t\treturn('Buffer');\n\t\tdefault:\n\t\t\treturn(toPascalCase(typeName));\n\t}\n}\n\nfunction resolveToBaseType(typeName: string): string {\n\ttypeName = typeName.trim();\n\n\t// Check if it's a primitive type first\n\tif (/^(UTF8String|Utf8String|GeneralizedTime)$/i.test(typeName)) {\n\t\treturn(typeName);\n\t}\n\n\t// Check if it's defined as a sensitive attribute\n\tconst sensitiveAttr = oidSchema.sensitive_attributes[typeName] ?? Object.values(oidSchema.sensitive_attributes).find(function(attr) {\n\t\treturn(attr.token === typeName);\n\t});\n\n\tif (sensitiveAttr && !sensitiveAttr.fields && !sensitiveAttr.choices) {\n\t\tif (sensitiveAttr.type === undefined) {\n\t\t\tthrow(new Error(`Sensitive attribute ${typeName} has no defined type.`));\n\t\t}\n\t\treturn(resolveToBaseType(sensitiveAttr.type));\n\t}\n\n\t// Check if it's an ISO20022 primitive\n\tconst primitive = oidSchema.iso20022_types.primitives[typeName];\n\tif (primitive) {\n\t\treturn(resolveToBaseType(primitive.type));\n\t}\n\n\t// Otherwise return as-is\n\treturn(typeName);\n}\n\nfunction isEnumerationType(typeName: string): boolean {\n\tconst normalized = toSnakeCase(typeName);\n\treturn(Boolean(\n\t\toidSchema.iso20022_types.enumerations[typeName] ??\n\t\toidSchema.iso20022_types.enumerations[normalized]\n\t));\n}\n\nfunction isSequenceOfChoice(config: { fields: { [key: string]: { optional?: boolean }}}): boolean {\n\tconst hasFields = config.fields && Object.keys(config.fields).length > 0;\n\tconst allOptional = hasFields && Object.values(config.fields).every(function(field) {\n\t\treturn(field.optional);\n\t});\n\treturn(allOptional);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction _ignore_getPrimitiveType(type: string): 'string' | 'date' {\n\tif (type === 'UTF8String' || type === 'Utf8String') {\n\t\treturn('string');\n\t}\n\tif (type === 'GeneralizedTime') {\n\t\treturn('date');\n\t}\n\treturn('string');\n}\n\n// --- Output Generators ---\nfunction genHeader(comment: string) {\n\treturn([\n\t\t'/* eslint-disable */',\n\t\t'/**',\n\t\t` * ${comment}`,\n\t\t' * This file is auto-generated from oids.json.',\n\t\t' */',\n\t\t''\n\t].join('\\n'));\n}\n\nfunction genTypeAlias(name: string, type: string, description: string, oid: string): string {\n\treturn(`/** ${description} */\\n/** OID: ${oid} */\\nexport type ${name} = ${type};\\n`);\n}\n\nfunction genEnumType(name: string, values: string[], description: string, oid: string): string {\n\treturn(`/** ${description} */\\n/** OID: ${oid} */\\nexport type ${name} = ${values.map(function(value) {\n\t\treturn(`'${value}'`);\n\t}).join(' | ')};\\n`);\n}\n\nfunction genInterface(name: string, fields: { [key: string]: { type: string; optional?: boolean }}, description: string, oid: string): string {\n\tconst fieldLines = Object.entries(fields).map(function([fieldName, fieldConfig]) {\n\t\treturn(`\\t${fieldName}${fieldConfig.optional ? '?' : ''}: ${resolveTypeReference(fieldConfig.type)};`);\n\t});\n\treturn(`/** ${description} */\\n/** OID: ${oid} */\\nexport interface ${name} {\\n${fieldLines.join('\\n')}\\n}\\n`);\n}\n\n// Generate TypeScript **types** for sequence-of-choice\nfunction genSequenceOfChoiceTypes(name: string, config: { fields: { [key: string]: { type: string; optional?: boolean }}; field_order?: string[] }): string {\n\tconst typeName = toPascalCase(name);\n\tconst fieldOrder = config.field_order ?? Object.keys(config.fields);\n\tconst choiceEntries = fieldOrder.map(function(fieldName): [string, { type: string; optional?: boolean }] {\n\t\tif (!(fieldName in config.fields) || config.fields[fieldName] === undefined) {\n\t\t\tthrow(new Error(`Field ${fieldName} not found in sequence of choice ${name}`));\n\t\t}\n\t\treturn([fieldName, config.fields[fieldName]]);\n\t});\n\tconst choiceTypes = choiceEntries.map(function([fieldName, fieldConfig], index) {\n\t\tif (fieldConfig === undefined) {\n\t\t\tthrow(new Error(`Field ${fieldName} not found in sequence of choice ${name}`));\n\t\t}\n\t\tconst fieldType = resolveTypeReference(fieldConfig.type);\n\t\tconst choiceTypeName = `${typeName}${toPascalCase(fieldName)}Choice`;\n\t\treturn({\n\t\t\tcode: `export interface ${choiceTypeName} {\\n\\ttag: ${index};\\n\\tname: '${fieldName}';\\n\\tvalue: ${fieldType};\\n}\\n`,\n\t\t\tname: choiceTypeName\n\t\t});\n\t});\n\n\tlet out = '';\n\t// Individual choice interfaces\n\tout += choiceTypes.map(function(choiceInfo) {\n\t\treturn(choiceInfo.code);\n\t}).join('\\n');\n\n\t// Union type\n\tout += `export type ${typeName}Choice =\\n\\t| ${choiceTypes.map(function(choiceInfo) {\n\t\treturn(choiceInfo.name);\n\t}).join('\\n\\t| ')};\\n\\n`;\n\n\t// Main type is array of choices\n\tout += `export type ${typeName} = ${typeName}Choice[];\\n\\n`;\n\n\treturn(out);\n}\n\n// Generate ASN.1 **schema** for sequence-of-choice\nfunction genSequenceOfChoiceSchema(name: string, config: { fields: { [key: string]: { type: string; optional?: boolean }}; field_order?: string[] }): string {\n\tconst typeName = toPascalCase(name);\n\tconst fieldOrder = config.field_order ?? Object.keys(config.fields);\n\tconst choiceEntries = fieldOrder.map(function(fieldName): [string, { type: string; optional?: boolean }] {\n\t\tif (!(fieldName in config.fields) || config.fields[fieldName] === undefined) {\n\t\t\tthrow(new Error(`Field ${fieldName} not found in sequence of choice ${name}`));\n\t\t}\n\t\treturn([fieldName, config.fields[fieldName]]);\n\t});\n\n\tlet out = '';\n\n\t// ASN.1 schema\n\tout += `/** ASN.1 schema for ${typeName} */\\n`;\n\tout += `export const ${typeName}Schema: ASN1.Schema = {\\n\\tsequenceOf: {\\n\\t\\tchoice: [\\n`;\n\tout += choiceEntries.map(function([fieldName, fieldConfig], index) {\n\t\tif (fieldConfig === undefined) {\n\t\t\tthrow(new Error(`Field ${fieldName} not found in sequence of choice ${name}`));\n\t\t}\n\n\t\t// Determine the type for this choice\n\t\tlet fieldType = fieldConfig.type.trim();\n\t\tif (fieldType.startsWith('SEQUENCE OF ')) {\n\t\t\tfieldType = fieldType.substring('SEQUENCE OF '.length).trim();\n\t\t}\n\t\tfieldType = fieldType.replace(/\\[\\]$/, '');\n\n\t\tconst fieldTypePascal = toPascalCase(fieldType);\n\t\tconst fieldTypeSnake = toSnakeCase(fieldType);\n\n\t\t// Check if this is a complex type that has a schema\n\t\tconst isChoice = oidSchema.iso20022_types.choices[fieldTypeSnake] ?? oidSchema.iso20022_types.choices[fieldType];\n\t\tconst isSequence = oidSchema.iso20022_types.sequences[fieldTypeSnake] ?? oidSchema.iso20022_types.sequences[fieldType];\n\t\tconst isSensitiveSequence = oidSchema.sensitive_attributes[fieldTypeSnake]?.fields;\n\t\tconst isSensitiveChoice = oidSchema.sensitive_attributes[fieldTypeSnake]?.choices;\n\t\tconst hasSchema = isChoice ?? isSequence ?? isSensitiveSequence ?? isSensitiveChoice;\n\n\t\tlet contains;\n\t\tif (hasSchema) {\n\t\t\tcontains = `${fieldTypePascal}Schema`;\n\t\t} else {\n\t\t\t// Primitive type\n\t\t\tcontains = `{ type: 'string', kind: 'utf8' }`;\n\t\t}\n\n\t\treturn(`\\t\\t\\t{ type: 'context', kind: 'explicit', value: ${index}, contains: ${contains} }`);\n\t}).join(',\\n');\n\tout += `\\n\\t\\t]\\n\\t}\\n};\\n\\n`;\n\n\t// Field names array\n\tout += `export const ${typeName}Fields = [\\n${fieldOrder.map(function(fieldName){\n\t\treturn(`\\t'${fieldName}'`);\n\t}).join(',\\n')}\\n] as const;\\n\\n`;\n\n\treturn(out);\n}\n\nfunction deleteLastCommaIfFoundGenerator(lines: string[]) {\n\treturn(function deleteLastCommaIfFound() {\n\t\tlet lastLine = lines.pop();\n\t\tif (lastLine === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tif (lastLine.endsWith(',')) {\n\t\t\tlastLine = lastLine.slice(0, -1);\n\t\t}\n\t\tlines.push(lastLine);\n\t});\n}\n\n\n// --- Main Generation ---\nfunction generateOidConstants() {\n\tconst lines = [genHeader('Generated OID Constants')];\n\tconst deleteLastCommaIfFound = deleteLastCommaIfFoundGenerator(lines);\n\n\t// Algorithm OID constants\n\tlines.push('// Algorithm OID constants');\n\tfor (const [name, oid] of Object.entries(oidSchema.algorithms)) {\n\t\tlines.push(`export const ${toConstantCase(name.replace(/-/g, '_'))} = '${oidArrayToString(oid)}';`);\n\t}\n\tlines.push('');\n\n\t// Plain attribute OID constants\n\tlines.push('// Plain attribute OID constants');\n\tfor (const [name, config] of Object.entries(oidSchema.plain_attributes)) {\n\t\tlines.push(`/** ${config.description} */`);\n\t\tlines.push(`/** @see ${config.reference} */`);\n\t\tlines.push(`export const ${toConstantCase(name)} = '${oidArrayToString(config.oid)}';`);\n\t}\n\tlines.push('');\n\n\t// Keeta namespace for sensitive attributes\n\tlines.push('// Keeta-specific OID constants');\n\tlines.push('// eslint-disable-next-line @typescript-eslint/no-namespace');\n\tlines.push('export namespace keeta {');\n\tfor (const [name, config] of Object.entries(oidSchema.extensions)) {\n\t\tlines.push(`\\t/** ${config.description} */`);\n\t\tif (config.reference) {\n\t\t\tlines.push(`\\t/** @see ${config.reference} */`);\n\t\t}\n\t\tif (config.oid) {\n\t\t\tlines.push(`\\texport const ${toConstantCase(name)} = '${oidArrayToString(config.oid)}';`);\n\t\t}\n\t}\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tlines.push(`\\t/** ${config.description} */`);\n\t\tlines.push(`\\t/** @see ${config.reference} */`);\n\t\tlines.push(`\\texport const ${toConstantCase(name)} = '${oidArrayToString(config.oid)}';`);\n\t}\n\tlines.push('}');\n\tlines.push('');\n\n\t// Lookup maps\n\tlines.push('// OID to name lookup maps');\n\tlines.push('export const OID_TO_NAME: { [key: string]: string } = {');\n\tfor (const [name, config] of Object.entries({\n\t\t...oidSchema.plain_attributes,\n\t\t...oidSchema.sensitive_attributes\n\t})) {\n\t\tlines.push(`\\t'${oidArrayToString(config.oid)}': '${name}',`);\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('};');\n\tlines.push('');\n\tlines.push('export const NAME_TO_OID: { [key: string]: string } = {');\n\tfor (const [name, config] of Object.entries({\n\t\t...oidSchema.plain_attributes,\n\t\t...oidSchema.sensitive_attributes\n\t})) {\n\t\tlines.push(`\\t'${name}': '${oidArrayToString(config.oid)}',`);\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('};');\n\tlines.push('');\n\n\treturn(lines.join('\\n'));\n}\n\nfunction genSequenceSchema(typeName: string, fields: { [key: string]: { type: string; optional?: boolean }}, config: { field_order?: string[] }) {\n\tconst fieldOrder = config?.field_order ?? Object.keys(fields);\n\tconst structFields: { [key: string]: string } = {};\n\n\tfor (const fname of fieldOrder) {\n\t\tconst fcfg = fields[fname];\n\t\tif (!fcfg) {continue;}\n\n\t\t// Resolve to base type to handle aliases\n\t\tconst baseType = resolveToBaseType(fcfg.type);\n\n\t\tlet fieldSchema;\n\t\t// Check if field type is GeneralizedTime (date)\n\t\tif (baseType === 'GeneralizedTime') {\n\t\t\tfieldSchema = 'ASN1.ValidateASN1.IsDate';\n\t\t} else {\n\t\t\t// Check if this is a SEQUENCE OF type directly or via type reference\n\t\t\tlet fieldType = baseType.trim();\n\t\t\tconst isSequenceOf = fieldType.startsWith('SEQUENCE OF ');\n\t\t\tif (isSequenceOf) {\n\t\t\t\tfieldType = fieldType.substring('SEQUENCE OF '.length).trim();\n\t\t\t}\n\n\t\t\tfieldType = fieldType.replace(/\\[\\]$/, '');\n\n\t\t\tconst fieldTypePascal = toPascalCase(fieldType);\n\t\t\tconst fieldTypeSnake = toSnakeCase(fieldType);\n\n\t\t\t// Check if this is a COMPLEX type (not a primitive)\n\t\t\tconst isChoice = oidSchema.iso20022_types.choices[fieldTypeSnake] ?? oidSchema.iso20022_types.choices[fieldType];\n\t\t\tconst isSequence = oidSchema.iso20022_types.sequences[fieldTypeSnake] ?? oidSchema.iso20022_types.sequences[fieldType];\n\t\t\tconst isSensitiveSequence = oidSchema.sensitive_attributes[fieldTypeSnake]?.fields;\n\t\t\tconst isSensitiveChoice = oidSchema.sensitive_attributes[fieldTypeSnake]?.choices;\n\t\t\tconst isExtension = oidSchema.extensions[fieldTypeSnake]?.fields ?? oidSchema.extensions[fieldType]?.fields;\n\n\t\t\tconst hasSchema = isChoice ?? isSequence ?? isSensitiveSequence ?? isSensitiveChoice ?? isExtension;\n\n\t\t\tif (hasSchema) {\n\t\t\t\tfieldSchema = `${fieldTypePascal}Schema`;\n\t\t\t} else {\n\t\t\t\t// Primitive type - use inline schema\n\t\t\t\tif (fieldType === 'OBJECT IDENTIFIER') {\n\t\t\t\t\tfieldSchema = `ASN1.ValidateASN1.IsOID`;\n\t\t\t\t} else if (fieldType === 'OCTET STRING') {\n\t\t\t\t\tfieldSchema = `ASN1.ValidateASN1.IsOctetString`;\n\t\t\t\t} else {\n\t\t\t\t\tfieldSchema = `{ type: 'string', kind: 'utf8' }`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Wrap in sequenceOf if this was a SEQUENCE OF type\n\t\t\tif (isSequenceOf) {\n\t\t\t\tfieldSchema = `{ sequenceOf: ${fieldSchema} }`;\n\t\t\t}\n\t\t}\n\n\t\tif (fcfg.optional) {\n\t\t\tstructFields[fname] = `{ optional: ${fieldSchema} }`;\n\t\t} else {\n\t\t\tstructFields[fname] = fieldSchema;\n\t\t}\n\t}\n\n\tconst containsObject = fieldOrder.map(function(fname) {\n\t\treturn(`\\t\\t${fname}: ${structFields[fname]}`);\n\t}).join(',\\n');\n\n\treturn(`export const ${typeName}Schema: ASN1.Schema = {\\n\\ttype: 'struct',\\n\\tfieldNames: [${fieldOrder.map(f => `'${f}'`).join(', ')}],\\n\\tcontains: {\\n${containsObject}\\n\\t}\\n};`);\n}\n\nfunction generateIso20022Types() {\n\tconst lines = [genHeader('Generated ISO20022 Type Definitions'), \"import * as ASN1 from '../../lib/utils/asn1.js';\", ''];\n\tconst deleteLastCommaIfFound = deleteLastCommaIfFoundGenerator(lines);\n\n\t// Primitives\n\tlines.push('// ISO20022 Primitive Types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.primitives)) {\n\t\tlines.push(genTypeAlias(toPascalCase(name), resolveTypeReference(config.type), config.description, oidArrayToString(config.oid)));\n\t}\n\n\t// Enumerations\n\tlines.push('// ISO20022 Enumeration Types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.enumerations)) {\n\t\tlines.push(genEnumType(toPascalCase(name), config.values, config.description, oidArrayToString(config.oid)));\n\t}\n\n\t// Choices\n\tlines.push('// ISO20022 Choice Types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.choices)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tconst choices = Object.entries(config.choices ?? {});\n\t\tconst hasComplexTypes = choices.some(function([_ignore_choiceName, choiceConfig]) {\n\t\t\tconst choiceType = choiceConfig.type.trim();\n\t\t\treturn(choiceType !== 'UTF8String' && choiceType !== 'string');\n\t\t});\n\t\tif (hasComplexTypes) {\n\t\t\tconst unionTypes = Array.from(new Set(choices.map(function([_ignore_choiceName, choiceConfig]) {\n\t\t\t\treturn(resolveTypeReference(choiceConfig.type.trim()));\n\t\t\t})));\n\t\t\tlines.push(genTypeAlias(typeName, unionTypes.join(' | '), config.description, oidArrayToString(config.oid)));\n\t\t} else {\n\t\t\tlines.push(genTypeAlias(typeName, 'string', config.description, oidArrayToString(config.oid)));\n\t\t}\n\t}\n\n\t// ISO20022 Sequences and Sequence-of-Choice Types\n\tlines.push('// ISO20022 Sequence Types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.sequences)) {\n\t\tif (isSequenceOfChoice(config)) {\n\t\t\tlines.push(genSequenceOfChoiceTypes(name, config));\n\t\t} else {\n\t\t\tlines.push(genInterface(toPascalCase(name), config.fields, config.description, oidArrayToString(config.oid)));\n\t\t}\n\t}\n\tlines.push('');\n\n\t// --- Choice Type Schemas ---\n\tlines.push('// Generated ASN.1 schemas for ISO 20022 choice types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.choices)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tconst choices = Object.entries(config.choices ?? {});\n\n\t\tlines.push(`/** ASN.1 schema for ${typeName} */`);\n\n\t\tif (choices.length === 0) {\n\t\t\t// No choices defined - simple string schema\n\t\t\tlines.push(`export const ${typeName}Schema: ASN1.Schema = { type: 'string', kind: 'utf8' };`);\n\t\t} else {\n\t\t\t// Generate choice schema with context tags to make them differentiable\n\t\t\tconst choiceSchemas = choices.map(function([_ignore_choiceName, choiceConfig], index) {\n\t\t\t\tconst choiceType = choiceConfig.type.trim();\n\t\t\t\tlet containsSchema;\n\n\t\t\t\t// Check if it is a primitive type\n\t\t\t\tif (choiceType === 'UTF8String' || choiceType === 'Utf8String' || choiceType === 'string' || isEnumerationType(choiceType)) {\n\t\t\t\t\tcontainsSchema = `{ type: 'string', kind: 'utf8' }`;\n\t\t\t\t} else {\n\t\t\t\t\t// Complex type - reference its schema\n\t\t\t\t\tconst choiceTypeName = toPascalCase(choiceType);\n\t\t\t\t\tcontainsSchema = `${choiceTypeName}Schema`;\n\t\t\t\t}\n\n\t\t\t\t// Wrap in context tag to make it differentiable\n\t\t\t\treturn(`{ type: 'context', kind: 'explicit', value: ${index}, contains: ${containsSchema} }`);\n\t\t\t});\n\n\t\t\tlines.push(`export const ${typeName}Schema: ASN1.Schema = {`);\n\t\t\tlines.push(`\\tchoice: [`);\n\t\t\tlines.push(`\\t\\t${choiceSchemas.join(',\\n\\t\\t')}`);\n\t\t\tlines.push(`\\t]`);\n\t\t\tlines.push(`};`);\n\t\t}\n\t\tlines.push('');\n\t}\n\n\t// --- Regular Sequence Type Schemas (SECOND - may depend on choice schemas) ---\n\tlines.push('// Generated ASN.1 schemas for ISO 20022 regular sequence types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.sequences)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tif (config.fields && !isSequenceOfChoice(config)) {\n\t\t\tlines.push(`/** ASN.1 schema for ${typeName} */`);\n\t\t\tlines.push(genSequenceSchema(typeName, config.fields, config));\n\t\t\tlines.push('');\n\t\t}\n\t}\n\n\t// --- Sequence-of-Choice Type Schemas (THIRD - depend on regular sequence schemas) ---\n\tlines.push('// Generated ASN.1 schemas for ISO 20022 sequence-of-choice types');\n\tfor (const [name, config] of Object.entries(oidSchema.iso20022_types.sequences)) {\n\t\tif (isSequenceOfChoice(config)) {\n\t\t\tlines.push(genSequenceOfChoiceSchema(name, config));\n\t\t}\n\t}\n\n\t// --- Choice-Type Sensitive Attribute Schemas ---\n\tlines.push('// Generated ASN.1 schemas for choice-type sensitive attributes');\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tif (config.choices) {\n\t\t\tconst choiceSchemas = Object.values(config.choices).map(function(choice) {\n\t\t\t\tconst choiceTypeName = toPascalCase(choice.type.trim());\n\t\t\t\treturn(`${choiceTypeName}Schema`);\n\t\t\t});\n\t\t\tlines.push(`/** ASN.1 schema for ${typeName} */`);\n\t\t\tlines.push(`export const ${typeName}Schema: ASN1.Schema = {`);\n\t\t\tlines.push(`\\tchoice: [`);\n\t\t\tlines.push(`\\t\\t${choiceSchemas.join(',\\n\\t\\t')}`);\n\t\t\tlines.push(`\\t]`);\n\t\t\tlines.push(`};`);\n\t\t\tlines.push('');\n\t\t}\n\t}\n\n\t// Sensitive Attribute Types\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tif (!config.fields && !config.choices) {\n\t\t\t// Primitive type\n\t\t\tlet baseType;\n\t\t\tif (config.type === 'UTF8String' || config.type === 'Utf8String') {\n\t\t\t\tbaseType = 'string';\n\t\t\t} else if (config.type === 'GeneralizedTime') {\n\t\t\t\tbaseType = 'Date';\n\t\t\t} else {\n\t\t\t\tif (config.type === undefined) {\n\t\t\t\t\tthrow(new Error(`Sensitive attribute ${name} has no defined type.`));\n\t\t\t\t}\n\t\t\t\tbaseType = toPascalCase(config.type);\n\t\t\t}\n\t\t\tlines.push(`/** ${config.description} */`);\n\t\t\tlines.push(`/** OID: ${oidArrayToString(config.oid)} */`);\n\t\t\tlines.push(`export type ${typeName} = ${baseType};`);\n\t\t\tlines.push('');\n\t\t} else if (config.fields) {\n\t\t\t// Sequence type\n\t\t\tlines.push(`/** ${config.description} */`);\n\t\t\tlines.push(`/** OID: ${oidArrayToString(config.oid)} */`);\n\t\t\tlines.push(`export interface ${typeName} {`);\n\t\t\tfor (const [fieldName, fieldConfig] of Object.entries(config.fields)) {\n\t\t\t\tconst optional = fieldConfig.optional ? '?' : '';\n\t\t\t\tconst resolvedType = resolveTypeReference(fieldConfig.type);\n\t\t\t\tlines.push(`\\t${fieldName}${optional}: ${resolvedType};`);\n\t\t\t}\n\t\t\tlines.push('}');\n\t\t\tlines.push('');\n\t\t} else if (config.choices) {\n\t\t\t// Choice type\n\t\t\tlines.push(`/** ${config.description} */`);\n\t\t\tlines.push(`/** OID: ${oidArrayToString(config.oid)} */`);\n\t\t\tconst hasComplexTypes = Object.values(config.choices).some(function(choice) {\n\t\t\t\tconst choiceType = choice.type.trim();\n\t\t\t\treturn(choiceType !== 'UTF8String' && choiceType !== 'string');\n\t\t\t});\n\t\t\tif (hasComplexTypes) {\n\t\t\t\tconst unionTypes = Object.values(config.choices).map(function(choice) {\n\t\t\t\t\treturn(toPascalCase(choice.type.trim()));\n\t\t\t\t});\n\t\t\t\tlines.push(`export type ${typeName} = ${unionTypes.join(' | ')};`);\n\t\t\t} else {\n\t\t\t\tlines.push(`export type ${typeName} = string;`);\n\t\t\t}\n\t\t\tlines.push('');\n\t\t}\n\t}\n\n\t// Extension Types with fields\n\tfor (const [name, config] of Object.entries(oidSchema.extensions)) {\n\t\tif (config.fields) {\n\t\t\tconst typeName = toPascalCase(name);\n\t\t\tlines.push(`/** ${config.description} */`);\n\t\t\tif (config.oid) {\n\t\t\t\tlines.push(`/** OID: ${oidArrayToString(config.oid)} */`);\n\t\t\t}\n\t\t\tlines.push(`export interface ${typeName} {`);\n\t\t\tfor (const [fieldName, fieldConfig] of Object.entries(config.fields)) {\n\t\t\t\tconst optional = fieldConfig.optional ? '?' : '';\n\t\t\t\tconst resolvedType = resolveTypeReference(fieldConfig.type);\n\t\t\t\tlines.push(`\\t${fieldName}${optional}: ${resolvedType};`);\n\t\t\t}\n\t\t\tlines.push('}');\n\t\t\tlines.push('');\n\t\t\t// Schema\n\t\t\tlines.push(genSequenceSchema(typeName, config.fields, config));\n\t\t\tlines.push('');\n\t\t}\n\t}\n\n\t// Token aliases for sensitive attributes\n\tlines.push('// Token aliases for sensitive attributes');\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tif (config.token && config.token !== toPascalCase(name)) {\n\t\t\tconst typeName = toPascalCase(name);\n\t\t\tconst tokenName = config.token;\n\t\t\tlines.push(`/** Alias for ${typeName} */`);\n\t\t\tlines.push(`export type ${tokenName} = ${typeName};`);\n\t\t\tlines.push('');\n\t\t}\n\t}\n\n\t// Union type, value map, helper generic\n\tlines.push('/** Union type of all sensitive attribute types */');\n\tlines.push('export type SensitiveAttributeType =');\n\tlines.push(Object.keys(oidSchema.sensitive_attributes).map(function(name) {\n\t\treturn(`\\t| ${toPascalCase(name)}`);\n\t}).join('\\n') + ';');\n\tlines.push('');\n\tlines.push('/** Map of attribute name to acceptable input type for CertificateBuilder.setAttribute */');\n\tlines.push('export interface CertificateAttributeValueMap {');\n\tfor (const [name] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tlines.push(`\\t'${name}': ${toPascalCase(name)};`);\n\t}\n\tlines.push('}');\n\tlines.push('');\n\tlines.push('/** Helper generic to get attribute value type by name */');\n\tlines.push('export type CertificateAttributeValue<Name extends keyof CertificateAttributeValueMap> = CertificateAttributeValueMap[Name];');\n\tlines.push('');\n\n\t// Field arrays and schemas for sequence types\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tif (config.fields) {\n\t\t\tconst fieldOrder = config.field_order ?? Object.keys(config.fields);\n\t\t\tlines.push(`export const ${typeName}Fields = [${fieldOrder.map(function(field) {\n\t\t\t\treturn(`'${field}'`);\n\t\t\t}).join(', ')}] as const;`);\n\t\t\tlines.push(genSequenceSchema(typeName, config.fields, config));\n\t\t}\n\t}\n\n\t// OID DB\n\tlines.push('export const CertificateAttributeOIDDB = {');\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tlines.push(`\\t'${name}': '${oidArrayToString(config.oid)}',`);\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('} as const;');\n\tlines.push('');\n\n\t// Sensitive attribute list\n\tlines.push('export const SENSITIVE_CERTIFICATE_ATTRIBUTES = [');\n\tfor (const name of Object.keys(oidSchema.sensitive_attributes)) {\n\t\tlines.push(`\\t'${name}',`);\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('] as const;');\n\tlines.push('');\n\n\tlines.push('export type SensitiveCertificateAttributeNames = typeof SENSITIVE_CERTIFICATE_ATTRIBUTES[number];');\n\tlines.push('');\n\n\t// PascalCase names\n\tlines.push('export const SensitiveCertificateAttributeNames = [');\n\tfor (const name of Object.keys(oidSchema.sensitive_attributes)) {\n\t\tlines.push(`\\t'${toPascalCase(name)}',`);\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('] as const;');\n\tlines.push('');\n\n\t// Field name mapping\n\tlines.push('export const CertificateAttributeFieldNames: { readonly [K in keyof typeof CertificateAttributeOIDDB]?: readonly string[] } = {');\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tif (config.fields) {\n\t\t\tconst typeName = toPascalCase(name);\n\t\t\tlines.push(`\\t'${name}': ${typeName}Fields,`);\n\t\t}\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('} as const;');\n\tlines.push('');\n\n\t// Complete schema mapping (ONCE, at the end)\n\tlines.push('export const CertificateAttributeSchema: { readonly [K in keyof typeof CertificateAttributeOIDDB]: ASN1.Schema } = {');\n\tfor (const [name, config] of Object.entries(oidSchema.sensitive_attributes)) {\n\t\tconst typeName = toPascalCase(name);\n\t\tlet schemaRef;\n\t\tif (config.fields) {\n\t\t\tschemaRef = `${typeName}Schema`;\n\t\t} else if (config.choices) {\n\t\t\tschemaRef = `${typeName}Schema`;\n\t\t} else {\n\t\t\tif (config.type === undefined) {\n\t\t\t\tthrow(new Error(`Sensitive attribute ${name} has no defined type.`));\n\t\t\t}\n\t\t\tconst baseType = resolveToBaseType(config.type);\n\t\t\tconst baseTypeSnake = toSnakeCase(baseType);\n\t\t\tconst isExtensionType = oidSchema.extensions[baseTypeSnake]?.fields ?? oidSchema.extensions[baseType]?.fields;\n\n\t\t\tif (isExtensionType) {\n\t\t\t\tschemaRef = `${baseType}Schema`;\n\t\t\t} else if (baseType === 'GeneralizedTime') {\n\t\t\t\tschemaRef = 'ASN1.ValidateASN1.IsDate';\n\t\t\t} else if (baseType === 'OCTET STRING') {\n\t\t\t\tschemaRef = 'ASN1.ValidateASN1.IsOctetString';\n\t\t\t} else if (baseType === 'OBJECT IDENTIFIER') {\n\t\t\t\tschemaRef = 'ASN1.ValidateASN1.IsOID';\n\t\t\t} else {\n\t\t\t\tschemaRef = `{ type: 'string', kind: 'utf8' }`;\n\t\t\t}\n\t\t}\n\t\tlines.push(`\\t'${name}': ${schemaRef},`);\n\t}\n\tdeleteLastCommaIfFound();\n\tlines.push('} as const;');\n\tlines.push('');\n\n\treturn(lines.join('\\n'));\n}\n\nfunction parseArgs(argv: string[]): { oidsJSONPath: string; oidsOutputPath: string; iso20022OutputPath: string } {\n\tlet oidsJSONPath: string | undefined = undefined;\n\tlet oidsOutputPath: string | undefined = undefined;\n\tlet iso20022OutputPath: string | undefined = undefined;\n\tfor (const arg of argv) {\n\t\tif (arg.startsWith('--oids-json=')) {\n\t\t\toidsJSONPath = arg.substring('--oids-json='.length);\n\t\t}\n\t\tif (arg.startsWith('--oids-output=')) {\n\t\t\toidsOutputPath = arg.substring('--oids-output='.length);\n\t\t}\n\t\tif (arg.startsWith('--iso20022-output=')) {\n\t\t\tiso20022OutputPath = arg.substring('--iso20022-output='.length);\n\t\t}\n\t}\n\n\tif (oidsJSONPath === undefined) {\n\t\tthrow(new Error('Missing required argument: --oids-json=path/to/oids.json'));\n\t}\n\tif (oidsOutputPath === undefined) {\n\t\tthrow(new Error('Missing required argument: --oids-output=path/to/oids.generated.ts'));\n\t}\n\tif (iso20022OutputPath === undefined) {\n\t\tthrow(new Error('Missing required argument: --iso20022-output=path/to/iso20022.generated.ts'));\n\t}\n\tif (!fs.existsSync(oidsJSONPath)) {\n\t\tthrow(new Error(`OID JSON file not found: ${oidsJSONPath}`));\n\t}\n\treturn({\n\t\toidsJSONPath,\n\t\toidsOutputPath,\n\t\tiso20022OutputPath\n\t});\n}\n\n// --- Main ---\nfunction main(argv: string[]): void {\n\tconst {\n\t\toidsJSONPath,\n\t\toidsOutputPath,\n\t\tiso20022OutputPath\n\t} = parseArgs(argv);\n\n\tfs.mkdirSync(path.dirname(oidsOutputPath), { recursive: true });\n\tfs.mkdirSync(path.dirname(iso20022OutputPath), { recursive: true });\n\n\toidSchema = typia.assert<oidSchemaContents>(JSON.parse(fs.readFileSync(oidsJSONPath, 'utf8')));\n\n\tfs.writeFileSync(oidsOutputPath, generateOidConstants(), 'utf8');\n\tfs.writeFileSync(iso20022OutputPath, generateIso20022Types(), 'utf8');\n}\n\nmain(process.argv.slice(2));\n"]}
|
package/lib/log/common.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
|
|
2
|
-
export type LogTargetLevel = 'ALL' | LogLevel | 'NONE';
|
|
3
|
-
type LogCurrentRequest = {
|
|
4
|
-
id: string;
|
|
5
|
-
};
|
|
6
|
-
export type LogEntry = {
|
|
7
|
-
options: {
|
|
8
|
-
userVisible?: boolean;
|
|
9
|
-
currentRequestInfo?: LogCurrentRequest;
|
|
10
|
-
};
|
|
11
|
-
level: LogLevel;
|
|
12
|
-
from: string;
|
|
13
|
-
args: unknown[];
|
|
14
|
-
trace?: string;
|
|
15
|
-
};
|
|
16
|
-
export interface LogTarget {
|
|
17
|
-
readonly logLevel: LogTargetLevel;
|
|
18
|
-
emitLogs(logs: LogEntry[]): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export interface Logger {
|
|
21
|
-
log(options: LogEntry['options'], from: string, ...args: unknown[]): void;
|
|
22
|
-
log(from: string, ...args: unknown[]): void;
|
|
23
|
-
debug(options: LogEntry['options'], from: string, ...args: unknown[]): void;
|
|
24
|
-
debug(from: string, ...args: unknown[]): void;
|
|
25
|
-
info(options: LogEntry['options'], from: string, ...args: unknown[]): void;
|
|
26
|
-
info(from: string, ...args: unknown[]): void;
|
|
27
|
-
warn(options: LogEntry['options'], from: string, ...args: unknown[]): void;
|
|
28
|
-
warn(from: string, ...args: unknown[]): void;
|
|
29
|
-
error(options: LogEntry['options'], from: string, ...args: unknown[]): void;
|
|
30
|
-
error(from: string, ...args: unknown[]): void;
|
|
31
|
-
}
|
|
32
|
-
export declare function canLogForLevel(level: LogLevel, currentLevel: LogLevel): boolean;
|
|
33
|
-
export declare function canLogForTargetLevel(level: LogLevel, targetLevel: LogTargetLevel): boolean;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=common.d.ts.map
|
package/lib/log/common.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/lib/log/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAUvD,KAAK,iBAAiB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE;QACR,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;KACvC,CAAC;IACF,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,MAAM;IACtB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC1E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC3E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC3E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,GAAG,OAAO,CAE/E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAU1F"}
|
package/lib/log/common.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const numericLogLevels = {
|
|
2
|
-
DEBUG: 0,
|
|
3
|
-
INFO: 1,
|
|
4
|
-
WARN: 2,
|
|
5
|
-
ERROR: 3
|
|
6
|
-
};
|
|
7
|
-
export function canLogForLevel(level, currentLevel) {
|
|
8
|
-
return (numericLogLevels[level] >= numericLogLevels[currentLevel]);
|
|
9
|
-
}
|
|
10
|
-
export function canLogForTargetLevel(level, targetLevel) {
|
|
11
|
-
if (targetLevel === 'ALL') {
|
|
12
|
-
return (true);
|
|
13
|
-
}
|
|
14
|
-
if (targetLevel === 'NONE') {
|
|
15
|
-
return (false);
|
|
16
|
-
}
|
|
17
|
-
return (canLogForLevel(level, targetLevel));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=common.js.map
|
package/lib/log/common.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/lib/log/common.ts"],"names":[],"mappings":"AAGA,MAAM,gBAAgB,GAAG;IACxB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACC,CAAC;AAoCX,MAAM,UAAU,cAAc,CAAC,KAAe,EAAE,YAAsB;IACrE,OAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAe,EAAE,WAA2B;IAChF,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC3B,OAAM,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,OAAM,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';\nexport type LogTargetLevel = 'ALL' | LogLevel | 'NONE';\n\nconst numericLogLevels = {\n\tDEBUG: 0,\n\tINFO: 1,\n\tWARN: 2,\n\tERROR: 3\n} as const;\n\n/* XXX:TODO -- Do something with this */\ntype LogCurrentRequest = {\n\tid: string;\n};\n\nexport type LogEntry = {\n\toptions: {\n\t\tuserVisible?: boolean;\n\t\tcurrentRequestInfo?: LogCurrentRequest;\n\t};\n\tlevel: LogLevel;\n\tfrom: string;\n\targs: unknown[];\n\ttrace?: string;\n};\n\nexport interface LogTarget {\n\treadonly logLevel: LogTargetLevel;\n\temitLogs(logs: LogEntry[]): Promise<void>;\n}\n\nexport interface Logger {\n\tlog(options: LogEntry['options'], from: string, ...args: unknown[]): void;\n\tlog(from: string, ...args: unknown[]): void;\n\tdebug(options: LogEntry['options'], from: string, ...args: unknown[]): void;\n\tdebug(from: string, ...args: unknown[]): void;\n\tinfo(options: LogEntry['options'], from: string, ...args: unknown[]): void;\n\tinfo(from: string, ...args: unknown[]): void;\n\twarn(options: LogEntry['options'], from: string, ...args: unknown[]): void;\n\twarn(from: string, ...args: unknown[]): void;\n\terror(options: LogEntry['options'], from: string, ...args: unknown[]): void;\n\terror(from: string, ...args: unknown[]): void;\n}\n\nexport function canLogForLevel(level: LogLevel, currentLevel: LogLevel): boolean {\n\treturn(numericLogLevels[level] >= numericLogLevels[currentLevel]);\n}\n\nexport function canLogForTargetLevel(level: LogLevel, targetLevel: LogTargetLevel): boolean {\n\tif (targetLevel === 'ALL') {\n\t\treturn(true);\n\t}\n\n\tif (targetLevel === 'NONE') {\n\t\treturn(false);\n\t}\n\n\treturn(canLogForLevel(level, targetLevel));\n}\n"]}
|