jstd-web/node_modules/moddle/dist/index.cjs.map

1 line
48 KiB
Plaintext

{"version":3,"file":"index.cjs","sources":["../lib/base.js","../lib/factory.js","../lib/types.js","../lib/ns.js","../lib/descriptor-builder.js","../lib/registry.js","../lib/properties.js","../lib/moddle.js"],"sourcesContent":["/**\n * Moddle base element.\n */\nexport default function Base() { }\n\nBase.prototype.get = function(name) {\n return this.$model.properties.get(this, name);\n};\n\nBase.prototype.set = function(name, value) {\n this.$model.properties.set(this, name, value);\n};","import {\n forEach,\n bind\n} from 'min-dash';\n\nimport Base from './base.js';\n\n/**\n * A model element factory.\n *\n * @param {Moddle} model\n * @param {Properties} properties\n */\nexport default function Factory(model, properties) {\n this.model = model;\n this.properties = properties;\n}\n\n\nFactory.prototype.createType = function(descriptor) {\n\n var model = this.model;\n\n var props = this.properties,\n prototype = Object.create(Base.prototype);\n\n // initialize default values\n forEach(descriptor.properties, function(p) {\n if (!p.isMany && p.default !== undefined) {\n prototype[p.name] = p.default;\n }\n });\n\n props.defineModel(prototype, model);\n props.defineDescriptor(prototype, descriptor);\n\n var name = descriptor.ns.name;\n\n /**\n * The new type constructor\n */\n function ModdleElement(attrs) {\n props.define(this, '$type', { value: name, enumerable: true });\n props.define(this, '$attrs', { value: {} });\n props.define(this, '$parent', { writable: true });\n\n forEach(attrs, bind(function(val, key) {\n this.set(key, val);\n }, this));\n }\n\n ModdleElement.prototype = prototype;\n\n ModdleElement.hasType = prototype.$instanceOf = this.model.hasType;\n\n // static links\n props.defineModel(ModdleElement, model);\n props.defineDescriptor(ModdleElement, descriptor);\n\n return ModdleElement;\n};","/**\n * Built-in moddle types\n */\nvar BUILTINS = {\n String: true,\n Boolean: true,\n Integer: true,\n Real: true,\n Element: true\n};\n\n/**\n * Converters for built in types from string representations\n */\nvar TYPE_CONVERTERS = {\n String: function(s) { return s; },\n Boolean: function(s) { return s === 'true'; },\n Integer: function(s) { return parseInt(s, 10); },\n Real: function(s) { return parseFloat(s); }\n};\n\n/**\n * Convert a type to its real representation\n */\nexport function coerceType(type, value) {\n\n var converter = TYPE_CONVERTERS[type];\n\n if (converter) {\n return converter(value);\n } else {\n return value;\n }\n}\n\n/**\n * Return whether the given type is built-in\n */\nexport function isBuiltIn(type) {\n return !!BUILTINS[type];\n}\n\n/**\n * Return whether the given type is simple\n */\nexport function isSimple(type) {\n return !!TYPE_CONVERTERS[type];\n}","/**\n * Parses a namespaced attribute name of the form (ns:)localName to an object,\n * given a default prefix to assume in case no explicit namespace is given.\n *\n * @param {String} name\n * @param {String} [defaultPrefix] the default prefix to take, if none is present.\n *\n * @return {Object} the parsed name\n */\nexport function parseName(name, defaultPrefix) {\n var parts = name.split(/:/),\n localName, prefix;\n\n // no prefix (i.e. only local name)\n if (parts.length === 1) {\n localName = name;\n prefix = defaultPrefix;\n } else\n\n // prefix + local name\n if (parts.length === 2) {\n localName = parts[1];\n prefix = parts[0];\n } else {\n throw new Error('expected <prefix:localName> or <localName>, got ' + name);\n }\n\n name = (prefix ? prefix + ':' : '') + localName;\n\n return {\n name: name,\n prefix: prefix,\n localName: localName\n };\n}","import {\n pick,\n assign,\n forEach,\n bind\n} from 'min-dash';\n\nimport {\n parseName as parseNameNs\n} from './ns.js';\n\n\n/**\n * A utility to build element descriptors.\n */\nexport default function DescriptorBuilder(nameNs) {\n this.ns = nameNs;\n this.name = nameNs.name;\n this.allTypes = [];\n this.allTypesByName = {};\n this.properties = [];\n this.propertiesByName = {};\n}\n\n\nDescriptorBuilder.prototype.build = function() {\n return pick(this, [\n 'ns',\n 'name',\n 'allTypes',\n 'allTypesByName',\n 'properties',\n 'propertiesByName',\n 'bodyProperty',\n 'idProperty'\n ]);\n};\n\n/**\n * Add property at given index.\n *\n * @param {Object} p\n * @param {Number} [idx]\n * @param {Boolean} [validate=true]\n */\nDescriptorBuilder.prototype.addProperty = function(p, idx, validate) {\n\n if (typeof idx === 'boolean') {\n validate = idx;\n idx = undefined;\n }\n\n this.addNamedProperty(p, validate !== false);\n\n var properties = this.properties;\n\n if (idx !== undefined) {\n properties.splice(idx, 0, p);\n } else {\n properties.push(p);\n }\n};\n\n\nDescriptorBuilder.prototype.replaceProperty = function(oldProperty, newProperty, replace) {\n var oldNameNs = oldProperty.ns;\n\n var props = this.properties,\n propertiesByName = this.propertiesByName,\n rename = oldProperty.name !== newProperty.name;\n\n if (oldProperty.isId) {\n if (!newProperty.isId) {\n throw new Error(\n 'property <' + newProperty.ns.name + '> must be id property ' +\n 'to refine <' + oldProperty.ns.name + '>');\n }\n\n this.setIdProperty(newProperty, false);\n }\n\n if (oldProperty.isBody) {\n\n if (!newProperty.isBody) {\n throw new Error(\n 'property <' + newProperty.ns.name + '> must be body property ' +\n 'to refine <' + oldProperty.ns.name + '>');\n }\n\n // TODO: Check compatibility\n this.setBodyProperty(newProperty, false);\n }\n\n // validate existence and get location of old property\n var idx = props.indexOf(oldProperty);\n if (idx === -1) {\n throw new Error('property <' + oldNameNs.name + '> not found in property list');\n }\n\n // remove old property\n props.splice(idx, 1);\n\n // replacing the named property is intentional\n //\n // * validate only if this is a \"rename\" operation\n // * add at specific index unless we \"replace\"\n //\n this.addProperty(newProperty, replace ? undefined : idx, rename);\n\n // make new property available under old name\n propertiesByName[oldNameNs.name] = propertiesByName[oldNameNs.localName] = newProperty;\n};\n\n\nDescriptorBuilder.prototype.redefineProperty = function(p, targetPropertyName, replace) {\n\n var nsPrefix = p.ns.prefix;\n var parts = targetPropertyName.split('#');\n\n var name = parseNameNs(parts[0], nsPrefix);\n var attrName = parseNameNs(parts[1], name.prefix).name;\n\n var redefinedProperty = this.propertiesByName[attrName];\n if (!redefinedProperty) {\n throw new Error('refined property <' + attrName + '> not found');\n } else {\n this.replaceProperty(redefinedProperty, p, replace);\n }\n\n delete p.redefines;\n};\n\nDescriptorBuilder.prototype.addNamedProperty = function(p, validate) {\n var ns = p.ns,\n propsByName = this.propertiesByName;\n\n if (validate) {\n this.assertNotDefined(p, ns.name);\n this.assertNotDefined(p, ns.localName);\n }\n\n propsByName[ns.name] = propsByName[ns.localName] = p;\n};\n\nDescriptorBuilder.prototype.removeNamedProperty = function(p) {\n var ns = p.ns,\n propsByName = this.propertiesByName;\n\n delete propsByName[ns.name];\n delete propsByName[ns.localName];\n};\n\nDescriptorBuilder.prototype.setBodyProperty = function(p, validate) {\n\n if (validate && this.bodyProperty) {\n throw new Error(\n 'body property defined multiple times ' +\n '(<' + this.bodyProperty.ns.name + '>, <' + p.ns.name + '>)');\n }\n\n this.bodyProperty = p;\n};\n\nDescriptorBuilder.prototype.setIdProperty = function(p, validate) {\n\n if (validate && this.idProperty) {\n throw new Error(\n 'id property defined multiple times ' +\n '(<' + this.idProperty.ns.name + '>, <' + p.ns.name + '>)');\n }\n\n this.idProperty = p;\n};\n\nDescriptorBuilder.prototype.assertNotTrait = function(typeDescriptor) {\n\n const _extends = typeDescriptor.extends || [];\n\n if (_extends.length) {\n throw new Error(\n `cannot create <${ typeDescriptor.name }> extending <${ typeDescriptor.extends }>`\n );\n }\n};\n\nDescriptorBuilder.prototype.assertNotDefined = function(p, name) {\n var propertyName = p.name,\n definedProperty = this.propertiesByName[propertyName];\n\n if (definedProperty) {\n throw new Error(\n 'property <' + propertyName + '> already defined; ' +\n 'override of <' + definedProperty.definedBy.ns.name + '#' + definedProperty.ns.name + '> by ' +\n '<' + p.definedBy.ns.name + '#' + p.ns.name + '> not allowed without redefines');\n }\n};\n\nDescriptorBuilder.prototype.hasProperty = function(name) {\n return this.propertiesByName[name];\n};\n\nDescriptorBuilder.prototype.addTrait = function(t, inherited) {\n\n if (inherited) {\n this.assertNotTrait(t);\n }\n\n var typesByName = this.allTypesByName,\n types = this.allTypes;\n\n var typeName = t.name;\n\n if (typeName in typesByName) {\n return;\n }\n\n forEach(t.properties, bind(function(p) {\n\n // clone property to allow extensions\n p = assign({}, p, {\n name: p.ns.localName,\n inherited: inherited\n });\n\n Object.defineProperty(p, 'definedBy', {\n value: t\n });\n\n var replaces = p.replaces,\n redefines = p.redefines;\n\n // add replace/redefine support\n if (replaces || redefines) {\n this.redefineProperty(p, replaces || redefines, replaces);\n } else {\n if (p.isBody) {\n this.setBodyProperty(p);\n }\n if (p.isId) {\n this.setIdProperty(p);\n }\n this.addProperty(p);\n }\n }, this));\n\n types.push(t);\n typesByName[typeName] = t;\n};","import {\n assign,\n forEach,\n bind\n} from 'min-dash';\n\nimport {\n isBuiltIn as isBuiltInType\n} from './types.js';\n\nimport DescriptorBuilder from './descriptor-builder.js';\n\nimport {\n parseName as parseNameNs\n} from './ns.js';\n\n\n/**\n * A registry of Moddle packages.\n *\n * @param {Array<Package>} packages\n * @param {Properties} properties\n */\nexport default function Registry(packages, properties) {\n this.packageMap = {};\n this.typeMap = {};\n\n this.packages = [];\n\n this.properties = properties;\n\n forEach(packages, bind(this.registerPackage, this));\n}\n\n\nRegistry.prototype.getPackage = function(uriOrPrefix) {\n return this.packageMap[uriOrPrefix];\n};\n\nRegistry.prototype.getPackages = function() {\n return this.packages;\n};\n\n\nRegistry.prototype.registerPackage = function(pkg) {\n\n // copy package\n pkg = assign({}, pkg);\n\n var pkgMap = this.packageMap;\n\n ensureAvailable(pkgMap, pkg, 'prefix');\n ensureAvailable(pkgMap, pkg, 'uri');\n\n // register types\n forEach(pkg.types, bind(function(descriptor) {\n this.registerType(descriptor, pkg);\n }, this));\n\n pkgMap[pkg.uri] = pkgMap[pkg.prefix] = pkg;\n this.packages.push(pkg);\n};\n\n\n/**\n * Register a type from a specific package with us\n */\nRegistry.prototype.registerType = function(type, pkg) {\n\n type = assign({}, type, {\n superClass: (type.superClass || []).slice(),\n extends: (type.extends || []).slice(),\n properties: (type.properties || []).slice(),\n meta: assign(({}, type.meta || {}))\n });\n\n var ns = parseNameNs(type.name, pkg.prefix),\n name = ns.name,\n propertiesByName = {};\n\n // parse properties\n forEach(type.properties, bind(function(p) {\n\n // namespace property names\n var propertyNs = parseNameNs(p.name, ns.prefix),\n propertyName = propertyNs.name;\n\n // namespace property types\n if (!isBuiltInType(p.type)) {\n p.type = parseNameNs(p.type, propertyNs.prefix).name;\n }\n\n assign(p, {\n ns: propertyNs,\n name: propertyName\n });\n\n propertiesByName[propertyName] = p;\n }, this));\n\n // update ns + name\n assign(type, {\n ns: ns,\n name: name,\n propertiesByName: propertiesByName\n });\n\n forEach(type.extends, bind(function(extendsName) {\n var extendsNameNs = parseNameNs(extendsName, ns.prefix);\n\n var extended = this.typeMap[extendsNameNs.name];\n\n extended.traits = extended.traits || [];\n extended.traits.push(name);\n }, this));\n\n // link to package\n this.definePackage(type, pkg);\n\n // register\n this.typeMap[name] = type;\n};\n\n\n/**\n * Traverse the type hierarchy from bottom to top,\n * calling iterator with (type, inherited) for all elements in\n * the inheritance chain.\n *\n * @param {Object} nsName\n * @param {Function} iterator\n * @param {Boolean} [trait=false]\n */\nRegistry.prototype.mapTypes = function(nsName, iterator, trait) {\n\n var type = isBuiltInType(nsName.name) ? { name: nsName.name } : this.typeMap[nsName.name];\n\n var self = this;\n\n /**\n * Traverse the selected super type or trait\n *\n * @param {String} cls\n * @param {Boolean} [trait=false]\n */\n function traverse(cls, trait) {\n var parentNs = parseNameNs(cls, isBuiltInType(cls) ? '' : nsName.prefix);\n self.mapTypes(parentNs, iterator, trait);\n }\n\n /**\n * Traverse the selected trait.\n *\n * @param {String} cls\n */\n function traverseTrait(cls) {\n return traverse(cls, true);\n }\n\n /**\n * Traverse the selected super type\n *\n * @param {String} cls\n */\n function traverseSuper(cls) {\n return traverse(cls, false);\n }\n\n if (!type) {\n throw new Error('unknown type <' + nsName.name + '>');\n }\n\n forEach(type.superClass, trait ? traverseTrait : traverseSuper);\n\n // call iterator with (type, inherited=!trait)\n iterator(type, !trait);\n\n forEach(type.traits, traverseTrait);\n};\n\n\n/**\n * Returns the effective descriptor for a type.\n *\n * @param {String} type the namespaced name (ns:localName) of the type\n *\n * @return {Descriptor} the resulting effective descriptor\n */\nRegistry.prototype.getEffectiveDescriptor = function(name) {\n\n var nsName = parseNameNs(name);\n\n var builder = new DescriptorBuilder(nsName);\n\n this.mapTypes(nsName, function(type, inherited) {\n builder.addTrait(type, inherited);\n });\n\n var descriptor = builder.build();\n\n // define package link\n this.definePackage(descriptor, descriptor.allTypes[descriptor.allTypes.length - 1].$pkg);\n\n return descriptor;\n};\n\n\nRegistry.prototype.definePackage = function(target, pkg) {\n this.properties.define(target, '$pkg', { value: pkg });\n};\n\n\n\n// helpers ////////////////////////////\n\nfunction ensureAvailable(packageMap, pkg, identifierKey) {\n\n var value = pkg[identifierKey];\n\n if (value in packageMap) {\n throw new Error('package with ' + identifierKey + ' <' + value + '> already defined');\n }\n}\n","import {\n assign,\n isString\n} from 'min-dash';\n\n/**\n * A utility that gets and sets properties of model elements.\n *\n * @param {Model} model\n */\nexport default function Properties(model) {\n this.model = model;\n}\n\n\n/**\n * Sets a named property on the target element.\n * If the value is undefined, the property gets deleted.\n *\n * @param {Object} target\n * @param {String} name\n * @param {Object} value\n */\nProperties.prototype.set = function(target, name, value) {\n\n if (!isString(name) || !name.length) {\n throw new TypeError('property name must be a non-empty string');\n }\n\n var property = this.getProperty(target, name);\n\n var propertyName = property && property.name;\n\n if (isUndefined(value)) {\n\n // unset the property, if the specified value is undefined;\n // delete from $attrs (for extensions) or the target itself\n if (property) {\n delete target[propertyName];\n } else {\n delete target.$attrs[stripGlobal(name)];\n }\n } else {\n\n // set the property, defining well defined properties on the fly\n // or simply updating them in target.$attrs (for extensions)\n if (property) {\n if (propertyName in target) {\n target[propertyName] = value;\n } else {\n defineProperty(target, property, value);\n }\n } else {\n target.$attrs[stripGlobal(name)] = value;\n }\n }\n};\n\n/**\n * Returns the named property of the given element\n *\n * @param {Object} target\n * @param {String} name\n *\n * @return {Object}\n */\nProperties.prototype.get = function(target, name) {\n\n var property = this.getProperty(target, name);\n\n if (!property) {\n return target.$attrs[stripGlobal(name)];\n }\n\n var propertyName = property.name;\n\n // check if access to collection property and lazily initialize it\n if (!target[propertyName] && property.isMany) {\n defineProperty(target, property, []);\n }\n\n return target[propertyName];\n};\n\n\n/**\n * Define a property on the target element\n *\n * @param {Object} target\n * @param {String} name\n * @param {Object} options\n */\nProperties.prototype.define = function(target, name, options) {\n\n if (!options.writable) {\n\n var value = options.value;\n\n // use getters for read-only variables to support ES6 proxies\n // cf. https://github.com/bpmn-io/internal-docs/issues/386\n options = assign({}, options, {\n get: function() { return value; }\n });\n\n delete options.value;\n }\n\n Object.defineProperty(target, name, options);\n};\n\n\n/**\n * Define the descriptor for an element\n */\nProperties.prototype.defineDescriptor = function(target, descriptor) {\n this.define(target, '$descriptor', { value: descriptor });\n};\n\n/**\n * Define the model for an element\n */\nProperties.prototype.defineModel = function(target, model) {\n this.define(target, '$model', { value: model });\n};\n\n/**\n * Return property with the given name on the element.\n *\n * @param {any} target\n * @param {string} name\n *\n * @return {object | null} property\n */\nProperties.prototype.getProperty = function(target, name) {\n\n var model = this.model;\n\n var property = model.getPropertyDescriptor(target, name);\n\n if (property) {\n return property;\n }\n\n if (name.includes(':')) {\n return null;\n }\n\n const strict = model.config.strict;\n\n if (typeof strict !== 'undefined') {\n const error = new TypeError(`unknown property <${ name }> on <${ target.$type }>`);\n\n if (strict) {\n throw error;\n } else {\n\n // eslint-disable-next-line no-undef\n typeof console !== 'undefined' && console.warn(error);\n }\n }\n\n return null;\n};\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\nfunction defineProperty(target, property, value) {\n Object.defineProperty(target, property.name, {\n enumerable: !property.isReference,\n writable: true,\n value: value,\n configurable: true\n });\n}\n\nfunction stripGlobal(name) {\n return name.replace(/^:/, '');\n}","import {\n isString,\n isObject,\n forEach,\n set\n} from 'min-dash';\n\nimport Factory from './factory.js';\nimport Registry from './registry.js';\nimport Properties from './properties.js';\n\nimport {\n parseName as parseNameNs\n} from './ns.js';\n\n\n// Moddle implementation /////////////////////////////////////////////////\n\n/**\n * @class Moddle\n *\n * A model that can be used to create elements of a specific type.\n *\n * @example\n *\n * var Moddle = require('moddle');\n *\n * var pkg = {\n * name: 'mypackage',\n * prefix: 'my',\n * types: [\n * { name: 'Root' }\n * ]\n * };\n *\n * var moddle = new Moddle([pkg]);\n *\n * @param {Array<Package>} packages the packages to contain\n *\n * @param { { strict?: boolean } } [config] moddle configuration\n */\nexport default function Moddle(packages, config = {}) {\n\n this.properties = new Properties(this);\n\n this.factory = new Factory(this, this.properties);\n this.registry = new Registry(packages, this.properties);\n\n this.typeCache = {};\n\n this.config = config;\n}\n\n\n/**\n * Create an instance of the specified type.\n *\n * @method Moddle#create\n *\n * @example\n *\n * var foo = moddle.create('my:Foo');\n * var bar = moddle.create('my:Bar', { id: 'BAR_1' });\n *\n * @param {String|Object} descriptor the type descriptor or name know to the model\n * @param {Object} attrs a number of attributes to initialize the model instance with\n * @return {Object} model instance\n */\nModdle.prototype.create = function(descriptor, attrs) {\n var Type = this.getType(descriptor);\n\n if (!Type) {\n throw new Error('unknown type <' + descriptor + '>');\n }\n\n return new Type(attrs);\n};\n\n\n/**\n * Returns the type representing a given descriptor\n *\n * @method Moddle#getType\n *\n * @example\n *\n * var Foo = moddle.getType('my:Foo');\n * var foo = new Foo({ 'id' : 'FOO_1' });\n *\n * @param {String|Object} descriptor the type descriptor or name know to the model\n * @return {Object} the type representing the descriptor\n */\nModdle.prototype.getType = function(descriptor) {\n\n var cache = this.typeCache;\n\n var name = isString(descriptor) ? descriptor : descriptor.ns.name;\n\n var type = cache[name];\n\n if (!type) {\n descriptor = this.registry.getEffectiveDescriptor(name);\n type = cache[name] = this.factory.createType(descriptor);\n }\n\n return type;\n};\n\n\n/**\n * Creates an any-element type to be used within model instances.\n *\n * This can be used to create custom elements that lie outside the meta-model.\n * The created element contains all the meta-data required to serialize it\n * as part of meta-model elements.\n *\n * @method Moddle#createAny\n *\n * @example\n *\n * var foo = moddle.createAny('vendor:Foo', 'http://vendor', {\n * value: 'bar'\n * });\n *\n * var container = moddle.create('my:Container', 'http://my', {\n * any: [ foo ]\n * });\n *\n * // go ahead and serialize the stuff\n *\n *\n * @param {String} name the name of the element\n * @param {String} nsUri the namespace uri of the element\n * @param {Object} [properties] a map of properties to initialize the instance with\n * @return {Object} the any type instance\n */\nModdle.prototype.createAny = function(name, nsUri, properties) {\n\n var nameNs = parseNameNs(name);\n\n var element = {\n $type: name,\n $instanceOf: function(type) {\n return type === this.$type;\n },\n get: function(key) {\n return this[key];\n },\n set: function(key, value) {\n set(this, [ key ], value);\n }\n };\n\n var descriptor = {\n name: name,\n isGeneric: true,\n ns: {\n prefix: nameNs.prefix,\n localName: nameNs.localName,\n uri: nsUri\n }\n };\n\n this.properties.defineDescriptor(element, descriptor);\n this.properties.defineModel(element, this);\n this.properties.define(element, 'get', { enumerable: false, writable: true });\n this.properties.define(element, 'set', { enumerable: false, writable: true });\n this.properties.define(element, '$parent', { enumerable: false, writable: true });\n this.properties.define(element, '$instanceOf', { enumerable: false, writable: true });\n\n forEach(properties, function(a, key) {\n if (isObject(a) && a.value !== undefined) {\n element[a.name] = a.value;\n } else {\n element[key] = a;\n }\n });\n\n return element;\n};\n\n/**\n * Returns a registered package by uri or prefix\n *\n * @return {Object} the package\n */\nModdle.prototype.getPackage = function(uriOrPrefix) {\n return this.registry.getPackage(uriOrPrefix);\n};\n\n/**\n * Returns a snapshot of all known packages\n *\n * @return {Object} the package\n */\nModdle.prototype.getPackages = function() {\n return this.registry.getPackages();\n};\n\n/**\n * Returns the descriptor for an element\n */\nModdle.prototype.getElementDescriptor = function(element) {\n return element.$descriptor;\n};\n\n/**\n * Returns true if the given descriptor or instance\n * represents the given type.\n *\n * May be applied to this, if element is omitted.\n */\nModdle.prototype.hasType = function(element, type) {\n if (type === undefined) {\n type = element;\n element = this;\n }\n\n var descriptor = element.$model.getElementDescriptor(element);\n\n return (type in descriptor.allTypesByName);\n};\n\n/**\n * Returns the descriptor of an elements named property\n */\nModdle.prototype.getPropertyDescriptor = function(element, property) {\n return this.getElementDescriptor(element).propertiesByName[property];\n};\n\n/**\n * Returns a mapped type's descriptor\n */\nModdle.prototype.getTypeDescriptor = function(type) {\n return this.registry.typeMap[type];\n};"],"names":["forEach","bind","pick","parseNameNs","assign","isBuiltInType","isString","set","isObject"],"mappings":"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"}