{"version":3,"sources":["jsdelivr-header.js","/npm/amd-pack@1.0.9/index.js"],"names":[],"mappings":"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","file":"/npm/amd-pack@1.0.9/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/amd-pack@1.0.9/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var fs = require('fs');\r\nvar path = require('path');\r\nvar uglify = require('uglify-js');\r\nvar async = require('async');\r\n\r\nmodule.exports = function(){ // wrapping\r\n\tvar wss;\r\n\tvar port;\r\n\tvar loadedFiles = {};\r\n\tvar watchedFiles = {};\r\n\tvar deps = [];\r\n\tvar rootDir = path.dirname(__filename);\r\n\tvar wsInjection = fs.readFileSync(path.resolve(rootDir, \"./ws-injection.js\"), 'utf-8');\r\n\r\n\tvar includeModifers = {\r\n\t\tstring: function(source){\r\n\t\t\treturn 'module.exports = \"'+source.replace(/[\\\"\\n\\r]/ig, function(ch){\r\n\t\t\t\tif(ch === '\\\"'){\r\n\t\t\t\t\treturn '\\\\\"';\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn '\\\\n';\r\n\t\t\t\t}\r\n\t\t\t})+'\";';\r\n\t\t},\r\n\t\tfunction: function(source){\r\n\t\t\treturn 'module.exports = function(){ \\n\\t'+source+'};';\r\n\t\t},\r\n\t\tfile: function(source){\r\n\t\t\treturn source;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction TestString(testString){\r\n\t\tvar tests = [];\r\n\t\tvar testStringLength = testString.length;\r\n\t\tfor(var i = 1, len = testStringLength + 1; i < len; i++){\r\n\t\t\ttests.push('\\t\\t' + i + ':' + '\"' + testString.substring(0, i) + '\"');\r\n\t\t}\r\n\t\tvar source = [\r\n\t\t\t'\\tvar test = {',\r\n\t\t\t\ttests.join(',\\n'),\r\n\t\t\t'\\t};',\r\n\t\t\t'\\tvar len = str.length;',\r\n\t\t\t'\\tvar result = test[len] === str;',\r\n\t\t\t'\\tvar isFull = result ? ' + testStringLength + ' === len : false ;',\r\n\t\t\t'\\treturn {test: result, full: isFull};'\r\n\t\t];\r\n\t\t\r\n\t\treturn Function('str', source.join('\\n'));\r\n\t}\r\n\tvar isRequire = TestString('require');\r\n\tvar isAmdPack = TestString('amdPack.include');\r\n\r\n\tvar isWhiteSpace = {\r\n\t\t'\\n': 1,\r\n\t\t'\\r': 1,\r\n\t\t'\\t': 1,\r\n\t\t'\\b': 1,\r\n\t\t' ': 1,\r\n\t\t'\\v': 1,\r\n\t\t'\\f': 1\r\n\t};\r\n\tfunction skipWhiteSpaces(source, cursor){\r\n\t\tvar ch;\r\n\t\twhile(ch = source[cursor]){\r\n\t\t\tif(!isWhiteSpace[ch]){\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcursor += 1;\r\n\t\t}\r\n\t\treturn cursor;\r\n\t}\r\n\tfunction skipString(source, cursor, removeQuotes){\r\n\t\tvar isString = true, ch;\r\n\t\tvar quote = source[cursor];\r\n\t\tvar string = '';\r\n\r\n\t\tcursor += 1;\r\n\t\twhile(isString && (ch = source[cursor])){\r\n\t\t\tif(ch === quote){\r\n\t\t\t\tisString = false;\r\n\t\t\t\tif(removeQuotes){\r\n\t\t\t\t\tch = '';\r\n\t\t\t\t}\r\n\t\t\t}else if(ch === '\\\\'){\r\n\t\t\t\tstring += '\\\\';\r\n\t\t\t\tcursor += 1;\r\n\t\t\t}\r\n\t\t\tstring += ch;\r\n\t\t\tcursor += 1;\r\n\t\t}\r\n\t\tif(removeQuotes){\r\n\t\t\treturn {cursor: cursor, string: string};\r\n\t\t}else{\r\n\t\t\treturn {cursor: cursor, string: quote + string};\r\n\t\t}\r\n\t}\r\n\tfunction skipComment(source, cursor){\r\n\t\tvar ch, type = source[cursor + 1] === '/' ? false : true;\r\n\t\tcursor += 2;\r\n\t\twhile(ch = source[cursor]){\r\n\t\t\tif(type){\r\n\t\t\t\tif(ch === '*' && source[cursor + 1] === '/'){\r\n\t\t\t\t\tcursor += 2;\r\n\t\t\t\t\tbreak;\t\r\n\t\t\t\t}\r\n\t\t\t}else if(ch === '\\n'){\r\n\t\t\t\tcursor += 1;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcursor += 1;\r\n\t\t}\r\n\t\treturn cursor;\r\n\t}\r\n\tfunction getPath(source, cursor){\r\n\t\tvar path = null;\r\n\t\tcursor = skipWhiteSpaces(source, cursor);\r\n\t\tif(source[cursor] === '('){\r\n\t\t\tcursor = skipWhiteSpaces(source, cursor + 1);\r\n\t\t\tif(source[cursor] === '\"' || source[cursor] === \"'\"){\r\n\t\t\t\tvar result = skipString(source, cursor, true);\r\n\t\t\t\tcursor = result.cursor;\r\n\t\t\t\tpath = result.string;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {cursor: cursor, path: path};\r\n\t}\r\n\tfunction getAmdArguments(source, cursor){\r\n\t\tvar path = getPath(source, cursor);\r\n\t\tpath.cursor = skipWhiteSpaces(source, path.cursor);\r\n\t\tpath.cursor += 1;\r\n\t\tpath.cursor = skipWhiteSpaces(source, path.cursor);\r\n\r\n\t\tvar type = skipString(source, path.cursor, true);\r\n\t\treturn {\r\n\t\t\tcursor: type.cursor,\r\n\t\t\tpath: path.path,\r\n\t\t\ttype: type.string\r\n\t\t}\r\n\t}\r\n\tfunction getPaths(source){\r\n\t\tvar ch, cursor = 0, buffer = {require: '', include: ''}, paths = [];\r\n\t\twhile(ch = source[cursor]){\r\n\t\t\tif(ch === '/' && (source[cursor + 1] === '/' || source[cursor + 1] === '*')){\r\n\t\t\t\tcursor = skipComment(source, cursor);\r\n\t\t\t}\r\n\t\t\tif(ch === \"'\" || ch === '\"'){\r\n\t\t\t\tcursor = skipString(source, cursor).cursor;\r\n\t\t\t}\r\n\t\t\tif(buffer.require){\r\n\t\t\t\tbuffer.require += ch;\r\n\t\t\t\tvar requireTest = isRequire(buffer.require);\r\n\t\t\t\tif(requireTest.test){\r\n\t\t\t\t\tif(requireTest.full){\r\n\t\t\t\t\t\tvar result = getPath(source, cursor + 1);\r\n\t\t\t\t\t\tcursor = result.cursor;\r\n\t\t\t\t\t\tif(result.path){\r\n\t\t\t\t\t\t\tpaths.push(result.path);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbuffer.require = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbuffer.require = '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(buffer.include){\r\n\t\t\t\tbuffer.include += ch;\r\n\t\t\t\tvar requireTest = isAmdPack(buffer.include);\r\n\t\t\t\tif(requireTest.test){\r\n\t\t\t\t\tif(requireTest.full){\r\n\t\t\t\t\t\tvar result = getAmdArguments(source, cursor + 1);\r\n\t\t\t\t\t\tcursor = result.cursor;\r\n\t\t\t\t\t\tif(result.path){\r\n\t\t\t\t\t\t\tpaths.push(result);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbuffer.include = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbuffer.include = '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(ch === 'r' && !buffer.require){\r\n\t\t\t\tbuffer.require += ch;\r\n\t\t\t}\r\n\t\t\tif(ch === 'a' && !buffer.include){\r\n\t\t\t\tbuffer.include += ch;\t\r\n\t\t\t}\r\n\t\t\tcursor += 1;\r\n\t\t}\r\n\t\treturn {paths: paths, source: source};\r\n\t}\r\n\tfunction wrapper(wrapper, source, name, deps){\r\n\t\tdeps.reverse();\r\n\t\tvar open = fs.readFileSync(path.resolve(rootDir, './wrappers/amd/'+wrapper+\"-open\"), 'utf-8');\r\n\t\tvar close = fs.readFileSync(path.resolve(rootDir, './wrappers/amd/'+wrapper+\"-close\"), 'utf-8');\r\n\t\tvar amdLoader = fs.readFileSync(path.resolve(rootDir, './wrappers/amd/'+wrapper+\"-loader\"), 'utf-8');\r\n\r\n\t\treturn (\r\n\t\t\topen.replace('@name@', name).replace('@wsInjection@', wss ? wsInjection.replace('@PORT@', wss.options.port) : '') +\r\n\t\t\t'\\n\\t' + \r\n\t\t\tindent(exportsToReturn(source)) + \r\n\t\t\t'\\n' + \r\n\t\t\tclose.replace('@AMD_MODULES@', deps.map(function(module){\r\n\t\t\t\tif(module.type && includeModifers[module.type]){\r\n\t\t\t\t\tmodule.dep = includeModifers[module.type](module.dep);\r\n\t\t\t\t}\r\n\t\t\t\treturn amdLoader.replace(/\\@PATH\\@/ig, module.path).replace('@AMD_MODULE@', '\\t'+indent(module.dep, '\\t\\t'));\r\n\t\t\t}).join('\\n'))\r\n\t\t);\r\n\t}\r\n\r\n\tfunction indent(source, indent){\r\n\t\treturn source.replace(/[\\n\\r]+/ig, '\\n' + (indent || '\\t'));\r\n\t}\r\n\tfunction getDependencies(source, resolveDir, cutter){\r\n\t\tvar result = getPaths(source || '');\r\n\t\tvar deps = result.paths.map(function(dep){\r\n\t\t\tvar resolvedPath = path.resolve(resolveDir, dep.path || dep);\r\n\t\t\ttry{\r\n\t\t\t\tfs.statSync(resolvedPath);\r\n\t\t\t}catch(e){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tresolvedPath = require.resolve(dep);\r\n\t\t\t\t\tconsole.warn('Dependency: ' + dep + ' not found!');\r\n\t\t\t\t}catch(e){\r\n\t\t\t\t\tresolvedPath = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(resolvedPath){\r\n\t\t\t\tsource = source.replace(dep.path || dep, cutter(resolvedPath));\r\n\t\t\t\treturn dep.path ? {path: resolvedPath, type: dep.type} : resolvedPath;\r\n\t\t\t}else{\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}).filter(Boolean);\r\n\t\treturn {deps: deps, source: source};\r\n\t}\r\n\tfunction getDir(_path, resolveDir){\r\n\t\treturn path.resolve(resolveDir || '', path.dirname(_path));\r\n\t}\r\n\tfunction cutter(cut, minify, path){\r\n\t\tif(minify){\r\n\t\t\tif(this.paths[path] === undefined){\r\n\t\t\t\tthis.index += 1;\r\n\t\t\t\tthis.paths[path] = this.index;\r\n\t\t\t}\r\n\t\t\treturn this.paths[path];\r\n\t\t}else{\r\n\t\t\treturn path.replace(cut, '').replace(/\\\\/ig, '/');\r\n\t\t}\r\n\t}\r\n\tfunction exportsToReturn(source){\r\n\t\treturn source.replace(/module\\.?\\[?\\'?\\\"?exports\\\"?\\'?\\]?[ \\t\\n\\r]*\\=/ig, 'return ');\r\n\t}\r\n\tfunction runBuilders(type, path, source, builders, cl){\r\n\t\tif(builders && builders.length){\r\n\t\t\tvar activeBuilders = builders.filter(function(item){\r\n\t\t\t\treturn (\r\n\t\t\t\t\titem.action === type && \r\n\t\t\t\t\t(!item.ext || item.ext.test(path)) &&\r\n\t\t\t\t\t!item.skip.some(function(re){\r\n\t\t\t\t\t\treturn re.test(path);\r\n\t\t\t\t\t})\r\n\t\t\t\t)\r\n\t\t\t});\r\n\t\t\tasync.each(activeBuilders, function(builder, callback){\r\n\t\t\t\tbuilder.handler(source, function(newSource){\r\n\t\t\t\t\tsource = newSource;\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t});\r\n\t\t\t}, function(){\r\n\t\t\t\tcl(source);\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tcl(source);\r\n\t\t}\r\n\t}\r\n\tfunction loadFile(file, builders, cl){\r\n\t\tif(!file.data){\r\n\t\t\tfs.readFile(file.path, 'utf-8', function(err, source){\r\n\t\t\t\tif(!builders){\r\n\t\t\t\t\tcl(source);\r\n\t\t\t\t}else{\r\n\t\t\t\t\trunBuilders('loading', file.path, source, builders, cl)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tif(!builders){\r\n\t\t\t\tcl(file.data);\r\n\t\t\t}else{\r\n\t\t\t\trunBuilders('loading', file.path, file.data, builders, cl)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tfunction resolveFiles(rootFile, options, isRoot, cl){\r\n\t\tvar end;\r\n\t\tvar wrapperType;\r\n\t\tvar data;\r\n\t\t\r\n\t\tif(rootFile.path){\r\n\t\t\twrapperType = rootFile.type;\r\n\t\t\trootFile = rootFile.path;\r\n\t\t\tdata = rootFile.data;\r\n\t\t}\r\n\t\tvar resolvedPath = path.resolve(options.resolveFrom || '.', rootFile);\r\n\t\tloadFile({data: data, path: resolvedPath}, options.builders, function(source){\r\n\t\t\tvar result = getDependencies(source, getDir(rootFile), options.cutter);\r\n\t\t\tvar cuttedPath = options.cutter(resolvedPath);\r\n\t\t\tif(!isRoot){\r\n\t\t\t\tif(!loadedFiles[cuttedPath]){\r\n\t\t\t\t\tdeps.push({path: cuttedPath, dep: result.source, type: wrapperType});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvar priorityDep;\r\n\t\t\t\t\tfor(var i = 0, len = deps.length; i < len; i++){\r\n\t\t\t\t\t\tif(deps[i]['path'] === cuttedPath){\r\n\t\t\t\t\t\t\tpriorityDep = deps.splice(i, 1)[0];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdeps.push(priorityDep); priorityDep = null;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tend = function(){\r\n\t\t\t\t\tif(isRoot){\r\n\t\t\t\t\t\tvar _deps = deps;\r\n\t\t\t\t\t\tdeps = [];\r\n\t\t\t\t\t\tloadedFiles = {};\r\n\t\t\t\t\t\tif(!options.watch){\r\n\t\t\t\t\t\t\twatchedFiles = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcl({path: cuttedPath, source: result.source, deps: _deps});\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tloadedFiles[cuttedPath] = true;\r\n\t\t\twatchedFiles[resolvedPath] = true;\r\n\t\t\t\r\n\r\n\t\t\tresult.deps = result.deps.filter(function(source){\r\n\t\t\t\treturn !loadedFiles[source.path || source];\r\n\t\t\t});\r\n\r\n\t\t\tif(result.deps.length){\r\n\t\t\t\tasync.parallel(\r\n\t\t\t\t\tresult.deps.map(function(source){\r\n\t\t\t\t\t\treturn function(callback){\r\n\t\t\t\t\t\t\tresolveFiles(source, options, false, function(){\r\n\t\t\t\t\t\t\t\tcallback(null, true);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}), \r\n\t\t\t\t\tend || cl\r\n\t\t\t\t);\r\n\t\t\t}else{\r\n\t\t\t\t(!!end && end()) || (!!cl && cl());\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction strToRe(arr, context){\r\n\t\treArr = [];\r\n\t\tif(Array.isArray(arr)){\r\n\t\t\tfor(var i = 0, len = arr.length; i < len; i++){\r\n\t\t\t\tif(typeof arr[i] === 'string'){\r\n\t\t\t\t\treArr.push(new RegExp(arr[i], 'ig'));\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(context + ' skip option with index '+i+' is not a string for RE.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(context + ' skip option is not a array');\r\n\t\t}\r\n\t\treturn reArr;\r\n\t}\r\n\tfunction build(options, cl){\r\n\t\tif(!wss && options.socketUpdate){\r\n\t\t\twss = require('ws').Server({ port: options.socketUpdate || 8721 });\r\n\t\t\tconsole.log('WSS started on ' + wss.options.port + '.');\r\n\t\t}\r\n\r\n\t\tif(!options.cut){ options.cut = path.resolve('../') }\r\n\t\t\toptions.cutter = cutter.bind({paths: {}, index: -1}, options.cut, options.minify);\r\n\r\n\t\tif(!options.wrapper){ options.wrapper = 'amd'; }\r\n\t\tif(!options.name){ options.name = __dirname.replace(/\\\\/ig, '/').split('/').pop() + (new Date().getTime()); }\r\n\t\tif(options.skip){\r\n\t\t\toptions.skip = strToRe(options.skip, 'Global,');\r\n\t\t}else{\r\n\t\t\toptions.skip = [];\r\n\t\t}\r\n\t\tif(options.builders){\r\n\t\t\tfor(var i = 0, len = options.builders.length; i < len; i++){\r\n\t\t\t\tvar builder = options.builders[i];\r\n\t\t\t\tif(builder.ext){\r\n\t\t\t\t\tbuilder.ext = builder.ext ? new RegExp('\\\\.' + builder.ext + '$','i') : /\\.[^]+?$/i;\r\n\t\t\t\t}\r\n\t\t\t\tbuilder.skip = options.skip.concat(strToRe(builder.skip || [], 'Builder with index: '+i+','));\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar postResolving = function(root){\r\n\t\t\tif(options.watch && options.output){\r\n\t\t\t\tvar watcher = function(prev, next){\r\n\t\t\t\t\tunWatch();\r\n\t\t\t\t\tresolveFiles(options.input, options, true, function(){\r\n\t\t\t\t\t\tif(options.socketUpdate){\r\n\t\t\t\t\t\t\twss.clients.forEach(function(client){\r\n\t\t\t\t\t\t\t\tclient.send('refresh');\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpostResolving.apply(this, arguments);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t\tvar watch = function(){\r\n\t\t\t\t\tfor(var i = 0, k = Object.keys(watchedFiles), key = k[0], l = k.length; i < l; i++, key = k[i]){\r\n\t\t\t\t\t    fs.watchFile(key, watcher);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tvar unWatch = function(){\r\n\t\t\t\t\tfor(var i = 0, k = Object.keys(watchedFiles), key = k[0], l = k.length; i < l; i++, key = k[i]){\r\n\t\t\t\t\t    fs.unwatchFile(key, watcher);\r\n\t\t\t\t\t}\r\n\t\t\t\t\twatchedFiles = {};\r\n\t\t\t\t};\r\n\t\t\t\twatch();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvar result = wrapper(options.wrapper, root.source, options.name, root.deps);\r\n\t\t\trunBuilders('packing', null, result, options.builders, function(result){\r\n\t\t\t\tif(options.minify){\r\n\t\t\t\t\tresult = uglify.minify(result, {fromString: true}).code;\r\n\t\t\t\t}\r\n\t\t\t\tif(options.output){\r\n\t\t\t\t\tif(typeof options.output === 'string'){\r\n\t\t\t\t\t\tfs.writeFileSync(options.output.replace('@name@', options.name), result, 'utf-8');\r\n\t\t\t\t\t}else if(options.output instanceof Function){\r\n\t\t\t\t\t\toptions.output(result);\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if(cl){\r\n\t\t\t\t\tcl(result);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t};\r\n\t\tresolveFiles(options.file || options.input, options, true, postResolving);\r\n\t}\r\n\r\n\treturn build;\r\n}"]}