{"version":3,"sources":["jsdelivr-header.js","/npm/@jsonic/multisource@2.1.0/dist/multisource.js"],"names":[],"mappings":"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","file":"/npm/@jsonic/multisource@2.1.0/dist/multisource.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@jsonic/multisource@2.1.0/dist/multisource.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n/* Copyright (c) 2025 Richard Rodger, MIT License */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.meta = exports.TOP = exports.NONE = exports.MultiSource = void 0;\nexports.resolvePathSpec = resolvePathSpec;\nconst SystemFs = __importStar(require(\"node:fs\"));\nconst jsonic_1 = require(\"jsonic\");\nconst directive_1 = require(\"@jsonic/directive\");\nconst jsonic_2 = require(\"./processor/jsonic\");\nconst js_1 = require(\"./processor/js\");\n// Unknown source reference file extension.\nconst NONE = '';\nexports.NONE = NONE;\n// The top of the dependence tree.\nconst TOP = Symbol('TOP');\nexports.TOP = TOP;\nconst MultiSource = (jsonic, popts) => {\n    const markchar = popts.markchar;\n    const resolver = popts.resolver;\n    const processor = popts.processor;\n    const { deep } = jsonic.util;\n    // Normalize implicit extensions to format `.name`.\n    const implictExt = (popts.implictExt || []);\n    for (let extI = 0; extI < implictExt.length; extI++) {\n        let ext = implictExt[extI];\n        implictExt[extI] = ext.startsWith('.') ? ext : '.' + ext;\n    }\n    jsonic.options({\n        error: {\n            multisource_not_found: 'source not found: {path}',\n        },\n        hint: {\n            // TODO: use $details for more explanation in error message.\n            // In particular to show resolved absolute path.\n            multisource_not_found: 'The source path {path} was not found.\\n\\nSearch paths:\\n{searchstr}',\n        },\n    });\n    // Define a directive that can load content from multiple sources.\n    let dopts = {\n        name: 'multisource',\n        open: markchar,\n        rules: {\n            open: {\n                val: {},\n                pair: {\n                    c: (r) => r.lte('pk')\n                },\n            }\n        },\n        action: function multisourceStateAction(rule, ctx) {\n            let from = rule.parent.name;\n            let spec = rule.child.node;\n            let res = resolver(spec, popts, rule, ctx, jsonic);\n            if (null == res || !res.found) {\n                return rule.parent?.o0.bad('multisource_not_found', {\n                    ...(res || {}),\n                    searchstr: (res?.search || [res?.full]).join('\\n'),\n                });\n            }\n            let fullpath = null != res.full ? res.full : null != res.path ? res.path : 'no-path';\n            res.kind = null == res.kind ? NONE : res.kind;\n            // Pass down any meta info.\n            let msmeta = ctx.meta?.multisource || {};\n            let parents = msmeta.parents || [];\n            if (null != msmeta.path) {\n                parents.push(msmeta.path);\n            }\n            let meta = {\n                ...(ctx.meta || {}),\n                fileName: res.path,\n                multisource: {\n                    ...msmeta,\n                    parents,\n                    path: res.full,\n                },\n            };\n            if (rule.k.path && Array.isArray(rule.k.path)) {\n                meta.path = { base: rule.k.path.slice(0) };\n            }\n            // Build dependency tree branch.\n            if (msmeta.deps) {\n                let depmap = msmeta.deps;\n                let parent = (msmeta.path || TOP);\n                if (null != parent) {\n                    let dep = {\n                        tar: parent,\n                        src: fullpath,\n                        wen: Date.now(),\n                    };\n                    depmap[parent] = depmap[parent] || {};\n                    depmap[parent][fullpath] = dep;\n                }\n            }\n            // ctx.meta = meta\n            let ctxproc = {\n                ...ctx,\n                meta,\n            };\n            let proc = processor[res.kind] || processor[NONE];\n            proc(res, popts, rule, ctxproc, jsonic);\n            // Handle the {@foo} case, injecting keys into parent map.\n            if ('pair' === from) {\n                if (ctx.cfg.map.merge) {\n                    rule.parent.parent.node = ctx.cfg.map.merge(rule.parent.parent.node, res.val, rule, ctx);\n                }\n                else if (ctx.cfg.map.extend) {\n                    rule.parent.parent.node = deep(rule.parent.parent.node, res.val);\n                }\n                else {\n                    Object.assign(rule.parent.node, res.val);\n                }\n            }\n            else {\n                rule.node = res.val;\n            }\n            // rule.node = res.val\n            return undefined;\n        },\n        custom: (jsonic, { OPEN, name }) => {\n            // Handle special case of @foo first token - assume a map\n            jsonic.rule('val', (rs) => {\n                rs.open([\n                    {\n                        s: [OPEN],\n                        c: (r) => 0 < r.n.pk && 'pair' != r.parent.name,\n                        b: 1,\n                        g: name + '_undive',\n                    },\n                    ,\n                    {\n                        s: [OPEN],\n                        c: (r) => 0 === r.d,\n                        p: 'map',\n                        b: 1,\n                        n: { [name + '_top']: 1 },\n                    }\n                ]);\n            });\n            jsonic.rule('map', (rs) => {\n                rs.open({\n                    s: [OPEN],\n                    c: (r) => 1 === r.d && 1 === r.n[name + '_top'],\n                    p: 'pair',\n                    b: 1,\n                }).close({\n                    s: [OPEN],\n                    c: (r) => 0 < r.n.pk,\n                    b: 1,\n                    g: name + '_undive',\n                });\n            });\n            jsonic.rule('pair', (rs) => {\n                rs.close({\n                    s: [OPEN],\n                    c: (r) => 0 < r.n.pk,\n                    b: 1,\n                    g: name + '_undive',\n                });\n            });\n        },\n    };\n    jsonic.use(directive_1.Directive, dopts);\n};\nexports.MultiSource = MultiSource;\n// Convenience maker for Processors\nfunction makeProcessor(process) {\n    return (res) => (res.val = process(res.src, res));\n}\n// Default is just to insert file contents as a string.\nconst defaultProcessor = makeProcessor((src) => src);\nconst jsonicJsonParser = jsonic_1.Jsonic.make('json');\n// TODO: use json plugin to get better error msgs.\nconst jsonProcessor = makeProcessor((src, res) => \n// null == src ? undefined : JSON.parse(src)\nnull == src ? undefined : jsonicJsonParser(src, { fileName: res.path }));\nconst jsonicProcessor = (0, jsonic_2.makeJsonicProcessor)();\nconst jsProcessor = (0, js_1.makeJavaScriptProcessor)();\nMultiSource.defaults = {\n    markchar: '@',\n    processor: {\n        [NONE]: defaultProcessor,\n        jsonic: jsonicProcessor,\n        jsc: jsonicProcessor,\n        json: jsonProcessor,\n        js: jsProcessor,\n    },\n    implictExt: ['jsonic', 'jsc', 'json', 'js'],\n};\nfunction resolvePathSpec(popts, ctx, spec, resolvefolder) {\n    const fs = ctx.meta?.fs || SystemFs;\n    let msmeta = ctx.meta?.multisource;\n    let base = resolvefolder(null == msmeta || null == msmeta.path ? popts.path : msmeta.path, fs);\n    let path = 'string' === typeof spec\n        ? spec\n        : null != spec.path\n            ? '' + spec.path\n            : undefined;\n    let abs = !!(path?.startsWith('/') || path?.startsWith('\\\\'));\n    let full = abs\n        ? path\n        : null != path && '' != path\n            ? null != base && '' != base\n                ? base + '/' + path\n                : path\n            : undefined;\n    let kind = null == full ? NONE : (full.match(/\\.([^.]*)$/) || [NONE, NONE])[1];\n    let res = {\n        kind,\n        path,\n        full,\n        base,\n        abs,\n        found: false,\n    };\n    return res;\n}\n// Plugin meta data\nconst meta = {\n    name: 'MultiSource',\n};\nexports.meta = meta;\n"]}