{"version":3,"sources":["jsdelivr-header.js","/npm/@sap/cds-compiler@6.7.3/lib/main.js"],"names":[],"mappings":"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","file":"/npm/@sap/cds-compiler@6.7.3/lib/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@sap/cds-compiler@6.7.3/lib/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// Main entry point for the CDS Compiler (API)\n//\n// Other NPM modules must not require any other files than this one.\n\n// Proposed intra-module lib dependencies:\n//  - lib/base/<file>.js: can be required by all others, requires no other\n//    of this project, except a lib/base/<other-file>.js\n//  - lib/util/<file>.js: TODO - clarify diff to lib/base/\n//  - lib/<dir>/<file>.js: can be required by other files lib/<dir>/,\n//    can require other files in lib/<dir>/ and lib/base/<file>.js,\n//    and lib/<other-dir>/ (the index.js in <other-dir>).\n//  - lib/main.js (this file): can be required by none in lib/ (only in\n//    bin/ and test/), can require any other\n\n'use strict';\n\nconst lazyload = require('./base/lazyload')( module );\n\nconst { traceApi } = require('./api/trace');\n\nconst snapi = lazyload('./api/main');\nconst csnUtils = lazyload('./model/csnUtils');\nconst modelApi = lazyload('./model/api');\nconst messages = lazyload('./base/messages');\nconst sqlIdentifier = lazyload('./sql-identifier');\nconst keywords = lazyload( './base/keywords' );\nconst toCdl = lazyload('./render/toCdl');\n\nconst parsers = lazyload('./parsers');\nconst compiler = lazyload('./compiler');\nconst shared = lazyload('./compiler/shared');\nconst define = lazyload('./compiler/define');\nconst builtins = lazyload('./base/builtins');\nconst base = lazyload('./compiler/base');\nconst finalizeParseCdl = lazyload('./compiler/finalize-parse-cdl');\nconst lsp = lazyload('./compiler/lsp-api');\nconst meta = lazyload('./base/meta');\n\n\nconst toCsn = lazyload('./json/to-csn');\n\nfunction parseCdl( cdlSource, filename, options = {} ) {\n  options = Object.assign( {}, options, { parseCdl: true } );\n  const sources = Object.create(null);\n  /** @type {XSN.Model} */\n  const model = {\n    sources, options, $functions: {}, $volatileFunctions: {},\n  };\n  const messageFunctions = messages.createMessageFunctions( options, 'parse', model );\n  model.$messageFunctions = messageFunctions;\n\n  const xsn = parsers.parseCdl( cdlSource, filename, Object.assign( { parseOnly: true }, options ),\n                                messageFunctions );\n  sources[filename] = xsn;\n  shared.fns( model );\n  define( model );\n  finalizeParseCdl( model );\n  messageFunctions.throwWithError();\n  return toCsn.compactModel( model );\n}\n\nfunction parseCql( cdlSource, filename = '<query>.cds', options = {} ) {\n  const messageFunctions = messages.createMessageFunctions( options, 'parse' );\n  const xsn = parsers.parseCdl( cdlSource, filename, Object.assign( { parseOnly: true }, options ),\n                                messageFunctions, 'query' );\n  messageFunctions.throwWithError();\n  return toCsn.compactQuery( xsn );\n}\n\nfunction parseExpr( cdlSource, filename = '<expr>.cds', options = {} ) {\n  const messageFunctions = messages.createMessageFunctions( options, 'parse' );\n  const xsn = parsers.parseCdl( cdlSource, filename, Object.assign( { parseOnly: true }, options ),\n                                messageFunctions, 'expr' );\n  messageFunctions.throwWithError();\n  return toCsn.compactExpr( xsn );\n}\n\n// FIXME: The implementation of those functions that delegate to 'backends'\n//        should probably move here\n// ATTENTION: Keep in sync with main.d.ts!\nmodule.exports = {\n  // Compiler\n  version: () => meta.version(),\n  compile: (filenames, dir, options, fileCache) => { // main function\n    traceApi( 'compile', options );\n    return compiler.compileX(filenames, dir, options, fileCache).then(toCsn.compactModel);\n  },\n  compileSync: (filenames, dir, options, fileCache) => { // main function\n    traceApi('compileSync', options);\n    return toCsn.compactModel(compiler.compileSyncX(filenames, dir, options, fileCache));\n  },\n  compileSources: (sourcesDict, options) => { // main function\n    traceApi('compileSources', options);\n    return toCsn.compactModel(compiler.compileSourcesX(sourcesDict, options));\n  },\n  compactModel: csn => csn,     // for easy v2 migration\n  get CompilationError() {\n    Object.defineProperty(this, 'CompilationError', {\n      value: messages.CompilationError,\n      writable: false,\n      configurable: false,\n      enumerable: true,\n    });\n    return messages.CompilationError;\n  },\n  sortMessages: (...args) => messages.sortMessages(...args),\n  sortMessagesSeverityAware: (...args) => messages.sortMessagesSeverityAware(...args),\n  deduplicateMessages: (...args) => messages.deduplicateMessages(...args),\n  messageString: (...args) => messages.messageString(...args),\n  messageStringMultiline: (err, config) => messages.messageStringMultiline(err, config),\n  messageContext: (...args) => messages.messageContext(...args),\n  explainMessage: (...args) => messages.explainMessage(...args),\n  hasMessageExplanation: (...args) => messages.hasMessageExplanation(...args),\n  get InvocationError() {\n    Object.defineProperty(this, 'InvocationError', {\n      value: compiler.InvocationError,\n      writable: false,\n      configurable: false,\n      enumerable: false,\n    });\n    return compiler.InvocationError;\n  },\n  hasErrors: (...args) => messages.hasErrors(...args),\n\n  // additional API:\n  parse: {\n    cdl: (...args) => parseCdl(...args),\n    cql: (...args) => parseCql(...args),\n    expr: (...args) => parseExpr(...args),\n  },\n  // SNAPI\n  for: {\n    odata: (...args) => snapi.odata(...args),\n    java: (...args) => snapi.java(...args),\n    effective: (...args) => snapi.for_effective(...args),\n    seal: (...args) => snapi.for_seal(...args),\n  },\n  to: {\n    cdl: Object.assign((...args) => snapi.cdl(...args), {\n      keywords: Object.freeze([ ...keywords.cdl ] ),\n      functions: Object.freeze([ ...keywords.cdl_functions ] ),\n      smartId: (...args) => toCdl.smartId(...args),\n      smartFunctionId: (...args) => toCdl.smartFunctionId(...args),\n      delimitedId: (...args) => toCdl.delimitedId(...args),\n    }),\n    sql: Object.assign((...args) => snapi.sql(...args), {\n      migration: (...args) => snapi.sql.migration(...args),\n      sqlite: {\n        keywords: Object.freeze([ ...keywords.sqlite ] ),\n      },\n      postgres: {\n        keywords: Object.freeze([ ...keywords.postgres ] ),\n      },\n      h2: {\n        keywords: Object.freeze([ ...keywords.h2 ] ),\n      },\n      smartId: (...args) => sqlIdentifier.smartId(...args),\n      smartFunctionId: (...args) => sqlIdentifier.smartFuncId(...args),\n      delimitedId: (...args) => sqlIdentifier.delimitedId(...args),\n    }),\n    hdi: Object.assign((...args) => snapi.hdi(...args), {\n      migration: (...args) => snapi.hdi.migration(...args),\n      keywords: Object.freeze([ ...keywords.hana ] ),\n    }),\n    hdbcds: Object.assign((...args) => snapi.hdbcds(...args), {\n      keywords: Object.freeze([ ...keywords.hdbcds ] ),\n    }),\n    edm: Object.assign((...args) => snapi.edm(...args), {\n      all: (...args) => snapi.edm.all(...args),\n    }),\n    edmx: Object.assign((...args) => snapi.edmx(...args), {\n      all: (...args) => snapi.edmx.all(...args),\n    }),\n    odata: Object.assign((...args) => snapi.odata2(...args), {\n      all: (...args) => snapi.odata2.all(...args),\n    }),\n  },\n  // Convenience for hdbtabledata calculation in @sap/cds\n  getArtifactCdsPersistenceName: (...args) => csnUtils.getArtifactDatabaseNameOf(...args),\n  getElementCdsPersistenceName: (...args) => csnUtils.getElementDatabaseNameOf(...args),\n\n  // Other API functions:\n  traverseCsn: (...args) => modelApi.traverseCsn(...args),\n\n  // INTERNAL functions for the cds-lsp package and friends - before you use\n  // it, you MUST talk with us - there can be potential incompatibilities with\n  // new releases (even having the same major version):\n  $lsp: {\n    parse: (...args) => compiler.parseX(...args),\n    compile: (...args) => compiler.compileX(...args),\n    compileSync: (...args) => compiler.compileSyncX(...args),\n    getArtifactName: art => base.getArtifactName(art),\n    traverseSemanticTokens: (xsn, options) => lsp.traverseSemanticTokens(xsn, options),\n    getSemanticTokenOrigin: obj => lsp.getSemanticTokenOrigin(obj),\n    xsnToCsn: ( xsn, options ) => toCsn.compactModel( xsn, options ),\n  },\n\n  // CSN Model related functionality\n  model: {\n    isInReservedNamespace: (...args) => builtins.isInReservedNamespace(...args),\n  },\n};\n"]}