faf-cli 7.1.2 → 7.1.4
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/README.md +77 -266
- package/dist/cli.js +227 -227
- package/dist/cli.js.map +14 -13
- package/dist/core/version.d.ts +10 -0
- package/dist/index.js +98 -98
- package/dist/index.js.map +8 -7
- package/package.json +3 -2
- package/project.faf +44 -3
package/dist/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/yaml/dist/nodes/identity.js", "../node_modules/yaml/dist/visit.js", "../node_modules/yaml/dist/doc/directives.js", "../node_modules/yaml/dist/doc/anchors.js", "../node_modules/yaml/dist/doc/applyReviver.js", "../node_modules/yaml/dist/nodes/toJS.js", "../node_modules/yaml/dist/nodes/Node.js", "../node_modules/yaml/dist/nodes/Alias.js", "../node_modules/yaml/dist/nodes/Scalar.js", "../node_modules/yaml/dist/doc/createNode.js", "../node_modules/yaml/dist/nodes/Collection.js", "../node_modules/yaml/dist/stringify/stringifyComment.js", "../node_modules/yaml/dist/stringify/foldFlowLines.js", "../node_modules/yaml/dist/stringify/stringifyString.js", "../node_modules/yaml/dist/stringify/stringify.js", "../node_modules/yaml/dist/stringify/stringifyPair.js", "../node_modules/yaml/dist/log.js", "../node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../node_modules/yaml/dist/nodes/addPairToJSMap.js", "../node_modules/yaml/dist/nodes/Pair.js", "../node_modules/yaml/dist/stringify/stringifyCollection.js", "../node_modules/yaml/dist/nodes/YAMLMap.js", "../node_modules/yaml/dist/schema/common/map.js", "../node_modules/yaml/dist/nodes/YAMLSeq.js", "../node_modules/yaml/dist/schema/common/seq.js", "../node_modules/yaml/dist/schema/common/string.js", "../node_modules/yaml/dist/schema/common/null.js", "../node_modules/yaml/dist/schema/core/bool.js", "../node_modules/yaml/dist/stringify/stringifyNumber.js", "../node_modules/yaml/dist/schema/core/float.js", "../node_modules/yaml/dist/schema/core/int.js", "../node_modules/yaml/dist/schema/core/schema.js", "../node_modules/yaml/dist/schema/json/schema.js", "../node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../node_modules/yaml/dist/schema/yaml-1.1/float.js", "../node_modules/yaml/dist/schema/yaml-1.1/int.js", "../node_modules/yaml/dist/schema/yaml-1.1/set.js", "../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../node_modules/yaml/dist/schema/tags.js", "../node_modules/yaml/dist/schema/Schema.js", "../node_modules/yaml/dist/stringify/stringifyDocument.js", "../node_modules/yaml/dist/doc/Document.js", "../node_modules/yaml/dist/errors.js", "../node_modules/yaml/dist/compose/resolve-props.js", "../node_modules/yaml/dist/compose/util-contains-newline.js", "../node_modules/yaml/dist/compose/util-flow-indent-check.js", "../node_modules/yaml/dist/compose/util-map-includes.js", "../node_modules/yaml/dist/compose/resolve-block-map.js", "../node_modules/yaml/dist/compose/resolve-block-seq.js", "../node_modules/yaml/dist/compose/resolve-end.js", "../node_modules/yaml/dist/compose/resolve-flow-collection.js", "../node_modules/yaml/dist/compose/compose-collection.js", "../node_modules/yaml/dist/compose/resolve-block-scalar.js", "../node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../node_modules/yaml/dist/compose/compose-scalar.js", "../node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../node_modules/yaml/dist/compose/compose-node.js", "../node_modules/yaml/dist/compose/compose-doc.js", "../node_modules/yaml/dist/compose/composer.js", "../node_modules/yaml/dist/parse/cst-scalar.js", "../node_modules/yaml/dist/parse/cst-stringify.js", "../node_modules/yaml/dist/parse/cst-visit.js", "../node_modules/yaml/dist/parse/cst.js", "../node_modules/yaml/dist/parse/lexer.js", "../node_modules/yaml/dist/parse/line-counter.js", "../node_modules/yaml/dist/parse/parser.js", "../node_modules/yaml/dist/public-api.js", "../src/core/slots.ts", "../src/ui/colors.ts", "../src/core/tiers.ts", "../src/wasm/kernel.ts", "../src/core/scorer.ts", "../src/core/schema.ts", "../src/interop/faf.ts", "../node_modules/yaml/dist/index.js", "../src/interop/projecthtml.ts", "../src/interop/servercard.ts", "../src/core/interview.ts", "../src/core/loop.ts", "../src/commands/bench.ts", "../src/detect/turbo-cat.ts", "../src/detect/turbo-cat-knowledge.ts", "../src/detect/dart.ts", "../src/detect/relentless.ts", "../src/detect/scanner.ts", "../src/detect/frameworks.ts", "../src/detect/stack.ts", "../src/interrogate/readme.ts", "../src/interrogate/types.ts", "../src/interrogate/cargo.ts", "../src/interrogate/index.ts", "../src/detect/assemble.ts"],
|
|
3
|
+
"sources": ["../node_modules/yaml/dist/nodes/identity.js", "../node_modules/yaml/dist/visit.js", "../node_modules/yaml/dist/doc/directives.js", "../node_modules/yaml/dist/doc/anchors.js", "../node_modules/yaml/dist/doc/applyReviver.js", "../node_modules/yaml/dist/nodes/toJS.js", "../node_modules/yaml/dist/nodes/Node.js", "../node_modules/yaml/dist/nodes/Alias.js", "../node_modules/yaml/dist/nodes/Scalar.js", "../node_modules/yaml/dist/doc/createNode.js", "../node_modules/yaml/dist/nodes/Collection.js", "../node_modules/yaml/dist/stringify/stringifyComment.js", "../node_modules/yaml/dist/stringify/foldFlowLines.js", "../node_modules/yaml/dist/stringify/stringifyString.js", "../node_modules/yaml/dist/stringify/stringify.js", "../node_modules/yaml/dist/stringify/stringifyPair.js", "../node_modules/yaml/dist/log.js", "../node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../node_modules/yaml/dist/nodes/addPairToJSMap.js", "../node_modules/yaml/dist/nodes/Pair.js", "../node_modules/yaml/dist/stringify/stringifyCollection.js", "../node_modules/yaml/dist/nodes/YAMLMap.js", "../node_modules/yaml/dist/schema/common/map.js", "../node_modules/yaml/dist/nodes/YAMLSeq.js", "../node_modules/yaml/dist/schema/common/seq.js", "../node_modules/yaml/dist/schema/common/string.js", "../node_modules/yaml/dist/schema/common/null.js", "../node_modules/yaml/dist/schema/core/bool.js", "../node_modules/yaml/dist/stringify/stringifyNumber.js", "../node_modules/yaml/dist/schema/core/float.js", "../node_modules/yaml/dist/schema/core/int.js", "../node_modules/yaml/dist/schema/core/schema.js", "../node_modules/yaml/dist/schema/json/schema.js", "../node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../node_modules/yaml/dist/schema/yaml-1.1/float.js", "../node_modules/yaml/dist/schema/yaml-1.1/int.js", "../node_modules/yaml/dist/schema/yaml-1.1/set.js", "../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../node_modules/yaml/dist/schema/tags.js", "../node_modules/yaml/dist/schema/Schema.js", "../node_modules/yaml/dist/stringify/stringifyDocument.js", "../node_modules/yaml/dist/doc/Document.js", "../node_modules/yaml/dist/errors.js", "../node_modules/yaml/dist/compose/resolve-props.js", "../node_modules/yaml/dist/compose/util-contains-newline.js", "../node_modules/yaml/dist/compose/util-flow-indent-check.js", "../node_modules/yaml/dist/compose/util-map-includes.js", "../node_modules/yaml/dist/compose/resolve-block-map.js", "../node_modules/yaml/dist/compose/resolve-block-seq.js", "../node_modules/yaml/dist/compose/resolve-end.js", "../node_modules/yaml/dist/compose/resolve-flow-collection.js", "../node_modules/yaml/dist/compose/compose-collection.js", "../node_modules/yaml/dist/compose/resolve-block-scalar.js", "../node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../node_modules/yaml/dist/compose/compose-scalar.js", "../node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../node_modules/yaml/dist/compose/compose-node.js", "../node_modules/yaml/dist/compose/compose-doc.js", "../node_modules/yaml/dist/compose/composer.js", "../node_modules/yaml/dist/parse/cst-scalar.js", "../node_modules/yaml/dist/parse/cst-stringify.js", "../node_modules/yaml/dist/parse/cst-visit.js", "../node_modules/yaml/dist/parse/cst.js", "../node_modules/yaml/dist/parse/lexer.js", "../node_modules/yaml/dist/parse/line-counter.js", "../node_modules/yaml/dist/parse/parser.js", "../node_modules/yaml/dist/public-api.js", "../src/core/slots.ts", "../src/ui/colors.ts", "../src/core/tiers.ts", "../src/wasm/kernel.ts", "../src/core/scorer.ts", "../src/core/schema.ts", "../src/interop/faf.ts", "../node_modules/yaml/dist/index.js", "../src/interop/projecthtml.ts", "../src/interop/servercard.ts", "../src/core/interview.ts", "../src/core/loop.ts", "../src/commands/bench.ts", "../src/detect/turbo-cat.ts", "../src/detect/turbo-cat-knowledge.ts", "../src/detect/dart.ts", "../src/detect/relentless.ts", "../src/core/version.ts", "../src/detect/scanner.ts", "../src/detect/frameworks.ts", "../src/detect/stack.ts", "../src/interrogate/readme.ts", "../src/interrogate/types.ts", "../src/interrogate/cargo.ts", "../src/interrogate/index.ts", "../src/detect/assemble.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"'use strict';\n\nconst ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexports.ALIAS = ALIAS;\nexports.DOC = DOC;\nexports.MAP = MAP;\nexports.NODE_TYPE = NODE_TYPE;\nexports.PAIR = PAIR;\nexports.SCALAR = SCALAR;\nexports.SEQ = SEQ;\nexports.hasAnchor = hasAnchor;\nexports.isAlias = isAlias;\nexports.isCollection = isCollection;\nexports.isDocument = isDocument;\nexports.isMap = isMap;\nexports.isNode = isNode;\nexports.isPair = isPair;\nexports.isScalar = isScalar;\nexports.isSeq = isSeq;\n",
|
|
6
6
|
"'use strict';\n\nvar identity = require('./nodes/identity.js');\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (identity.isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (identity.isNode(ctrl) || identity.isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (identity.isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (identity.isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (identity.isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (identity.isNode(ctrl) || identity.isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (identity.isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (identity.isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (identity.isMap(node))\n return visitor.Map?.(key, node, path);\n if (identity.isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (identity.isPair(node))\n return visitor.Pair?.(key, node, path);\n if (identity.isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (identity.isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (identity.isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (identity.isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (identity.isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = identity.isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexports.visit = visit;\nexports.visitAsync = visitAsync;\n",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"'use strict';\n\n/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexports.indentComment = indentComment;\nexports.lineComment = lineComment;\nexports.stringifyComment = stringifyComment;\n",
|
|
17
17
|
"'use strict';\n\nconst FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexports.FOLD_BLOCK = FOLD_BLOCK;\nexports.FOLD_FLOW = FOLD_FLOW;\nexports.FOLD_QUOTED = FOLD_QUOTED;\nexports.foldFlowLines = foldFlowLines;\n",
|
|
18
18
|
"'use strict';\n\nvar Scalar = require('../nodes/Scalar.js');\nvar foldFlowLines = require('./foldFlowLines.js');\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines.foldFlowLines(str, indent, foldFlowLines.FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines.foldFlowLines(res, indent, foldFlowLines.FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?<!\\n))\\n+(?!\\n|$)', 'g');\n}\ncatch {\n blockEndNewlines = /\\n+(?!\\n|$)/g;\n}\nfunction blockString({ comment, type, value }, ctx, onComment, onChompKeep) {\n const { blockQuote, commentString, lineWidth } = ctx.options;\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (!blockQuote || /\\n[\\t ]+$/.test(value)) {\n return quotedString(value, ctx);\n }\n const indent = ctx.indent ||\n (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const literal = blockQuote === 'literal'\n ? true\n : blockQuote === 'folded' || type === Scalar.Scalar.BLOCK_FOLDED\n ? false\n : type === Scalar.Scalar.BLOCK_LITERAL\n ? true\n : !lineLengthOverLimit(value, lineWidth, indent.length);\n if (!value)\n return literal ? '|\\n' : '>\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n // Leading | or > is added later\n let header = (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (!literal) {\n const foldedValue = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n let literalFallback = false;\n const foldOptions = getFoldOptions(ctx, true);\n if (blockQuote !== 'folded' && type !== Scalar.Scalar.BLOCK_FOLDED) {\n foldOptions.onOverflow = () => {\n literalFallback = true;\n };\n }\n const body = foldFlowLines.foldFlowLines(`${start}${foldedValue}${end}`, indent, foldFlowLines.FOLD_BLOCK, foldOptions);\n if (!literalFallback)\n return `>${header}\\n${indent}${body}`;\n }\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `|${header}\\n${indent}${start}${value}${end}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines.foldFlowLines(str, indent, foldFlowLines.FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.Scalar.BLOCK_FOLDED:\n case Scalar.Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexports.stringifyString = stringifyString;\n",
|
|
19
|
-
"'use strict';\n\nvar anchors = require('../doc/anchors.js');\nvar identity = require('../nodes/identity.js');\nvar stringifyComment = require('./stringifyComment.js');\nvar stringifyString = require('./stringifyString.js');\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment.stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (identity.isScalar(item)) {\n obj = item.value;\n let match = tags.filter(t => t.identify?.(obj));\n if (match.length > 1) {\n const testMatch = match.filter(t => t.test);\n if (testMatch.length > 0)\n match = testMatch;\n }\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors: anchors$1, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (identity.isScalar(node) || identity.isCollection(node)) && node.anchor;\n if (anchor && anchors.anchorIsValid(anchor)) {\n anchors$1.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (identity.isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (identity.isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = identity.isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : identity.isScalar(node)\n ? stringifyString.stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return identity.isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexports.createStringifyContext = createStringifyContext;\nexports.stringify = stringify;\n",
|
|
19
|
+
"'use strict';\n\nvar anchors = require('../doc/anchors.js');\nvar identity = require('../nodes/identity.js');\nvar stringifyComment = require('./stringifyComment.js');\nvar stringifyString = require('./stringifyString.js');\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment.stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trailingComma: false,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (identity.isScalar(item)) {\n obj = item.value;\n let match = tags.filter(t => t.identify?.(obj));\n if (match.length > 1) {\n const testMatch = match.filter(t => t.test);\n if (testMatch.length > 0)\n match = testMatch;\n }\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors: anchors$1, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (identity.isScalar(node) || identity.isCollection(node)) && node.anchor;\n if (anchor && anchors.anchorIsValid(anchor)) {\n anchors$1.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (identity.isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (identity.isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = identity.isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : identity.isScalar(node)\n ? stringifyString.stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return identity.isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexports.createStringifyContext = createStringifyContext;\nexports.stringify = stringify;\n",
|
|
20
20
|
"'use strict';\n\nvar identity = require('../nodes/identity.js');\nvar Scalar = require('../nodes/Scalar.js');\nvar stringify = require('./stringify.js');\nvar stringifyComment = require('./stringifyComment.js');\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (identity.isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (identity.isCollection(key) || (!identity.isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n identity.isCollection(key) ||\n (identity.isScalar(key)\n ? key.type === Scalar.Scalar.BLOCK_FOLDED || key.type === Scalar.Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify.stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += stringifyComment.lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += stringifyComment.lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += stringifyComment.lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (identity.isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && identity.isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n identity.isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify.stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${stringifyComment.indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n' && valueComment)\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && identity.isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += stringifyComment.lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexports.stringifyPair = stringifyPair;\n",
|
|
21
21
|
"'use strict';\n\nvar node_process = require('process');\n\nfunction debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n if (typeof node_process.emitWarning === 'function')\n node_process.emitWarning(warning);\n else\n console.warn(warning);\n }\n}\n\nexports.debug = debug;\nexports.warn = warn;\n",
|
|
22
22
|
"'use strict';\n\nvar identity = require('../../nodes/identity.js');\nvar Scalar = require('../../nodes/Scalar.js');\n\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nconst MERGE_KEY = '<<';\nconst merge = {\n identify: value => value === MERGE_KEY ||\n (typeof value === 'symbol' && value.description === MERGE_KEY),\n default: 'key',\n tag: 'tag:yaml.org,2002:merge',\n test: /^<<$/,\n resolve: () => Object.assign(new Scalar.Scalar(Symbol(MERGE_KEY)), {\n addToJSMap: addMergeToJSMap\n }),\n stringify: () => MERGE_KEY\n};\nconst isMergeKey = (ctx, key) => (merge.identify(key) ||\n (identity.isScalar(key) &&\n (!key.type || key.type === Scalar.Scalar.PLAIN) &&\n merge.identify(key.value))) &&\n ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);\nfunction addMergeToJSMap(ctx, map, value) {\n value = ctx && identity.isAlias(value) ? value.resolve(ctx.doc) : value;\n if (identity.isSeq(value))\n for (const it of value.items)\n mergeValue(ctx, map, it);\n else if (Array.isArray(value))\n for (const it of value)\n mergeValue(ctx, map, it);\n else\n mergeValue(ctx, map, value);\n}\nfunction mergeValue(ctx, map, value) {\n const source = ctx && identity.isAlias(value) ? value.resolve(ctx.doc) : value;\n if (!identity.isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\n\nexports.addMergeToJSMap = addMergeToJSMap;\nexports.isMergeKey = isMergeKey;\nexports.merge = merge;\n",
|
|
23
23
|
"'use strict';\n\nvar log = require('../log.js');\nvar merge = require('../schema/yaml-1.1/merge.js');\nvar stringify = require('../stringify/stringify.js');\nvar identity = require('./identity.js');\nvar toJS = require('./toJS.js');\n\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (identity.isNode(key) && key.addToJSMap)\n key.addToJSMap(ctx, map, value);\n // TODO: Should drop this special case for bare << handling\n else if (merge.isMergeKey(ctx, key))\n merge.addMergeToJSMap(ctx, map, value);\n else {\n const jsKey = toJS.toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS.toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS.toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (identity.isNode(key) && ctx?.doc) {\n const strCtx = stringify.createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n log.warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexports.addPairToJSMap = addPairToJSMap;\n",
|
|
24
24
|
"'use strict';\n\nvar createNode = require('../doc/createNode.js');\nvar stringifyPair = require('../stringify/stringifyPair.js');\nvar addPairToJSMap = require('./addPairToJSMap.js');\nvar identity = require('./identity.js');\n\nfunction createPair(key, value, ctx) {\n const k = createNode.createNode(key, undefined, ctx);\n const v = createNode.createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, identity.NODE_TYPE, { value: identity.PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (identity.isNode(key))\n key = key.clone(schema);\n if (identity.isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap.addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair.stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexports.Pair = Pair;\nexports.createPair = createPair;\n",
|
|
25
|
-
"'use strict';\n\nvar identity = require('../nodes/identity.js');\nvar stringify = require('./stringify.js');\nvar stringifyComment = require('./stringifyComment.js');\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (identity.isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (identity.isPair(item)) {\n const ik = identity.isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify.stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += stringifyComment.lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + stringifyComment.indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (identity.isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (identity.isPair(item)) {\n const ik = identity.isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = identity.isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify.stringify(item, itemCtx, () => (comment = null));\n if (i < items.length - 1)\n str += ',';\n if (
|
|
25
|
+
"'use strict';\n\nvar identity = require('../nodes/identity.js');\nvar stringify = require('./stringify.js');\nvar stringifyComment = require('./stringifyComment.js');\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (identity.isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (identity.isPair(item)) {\n const ik = identity.isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify.stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += stringifyComment.lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + stringifyComment.indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (identity.isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (identity.isPair(item)) {\n const ik = identity.isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = identity.isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify.stringify(item, itemCtx, () => (comment = null));\n reqNewline || (reqNewline = lines.length > linesAtValue || str.includes('\\n'));\n if (i < items.length - 1) {\n str += ',';\n }\n else if (ctx.options.trailingComma) {\n if (ctx.options.lineWidth > 0) {\n reqNewline || (reqNewline = lines.reduce((sum, line) => sum + line.length + 2, 2) +\n (str.length + 2) >\n ctx.options.lineWidth);\n }\n if (reqNewline) {\n str += ',';\n }\n }\n if (comment)\n str += stringifyComment.lineComment(str, itemIndent, commentString(comment));\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = stringifyComment.indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexports.stringifyCollection = stringifyCollection;\n",
|
|
26
26
|
"'use strict';\n\nvar stringifyCollection = require('../stringify/stringifyCollection.js');\nvar addPairToJSMap = require('./addPairToJSMap.js');\nvar Collection = require('./Collection.js');\nvar identity = require('./identity.js');\nvar Pair = require('./Pair.js');\nvar Scalar = require('./Scalar.js');\n\nfunction findPair(items, key) {\n const k = identity.isScalar(key) ? key.value : key;\n for (const it of items) {\n if (identity.isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (identity.isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection.Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(identity.MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(Pair.createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (identity.isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair.Pair(pair, pair?.value);\n }\n else\n _pair = new Pair.Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (identity.isScalar(prev.value) && Scalar.isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && identity.isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair.Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap.addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!identity.isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection.stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexports.YAMLMap = YAMLMap;\nexports.findPair = findPair;\n",
|
|
27
27
|
"'use strict';\n\nvar identity = require('../../nodes/identity.js');\nvar YAMLMap = require('../../nodes/YAMLMap.js');\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap.YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!identity.isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.YAMLMap.from(schema, obj, ctx)\n};\n\nexports.map = map;\n",
|
|
28
28
|
"'use strict';\n\nvar createNode = require('../doc/createNode.js');\nvar stringifyCollection = require('../stringify/stringifyCollection.js');\nvar Collection = require('./Collection.js');\nvar identity = require('./identity.js');\nvar Scalar = require('./Scalar.js');\nvar toJS = require('./toJS.js');\n\nclass YAMLSeq extends Collection.Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(identity.SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && identity.isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (identity.isScalar(prev) && Scalar.isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS.toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection.stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode.createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = identity.isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexports.YAMLSeq = YAMLSeq;\n",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"'use strict';\n\nvar Scalar = require('../nodes/Scalar.js');\nvar resolveEnd = require('./resolve-end.js');\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd.resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(?<![ \\t])[ \\t]*\\r?\\n', 'sy');\n line = new RegExp('[ \\t]*(.*?)(?:(?<![ \\t])[ \\t]*)?\\r?\\n', 'sy');\n }\n catch {\n first = /(.*?)[ \\t]*\\r?\\n/sy;\n line = /[ \\t]*(.*?)[ \\t]*\\r?\\n/sy;\n }\n let match = first.exec(source);\n if (!match)\n return source;\n let res = match[1];\n let sep = ' ';\n let pos = first.lastIndex;\n line.lastIndex = pos;\n while ((match = line.exec(source))) {\n if (match[1] === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + match[1];\n sep = ' ';\n }\n pos = line.lastIndex;\n }\n const last = /[ \\t]*(.*)/sy;\n last.lastIndex = pos;\n match = last.exec(source);\n return res + sep + (match?.[1] ?? '');\n}\nfunction doubleQuotedValue(source, onError) {\n let res = '';\n for (let i = 1; i < source.length - 1; ++i) {\n const ch = source[i];\n if (ch === '\\r' && source[i + 1] === '\\n')\n continue;\n if (ch === '\\n') {\n const { fold, offset } = foldNewline(source, i);\n res += fold;\n i = offset;\n }\n else if (ch === '\\\\') {\n let next = source[++i];\n const cc = escapeCodes[next];\n if (cc)\n res += cc;\n else if (next === '\\n') {\n // skip escaped newlines, but still trim the following line\n next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === '\\r' && source[i + 1] === '\\n') {\n // skip escaped CRLF newlines, but still trim the following line\n next = source[++i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === 'x' || next === 'u' || next === 'U') {\n const length = { x: 2, u: 4, U: 8 }[next];\n res += parseCharCode(source, i + 1, length, onError);\n i += length;\n }\n else {\n const raw = source.substr(i - 1, 2);\n onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n res += raw;\n }\n }\n else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n if (next !== '\\n' && !(next === '\\r' && source[i + 2] === '\\n'))\n res += i > wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n if (isNaN(code)) {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n return String.fromCodePoint(code);\n}\n\nexports.resolveFlowScalar = resolveFlowScalar;\n",
|
|
63
63
|
"'use strict';\n\nvar identity = require('../nodes/identity.js');\nvar Scalar = require('../nodes/Scalar.js');\nvar resolveBlockScalar = require('./resolve-block-scalar.js');\nvar resolveFlowScalar = require('./resolve-flow-scalar.js');\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar.resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar.resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n let tag;\n if (ctx.options.stringKeys && ctx.atKey) {\n tag = ctx.schema[identity.SCALAR];\n }\n else if (tagName)\n tag = findScalarTagByName(ctx.schema, value, tagName, tagToken, onError);\n else if (token.type === 'scalar')\n tag = findScalarTagByTest(ctx, value, token, onError);\n else\n tag = ctx.schema[identity.SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = identity.isScalar(res) ? res : new Scalar.Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar.Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[identity.SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[identity.SCALAR];\n}\nfunction findScalarTagByTest({ atKey, directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => (tag.default === true || (atKey && tag.default === 'key')) &&\n tag.test?.test(value)) || schema[identity.SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[identity.SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexports.composeScalar = composeScalar;\n",
|
|
64
64
|
"'use strict';\n\nfunction emptyScalarPosition(offset, before, pos) {\n if (before) {\n pos ?? (pos = before.length);\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexports.emptyScalarPosition = emptyScalarPosition;\n",
|
|
65
|
-
"'use strict';\n\nvar Alias = require('../nodes/Alias.js');\nvar identity = require('../nodes/identity.js');\nvar composeCollection = require('./compose-collection.js');\nvar composeScalar = require('./compose-scalar.js');\nvar resolveEnd = require('./resolve-end.js');\nvar utilEmptyScalarPosition = require('./util-empty-scalar-position.js');\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const atKey = ctx.atKey;\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar.composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n node = composeCollection.composeCollection(CN, ctx, token, props, onError);\n
|
|
65
|
+
"'use strict';\n\nvar Alias = require('../nodes/Alias.js');\nvar identity = require('../nodes/identity.js');\nvar composeCollection = require('./compose-collection.js');\nvar composeScalar = require('./compose-scalar.js');\nvar resolveEnd = require('./resolve-end.js');\nvar utilEmptyScalarPosition = require('./util-empty-scalar-position.js');\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const atKey = ctx.atKey;\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar.composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n try {\n node = composeCollection.composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n }\n catch (error) {\n // Almost certainly here due to a stack overflow\n const message = error instanceof Error ? error.message : String(error);\n onError(token, 'RESOURCE_EXHAUSTION', message);\n }\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n isSrcToken = false;\n }\n }\n node ?? (node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError));\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (atKey &&\n ctx.options.stringKeys &&\n (!identity.isScalar(node) ||\n typeof node.value !== 'string' ||\n (node.tag && node.tag !== 'tag:yaml.org,2002:str'))) {\n const msg = 'With stringKeys, all keys must be strings';\n onError(tag ?? token, 'NON_STRING_KEY', msg);\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: utilEmptyScalarPosition.emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar.composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias.Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd.resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexports.composeEmptyNode = composeEmptyNode;\nexports.composeNode = composeNode;\n",
|
|
66
66
|
"'use strict';\n\nvar Document = require('../doc/Document.js');\nvar composeNode = require('./compose-node.js');\nvar resolveEnd = require('./resolve-end.js');\nvar resolveProps = require('./resolve-props.js');\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document.Document(undefined, opts);\n const ctx = {\n atKey: false,\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps.resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode.composeNode(ctx, value, props, onError)\n : composeNode.composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd.resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexports.composeDoc = composeDoc;\n",
|
|
67
67
|
"'use strict';\n\nvar node_process = require('process');\nvar directives = require('../doc/directives.js');\nvar Document = require('../doc/Document.js');\nvar errors = require('../errors.js');\nvar identity = require('../nodes/identity.js');\nvar composeDoc = require('./compose-doc.js');\nvar resolveEnd = require('./resolve-end.js');\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new errors.YAMLWarning(pos, code, message));\n else\n this.errors.push(new errors.YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new directives.Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (identity.isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (identity.isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n Array.prototype.push.apply(doc.errors, this.errors);\n Array.prototype.push.apply(doc.warnings, this.warnings);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n if (node_process.env.LOG_STREAM)\n console.dir(token, { depth: null });\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc.composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new errors.YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new errors.YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd.resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new errors.YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document.Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexports.Composer = Composer;\n",
|
|
68
68
|
"'use strict';\n\nvar resolveBlockScalar = require('../compose/resolve-block-scalar.js');\nvar resolveFlowScalar = require('../compose/resolve-flow-scalar.js');\nvar errors = require('../errors.js');\nvar stringifyString = require('../stringify/stringifyString.js');\n\nfunction resolveAsScalar(token, strict = true, onError) {\n if (token) {\n const _onError = (pos, code, message) => {\n const offset = typeof pos === 'number' ? pos : Array.isArray(pos) ? pos[0] : pos.offset;\n if (onError)\n onError(offset, code, message);\n else\n throw new errors.YAMLParseError([offset, offset + 1], code, message);\n };\n switch (token.type) {\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return resolveFlowScalar.resolveFlowScalar(token, strict, _onError);\n case 'block-scalar':\n return resolveBlockScalar.resolveBlockScalar({ options: { strict } }, token, _onError);\n }\n }\n return null;\n}\n/**\n * Create a new scalar token with `value`\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.indent The indent level of the token.\n * @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.\n * @param context.offset The offset position of the token.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction createScalarToken(value, context) {\n const { implicitKey = false, indent, inFlow = false, offset = -1, type = 'PLAIN' } = context;\n const source = stringifyString.stringifyString({ type, value }, {\n implicitKey,\n indent: indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n const end = context.end ?? [\n { type: 'newline', offset: -1, indent, source: '\\n' }\n ];\n switch (source[0]) {\n case '|':\n case '>': {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, end))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n return { type: 'block-scalar', offset, indent, props, source: body };\n }\n case '\"':\n return { type: 'double-quoted-scalar', offset, indent, source, end };\n case \"'\":\n return { type: 'single-quoted-scalar', offset, indent, source, end };\n default:\n return { type: 'scalar', offset, indent, source, end };\n }\n}\n/**\n * Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.\n *\n * Best efforts are made to retain any comments previously associated with the `token`,\n * though all contents within a collection's `items` will be overwritten.\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.afterKey In most cases, values after a key should have an additional level of indentation.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction setScalarValue(token, value, context = {}) {\n let { afterKey = false, implicitKey = false, inFlow = false, type } = context;\n let indent = 'indent' in token ? token.indent : null;\n if (afterKey && typeof indent === 'number')\n indent += 2;\n if (!type)\n switch (token.type) {\n case 'single-quoted-scalar':\n type = 'QUOTE_SINGLE';\n break;\n case 'double-quoted-scalar':\n type = 'QUOTE_DOUBLE';\n break;\n case 'block-scalar': {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n type = header.source[0] === '>' ? 'BLOCK_FOLDED' : 'BLOCK_LITERAL';\n break;\n }\n default:\n type = 'PLAIN';\n }\n const source = stringifyString.stringifyString({ type, value }, {\n implicitKey: implicitKey || indent === null,\n indent: indent !== null && indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n switch (source[0]) {\n case '|':\n case '>':\n setBlockScalarValue(token, source);\n break;\n case '\"':\n setFlowScalarValue(token, source, 'double-quoted-scalar');\n break;\n case \"'\":\n setFlowScalarValue(token, source, 'single-quoted-scalar');\n break;\n default:\n setFlowScalarValue(token, source, 'scalar');\n }\n}\nfunction setBlockScalarValue(token, source) {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n if (token.type === 'block-scalar') {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n header.source = head;\n token.source = body;\n }\n else {\n const { offset } = token;\n const indent = 'indent' in token ? token.indent : -1;\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, 'end' in token ? token.end : undefined))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type: 'block-scalar', indent, props, source: body });\n }\n}\n/** @returns `true` if last token is a newline */\nfunction addEndtoBlockProps(props, end) {\n if (end)\n for (const st of end)\n switch (st.type) {\n case 'space':\n case 'comment':\n props.push(st);\n break;\n case 'newline':\n props.push(st);\n return true;\n }\n return false;\n}\nfunction setFlowScalarValue(token, source, type) {\n switch (token.type) {\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n token.type = type;\n token.source = source;\n break;\n case 'block-scalar': {\n const end = token.props.slice(1);\n let oa = source.length;\n if (token.props[0].type === 'block-scalar-header')\n oa -= token.props[0].source.length;\n for (const tok of end)\n tok.offset += oa;\n delete token.props;\n Object.assign(token, { type, source, end });\n break;\n }\n case 'block-map':\n case 'block-seq': {\n const offset = token.offset + source.length;\n const nl = { type: 'newline', offset, indent: token.indent, source: '\\n' };\n delete token.items;\n Object.assign(token, { type, source, end: [nl] });\n break;\n }\n default: {\n const indent = 'indent' in token ? token.indent : -1;\n const end = 'end' in token && Array.isArray(token.end)\n ? token.end.filter(st => st.type === 'space' ||\n st.type === 'comment' ||\n st.type === 'newline')\n : [];\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type, indent, source, end });\n }\n }\n}\n\nexports.createScalarToken = createScalarToken;\nexports.resolveAsScalar = resolveAsScalar;\nexports.setScalarValue = setScalarValue;\n",
|
|
@@ -90,16 +90,17 @@
|
|
|
90
90
|
"/**\n * 🔺 TURBO-CAT™ FORMAT PYRAMID v3.1.1\n *\n * ROW 20 IN PROGRESS - 199 FORMATS CATALOGUED!\n *\n * Like precious metals in a catalytic converter - each format triggers\n * a specific intelligence reaction. We CAN catalyze ANY format, but only\n * the WORTHY earn a pyramid stone!\n *\n * Pyramid Evolution:\n * ├── Row 17: Sum(1..17) + 1 = 154 (THE SACRED - ACHIEVED 2024)\n * ├── Row 18: Sum(1..18) + 1 = 172 (BEYOND SACRED - ACHIEVED)\n * ├── Row 19: Sum(1..19) + 1 = 190 (ACHIEVED 2025-12-17)\n * └── Row 20: Sum(1..20) + 1 = 211 (IN PROGRESS - 9/21 added)\n *\n * Row 20 Tier 1 Added (2025-12-17):\n * - build.zig.zon (Zig packages)\n * - gleam.toml (Gleam - 2nd most admired 2025)\n * - bunfig.toml (Bun config)\n * - mise.toml / .mise.toml (mise version manager)\n * - manifest.toml (Flox/Nix environments)\n * - justfile (Just command runner - 10k+ stars)\n * - .pre-commit-config.yaml (Git hooks framework)\n * - CLAUDE.md (Claude Code AI context)\n *\n * THE DOCTRINE: To add a new format, PROVE it's better than existing ones!\n *\n * 😽 We are the FORMAT FREAKS - Quality over Quantity!\n * 🏆 199 formats - CHAMPIONSHIP GRADE FORMAT DETECTION\n */\n\nexport interface FormatKnowledge {\n frameworks: string[]; // Possible frameworks this format indicates\n slots: Partial<ContextSlots>; // Direct Context-On-Demand slot mappings\n priority: number; // Intelligence score (0-35 points)\n intelligence: 'ultra-high' | 'high' | 'medium' | 'low';\n confirmWith?: string[]; // Additional files to check for confirmation\n}\n\nexport interface ContextSlots {\n // Technical slots (1-15) - camelCase versions\n framework: string;\n mainLanguage: string;\n buildTool: string;\n packageManager: string;\n hosting: string;\n backend: string;\n apiType: string;\n cicd: string;\n database: string;\n cssFramework: string;\n uiLibrary: string;\n stateManagement: string;\n server: string;\n connection: string;\n runtime: string;\n // Display slots (for stack display compatibility)\n build: string;\n\n // snake_case versions (for YAML compatibility)\n main_language: string;\n build_tool: string;\n pkg_manager: string;\n api: string;\n css: string;\n ui_library: string;\n state: string;\n db: string;\n\n // Human context slots (16-21)\n targetUser: string;\n coreProblem: string;\n missionPurpose: string;\n deploymentMarket: string;\n timeline: string;\n approach: string;\n}\n\n/**\n * THE KNOWLEDGE BASE\n * \n * Add any file format here and map it to:\n * 1. Frameworks it indicates\n * 2. Context slots it can fill\n * 3. Priority/intelligence score\n * \n * The fab-formats engine will automatically use this knowledge!\n */\nexport const KNOWLEDGE_BASE: Record<string, FormatKnowledge> = {\n // ============================================\n // ULTRA-HIGH VALUE (35 points) - Package Managers\n // ============================================\n \n 'package.json': {\n frameworks: ['Node.js', 'JavaScript', 'TypeScript'],\n slots: {\n packageManager: 'npm/yarn/pnpm',\n mainLanguage: 'JavaScript/TypeScript'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n 'README.md': {\n frameworks: [], // Can be any framework\n slots: {\n targetUser: 'developers', // Often contains who it's for\n coreProblem: 'understanding project', // Usually describes the problem\n missionPurpose: 'project documentation' // Contains the why\n },\n priority: 25, // HIGH: Human context goldmine\n intelligence: 'high'\n },\n\n 'requirements.txt': {\n frameworks: ['Python'],\n slots: { \n packageManager: 'pip',\n mainLanguage: 'Python'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'Pipfile': {\n frameworks: ['Python'],\n slots: { \n packageManager: 'pipenv',\n mainLanguage: 'Python'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'pyproject.toml': {\n frameworks: ['Python'],\n slots: {\n mainLanguage: 'Python',\n runtime: 'Python',\n backend: 'Python'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n \n 'Gemfile': {\n frameworks: ['Ruby', 'Rails'],\n slots: { \n packageManager: 'bundler',\n mainLanguage: 'Ruby'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'composer.json': {\n frameworks: ['PHP', 'Laravel', 'Symfony'],\n slots: { \n packageManager: 'composer',\n mainLanguage: 'PHP'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'Cargo.toml': {\n frameworks: ['Rust'],\n slots: {\n packageManager: 'cargo',\n mainLanguage: 'Rust',\n buildTool: 'cargo'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n\n 'go.mod': {\n frameworks: ['Go'],\n slots: {\n packageManager: 'go modules',\n mainLanguage: 'Go',\n buildTool: 'go build'\n },\n priority: 36,\n intelligence: 'ultra-high'\n },\n \n 'pubspec.yaml': {\n // Filename-only FALLBACK: assert Dart + pub, NOT Flutter — a pubspec backs\n // Flutter apps, pure-Dart CLIs/packages/servers, and MCP servers alike.\n // turbo-cat.ts reads the CONTENT (detectDartProject) and adds the framework\n // (Flutter / Dart Frog / …) when the deps actually prove it.\n frameworks: ['Dart'],\n slots: {\n packageManager: 'pub',\n mainLanguage: 'Dart'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'pom.xml': {\n frameworks: ['Java', 'Spring', 'Maven'],\n slots: { \n packageManager: 'maven',\n mainLanguage: 'Java',\n buildTool: 'maven'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n \n 'build.gradle': {\n frameworks: ['Java', 'Kotlin', 'Spring', 'Gradle'],\n slots: { \n packageManager: 'gradle',\n mainLanguage: 'Java/Kotlin',\n buildTool: 'gradle'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - JavaScript Frameworks\n // ============================================\n \n 'next.config.js': {\n frameworks: ['Next.js'],\n slots: { \n framework: 'Next.js',\n runtime: 'Node.js',\n buildTool: 'Next.js',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'next.config.mjs': {\n frameworks: ['Next.js'],\n slots: { \n framework: 'Next.js',\n runtime: 'Node.js',\n buildTool: 'Next.js',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'next.config.ts': {\n frameworks: ['Next.js 13+'],\n slots: { \n framework: 'Next.js 13+',\n runtime: 'Node.js',\n buildTool: 'Next.js',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'nuxt.config.js': {\n frameworks: ['Nuxt 2'],\n slots: { \n framework: 'Nuxt 2',\n runtime: 'Node.js',\n buildTool: 'Nuxt',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'nuxt.config.ts': {\n frameworks: ['Nuxt 3'],\n slots: { \n framework: 'Nuxt 3',\n runtime: 'Node.js',\n buildTool: 'Nuxt',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'svelte.config.js': {\n frameworks: ['SvelteKit'],\n slots: { \n framework: 'SvelteKit',\n buildTool: 'Vite',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'angular.json': {\n frameworks: ['Angular'],\n slots: {\n framework: 'Angular',\n buildTool: 'Angular CLI',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // CHROME EXTENSION SUPPORT\n // ============================================\n\n 'manifest.json': {\n frameworks: ['Chrome Extension', 'Browser Extension'],\n slots: {\n framework: 'Chrome Extension',\n runtime: 'Chrome/Browser',\n mainLanguage: 'JavaScript',\n hosting: 'Chrome Web Store',\n apiType: 'Chrome APIs'\n },\n priority: 35,\n intelligence: 'ultra-high',\n confirmWith: ['popup.html', 'background.js', 'content.js']\n },\n \n 'vue.config.js': {\n frameworks: ['Vue'],\n slots: { \n framework: 'Vue',\n buildTool: 'Vue CLI',\n mainLanguage: 'JavaScript'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'remix.config.js': {\n frameworks: ['Remix'],\n slots: { \n framework: 'Remix',\n runtime: 'Node.js',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'gatsby-config.js': {\n frameworks: ['Gatsby'],\n slots: { \n framework: 'Gatsby',\n buildTool: 'Gatsby',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'gatsby-config.ts': {\n frameworks: ['Gatsby'],\n slots: { \n framework: 'Gatsby',\n buildTool: 'Gatsby',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'astro.config.mjs': {\n frameworks: ['Astro'],\n slots: { \n framework: 'Astro',\n buildTool: 'Vite',\n mainLanguage: 'JavaScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'redwood.toml': {\n frameworks: ['RedwoodJS'],\n slots: { \n framework: 'RedwoodJS',\n buildTool: 'Webpack',\n mainLanguage: 'JavaScript/TypeScript',\n server: 'Node.js',\n database: 'Prisma'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'blitz.config.ts': {\n frameworks: ['Blitz.js'],\n slots: { \n framework: 'Blitz.js',\n buildTool: 'Next.js',\n mainLanguage: 'TypeScript',\n server: 'Node.js',\n database: 'Prisma'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'qwik.config.ts': {\n frameworks: ['Qwik'],\n slots: { \n framework: 'Qwik',\n buildTool: 'Vite',\n mainLanguage: 'TypeScript',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Backend Frameworks\n // ============================================\n \n 'manage.py': {\n frameworks: ['Django'],\n slots: { \n framework: 'Django',\n backend: 'Django',\n mainLanguage: 'Python',\n server: 'Django',\n apiType: 'Django Views'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'artisan': {\n frameworks: ['Laravel'],\n slots: { \n framework: 'Laravel',\n backend: 'Laravel',\n mainLanguage: 'PHP',\n server: 'PHP',\n apiType: 'Laravel Routes'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'mix.exs': {\n frameworks: ['Phoenix', 'Elixir'],\n slots: { \n framework: 'Phoenix',\n backend: 'Phoenix',\n mainLanguage: 'Elixir',\n server: 'BEAM'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'nest-cli.json': {\n frameworks: ['NestJS'],\n slots: { \n framework: 'NestJS',\n backend: 'NestJS',\n mainLanguage: 'TypeScript',\n server: 'Node.js',\n apiType: 'REST API'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'strapi.config.js': {\n frameworks: ['Strapi'],\n slots: { \n backend: 'Strapi',\n apiType: 'REST API',\n database: 'Required',\n server: 'Node.js'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Infrastructure\n // ============================================\n \n 'Dockerfile': {\n frameworks: ['Docker'],\n slots: { \n hosting: 'Docker',\n connection: 'Containerized'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'docker-compose.yml': {\n frameworks: ['Docker Compose'],\n slots: { \n hosting: 'Docker',\n connection: 'Multi-container'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'docker-compose.yaml': {\n frameworks: ['Docker Compose'],\n slots: { \n hosting: 'Docker',\n connection: 'Multi-container'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'kubernetes.yml': {\n frameworks: ['Kubernetes'],\n slots: { \n hosting: 'Kubernetes',\n connection: 'Orchestrated'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'k8s.yaml': {\n frameworks: ['Kubernetes'],\n slots: { \n hosting: 'Kubernetes',\n connection: 'Orchestrated'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Deployment\n // ============================================\n \n 'vercel.json': {\n frameworks: ['Vercel'],\n slots: { \n hosting: 'Vercel',\n cicd: 'Vercel'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'netlify.toml': {\n frameworks: ['Netlify'],\n slots: { \n hosting: 'Netlify',\n cicd: 'Netlify'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'render.yaml': {\n frameworks: ['Render'],\n slots: { \n hosting: 'Render',\n cicd: 'Render'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'fly.toml': {\n frameworks: ['Fly.io'],\n slots: { \n hosting: 'Fly.io',\n cicd: 'Fly.io'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'railway.json': {\n frameworks: ['Railway'],\n slots: { \n hosting: 'Railway',\n cicd: 'Railway'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'railway.toml': {\n frameworks: ['Railway'],\n slots: { \n hosting: 'Railway',\n cicd: 'Railway'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'app.yaml': {\n frameworks: ['Google App Engine'],\n slots: { \n hosting: 'Google Cloud',\n cicd: 'Google Cloud'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'Procfile': {\n frameworks: ['Heroku'],\n slots: { \n hosting: 'Heroku',\n cicd: 'Heroku'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Build Tools\n // ============================================\n \n 'vite.config.js': {\n frameworks: ['Vite'],\n slots: { \n buildTool: 'Vite'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'vite.config.ts': {\n frameworks: ['Vite'],\n slots: { \n buildTool: 'Vite',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'webpack.config.js': {\n frameworks: ['Webpack'],\n slots: { \n buildTool: 'Webpack'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'rollup.config.js': {\n frameworks: ['Rollup'],\n slots: { \n buildTool: 'Rollup'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'esbuild.config.js': {\n frameworks: ['esbuild'],\n slots: { \n buildTool: 'esbuild'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'parcel.config.js': {\n frameworks: ['Parcel'],\n slots: { \n buildTool: 'Parcel'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'snowpack.config.js': {\n frameworks: ['Snowpack'],\n slots: { \n buildTool: 'Snowpack'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Language Config\n // ============================================\n \n 'tsconfig.json': {\n frameworks: ['TypeScript'],\n slots: { \n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'jsconfig.json': {\n frameworks: ['JavaScript'],\n slots: { \n mainLanguage: 'JavaScript'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'babel.config.js': {\n frameworks: ['Babel'],\n slots: { \n buildTool: 'Babel'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n '.babelrc': {\n frameworks: ['Babel'],\n slots: { \n buildTool: 'Babel'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Testing\n // ============================================\n \n 'jest.config.js': {\n frameworks: ['Jest'],\n slots: { \n cicd: 'Jest'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'jest.config.ts': {\n frameworks: ['Jest'],\n slots: { \n cicd: 'Jest',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'vitest.config.ts': {\n frameworks: ['Vitest'],\n slots: { \n cicd: 'Vitest',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'cypress.config.js': {\n frameworks: ['Cypress'],\n slots: { \n cicd: 'Cypress'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'playwright.config.ts': {\n frameworks: ['Playwright'],\n slots: { \n cicd: 'Playwright',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'karma.conf.js': {\n frameworks: ['Karma'],\n slots: { \n cicd: 'Karma'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'mocha.opts': {\n frameworks: ['Mocha'],\n slots: { \n cicd: 'Mocha'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n '.rspec': {\n frameworks: ['RSpec'],\n slots: { \n cicd: 'RSpec',\n mainLanguage: 'Ruby'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'pytest.ini': {\n frameworks: ['Pytest'],\n slots: { \n cicd: 'Pytest',\n mainLanguage: 'Python'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'phpunit.xml': {\n frameworks: ['PHPUnit'],\n slots: { \n cicd: 'PHPUnit',\n mainLanguage: 'PHP'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Database/ORM\n // ============================================\n \n 'schema.prisma': {\n frameworks: ['Prisma'],\n slots: { \n database: 'Prisma ORM',\n connection: 'Prisma'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'drizzle.config.ts': {\n frameworks: ['Drizzle'],\n slots: { \n database: 'Drizzle ORM',\n connection: 'Drizzle',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'ormconfig.js': {\n frameworks: ['TypeORM'],\n slots: { \n database: 'TypeORM',\n connection: 'TypeORM'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'knexfile.js': {\n frameworks: ['Knex.js'],\n slots: { \n database: 'Knex.js',\n connection: 'Knex.js'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'sequelize.config.js': {\n frameworks: ['Sequelize'],\n slots: { \n database: 'Sequelize',\n connection: 'Sequelize'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'alembic.ini': {\n frameworks: ['Alembic'],\n slots: { \n database: 'Alembic',\n mainLanguage: 'Python'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - CI/CD\n // ============================================\n \n '.github/workflows': {\n frameworks: ['GitHub Actions'],\n slots: { \n cicd: 'GitHub Actions'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n '.gitlab-ci.yml': {\n frameworks: ['GitLab CI'],\n slots: { \n cicd: 'GitLab CI'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'Jenkinsfile': {\n frameworks: ['Jenkins'],\n slots: { \n cicd: 'Jenkins'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n '.circleci/config.yml': {\n frameworks: ['CircleCI'],\n slots: { \n cicd: 'CircleCI'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n '.travis.yml': {\n frameworks: ['Travis CI'],\n slots: { \n cicd: 'Travis CI'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'azure-pipelines.yml': {\n frameworks: ['Azure DevOps'],\n slots: { \n cicd: 'Azure DevOps'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'bitbucket-pipelines.yml': {\n frameworks: ['Bitbucket Pipelines'],\n slots: { \n cicd: 'Bitbucket Pipelines'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (20 points) - CSS/UI\n // ============================================\n \n 'tailwind.config.js': {\n frameworks: ['Tailwind CSS'],\n slots: { \n cssFramework: 'Tailwind CSS'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'tailwind.config.ts': {\n frameworks: ['Tailwind CSS'],\n slots: { \n cssFramework: 'Tailwind CSS',\n mainLanguage: 'TypeScript'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'postcss.config.js': {\n frameworks: ['PostCSS'],\n slots: { \n cssFramework: 'PostCSS'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'uno.config.ts': {\n frameworks: ['UnoCSS'],\n slots: { \n cssFramework: 'UnoCSS',\n mainLanguage: 'TypeScript'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'styled-components.config.js': {\n frameworks: ['styled-components'],\n slots: { \n cssFramework: 'styled-components',\n uiLibrary: 'styled-components'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'emotion.config.js': {\n frameworks: ['Emotion'],\n slots: { \n cssFramework: 'Emotion',\n uiLibrary: 'Emotion'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Mobile\n // ============================================\n \n 'metro.config.js': {\n frameworks: ['React Native'],\n slots: { \n framework: 'React Native',\n mainLanguage: 'JavaScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'expo.config.js': {\n frameworks: ['Expo'],\n slots: { \n framework: 'React Native',\n buildTool: 'Expo'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'app.json': {\n frameworks: ['React Native', 'Expo'],\n slots: { \n framework: 'React Native'\n },\n priority: 20,\n intelligence: 'medium',\n confirmWith: ['expo']\n },\n \n 'capacitor.config.ts': {\n frameworks: ['Capacitor'],\n slots: { \n framework: 'Capacitor',\n mainLanguage: 'TypeScript'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'ionic.config.json': {\n frameworks: ['Ionic'],\n slots: { \n framework: 'Ionic',\n uiLibrary: 'Ionic'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // MEDIUM VALUE (25 points) - Monorepo\n // ============================================\n \n 'nx.json': {\n frameworks: ['Nx'],\n slots: { \n buildTool: 'Nx'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'turbo.json': {\n frameworks: ['Turborepo'],\n slots: { \n buildTool: 'Turborepo'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'lerna.json': {\n frameworks: ['Lerna'],\n slots: { \n buildTool: 'Lerna'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'rush.json': {\n frameworks: ['Rush'],\n slots: { \n buildTool: 'Rush'\n },\n priority: 25,\n intelligence: 'medium'\n },\n \n 'pnpm-workspace.yaml': {\n frameworks: ['pnpm workspaces'],\n slots: { \n packageManager: 'pnpm',\n buildTool: 'pnpm workspaces'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // LOW VALUE (15 points) - File Extensions\n // These are pattern-based and less definitive\n // ============================================\n \n '*.svelte': {\n frameworks: ['Svelte', 'SvelteKit'],\n slots: { \n framework: 'Svelte'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.vue': {\n frameworks: ['Vue'],\n slots: { \n framework: 'Vue'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.jsx': {\n frameworks: ['React'],\n slots: { \n framework: 'React',\n mainLanguage: 'JavaScript'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.ts': {\n frameworks: ['TypeScript'],\n slots: {\n mainLanguage: 'TypeScript'\n },\n priority: 15,\n intelligence: 'low'\n },\n\n '*.tsx': {\n frameworks: ['React', 'TypeScript'],\n slots: {\n framework: 'React',\n mainLanguage: 'TypeScript'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.py': {\n frameworks: ['Python'],\n slots: { \n mainLanguage: 'Python'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.rb': {\n frameworks: ['Ruby'],\n slots: { \n mainLanguage: 'Ruby'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.php': {\n frameworks: ['PHP'],\n slots: { \n mainLanguage: 'PHP'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.java': {\n frameworks: ['Java'],\n slots: { \n mainLanguage: 'Java'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.kt': {\n frameworks: ['Kotlin'],\n slots: { \n mainLanguage: 'Kotlin'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.swift': {\n frameworks: ['Swift'],\n slots: { \n mainLanguage: 'Swift'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.go': {\n frameworks: ['Go'],\n slots: { \n mainLanguage: 'Go'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.rs': {\n frameworks: ['Rust'],\n slots: { \n mainLanguage: 'Rust'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.dart': {\n frameworks: ['Flutter', 'Dart'],\n slots: { \n mainLanguage: 'Dart'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.ex': {\n frameworks: ['Elixir'],\n slots: { \n mainLanguage: 'Elixir'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.exs': {\n frameworks: ['Elixir'],\n slots: { \n mainLanguage: 'Elixir'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.scala': {\n frameworks: ['Scala'],\n slots: { \n mainLanguage: 'Scala'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.clj': {\n frameworks: ['Clojure'],\n slots: { \n mainLanguage: 'Clojure'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.lua': {\n frameworks: ['Lua'],\n slots: { \n mainLanguage: 'Lua'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.r': {\n frameworks: ['R'],\n slots: { \n mainLanguage: 'R'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.R': {\n frameworks: ['R'],\n slots: { \n mainLanguage: 'R'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.jl': {\n frameworks: ['Julia'],\n slots: { \n mainLanguage: 'Julia'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.nim': {\n frameworks: ['Nim'],\n slots: { \n mainLanguage: 'Nim'\n },\n priority: 15,\n intelligence: 'low'\n },\n \n '*.zig': {\n frameworks: ['Zig'],\n slots: {\n mainLanguage: 'Zig'\n },\n priority: 15,\n intelligence: 'low'\n },\n\n 'build.zig': {\n frameworks: ['Zig'],\n slots: {\n // camelCase slots (standard TURBO-CAT)\n packageManager: 'Zig Package Manager',\n mainLanguage: 'Zig',\n buildTool: 'zig build',\n framework: 'Zig',\n // snake_case slots (template compatibility)\n build: 'zig build'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n // ============================================\n // SPECIAL VALUE (20 points) - API/Schema\n // ============================================\n \n 'openapi.json': {\n frameworks: ['OpenAPI'],\n slots: { \n apiType: 'REST API',\n backend: 'API Server'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'openapi.yaml': {\n frameworks: ['OpenAPI'],\n slots: { \n apiType: 'REST API',\n backend: 'API Server'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'swagger.json': {\n frameworks: ['Swagger'],\n slots: { \n apiType: 'REST API',\n backend: 'API Server'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'graphql.schema': {\n frameworks: ['GraphQL'],\n slots: { \n apiType: 'GraphQL',\n backend: 'GraphQL Server'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n 'schema.graphql': {\n frameworks: ['GraphQL'],\n slots: { \n apiType: 'GraphQL',\n backend: 'GraphQL Server'\n },\n priority: 30,\n intelligence: 'high'\n },\n \n '.graphqlconfig': {\n frameworks: ['GraphQL'],\n slots: { \n apiType: 'GraphQL'\n },\n priority: 25,\n intelligence: 'medium'\n },\n\n // ============================================\n // SPECIAL VALUE (20 points) - State Management\n // ============================================\n \n 'redux.config.js': {\n frameworks: ['Redux'],\n slots: { \n stateManagement: 'Redux'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'mobx.config.js': {\n frameworks: ['MobX'],\n slots: { \n stateManagement: 'MobX'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'vuex.config.js': {\n frameworks: ['Vuex'],\n slots: { \n stateManagement: 'Vuex',\n framework: 'Vue'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'pinia.config.js': {\n frameworks: ['Pinia'],\n slots: { \n stateManagement: 'Pinia',\n framework: 'Vue'\n },\n priority: 20,\n intelligence: 'medium'\n },\n \n 'zustand.config.js': {\n frameworks: ['Zustand'],\n slots: { \n stateManagement: 'Zustand'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // SPECIAL VALUE (15 points) - Linting/Formatting\n // ============================================\n \n '.eslintrc.js': {\n frameworks: ['ESLint'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.eslintrc.json': {\n frameworks: ['ESLint'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.prettierrc': {\n frameworks: ['Prettier'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.prettierrc.json': {\n frameworks: ['Prettier'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n 'biome.json': {\n frameworks: ['Biome'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n \n '.editorconfig': {\n frameworks: ['EditorConfig'],\n slots: {},\n priority: 10,\n intelligence: 'low'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Serverless\n // ============================================\n\n 'serverless.yml': {\n frameworks: ['Serverless Framework'],\n slots: {\n hosting: 'AWS Lambda/Azure/GCP',\n backend: 'Serverless',\n apiType: 'API Gateway'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'serverless.yaml': {\n frameworks: ['Serverless Framework'],\n slots: {\n hosting: 'AWS Lambda/Azure/GCP',\n backend: 'Serverless',\n apiType: 'API Gateway'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'sam.yaml': {\n frameworks: ['AWS SAM'],\n slots: {\n hosting: 'AWS Lambda',\n backend: 'AWS SAM',\n cicd: 'AWS SAM CLI'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'template.yaml': {\n frameworks: ['AWS SAM', 'CloudFormation'],\n slots: {\n hosting: 'AWS',\n backend: 'AWS SAM/CloudFormation',\n cicd: 'AWS'\n },\n priority: 25,\n intelligence: 'medium',\n confirmWith: ['samconfig.toml']\n },\n\n 'amplify.yml': {\n frameworks: ['AWS Amplify'],\n slots: {\n hosting: 'AWS Amplify',\n backend: 'AWS Amplify',\n cicd: 'AWS Amplify'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - Mobile Native\n // ============================================\n\n 'Podfile': {\n frameworks: ['CocoaPods', 'iOS'],\n slots: {\n packageManager: 'CocoaPods',\n mainLanguage: 'Swift/Objective-C',\n framework: 'iOS Native'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'build.gradle.kts': {\n frameworks: ['Gradle Kotlin DSL', 'Android', 'Kotlin'],\n slots: {\n packageManager: 'Gradle',\n mainLanguage: 'Kotlin',\n buildTool: 'Gradle Kotlin DSL',\n framework: 'Android'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // HIGH VALUE (30 points) - AI/ML\n // ============================================\n\n '*.ipynb': {\n frameworks: ['Jupyter', 'Python'],\n slots: {\n mainLanguage: 'Python',\n framework: 'Jupyter Notebook'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'MLproject': {\n frameworks: ['MLflow'],\n slots: {\n mainLanguage: 'Python',\n framework: 'MLflow',\n backend: 'MLflow',\n cicd: 'MLflow'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'dvc.yaml': {\n frameworks: ['DVC', 'Data Version Control'],\n slots: {\n mainLanguage: 'Python',\n framework: 'DVC',\n cicd: 'DVC Pipelines'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'dvc.lock': {\n frameworks: ['DVC'],\n slots: {\n framework: 'DVC'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // ROW 18 - BEYOND THE SACRED 154 (Target: 172)\n // ============================================\n\n // Edge Computing\n 'wrangler.toml': {\n frameworks: ['Cloudflare Workers', 'Cloudflare'],\n slots: {\n hosting: 'Cloudflare Workers',\n backend: 'Cloudflare Workers',\n runtime: 'V8 Isolates'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // Modern Runtimes\n 'deno.json': {\n frameworks: ['Deno'],\n slots: {\n runtime: 'Deno',\n mainLanguage: 'TypeScript',\n packageManager: 'Deno'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'bun.lockb': {\n frameworks: ['Bun'],\n slots: {\n runtime: 'Bun',\n packageManager: 'Bun',\n mainLanguage: 'TypeScript/JavaScript'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // CI/CD Ecosystem\n 'codecov.yml': {\n frameworks: ['Codecov'],\n slots: {\n cicd: 'Codecov'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n 'dependabot.yml': {\n frameworks: ['Dependabot', 'GitHub'],\n slots: {\n cicd: 'Dependabot'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n 'renovate.json': {\n frameworks: ['Renovate'],\n slots: {\n cicd: 'Renovate'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // Universal Build Tools\n 'Makefile': {\n frameworks: ['Make', 'GNU Make'],\n slots: {\n buildTool: 'Make'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'CMakeLists.txt': {\n frameworks: ['CMake', 'C', 'C++'],\n slots: {\n buildTool: 'CMake',\n mainLanguage: 'C/C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'meson.build': {\n frameworks: ['Meson', 'C', 'C++'],\n slots: {\n buildTool: 'Meson',\n mainLanguage: 'C/C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // ============================================\n // C/C++ LANGUAGE FAMILY - SYSTEMS PROGRAMMING\n // ============================================\n\n '*.c': {\n frameworks: ['C'],\n slots: {\n mainLanguage: 'C'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.cpp': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.cc': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.cxx': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.h': {\n frameworks: ['C', 'C++'],\n slots: {\n mainLanguage: 'C/C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.hpp': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.hxx': {\n frameworks: ['C++'],\n slots: {\n mainLanguage: 'C++'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // ENVIRONMENT FILES - CONFIGURATION\n // ============================================\n\n '.env': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.env.example': {\n frameworks: [],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n '.env.local': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.env.development': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.env.production': {\n frameworks: [],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n // ============================================\n // DEVOPS YAML - KUBERNETES & IaC\n // ============================================\n\n 'skaffold.yaml': {\n frameworks: ['Skaffold', 'Kubernetes'],\n slots: {\n hosting: 'Kubernetes',\n cicd: 'Skaffold'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'Chart.yaml': {\n frameworks: ['Helm', 'Kubernetes'],\n slots: {\n hosting: 'Kubernetes',\n backend: 'Helm'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'values.yaml': {\n frameworks: ['Helm', 'Kubernetes'],\n slots: {\n hosting: 'Kubernetes'\n },\n priority: 25,\n intelligence: 'high',\n confirmWith: ['Chart.yaml']\n },\n\n 'pulumi.yaml': {\n frameworks: ['Pulumi'],\n slots: {\n hosting: 'Cloud',\n cicd: 'Pulumi'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'Pulumi.yaml': {\n frameworks: ['Pulumi'],\n slots: {\n hosting: 'Cloud',\n cicd: 'Pulumi'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'terragrunt.hcl': {\n frameworks: ['Terragrunt', 'Terraform'],\n slots: {\n hosting: 'Cloud',\n cicd: 'Terragrunt'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'ansible.yml': {\n frameworks: ['Ansible'],\n slots: {\n cicd: 'Ansible'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n 'playbook.yml': {\n frameworks: ['Ansible'],\n slots: {\n cicd: 'Ansible'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // ============================================\n // ROW 19 - LANGUAGES & VERSION MANAGERS\n // ============================================\n\n '*.cs': {\n frameworks: ['C#', '.NET', 'Unity'],\n slots: {\n mainLanguage: 'C#'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n '*.m': {\n frameworks: ['Objective-C', 'iOS'],\n slots: {\n mainLanguage: 'Objective-C'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.nvmrc': {\n frameworks: ['Node.js', 'nvm'],\n slots: {\n runtime: 'Node.js'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.tool-versions': {\n frameworks: ['asdf'],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n '.ruby-version': {\n frameworks: ['Ruby', 'rbenv'],\n slots: {\n mainLanguage: 'Ruby',\n runtime: 'Ruby'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.python-version': {\n frameworks: ['Python', 'pyenv'],\n slots: {\n mainLanguage: 'Python',\n runtime: 'Python'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '.dockerignore': {\n frameworks: ['Docker'],\n slots: {},\n priority: 20,\n intelligence: 'medium'\n },\n\n '.gitattributes': {\n frameworks: ['Git'],\n slots: {},\n priority: 15,\n intelligence: 'low'\n },\n\n '.npmrc': {\n frameworks: ['npm', 'Node.js'],\n slots: {\n packageManager: 'npm'\n },\n priority: 20,\n intelligence: 'medium'\n },\n\n 'sonar-project.properties': {\n frameworks: ['SonarQube', 'SonarCloud'],\n slots: {\n cicd: 'SonarQube'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // ROW 19 COMPLETION - FUNCTIONAL LANGUAGES\n\n '*.fs': {\n frameworks: ['F#', '.NET'],\n slots: {\n mainLanguage: 'F#'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n '*.mm': {\n frameworks: ['Objective-C++', 'iOS', 'macOS'],\n slots: {\n mainLanguage: 'Objective-C++'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // ============================================\n // ROW 20 - TIER 1 EMERGING TECH (2025)\n // Target: 211 formats (Sum(1..20) + 1)\n // ============================================\n\n // Zig - The Next Systems Language\n 'build.zig.zon': {\n frameworks: ['Zig'],\n slots: {\n mainLanguage: 'Zig',\n packageManager: 'Zig Package Manager',\n buildTool: 'zig build'\n },\n priority: 35,\n intelligence: 'ultra-high'\n },\n\n // Gleam - 2nd Most Admired Language 2025 (Stack Overflow)\n 'gleam.toml': {\n frameworks: ['Gleam', 'BEAM', 'Erlang'],\n slots: {\n mainLanguage: 'Gleam',\n runtime: 'BEAM',\n packageManager: 'Gleam'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // Bun - Ultra-fast JS Runtime Config\n 'bunfig.toml': {\n frameworks: ['Bun'],\n slots: {\n runtime: 'Bun',\n packageManager: 'Bun',\n buildTool: 'Bun'\n },\n priority: 30,\n intelligence: 'high'\n },\n\n // mise - Modern Version Manager (replaced asdf/rtx)\n 'mise.toml': {\n frameworks: ['mise'],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n '.mise.toml': {\n frameworks: ['mise'],\n slots: {},\n priority: 25,\n intelligence: 'high'\n },\n\n // Flox - Nix-based Development Environments\n 'manifest.toml': {\n frameworks: ['Flox', 'Nix'],\n slots: {},\n priority: 25,\n intelligence: 'high',\n confirmWith: ['.flox']\n },\n\n // Just - Command Runner (10k+ GitHub stars, Rust ecosystem)\n 'justfile': {\n frameworks: ['Just'],\n slots: {\n buildTool: 'Just'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // Pre-commit - Git Hooks Framework (industry standard)\n '.pre-commit-config.yaml': {\n frameworks: ['pre-commit'],\n slots: {\n cicd: 'pre-commit'\n },\n priority: 25,\n intelligence: 'high'\n },\n\n // Claude Code - AI Context (Anthropic Claude Code projects)\n 'CLAUDE.md': {\n frameworks: ['Claude Code'],\n slots: {},\n priority: 30, // High priority - AI context is valuable\n intelligence: 'high',\n confirmWith: ['.claude']\n }\n};\n\n// ============================================\n// HELPER FUNCTIONS\n// ============================================\n\n/**\n * Get knowledge for a specific format\n */\nexport function getFormatKnowledge(format: string): FormatKnowledge | undefined {\n return KNOWLEDGE_BASE[format];\n}\n\n/**\n * Get all format keys\n */\nexport function getAllFormats(): string[] {\n return Object.keys(KNOWLEDGE_BASE);\n}\n\n/**\n * Get high-value formats (priority >= 30)\n */\nexport function getHighValueFormats(): string[] {\n return Object.entries(KNOWLEDGE_BASE)\n .filter(([, knowledge]) => knowledge.priority >= 30)\n .map(([format]) => format);\n}\n\n/**\n * Get formats by intelligence level\n */\nexport function getFormatsByIntelligence(level: FormatKnowledge['intelligence']): string[] {\n return Object.entries(KNOWLEDGE_BASE)\n .filter(([, knowledge]) => knowledge.intelligence === level)\n .map(([format]) => format);\n}\n\n/**\n * Get formats that can fill a specific slot\n */\nexport function getFormatsForSlot(slotName: keyof ContextSlots): string[] {\n return Object.entries(KNOWLEDGE_BASE)\n .filter(([, knowledge]) => slotName in knowledge.slots)\n .map(([format]) => format);\n}\n\n/**\n * Calculate total possible intelligence score\n */\nexport function getMaxIntelligenceScore(): number {\n return Object.values(KNOWLEDGE_BASE)\n .reduce((sum, knowledge) => sum + knowledge.priority, 0);\n}",
|
|
91
91
|
"import { existsSync, readFileSync, readdirSync } from 'fs';\nimport { join } from 'path';\nimport spec from './dart-detection.json';\n\n/**\n * Dart/Flutter detection — CONTENT-AWARE pubspec classification.\n *\n * A pubspec.yaml alone does NOT mean Flutter. The same manifest backs Flutter\n * apps, pure-Dart CLIs, packages, servers (Dart Frog / Shelf / Serverpod), and\n * MCP servers (dart_mcp / mcp_server). We read the dependencies and branch —\n * collapsing everything to \"Flutter\" is the bug this module fixes.\n *\n * Single source of truth for Dart: imported by both the v6 scanner (app-type +\n * language) and Turbo-Cat (stack fills), so the two engines agree by construction.\n */\n\nexport type DartAppType = 'mobile' | 'mcp' | 'backend' | 'cli' | 'library';\n\nexport interface DartProject {\n /** faf app_type — Flutter→mobile, Dart MCP→mcp, Dart server→backend, CLI→cli, else library. */\n appType: DartAppType;\n isFlutter: boolean;\n /** Primary framework for the stack (Flutter / Dart Frog / Serverpod / Shelf / …) or ''. */\n framework: string;\n /** Flutter state management (Riverpod / Bloc / Provider / GetX / MobX / Signals) or ''. */\n stateManagement: string;\n /** Routing (go_router / auto_route) or ''. */\n routing: string;\n /** Test framework (flutter_test / test) or ''. */\n testing: string;\n /** Human-readable rationale for the .faf `# found:` comment (Glass Hood). */\n found: string;\n}\n\n// Detection KNOWLEDGE is sourced from dart-detection.json — the single,\n// language-neutral spec faf-cli imports and faf-python-sdk vendors (A+B hybrid).\n// Bolster Dart/Flutter by editing that JSON; every engine inherits it.\nconst FLUTTER_DEPS = spec.flutterDeps as string[];\nconst MCP_DEPS = spec.mcpDeps as string[];\nconst SERVER_FRAMEWORKS = spec.serverFrameworks as Array<[string, string]>;\nconst STATE_MGMT = spec.stateManagement as Array<[string, string]>;\nconst ROUTING = spec.routing as Array<[string, string]>;\n\n/** Collect dependency names from a pubspec's dependencies / dev_dependencies sections. */\nfunction pubspecDeps(content: string): Set<string> {\n const deps = new Set<string>();\n let inDeps = false;\n for (const line of content.split('\\n')) {\n if (/^(dependencies|dev_dependencies|dependency_overrides):\\s*$/.test(line)) {\n inDeps = true;\n continue;\n }\n // A new top-level key (no leading whitespace) ends the dependency section.\n if (/^\\S/.test(line)) inDeps = false;\n if (inDeps) {\n const m = line.match(/^\\s{2}([a-zA-Z0-9_]+):/);\n if (m) deps.add(m[1].toLowerCase());\n }\n }\n return deps;\n}\n\n/** Classify a Dart/Flutter project from its pubspec.yaml. Returns null if not Dart. */\nexport function detectDartProject(dir: string): DartProject | null {\n const path = join(dir, 'pubspec.yaml');\n if (!existsSync(path)) return null;\n let content: string;\n try {\n content = readFileSync(path, 'utf-8');\n } catch {\n return null;\n }\n\n const deps = pubspecDeps(content);\n const has = (d: string) => deps.has(d.toLowerCase());\n\n // Flutter: the `flutter` SDK dep, a top-level `flutter:` section, or `sdk: flutter`.\n const isFlutter = FLUTTER_DEPS.some(has) || /^flutter:\\s*$/m.test(content) || /\\bsdk:\\s*flutter\\b/.test(content);\n\n const mcpDep = MCP_DEPS.find(has);\n const server = SERVER_FRAMEWORKS.find(([d]) => has(d));\n const stateEntry = STATE_MGMT.find(([d]) => has(d));\n const stateManagement = stateEntry ? stateEntry[1] : '';\n const routeEntry = ROUTING.find(([d]) => has(d));\n const routing = routeEntry ? routeEntry[1] : '';\n const testing = has('flutter_test') ? 'flutter_test' : has('test') ? 'test' : '';\n\n // CLI: a top-level `executables:` section, or bin/*.dart entry points.\n const hasExecutables = /^executables:\\s*$/m.test(content);\n let hasBinDart = false;\n try {\n hasBinDart = readdirSync(join(dir, 'bin')).some(f => f.endsWith('.dart'));\n } catch { /* no bin/ */ }\n const isCli = hasExecutables || hasBinDart;\n\n let appType: DartAppType;\n let framework = '';\n let found: string;\n\n if (isFlutter) {\n framework = 'Flutter';\n // App vs package: an app has lib/main.dart (the entry) or `publish_to: none`;\n // a reusable Flutter package has neither — it's publishable, lib/ exports only.\n const isApp = existsSync(join(dir, 'lib', 'main.dart')) || /^publish_to:\\s*['\"]?none\\b/m.test(content);\n if (isApp) {\n appType = 'mobile';\n found = 'pubspec.yaml (Flutter app)';\n } else {\n appType = 'library';\n found = 'pubspec.yaml (Flutter package)';\n }\n } else if (mcpDep) {\n appType = 'mcp';\n found = `pubspec.yaml + ${mcpDep} (Dart MCP server)`;\n } else if (server) {\n appType = 'backend';\n framework = server[1];\n found = `pubspec.yaml + ${server[0]} (Dart backend)`;\n } else if (isCli) {\n appType = 'cli';\n found = hasExecutables ? 'pubspec.yaml executables: (Dart CLI)' : 'pubspec.yaml + bin/*.dart (Dart CLI)';\n } else {\n appType = 'library';\n found = 'pubspec.yaml (Dart package)';\n }\n\n return { appType, isFlutter, framework, stateManagement, routing, testing, found };\n}\n",
|
|
92
92
|
"/**\n * Relentless — the 6-W human-context extractor. \"Never gives up on finding\n * context\" (the v5 RelentlessContextExtractor), rewritten v6-native + sync and\n * realigned to FAF's no-guess doctrine: it reads EVERY source (manifest +\n * README, tiered) but FILLS ONLY from sourced evidence. The v5 INFERRED tiers\n * (guess from project name / tech stack) are deliberately dropped —\n * sourced-or-empty; `faf go` is where the human confirms.\n *\n * Pairs with Turbo-Cat: Turbo-Cat fills STACK slots from file formats;\n * Relentless fills the 6 HUMAN-CONTEXT slots (who/what/why/where/when/how) by\n * reading. WHO is the target AUDIENCE (not the package author — a v5 conflation\n * this rewrite corrects).\n */\n\nimport { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\n\ninterface PkgJson {\n description?: string;\n repository?: string | { url?: string };\n homepage?: string;\n scripts?: Record<string, string>;\n keywords?: string[];\n}\n\nexport interface SeededContext {\n who?: string;\n what?: string;\n why?: string;\n where?: string;\n when?: string;\n how?: string;\n}\n\n/**\n * A sourced 6-W value WITH its provenance — where it came from and how much to\n * trust it. The honesty gate: a fill the human can audit before confirming.\n * - `source`: the artifact + locus it was relocated from, e.g.\n * 'package.json:description' or 'README:## Why'. If we can't name a source,\n * we don't emit a value — sourced-or-empty, never invented.\n * - `confidence`: 0..1 by source quality (structured field > named section >\n * heuristic match). A signal for the seeded/confirm UI, not a score.\n */\nexport interface SourcedValue {\n value: string;\n source: string;\n confidence: number;\n}\n\nexport interface SeededContextDetailed {\n who?: SourcedValue;\n what?: SourcedValue;\n why?: SourcedValue;\n where?: SourcedValue;\n when?: SourcedValue;\n how?: SourcedValue;\n}\n\nconst sv = (value: string, source: string, confidence: number): SourcedValue => ({ value, source, confidence });\n\n/**\n * The 6-W extractor WITH provenance — each slot carries {value, source,\n * confidence}. This is the auditable form: the seeded/confirm UI can show the\n * human WHERE a value was relocated from before they accept it.\n */\nexport function relentlessContextDetailed(dir: string): SeededContextDetailed {\n const pkg = readPkg(dir);\n const readme = cleanReadme(dir);\n const out: SeededContextDetailed = {};\n const set = (k: keyof SeededContextDetailed, v: SourcedValue | null): void => {\n if (v) {out[k] = v;}\n };\n\n set('what', extractWhat(pkg, readme));\n set('who', extractWho(readme));\n set('why', extractWhy(readme));\n set('where', extractWhere(pkg, readme));\n set('when', extractWhen(readme));\n set('how', extractHow(pkg, readme));\n\n return out;\n}\n\n/**\n * The bare 6-W extractor — values only, backward-compatible. A pure projection\n * of `relentlessContextDetailed` (single internal source; identical output to\n * the pre-provenance version). Existing consumers (claude-faf-mcp's faf_auto)\n * keep working unchanged; opt into provenance via the Detailed form.\n */\nexport function relentlessContext(dir: string): SeededContext {\n const detailed = relentlessContextDetailed(dir);\n const seed: SeededContext = {};\n (Object.keys(detailed) as (keyof SeededContextDetailed)[]).forEach((k) => {\n const sourced = detailed[k];\n if (sourced) {seed[k] = sourced.value;}\n });\n return seed;\n}\n\nfunction readPkg(dir: string): PkgJson | null {\n const p = join(dir, 'package.json');\n if (!existsSync(p)) {return null;}\n try {\n return JSON.parse(readFileSync(p, 'utf-8')) as PkgJson;\n } catch {\n return null;\n }\n}\n\n/** README with HTML tags + badge lines stripped (so we don't seed shields.io noise). */\nfunction cleanReadme(dir: string): string {\n const p = join(dir, 'README.md');\n if (!existsSync(p)) {return '';}\n let txt: string;\n try {\n txt = readFileSync(p, 'utf-8');\n } catch {\n return '';\n }\n return txt\n .split('\\n')\n .filter((l) => !/^\\s*\\[!\\[/.test(l) && !/^\\s*!\\[/.test(l)) // badge lines\n .join('\\n')\n .replace(/<[^>]+>/g, '') // HTML tags\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '') // inline images/badges\n .trim();\n}\n\nfunction clean(text: string): string {\n return text.replace(/\\s+/g, ' ').replace(/[#*`>]/g, '').trim().slice(0, 280);\n}\n\n/** First `## Section` body matching any of the pipe-listed names (min 20 chars).\n * Returns the cleaned body AND the matched heading (for provenance labels). */\nfunction section(readme: string, names: string): { body: string; heading: string } | null {\n const re = new RegExp(`##?\\\\s+(${names})\\\\s*\\\\n+([\\\\s\\\\S]+?)(?:\\\\n\\\\n|\\\\n##?|$)`, 'i');\n const m = readme.match(re);\n return m && m[2] && m[2].trim().length > 20 ? { body: clean(m[2]), heading: m[1].trim() } : null;\n}\n\n/** First capturing-group match across patterns whose capture meets minLen. */\nfunction firstMatch(text: string, patterns: RegExp[], minLen = 30): string | null {\n for (const re of patterns) {\n const m = text.match(re);\n if (m && m[1] && m[1].trim().length >= minLen) {return clean(m[1]);}\n }\n return null;\n}\n\nfunction extractWhat(pkg: PkgJson | null, readme: string): SourcedValue | null {\n if (pkg?.description && pkg.description.length > 20) {return sv(clean(pkg.description), 'package.json:description', 0.95);}\n const sec = section(readme, 'Purpose|What|About|Overview|Description');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n const firstReal = readme\n .split(/\\n\\s*\\n/)\n .map((p) => p.trim())\n .find((p) => p.length > 30 && !p.startsWith('#'));\n if (firstReal) {return sv(clean(firstReal), 'README:first-paragraph', 0.5);}\n const fm = firstMatch(readme, [\n /(?:core|main|primary)\\s+(?:problem|challenge)(?:\\s+is)?\\s*:?\\s*([^.\\n]{30,})/i,\n /solves?\\s+(?:the\\s+)?(?:problem\\s+of\\s+)?([^.\\n]{30,})/i,\n ]);\n return fm ? sv(fm, 'README:problem-heuristic', 0.6) : null;\n}\n\nfunction extractWho(readme: string): SourcedValue | null {\n const sec = section(readme, 'Audience|Who|Who is this for|Who it.s for');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n const fm = firstMatch(\n readme,\n [\n // optional qualifier before the role word, so \"for backend teams\" /\n // \"for indie developers\" match — not just a bare role. Dogfood-caught.\n /\\b(?:designed|built|made)\\s+for\\s+((?:[a-z][a-z-]*\\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\\n]{0,80})/i,\n /\\bfor\\s+((?:[a-z][a-z-]*\\s+)?(?:developers?|teams?|engineers?|builders?|founders?)[^.\\n]{0,80})/i,\n ],\n 8,\n );\n return fm ? sv(fm, 'README:audience-heuristic', 0.6) : null;\n}\n\nfunction extractWhy(readme: string): SourcedValue | null {\n const sec = section(readme, 'Why|Mission|Motivation|Rationale|Vision');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n // DECLARATIVE only — \"our mission is X\", \"the goal is X\", \"Mission: X\". The\n // bare noun is NOT enough: \"(name + goal + the six Ws)\" must not match (it did,\n // and grabbed the rest of the line — a real bug the provenance dogfood caught).\n const fm = firstMatch(readme, [\n /(?:our\\s+|the\\s+)?(?:mission|purpose|goal)\\s+is\\s+([^.\\n]{30,})/i,\n /\\b(?:mission|purpose|goal)\\s*:\\s*([^.\\n]{30,})/i,\n /(?:built|created|designed)\\s+(?:because|to)\\s+([^.\\n]{30,})/i,\n ]);\n return fm ? sv(fm, 'README:mission-heuristic', 0.6) : null;\n}\n\nfunction extractWhere(pkg: PkgJson | null, readme: string): SourcedValue | null {\n const repo = typeof pkg?.repository === 'string' ? pkg.repository : pkg?.repository?.url;\n if (repo) {return sv(clean(repo.replace(/^git\\+/, '').replace(/\\.git$/, '')), 'package.json:repository', 0.95);}\n if (pkg?.homepage) {return sv(clean(pkg.homepage), 'package.json:homepage', 0.9);}\n const fm = firstMatch(\n readme,\n // {3,80} + minLen 3 so short platform names (\"npm\", \"AWS\") match —\n // \"Published on npm.\" used to slip past the 4-char floor. Dogfood-caught.\n [/\\b(?:deployed|hosted|available|published)\\s+(?:on|at|via)\\s+([^.\\n]{3,80})/i],\n 3,\n );\n return fm ? sv(fm, 'README:deploy-heuristic', 0.6) : null;\n}\n\nfunction extractWhen(readme: string): SourcedValue | null {\n const sec = section(readme, 'Timeline|Status|Release|Roadmap');\n if (sec) {return sv(sec.body, `README:## ${sec.heading}`, 0.8);}\n const fm = firstMatch(\n readme,\n [\n /\\b(production\\s+since\\s+[^.\\n]{4,60})/i,\n /\\b((?:in\\s+)?(?:production|beta|alpha|development)\\s+since\\s+[^.\\n]{4,60})/i,\n /\\bsince\\s+((?:[A-Z][a-z]+\\s+)?\\d{4}[^.\\n]{0,40})/,\n ],\n 4,\n );\n return fm ? sv(fm, 'README:since-heuristic', 0.6) : null;\n}\n\nfunction extractHow(pkg: PkgJson | null, readme: string): SourcedValue | null {\n const scripts = pkg?.scripts ? Object.keys(pkg.scripts) : [];\n const run = ['start', 'dev', 'build'].filter((s) => scripts.includes(s));\n if (run.length) {return sv(clean(run.map((s) => `npm run ${s}`).join(', ')), 'package.json:scripts', 0.9);}\n const usage = section(readme, 'Usage|Getting Started|Install|Installation|Quick Start');\n if (usage) {return sv(usage.body, `README:## ${usage.heading}`, 0.8);}\n const arch = section(readme, 'Architecture|Approach|How it works|Methodology|How');\n return arch ? sv(arch.body, `README:## ${arch.heading}`, 0.7) : null;\n}\n",
|
|
93
|
+
"/**\n * The `.faf` format series a freshly written file is stamped with — the single\n * source of truth for `faf_version`.\n *\n * Everything that authors a new `.faf` (detect, recover, conductor) and the\n * `migrate` target reads it from here, so the version can never drift file-to-\n * file again. (That drift is exactly what left those paths stranded on the old\n * `2.5.0` while the ecosystem moved to the `3.0` series.)\n */\nexport const FAF_VERSION = '3.0';\n",
|
|
93
94
|
"import { existsSync, readFileSync, readdirSync } from 'fs';\nimport { join } from 'path';\nimport type { DetectedFramework, Signal } from '../core/types.js';\nimport { FRAMEWORKS } from './frameworks.js';\nimport { detectDartProject } from './dart.js';\n\ninterface PackageJson {\n name?: string;\n version?: string;\n description?: string;\n keywords?: string[];\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n scripts?: Record<string, string>;\n type?: string;\n main?: string;\n types?: string;\n exports?: unknown;\n bin?: string | Record<string, string>;\n private?: boolean;\n workspaces?: string[] | { packages?: string[] };\n files?: string[];\n}\n\n/** Read [package].name field from Cargo.toml — naive but adequate. */\nfunction readCargoName(dir: string): string | null {\n const path = join(dir, 'Cargo.toml');\n if (!existsSync(path)) return null;\n try {\n const content = readFileSync(path, 'utf-8');\n const m = content.match(/^\\s*\\[package\\][\\s\\S]*?^\\s*name\\s*=\\s*\"([^\"]+)\"/m);\n return m ? m[1] : null;\n } catch {\n return null;\n }\n}\n\n/** True if Cargo.toml declares one or more `[[bin]]` sections — Rust cli marker. */\nfunction hasCargoBin(dir: string): boolean {\n const path = join(dir, 'Cargo.toml');\n if (!existsSync(path)) return false;\n try {\n const content = readFileSync(path, 'utf-8');\n return /^\\s*\\[\\[bin\\]\\]/m.test(content);\n } catch {\n return false;\n }\n}\n\n/** Detect SDK signals — keyword-based per the SDK-priority doctrine.\n * Returns the matched evidence string, or null if no SDK signal. */\nfunction detectSdkSignal(dir: string, pkg: PackageJson | null): string | null {\n // pkg.keywords contains 'sdk'\n if (pkg?.keywords?.some(k => /^sdk(?:\\s|-|$)|\\-sdk$/i.test(k))) {\n return 'package.json keywords contains \"sdk\"';\n }\n // pkg.name contains 'sdk' or '-sdk' suffix\n if (pkg?.name && /(?:^|[-_/])sdk(?:[-_/]|$)/i.test(pkg.name)) {\n return `package.json name \"${pkg.name}\" → sdk`;\n }\n // Cargo.toml [package].name contains 'sdk'\n const cargoName = readCargoName(dir);\n if (cargoName && /(?:^|[-_])sdk(?:[-_]|$)/i.test(cargoName)) {\n return `Cargo.toml name \"${cargoName}\" → sdk`;\n }\n return null;\n}\n\n/** Browser / Chrome extension signal — a manifest.json that declares\n * `manifest_version` (the defining MV2/MV3 trait, absent from PWA web-app\n * manifests). Checked at the repo root and common source/build locations,\n * since extensions often keep the manifest under public/ or src/. */\nfunction detectExtensionSignal(dir: string): string | null {\n const candidates = [\n 'manifest.json',\n 'public/manifest.json',\n 'src/manifest.json',\n 'app/manifest.json',\n 'extension/manifest.json',\n 'dist/manifest.json',\n ];\n for (const rel of candidates) {\n const path = join(dir, rel);\n if (!existsSync(path)) continue;\n try {\n const parsed = JSON.parse(readFileSync(path, 'utf-8')) as { manifest_version?: unknown };\n if (typeof parsed.manifest_version === 'number') {\n return `${rel} manifest_version ${parsed.manifest_version} (browser extension)`;\n }\n } catch { /* not valid JSON / unreadable — keep scanning */ }\n }\n return null;\n}\n\n/** Python data-science dependency detection (pyproject.toml + requirements.txt). */\nfunction detectDataScienceSignal(dir: string): string | null {\n const dsPatterns = /(numpy|pandas|jupyter|scikit-learn|sklearn|pytorch|tensorflow|matplotlib|scipy)/i;\n const pyproject = join(dir, 'pyproject.toml');\n if (existsSync(pyproject)) {\n try {\n const content = readFileSync(pyproject, 'utf-8');\n const match = content.match(dsPatterns);\n if (match) return `pyproject.toml depends on ${match[1]}`;\n } catch { /* fall through */ }\n }\n const reqs = join(dir, 'requirements.txt');\n if (existsSync(reqs)) {\n try {\n const content = readFileSync(reqs, 'utf-8');\n const match = content.match(dsPatterns);\n if (match) return `requirements.txt contains ${match[1]}`;\n } catch { /* fall through */ }\n }\n return null;\n}\n\n/** Mobile platform signal — JS mobile (React Native / Expo / Capacitor / Ionic)\n * + native ios/android dirs. Flutter/Dart is handled by detectDartProject. */\nfunction detectMobileSignal(dir: string, pkg: PackageJson | null): string | null {\n const mobileDeps = ['react-native', 'expo', '@capacitor/core', '@ionic/core'];\n if (pkg) {\n for (const dep of mobileDeps) {\n if (pkg.dependencies?.[dep] || pkg.devDependencies?.[dep]) {\n return `${dep} dependency`;\n }\n }\n }\n if (existsSync(join(dir, 'ios')) && existsSync(join(dir, 'android'))) {\n return 'ios/ + android/ dirs';\n }\n return null;\n}\n\n/** WASM target detection (Cargo cdylib + wasm32 OR build.zig wasm OR pkg WASM build scripts). */\nfunction detectWasmSignal(dir: string, pkg: PackageJson | null): string | null {\n const cargoPath = join(dir, 'Cargo.toml');\n if (existsSync(cargoPath)) {\n try {\n const content = readFileSync(cargoPath, 'utf-8');\n // crate-type = [\"cdylib\"] is the canonical wasm-output marker\n if (/crate-type\\s*=\\s*\\[[^\\]]*\"cdylib\"/.test(content)) {\n return 'Cargo.toml crate-type = [\"cdylib\"]';\n }\n // wasm-bindgen / wasm-pack as deps\n if (/wasm-bindgen|wasm-pack/i.test(content)) {\n return 'Cargo.toml wasm-bindgen/wasm-pack';\n }\n } catch { /* fall through */ }\n }\n // Zig WASM target — build.zig with .wasm or wasm in script\n const buildZig = join(dir, 'build.zig');\n if (existsSync(buildZig)) {\n try {\n const content = readFileSync(buildZig, 'utf-8');\n if (/\\.wasm\\b|wasm32|setOutputFormat\\(\\.wasm/i.test(content)) {\n return 'build.zig wasm target';\n }\n } catch { /* fall through */ }\n }\n // pkg keywords contains 'wasm' AND no app frameworks\n if (pkg?.keywords?.some(k => /^wasm(?:-|$)|webassembly/i.test(k))) {\n return 'package.json keywords contains \"wasm\"';\n }\n return null;\n}\n\n/** Bare HTML / vanilla site detection. */\nfunction detectHtmlSignal(dir: string, pkg: PackageJson | null): string | null {\n // Must have index.html at root\n if (!existsSync(join(dir, 'index.html'))) return null;\n // Must NOT have any frontend deps (those would classify as frontend/website/etc)\n if (pkg?.dependencies || pkg?.devDependencies) {\n const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };\n const frontendDeps = ['react', 'vue', 'svelte', '@sveltejs/kit', 'next', 'nuxt', 'astro', 'gatsby', 'solid-js', 'qwik'];\n if (frontendDeps.some(d => allDeps[d])) return null;\n }\n return 'index.html (vanilla, no frontend framework)';\n}\n\n/** Documentation / spec-only repo signal. */\nfunction detectDocumentationSignal(dir: string, pkg: PackageJson | null): string | null {\n // Strong signal: name or keywords contains 'specification'\n if (pkg?.name && /specification|^@.*\\/spec/i.test(pkg.name)) {\n return `package name \"${pkg.name}\" → documentation`;\n }\n if (pkg?.keywords?.some(k => /^(specification|format-spec|standard)$/i.test(k))) {\n return 'package keywords contains \"specification\"';\n }\n // pkg.files contains only md / examples / assets (no dist/, no src/)\n if (pkg?.files && pkg.files.length > 0) {\n const sourcePatterns = /^(dist|src|lib|build|bin)\\/|\\.(js|ts|tsx|jsx|mjs|cjs|py|rs|go)$/;\n const hasSource = pkg.files.some(f => sourcePatterns.test(f));\n const hasDocs = pkg.files.some(f => /\\.(md|MD)|examples?\\//.test(f));\n if (!hasSource && hasDocs) {\n return 'package.json files = docs/examples only (no source)';\n }\n }\n return null;\n}\n\n/** Marketing / website signal — Astro/Gatsby static OR pkg keywords. */\nfunction detectWebsiteSignal(dir: string, pkg: PackageJson | null, frameworks: DetectedFramework[]): string | null {\n // Astro/Gatsby are typically used for content/marketing sites\n const astroOrGatsby = frameworks.find(f => f.slug === 'astro' || f.slug === 'gatsby');\n if (astroOrGatsby) return `${astroOrGatsby.name} (static-site framework)`;\n // pkg.keywords explicitly marketing\n if (pkg?.keywords?.some(k => /^(website|marketing|landing|brochure|portfolio)$/i.test(k))) {\n return 'package keywords contains \"website\"/\"marketing\"/\"landing\"';\n }\n return null;\n}\n\n/** SAAS shape — auth + payments + database + dashboard. */\nfunction detectSaasSignal(dir: string, pkg: PackageJson | null): string | null {\n if (!pkg) return null;\n const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };\n const authDeps = ['@clerk/nextjs', '@clerk/clerk-react', 'next-auth', '@auth/core', 'auth0', '@auth0/nextjs-auth0'];\n const paymentDeps = ['stripe', '@stripe/stripe-js', 'lemonsqueezy'];\n const hasAuth = authDeps.some(d => allDeps[d]);\n const hasPayment = paymentDeps.some(d => allDeps[d]);\n if (hasAuth && hasPayment) {\n return 'auth + payment dependencies';\n }\n return null;\n}\n\n/** MCPaaS (post-MCP platform) shape — multiple MCP signals + hosting + DB. */\nfunction detectMcpaasSignal(dir: string, pkg: PackageJson | null, frameworks: DetectedFramework[]): string | null {\n // pkg.keywords contains 'mcpaas' is the strongest signal\n if (pkg?.keywords?.some(k => /mcpaas/i.test(k))) {\n return 'package keywords contains \"mcpaas\"';\n }\n // pkg.name contains 'mcpaas'\n if (pkg?.name && /mcpaas/i.test(pkg.name)) {\n return `package name \"${pkg.name}\" → mcpaas`;\n }\n // Multi-signal: MCP framework + database + hosting (a platform, not a single server)\n const hasMcp = frameworks.some(f => f.slug === 'mcp');\n const hasDb = frameworks.some(f => f.category === 'database');\n if (hasMcp && hasDb && pkg?.dependencies && Object.keys(pkg.dependencies).length > 10) {\n return 'MCP + database + complex deps (platform shape)';\n }\n return null;\n}\n\n/** Monorepo-root — private workspace with multiple packages, no single dominant FW. */\nfunction detectMonorepoRootSignal(dir: string, pkg: PackageJson | null): string | null {\n if (!pkg?.private) return null;\n const hasWorkspaces = !!pkg.workspaces || existsSync(join(dir, 'pnpm-workspace.yaml'));\n if (!hasWorkspaces) return null;\n return 'private workspace + multi-package';\n}\n\n/** Read and parse package.json from a directory */\nexport function readPackageJson(dir: string): PackageJson | null {\n const pkgPath = join(dir, 'package.json');\n if (!existsSync(pkgPath)) return null;\n try {\n return JSON.parse(readFileSync(pkgPath, 'utf-8'));\n } catch {\n return null;\n }\n}\n\n/** Scan a directory for files matching patterns */\nfunction fileExists(dir: string, pattern: string): boolean {\n // Handle simple file checks\n if (!pattern.includes('*')) {\n return existsSync(join(dir, pattern));\n }\n\n // Handle glob patterns like \"next.config.*\" or \".github/workflows/*.yml\"\n const parts = pattern.split('/');\n if (parts.length === 1) {\n // Simple wildcard: \"next.config.*\"\n const prefix = pattern.split('*')[0];\n try {\n return readdirSync(dir).some(f => f.startsWith(prefix));\n } catch {\n return false;\n }\n }\n\n // Multi-level: \".github/workflows/*.yml\"\n const subdir = join(dir, ...parts.slice(0, -1));\n const filePattern = parts[parts.length - 1];\n const prefix = filePattern.split('*')[0];\n const suffix = filePattern.split('*')[1] || '';\n try {\n return readdirSync(subdir).some(f => f.startsWith(prefix) && f.endsWith(suffix));\n } catch {\n return false;\n }\n}\n\n/** Match a single signal against project data */\nfunction matchSignal(signal: Signal, pkg: PackageJson | null, dir: string): boolean {\n switch (signal.type) {\n case 'dependency':\n return !!(pkg?.dependencies?.[signal.key!]);\n case 'devDependency':\n return !!(pkg?.devDependencies?.[signal.key!]);\n case 'file':\n return fileExists(dir, signal.pattern!);\n default:\n return false;\n }\n}\n\n/** Detect frameworks in a directory */\nexport function detectFrameworks(dir: string): DetectedFramework[] {\n const pkg = readPackageJson(dir);\n\n return FRAMEWORKS\n .map(fw => {\n const matched = fw.signals.filter(s => matchSignal(s, pkg, dir));\n const confidence = matched.length / fw.signals.length;\n return { name: fw.name, slug: fw.slug, category: fw.category, confidence };\n })\n .filter(fw => fw.confidence > 0)\n .sort((a, b) => b.confidence - a.confidence);\n}\n\n/** Detect the primary language of a project */\nexport function detectLanguage(dir: string): string {\n const pkg = readPackageJson(dir);\n\n // Check for TypeScript\n if (pkg?.devDependencies?.typescript || pkg?.dependencies?.typescript) return 'TypeScript';\n if (existsSync(join(dir, 'tsconfig.json'))) return 'TypeScript';\n\n // Check for common language indicators\n if (existsSync(join(dir, 'Cargo.toml'))) return 'Rust';\n if (existsSync(join(dir, 'go.mod'))) return 'Go';\n if (existsSync(join(dir, 'pyproject.toml')) || existsSync(join(dir, 'setup.py'))) return 'Python';\n if (existsSync(join(dir, 'Gemfile'))) return 'Ruby';\n if (existsSync(join(dir, 'pom.xml')) || existsSync(join(dir, 'build.gradle'))) return 'Java';\n if (existsSync(join(dir, 'Package.swift'))) return 'Swift';\n if (existsSync(join(dir, 'build.zig'))) return 'Zig';\n if (existsSync(join(dir, 'pubspec.yaml'))) return 'Dart';\n\n // Fallback to JS if package.json exists\n if (pkg) return 'JavaScript';\n\n return 'Unknown';\n}\n\n/** Project-type detection result + rationale (the #found list).\n * Each `found` entry is a human-readable signal that contributed to the\n * classification — emitted as a YAML comment by `writeFaf` for transparency\n * (\"Glass Hood\" doctrine: the user sees WHY the cli classified as it did). */\nexport interface ProjectTypeDetection {\n type: string;\n /** Signals that matched, in order observed. */\n found: string[];\n}\n\n/** Detect the project type with rationale. The `found` list captures every\n * positive signal that contributed to the classification — used downstream\n * by `writeFaf` to render `# found: <list>` next to `type:` in the .faf.\n *\n * Priority order per v6.6.md doctrine (most-specific first). `about` is\n * owner-declared, not auto-detected — never matches in this function.\n * Rule: SDK keyword takes priority (sdk wins over library/cli/wasm). */\nexport function detectProjectTypeWithRationale(dir: string): ProjectTypeDetection {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const found: string[] = [];\n\n // ─── 1. documentation — spec-only / docs-only repos ─────────────────────\n const docSignal = detectDocumentationSignal(dir, pkg);\n if (docSignal) {\n found.push(docSignal);\n return { type: 'documentation', found };\n }\n\n // ─── 2. sdk — SDK keyword/structure WINS over mcpaas/saas/wasm/cli/library ─\n // wolfejam doctrine: if a repo signals SDK (name contains \"-sdk\", keywords\n // contains \"sdk\"), it's an SDK regardless of what platform/wasm/cli signals\n // would also fire. Confirmed for mcpaas-sdk (SDK FOR the platform, not the\n // platform itself).\n const sdkSignal = detectSdkSignal(dir, pkg);\n if (sdkSignal) {\n found.push(sdkSignal);\n return { type: 'sdk', found };\n }\n\n // ─── 3. extension — browser/chrome extension (manifest_version) ─────────\n // manifest_version is the unambiguous MV2/MV3 trait — must beat the framework\n // heuristics below (a framework-built extension would otherwise classify as\n // svelte/frontend/fullstack — confirmed on Stack⚡️Grabber).\n const extensionSignal = detectExtensionSignal(dir);\n if (extensionSignal) {\n found.push(extensionSignal);\n return { type: 'extension', found };\n }\n\n // ─── 4. mcpaas — post-MCP platforms (multiple MCP signals + auth + DB) ──\n const mcpaasSignal = detectMcpaasSignal(dir, pkg, frameworks);\n if (mcpaasSignal) {\n found.push(mcpaasSignal);\n return { type: 'mcpaas', found };\n }\n\n // ─── 5. saas — subscription products (auth + payment) ───────────────────\n const saasSignal = detectSaasSignal(dir, pkg);\n if (saasSignal) {\n found.push(saasSignal);\n return { type: 'saas', found };\n }\n\n // ─── 6. wasm — WASM target in build config ──────────────────────────────\n const wasmSignal = detectWasmSignal(dir, pkg);\n if (wasmSignal) {\n found.push(wasmSignal);\n return { type: 'wasm', found };\n }\n\n // ─── 7. dart/flutter — content-aware pubspec classification. The same\n // manifest backs Flutter apps, Dart CLIs, packages, servers, and MCP\n // servers — branch by deps (Flutter→mobile, Dart MCP→mcp, Dart\n // server→backend, CLI→cli, package→library). Unambiguous Dart. ──────\n const dart = detectDartProject(dir);\n if (dart) {\n found.push(dart.found);\n return { type: dart.appType, found };\n }\n\n // ─── 7b. mobile — JS mobile platform deps / native dirs ─────────────────\n const mobileSignal = detectMobileSignal(dir, pkg);\n if (mobileSignal) {\n found.push(mobileSignal);\n return { type: 'mobile', found };\n }\n\n // ─── 8. mcp — single MCP server ─────────────────────────────────────────\n const hasMcp = frameworks.some(f => f.slug === 'mcp');\n if (hasMcp) {\n found.push('MCP SDK signal');\n return { type: 'mcp', found };\n }\n\n // ─── 9. cli — Node bin / Cargo [[bin]] / Zig main.zig ───────────────────\n if (pkg?.bin) {\n found.push('package.json bin');\n return { type: 'cli', found };\n }\n if (hasCargoBin(dir)) {\n found.push('Cargo.toml [[bin]]');\n return { type: 'cli', found };\n }\n\n // Zig project-type detection — build.zig + entry-file convention.\n // src/main.zig → cli (executable); src/root.zig → library.\n // main.zig wins when both exist (typical: cli with internal lib exports).\n if (existsSync(join(dir, 'build.zig'))) {\n found.push('build.zig');\n if (existsSync(join(dir, 'src/main.zig'))) {\n found.push('src/main.zig');\n return { type: 'cli', found };\n }\n if (existsSync(join(dir, 'src/root.zig'))) {\n found.push('src/root.zig');\n return { type: 'library', found };\n }\n }\n\n // ─── 10. framework — private workspace + Svelte ──────────────────────────\n const hasSvelte = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const isPrivateWorkspace = pkg?.private === true && (\n existsSync(join(dir, 'pnpm-workspace.yaml')) ||\n pkg?.workspaces !== undefined\n );\n if (isPrivateWorkspace && hasSvelte) {\n found.push('private workspace', 'Svelte');\n return { type: 'framework', found };\n }\n\n // ─── 11. svelte — Svelte/SvelteKit app (fullstack by nature) ────────────\n if (hasSvelte) {\n found.push('Svelte/SvelteKit');\n return { type: 'svelte', found };\n }\n\n // ─── 12. enterprise — private workspace + multi-FW (more specific than monorepo-root) ──\n // Must be checked BEFORE monorepo-root (which is private workspace fallback).\n const hasFrontendFw = frameworks.some(f => f.category === 'frontend');\n const hasBackendFw = frameworks.some(f => f.category === 'backend');\n if (\n pkg?.private &&\n (pkg.workspaces || existsSync(join(dir, 'pnpm-workspace.yaml'))) &&\n hasFrontendFw && hasBackendFw\n ) {\n found.push('private workspace + frontend + backend frameworks');\n return { type: 'enterprise', found };\n }\n\n // ─── 13. monorepo-root — private workspace, multi-package, no specific FW story ──\n const monoSignal = detectMonorepoRootSignal(dir, pkg);\n if (monoSignal) {\n found.push(monoSignal);\n return { type: 'monorepo-root', found };\n }\n\n // ─── 14. website — marketing-shape (Astro/Gatsby OR keywords) ───────────\n const websiteSignal = detectWebsiteSignal(dir, pkg, frameworks);\n if (websiteSignal) {\n found.push(websiteSignal);\n return { type: 'website', found };\n }\n\n // ─── 15. fullstack — Next/Nuxt OR (frontend + backend) ──────────────────\n const hasNextOrNuxt = frameworks.some(f => f.slug === 'nextjs' || f.slug === 'nuxt');\n if (hasNextOrNuxt) {\n found.push(frameworks.find(f => f.slug === 'nextjs') ? 'Next.js' : 'Nuxt');\n return { type: 'fullstack', found };\n }\n\n const hasFrontend = frameworks.some(f => f.category === 'frontend');\n const hasBackend = frameworks.some(f => f.category === 'backend');\n if (hasFrontend && hasBackend) {\n found.push('frontend framework', 'backend framework');\n return { type: 'fullstack', found };\n }\n\n // ─── 16. frontend — frontend framework only ─────────────────────────────\n if (hasFrontend) {\n found.push('frontend framework');\n return { type: 'frontend', found };\n }\n\n // ─── 17. backend — backend framework only ───────────────────────────────\n if (hasBackend) {\n found.push('backend framework');\n return { type: 'backend', found };\n }\n\n // ─── 18. data-science — Python DS deps (numpy/pandas/jupyter/sklearn) ───\n const dsSignal = detectDataScienceSignal(dir);\n if (dsSignal) {\n found.push(dsSignal);\n return { type: 'data-science', found };\n }\n\n // ─── 19. html — bare index.html, no framework ──────────────────────────\n const htmlSignal = detectHtmlSignal(dir, pkg);\n if (htmlSignal) {\n found.push(htmlSignal);\n return { type: 'html', found };\n }\n\n // ─── 20. library — fallback (has main/exports but no bin) ──────────────\n if (pkg?.main && !pkg?.bin) {\n found.push('package.json main (no bin)');\n return { type: 'library', found };\n }\n\n // Default — bare repo with no classifying signals\n found.push('no classifying signals — fallback');\n return { type: 'library', found };\n}\n\n/** Detect the project type for slot mapping. Backward-compatible wrapper —\n * returns just the type string. New code should prefer\n * `detectProjectTypeWithRationale` to access the `#found` rationale. */\nexport function detectProjectType(dir: string): string {\n return detectProjectTypeWithRationale(dir).type;\n}\n\n/** Detect the runtime */\nexport function detectRuntime(dir: string): string {\n if (existsSync(join(dir, 'bunfig.toml'))) return 'Bun';\n if (existsSync(join(dir, 'deno.json')) || existsSync(join(dir, 'deno.jsonc'))) return 'Deno';\n if (readPackageJson(dir)) return 'Node.js';\n if (existsSync(join(dir, 'Cargo.toml'))) return 'Rust';\n if (existsSync(join(dir, 'go.mod'))) return 'Go';\n if (existsSync(join(dir, 'pubspec.yaml'))) return 'Dart';\n return 'Unknown';\n}\n\n/** Detect package manager */\nexport function detectPackageManager(dir: string): string {\n if (existsSync(join(dir, 'pubspec.yaml'))) return 'pub';\n if (existsSync(join(dir, 'bun.lockb')) || existsSync(join(dir, 'bun.lock'))) return 'bun';\n if (existsSync(join(dir, 'pnpm-lock.yaml'))) return 'pnpm';\n if (existsSync(join(dir, 'yarn.lock'))) return 'yarn';\n if (existsSync(join(dir, 'package-lock.json'))) return 'npm';\n return 'npm';\n}\n\n/** Detect CI/CD */\nexport function detectCicd(dir: string): string | null {\n if (existsSync(join(dir, '.github/workflows'))) return 'GitHub Actions';\n if (existsSync(join(dir, '.gitlab-ci.yml'))) return 'GitLab CI';\n if (existsSync(join(dir, '.circleci'))) return 'CircleCI';\n if (existsSync(join(dir, 'Jenkinsfile'))) return 'Jenkins';\n return null;\n}\n\n/** Detect hosting platform */\nexport function detectHosting(dir: string): string | null {\n if (existsSync(join(dir, 'vercel.json'))) return 'Vercel';\n if (existsSync(join(dir, 'netlify.toml'))) return 'Netlify';\n if (existsSync(join(dir, 'wrangler.toml'))) return 'Cloudflare';\n if (existsSync(join(dir, 'Dockerfile'))) return 'Docker';\n if (existsSync(join(dir, 'fly.toml'))) return 'Fly.io';\n if (existsSync(join(dir, 'render.yaml'))) return 'Render';\n return null;\n}\n\n/** Detect SvelteKit adapter from svelte.config.js */\nexport function detectSvelteAdapter(dir: string): string | null {\n const configPath = join(dir, 'svelte.config.js');\n if (!existsSync(configPath)) return null;\n try {\n const content = readFileSync(configPath, 'utf-8');\n // Match adapter imports: import adapter from '@sveltejs/adapter-vercel'\n // Or: import { adapter } from '@sveltejs/adapter-node'\n // Or: const adapter = require('@sveltejs/adapter-static')\n const adapterMatch = content.match(/@sveltejs\\/adapter-(\\w+)/);\n if (adapterMatch) {\n const adapter = adapterMatch[1];\n switch (adapter) {\n case 'vercel': return 'Vercel';\n case 'node': return 'Node';\n case 'static': return 'Static';\n case 'cloudflare': return 'Cloudflare';\n case 'netlify': return 'Netlify';\n case 'auto': return 'Auto';\n default: return adapter;\n }\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/** Detect build tool */\nexport function detectBuildTool(dir: string): string | null {\n const pkg = readPackageJson(dir);\n if (pkg?.devDependencies?.vite || pkg?.dependencies?.vite) return 'Vite';\n if (pkg?.devDependencies?.webpack || pkg?.dependencies?.webpack) return 'webpack';\n if (pkg?.devDependencies?.esbuild || pkg?.dependencies?.esbuild) return 'esbuild';\n if (existsSync(join(dir, 'tsconfig.json')) && pkg?.devDependencies?.typescript) return 'TypeScript (tsc)';\n return null;\n}\n\n/* ─── FAFB section helpers (top-level YAML keys read by compile_fafb) ───────\n *\n * These detect content for the FAFB binary's TECH_STACK, KEY_FILES, and\n * COMMANDS sections. ARCHITECTURE and CONTEXT are deliberately left empty\n * for user fill (architecture overlaps with human_context.how; context is\n * deliberately free-form additional signal beyond the 6Ws).\n */\n\n/** Detect a list of important file paths for the KEY_FILES FAFB section.\n * Returns up to ~10 entries, ordered by canonical importance. */\nexport function detectKeyFiles(dir: string): string[] {\n const candidates = [\n // Manifests\n 'package.json', 'Cargo.toml', 'pyproject.toml', 'go.mod',\n 'build.zig', 'build.zig.zon',\n // Entry points (TS/JS)\n 'src/index.ts', 'src/index.js', 'src/main.ts', 'src/cli.ts',\n // Entry points (Rust)\n 'src/main.rs', 'src/lib.rs',\n // Entry points (Zig)\n 'src/main.zig', 'src/root.zig',\n // Entry points (Python)\n 'src/__init__.py', 'main.py', '__main__.py',\n // Entry points (Go)\n 'main.go', 'cmd/main.go',\n // Specs / docs\n 'README.md', 'SPECIFICATION.md', 'BINARY-FORMAT.md',\n // Config\n 'tsconfig.json', 'wrangler.toml', 'vercel.json',\n ];\n return candidates.filter(f => existsSync(join(dir, f)));\n}\n\n/** Detect build/test/lint commands for the COMMANDS FAFB section.\n * Returns a Record<string, string> mapping command name → shell command. */\nexport function detectCommands(dir: string, pkg: PackageJson | null): Record<string, string> {\n const commands: Record<string, string> = {};\n\n // From package.json scripts (most reliable)\n if (pkg?.scripts) {\n for (const key of ['build', 'test', 'lint', 'dev', 'start']) {\n if (pkg.scripts[key]) {\n // Determine the runner — prefer bun if available, else npm\n const runner = existsSync(join(dir, 'bun.lock')) || existsSync(join(dir, 'bun.lockb'))\n ? 'bun run'\n : 'npm run';\n commands[key] = `${runner} ${key}`;\n }\n }\n }\n\n // Cargo defaults (Rust)\n if (existsSync(join(dir, 'Cargo.toml'))) {\n if (!commands.build) commands.build = 'cargo build --release';\n if (!commands.test) commands.test = 'cargo test';\n if (!commands.lint) commands.lint = 'cargo clippy';\n }\n\n // Zig defaults\n if (existsSync(join(dir, 'build.zig'))) {\n if (!commands.build) commands.build = 'zig build';\n if (!commands.test) commands.test = 'zig build test';\n }\n\n // Go defaults\n if (existsSync(join(dir, 'go.mod'))) {\n if (!commands.build) commands.build = 'go build ./...';\n if (!commands.test) commands.test = 'go test ./...';\n }\n\n // Python defaults (if pytest is detectable)\n if (existsSync(join(dir, 'pyproject.toml')) || existsSync(join(dir, 'pytest.ini'))) {\n if (!commands.test) commands.test = 'pytest';\n }\n\n return commands;\n}\n\n/** Detect a tech-stack list for the TECH_STACK FAFB section.\n * Combines language + frameworks + runtime into a flat list of strings\n * (matching the canonical xai-faf-rust project.faf shape). */\nexport function detectTechStack(\n dir: string,\n pkg: PackageJson | null,\n frameworks: DetectedFramework[],\n language: string,\n): string[] {\n const stack: string[] = [];\n\n // Language goes first\n if (language && language !== 'Unknown') stack.push(language);\n\n // Notable frameworks (frontend / backend / database / build)\n const notableCategories = new Set(['frontend', 'backend', 'database', 'build', 'css', 'state', 'monorepo']);\n for (const fw of frameworks) {\n if (notableCategories.has(fw.category)) {\n stack.push(fw.name);\n }\n }\n\n // Runtime if non-trivial (Node.js by default for JS — only call out Bun/Deno/etc.)\n if (existsSync(join(dir, 'bunfig.toml'))) stack.push('Bun');\n else if (existsSync(join(dir, 'deno.json')) || existsSync(join(dir, 'deno.jsonc'))) stack.push('Deno');\n\n // Top deps from package.json/Cargo.toml — only if stack is still sparse\n if (stack.length < 3 && pkg?.dependencies) {\n const topDeps = Object.keys(pkg.dependencies).slice(0, 5);\n for (const dep of topDeps) {\n if (!stack.some(s => s.toLowerCase().includes(dep.toLowerCase()))) {\n stack.push(dep);\n }\n }\n }\n\n return stack;\n}\n",
|
|
94
95
|
"import type { FrameworkSignature } from '../core/types.js';\n\n/** Data-driven framework signatures — one scanner evaluates all */\nexport const FRAMEWORKS: FrameworkSignature[] = [\n // Frontend Frameworks\n { name: 'Next.js', slug: 'nextjs', category: 'frontend', signals: [\n { type: 'dependency', key: 'next' },\n { type: 'file', pattern: 'next.config.*' },\n ]},\n { name: 'React', slug: 'react', category: 'frontend', signals: [\n { type: 'dependency', key: 'react' },\n ]},\n { name: 'SvelteKit', slug: 'sveltekit', category: 'frontend', signals: [\n { type: 'dependency', key: '@sveltejs/kit' },\n { type: 'file', pattern: 'svelte.config.*' },\n ]},\n { name: 'Svelte', slug: 'svelte', category: 'frontend', signals: [\n { type: 'dependency', key: 'svelte' },\n { type: 'devDependency', key: 'svelte' },\n ]},\n { name: 'Vue.js', slug: 'vue', category: 'frontend', signals: [\n { type: 'dependency', key: 'vue' },\n ]},\n { name: 'Nuxt', slug: 'nuxt', category: 'frontend', signals: [\n { type: 'dependency', key: 'nuxt' },\n { type: 'file', pattern: 'nuxt.config.*' },\n ]},\n { name: 'Angular', slug: 'angular', category: 'frontend', signals: [\n { type: 'dependency', key: '@angular/core' },\n { type: 'file', pattern: 'angular.json' },\n ]},\n { name: 'Astro', slug: 'astro', category: 'frontend', signals: [\n { type: 'dependency', key: 'astro' },\n { type: 'file', pattern: 'astro.config.*' },\n ]},\n { name: 'Solid', slug: 'solid', category: 'frontend', signals: [\n { type: 'dependency', key: 'solid-js' },\n ]},\n { name: 'Remix', slug: 'remix', category: 'frontend', signals: [\n { type: 'dependency', key: '@remix-run/react' },\n ]},\n { name: 'Gatsby', slug: 'gatsby', category: 'frontend', signals: [\n { type: 'dependency', key: 'gatsby' },\n { type: 'file', pattern: 'gatsby-config.*' },\n ]},\n { name: 'Qwik', slug: 'qwik', category: 'frontend', signals: [\n { type: 'dependency', key: '@builder.io/qwik' },\n ]},\n\n // SvelteKit Adapters (hosting signal)\n { name: 'Vercel (SvelteKit)', slug: 'adapter-vercel', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-vercel' },\n { type: 'devDependency', key: '@sveltejs/adapter-vercel' },\n ]},\n { name: 'Node (SvelteKit)', slug: 'adapter-node', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-node' },\n { type: 'devDependency', key: '@sveltejs/adapter-node' },\n ]},\n { name: 'Static (SvelteKit)', slug: 'adapter-static', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-static' },\n { type: 'devDependency', key: '@sveltejs/adapter-static' },\n ]},\n { name: 'Cloudflare (SvelteKit)', slug: 'adapter-cloudflare', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-cloudflare' },\n { type: 'devDependency', key: '@sveltejs/adapter-cloudflare' },\n ]},\n { name: 'Netlify (SvelteKit)', slug: 'adapter-netlify', category: 'hosting', signals: [\n { type: 'dependency', key: '@sveltejs/adapter-netlify' },\n { type: 'devDependency', key: '@sveltejs/adapter-netlify' },\n ]},\n\n // CSS Frameworks\n { name: 'Tailwind CSS', slug: 'tailwind', category: 'css', signals: [\n { type: 'dependency', key: 'tailwindcss' },\n { type: 'devDependency', key: 'tailwindcss' },\n { type: 'file', pattern: 'tailwind.config.*' },\n ]},\n { name: 'Bootstrap', slug: 'bootstrap', category: 'css', signals: [\n { type: 'dependency', key: 'bootstrap' },\n ]},\n { name: 'Styled Components', slug: 'styled-components', category: 'css', signals: [\n { type: 'dependency', key: 'styled-components' },\n ]},\n\n // UI Libraries\n { name: 'shadcn/ui', slug: 'shadcn', category: 'ui', signals: [\n { type: 'file', pattern: 'components.json' },\n { type: 'dependency', key: '@radix-ui/react-dialog' },\n ]},\n { name: 'Material UI', slug: 'mui', category: 'ui', signals: [\n { type: 'dependency', key: '@mui/material' },\n ]},\n { name: 'Chakra UI', slug: 'chakra', category: 'ui', signals: [\n { type: 'dependency', key: '@chakra-ui/react' },\n ]},\n { name: 'Ant Design', slug: 'antd', category: 'ui', signals: [\n { type: 'dependency', key: 'antd' },\n ]},\n\n // State Management\n { name: 'Redux', slug: 'redux', category: 'state', signals: [\n { type: 'dependency', key: '@reduxjs/toolkit' },\n ]},\n { name: 'Zustand', slug: 'zustand', category: 'state', signals: [\n { type: 'dependency', key: 'zustand' },\n ]},\n { name: 'Jotai', slug: 'jotai', category: 'state', signals: [\n { type: 'dependency', key: 'jotai' },\n ]},\n { name: 'Pinia', slug: 'pinia', category: 'state', signals: [\n { type: 'dependency', key: 'pinia' },\n ]},\n\n // Backend Frameworks\n { name: 'Express', slug: 'express', category: 'backend', signals: [\n { type: 'dependency', key: 'express' },\n ]},\n { name: 'Fastify', slug: 'fastify', category: 'backend', signals: [\n { type: 'dependency', key: 'fastify' },\n ]},\n { name: 'Hono', slug: 'hono', category: 'backend', signals: [\n { type: 'dependency', key: 'hono' },\n ]},\n { name: 'Elysia', slug: 'elysia', category: 'backend', signals: [\n { type: 'dependency', key: 'elysia' },\n ]},\n { name: 'NestJS', slug: 'nestjs', category: 'backend', signals: [\n { type: 'dependency', key: '@nestjs/core' },\n ]},\n { name: 'Koa', slug: 'koa', category: 'backend', signals: [\n { type: 'dependency', key: 'koa' },\n ]},\n { name: 'Django', slug: 'django', category: 'backend', signals: [\n { type: 'file', pattern: 'manage.py' },\n { type: 'file', pattern: 'settings.py' },\n ]},\n { name: 'Flask', slug: 'flask', category: 'backend', signals: [\n { type: 'file', pattern: 'app.py' },\n ]},\n { name: 'FastAPI', slug: 'fastapi', category: 'backend', signals: [\n { type: 'file', pattern: 'main.py' },\n ]},\n { name: 'Rails', slug: 'rails', category: 'backend', signals: [\n { type: 'file', pattern: 'Gemfile' },\n { type: 'file', pattern: 'config/routes.rb' },\n ]},\n { name: 'Spring Boot', slug: 'spring', category: 'backend', signals: [\n { type: 'file', pattern: 'pom.xml' },\n { type: 'file', pattern: 'build.gradle' },\n ]},\n\n // Databases\n { name: 'Prisma', slug: 'prisma', category: 'database', signals: [\n { type: 'dependency', key: 'prisma' },\n { type: 'devDependency', key: 'prisma' },\n { type: 'file', pattern: 'prisma/schema.prisma' },\n ]},\n { name: 'Drizzle', slug: 'drizzle', category: 'database', signals: [\n { type: 'dependency', key: 'drizzle-orm' },\n { type: 'file', pattern: 'drizzle.config.*' },\n ]},\n { name: 'TypeORM', slug: 'typeorm', category: 'database', signals: [\n { type: 'dependency', key: 'typeorm' },\n ]},\n { name: 'Mongoose', slug: 'mongoose', category: 'database', signals: [\n { type: 'dependency', key: 'mongoose' },\n ]},\n\n // Build Tools\n { name: 'Vite', slug: 'vite', category: 'build', signals: [\n { type: 'dependency', key: 'vite' },\n { type: 'devDependency', key: 'vite' },\n { type: 'file', pattern: 'vite.config.*' },\n ]},\n { name: 'webpack', slug: 'webpack', category: 'build', signals: [\n { type: 'dependency', key: 'webpack' },\n { type: 'devDependency', key: 'webpack' },\n { type: 'file', pattern: 'webpack.config.*' },\n ]},\n { name: 'esbuild', slug: 'esbuild', category: 'build', signals: [\n { type: 'dependency', key: 'esbuild' },\n { type: 'devDependency', key: 'esbuild' },\n ]},\n { name: 'Turbopack', slug: 'turbopack', category: 'build', signals: [\n { type: 'file', pattern: 'turbo.json' },\n ]},\n\n // Testing\n { name: 'Jest', slug: 'jest', category: 'testing', signals: [\n { type: 'devDependency', key: 'jest' },\n { type: 'file', pattern: 'jest.config.*' },\n ]},\n { name: 'Vitest', slug: 'vitest', category: 'testing', signals: [\n { type: 'devDependency', key: 'vitest' },\n ]},\n { name: 'Playwright', slug: 'playwright', category: 'testing', signals: [\n { type: 'devDependency', key: '@playwright/test' },\n { type: 'file', pattern: 'playwright.config.*' },\n ]},\n { name: 'Cypress', slug: 'cypress', category: 'testing', signals: [\n { type: 'devDependency', key: 'cypress' },\n { type: 'file', pattern: 'cypress.config.*' },\n ]},\n\n // Monorepo Tools\n { name: 'Turborepo', slug: 'turborepo', category: 'monorepo', signals: [\n { type: 'devDependency', key: 'turbo' },\n { type: 'file', pattern: 'turbo.json' },\n ]},\n { name: 'Nx', slug: 'nx', category: 'monorepo', signals: [\n { type: 'devDependency', key: 'nx' },\n { type: 'file', pattern: 'nx.json' },\n ]},\n { name: 'Lerna', slug: 'lerna', category: 'monorepo', signals: [\n { type: 'devDependency', key: 'lerna' },\n { type: 'file', pattern: 'lerna.json' },\n ]},\n\n // MCP / AI\n { name: 'MCP SDK', slug: 'mcp', category: 'ai', signals: [\n { type: 'dependency', key: '@modelcontextprotocol/sdk' },\n ]},\n { name: 'Anthropic SDK', slug: 'anthropic', category: 'ai', signals: [\n { type: 'dependency', key: '@anthropic-ai/sdk' },\n ]},\n { name: 'OpenAI SDK', slug: 'openai', category: 'ai', signals: [\n { type: 'dependency', key: 'openai' },\n ]},\n { name: 'LangChain', slug: 'langchain', category: 'ai', signals: [\n { type: 'dependency', key: 'langchain' },\n ]},\n\n // Hosting / Deploy\n { name: 'Vercel', slug: 'vercel', category: 'hosting', signals: [\n { type: 'file', pattern: 'vercel.json' },\n ]},\n { name: 'Netlify', slug: 'netlify', category: 'hosting', signals: [\n { type: 'file', pattern: 'netlify.toml' },\n ]},\n { name: 'Docker', slug: 'docker', category: 'hosting', signals: [\n { type: 'file', pattern: 'Dockerfile' },\n { type: 'file', pattern: 'docker-compose.yml' },\n ]},\n { name: 'Cloudflare Workers', slug: 'cloudflare', category: 'hosting', signals: [\n { type: 'file', pattern: 'wrangler.toml' },\n { type: 'dependency', key: 'wrangler' },\n ]},\n\n // CI/CD\n { name: 'GitHub Actions', slug: 'github-actions', category: 'cicd', signals: [\n { type: 'file', pattern: '.github/workflows/*.yml' },\n ]},\n\n // Commander (CLI indicator)\n { name: 'Commander.js', slug: 'commander', category: 'cli', signals: [\n { type: 'dependency', key: 'commander' },\n ]},\n];\n",
|
|
95
|
-
"import type { FafData } from '../core/types.js';\nimport { APP_TYPE_CATEGORIES, SLOTS } from '../core/slots.js';\nimport {\n detectFrameworks,\n detectLanguage,\n detectProjectTypeWithRationale,\n detectRuntime,\n detectPackageManager,\n detectCicd,\n detectHosting,\n detectBuildTool,\n detectSvelteAdapter,\n readPackageJson,\n detectKeyFiles,\n detectCommands,\n detectTechStack,\n} from './scanner.js';\n\n/** Auto-detect project stack and generate .faf data */\nexport function detectStack(dir: string): FafData {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const language = detectLanguage(dir);\n const detection = detectProjectTypeWithRationale(dir);\n const projectType = detection.type;\n const runtime = detectRuntime(dir);\n const pkgManager = detectPackageManager(dir);\n const cicd = detectCicd(dir);\n const hosting = detectHosting(dir);\n const buildTool = detectBuildTool(dir);\n\n // Find specific frameworks by category\n const frontendFw = frameworks.find(f => f.category === 'frontend');\n const cssFw = frameworks.find(f => f.category === 'css');\n const uiFw = frameworks.find(f => f.category === 'ui');\n const stateFw = frameworks.find(f => f.category === 'state');\n const backendFw = frameworks.find(f => f.category === 'backend');\n const dbFw = frameworks.find(f => f.category === 'database');\n\n // Determine which categories are active\n const activeCategories = APP_TYPE_CATEGORIES[projectType] || APP_TYPE_CATEGORIES.library;\n\n // Framework sub-type detection (framework → svelte, framework → nextjs, etc.)\n const isFramework = projectType === 'framework';\n const hasSvelteSignal = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const frameworkSubType = isFramework && hasSvelteSignal ? 'svelte' : (isFramework ? null : null);\n\n // Svelte-aware: fires for svelte apps AND framework→svelte repos\n const isSvelte = projectType === 'svelte' || frameworkSubType === 'svelte';\n const svelteAdapter = isSvelte ? detectSvelteAdapter(dir) : null;\n const hasSvelteKit = isSvelte && frameworks.some(f => f.slug === 'sveltekit');\n\n // Framework repos: slots that never apply to framework source code\n const frameworkIgnoredSlots = new Set(['css_framework', 'ui_library', 'database', 'connection', 'hosting']);\n\n // Build stack with slotignored for inactive categories\n const stack: Record<string, string> = {};\n const stackSlots = SLOTS.filter(s => s.path.startsWith('stack.'));\n\n for (const slot of stackSlots) {\n const field = slot.path.replace('stack.', '');\n if (!activeCategories.includes(slot.category)) {\n stack[field] = 'slotignored';\n continue;\n }\n\n // Framework repos: slotignore slots that never apply to framework source code\n if (isFramework && frameworkIgnoredSlots.has(field)) {\n stack[field] = 'slotignored';\n continue;\n }\n\n // Auto-fill detected values (Svelte-aware overrides applied inline)\n switch (field) {\n case 'frontend': stack[field] = frontendFw?.name ?? (projectType === 'cli' ? 'CLI' : ''); break;\n case 'css_framework': stack[field] = cssFw?.name ?? ''; break;\n case 'ui_library': stack[field] = uiFw?.name ?? ''; break;\n case 'state_management':\n // Svelte 5 uses Runes — no external state library needed\n stack[field] = isSvelte ? (stateFw?.name ?? 'Runes') : (stateFw?.name ?? '');\n break;\n case 'backend':\n // SvelteKit IS the backend (server routes, form actions, hooks)\n stack[field] = isSvelte ? (hasSvelteKit ? 'SvelteKit' : (backendFw?.name ?? '')) : (backendFw?.name ?? '');\n break;\n case 'api_type':\n // SvelteKit uses form actions + server routes\n stack[field] = hasSvelteKit ? 'Server Routes' : '';\n break;\n case 'runtime': stack[field] = runtime !== 'Unknown' ? runtime : ''; break;\n case 'database':\n // Only populate if ORM actually detected\n stack[field] = dbFw?.name ?? '';\n break;\n case 'connection':\n stack[field] = dbFw?.name ?? '';\n break;\n case 'hosting':\n // Svelte adapter → hosting platform (adapter-vercel = Vercel, etc.)\n if (isSvelte && svelteAdapter) {\n stack[field] = svelteAdapter;\n } else {\n stack[field] = hosting ?? '';\n }\n break;\n case 'build':\n // SvelteKit always uses Vite\n stack[field] = isSvelte ? 'Vite' : (buildTool ?? '');\n break;\n case 'cicd': stack[field] = cicd ?? ''; break;\n case 'package_manager': stack[field] = pkgManager; break;\n default: stack[field] = ''; break;\n }\n }\n\n // Build monorepo section\n const monorepo: Record<string, string> = {};\n const monorepoSlots = SLOTS.filter(s => s.path.startsWith('monorepo.'));\n for (const slot of monorepoSlots) {\n const field = slot.path.replace('monorepo.', '');\n if (!activeCategories.includes(slot.category)) {\n monorepo[field] = 'slotignored';\n } else {\n monorepo[field] = '';\n }\n }\n\n // Build project section\n const project: Record<string, string> = {\n name: pkg?.name ?? dir.split('/').pop() ?? 'project',\n goal: pkg?.description ?? '',\n main_language: language,\n type: projectType,\n };\n if (isFramework && frameworkSubType) {\n project.framework = frameworkSubType;\n }\n\n // FAFB top-level sections (read by faf-rust-sdk's compile_fafb).\n // Without these, every cli-generated .fafb is META-only.\n // Per v6.6.md + faf-auto-no-guess-no-slop:\n // tech_stack/key_files/commands auto-populate from observable signals;\n // architecture/context stay empty (user fill — architecture overlaps with\n // human_context.how, context is free-form additional signal).\n const techStack = detectTechStack(dir, pkg, frameworks, language);\n const keyFiles = detectKeyFiles(dir);\n const commands = detectCommands(dir, pkg);\n\n const result: FafData = {\n faf_version:
|
|
96
|
+
"import type { FafData } from '../core/types.js';\nimport { APP_TYPE_CATEGORIES, SLOTS } from '../core/slots.js';\nimport { FAF_VERSION } from '../core/version.js';\nimport {\n detectFrameworks,\n detectLanguage,\n detectProjectTypeWithRationale,\n detectRuntime,\n detectPackageManager,\n detectCicd,\n detectHosting,\n detectBuildTool,\n detectSvelteAdapter,\n readPackageJson,\n detectKeyFiles,\n detectCommands,\n detectTechStack,\n} from './scanner.js';\n\n/** Auto-detect project stack and generate .faf data */\nexport function detectStack(dir: string): FafData {\n const pkg = readPackageJson(dir);\n const frameworks = detectFrameworks(dir);\n const language = detectLanguage(dir);\n const detection = detectProjectTypeWithRationale(dir);\n const projectType = detection.type;\n const runtime = detectRuntime(dir);\n const pkgManager = detectPackageManager(dir);\n const cicd = detectCicd(dir);\n const hosting = detectHosting(dir);\n const buildTool = detectBuildTool(dir);\n\n // Find specific frameworks by category\n const frontendFw = frameworks.find(f => f.category === 'frontend');\n const cssFw = frameworks.find(f => f.category === 'css');\n const uiFw = frameworks.find(f => f.category === 'ui');\n const stateFw = frameworks.find(f => f.category === 'state');\n const backendFw = frameworks.find(f => f.category === 'backend');\n const dbFw = frameworks.find(f => f.category === 'database');\n\n // Determine which categories are active\n const activeCategories = APP_TYPE_CATEGORIES[projectType] || APP_TYPE_CATEGORIES.library;\n\n // Framework sub-type detection (framework → svelte, framework → nextjs, etc.)\n const isFramework = projectType === 'framework';\n const hasSvelteSignal = frameworks.some(f => f.slug === 'svelte' || f.slug === 'sveltekit');\n const frameworkSubType = isFramework && hasSvelteSignal ? 'svelte' : (isFramework ? null : null);\n\n // Svelte-aware: fires for svelte apps AND framework→svelte repos\n const isSvelte = projectType === 'svelte' || frameworkSubType === 'svelte';\n const svelteAdapter = isSvelte ? detectSvelteAdapter(dir) : null;\n const hasSvelteKit = isSvelte && frameworks.some(f => f.slug === 'sveltekit');\n\n // Framework repos: slots that never apply to framework source code\n const frameworkIgnoredSlots = new Set(['css_framework', 'ui_library', 'database', 'connection', 'hosting']);\n\n // Build stack with slotignored for inactive categories\n const stack: Record<string, string> = {};\n const stackSlots = SLOTS.filter(s => s.path.startsWith('stack.'));\n\n for (const slot of stackSlots) {\n const field = slot.path.replace('stack.', '');\n if (!activeCategories.includes(slot.category)) {\n stack[field] = 'slotignored';\n continue;\n }\n\n // Framework repos: slotignore slots that never apply to framework source code\n if (isFramework && frameworkIgnoredSlots.has(field)) {\n stack[field] = 'slotignored';\n continue;\n }\n\n // Auto-fill detected values (Svelte-aware overrides applied inline)\n switch (field) {\n case 'frontend': stack[field] = frontendFw?.name ?? (projectType === 'cli' ? 'CLI' : ''); break;\n case 'css_framework': stack[field] = cssFw?.name ?? ''; break;\n case 'ui_library': stack[field] = uiFw?.name ?? ''; break;\n case 'state_management':\n // Svelte 5 uses Runes — no external state library needed\n stack[field] = isSvelte ? (stateFw?.name ?? 'Runes') : (stateFw?.name ?? '');\n break;\n case 'backend':\n // SvelteKit IS the backend (server routes, form actions, hooks)\n stack[field] = isSvelte ? (hasSvelteKit ? 'SvelteKit' : (backendFw?.name ?? '')) : (backendFw?.name ?? '');\n break;\n case 'api_type':\n // SvelteKit uses form actions + server routes\n stack[field] = hasSvelteKit ? 'Server Routes' : '';\n break;\n case 'runtime': stack[field] = runtime !== 'Unknown' ? runtime : ''; break;\n case 'database':\n // Only populate if ORM actually detected\n stack[field] = dbFw?.name ?? '';\n break;\n case 'connection':\n stack[field] = dbFw?.name ?? '';\n break;\n case 'hosting':\n // Svelte adapter → hosting platform (adapter-vercel = Vercel, etc.)\n if (isSvelte && svelteAdapter) {\n stack[field] = svelteAdapter;\n } else {\n stack[field] = hosting ?? '';\n }\n break;\n case 'build':\n // SvelteKit always uses Vite\n stack[field] = isSvelte ? 'Vite' : (buildTool ?? '');\n break;\n case 'cicd': stack[field] = cicd ?? ''; break;\n case 'package_manager': stack[field] = pkgManager; break;\n default: stack[field] = ''; break;\n }\n }\n\n // Build monorepo section\n const monorepo: Record<string, string> = {};\n const monorepoSlots = SLOTS.filter(s => s.path.startsWith('monorepo.'));\n for (const slot of monorepoSlots) {\n const field = slot.path.replace('monorepo.', '');\n if (!activeCategories.includes(slot.category)) {\n monorepo[field] = 'slotignored';\n } else {\n monorepo[field] = '';\n }\n }\n\n // Build project section\n const project: Record<string, string> = {\n name: pkg?.name ?? dir.split('/').pop() ?? 'project',\n goal: pkg?.description ?? '',\n main_language: language,\n type: projectType,\n };\n if (isFramework && frameworkSubType) {\n project.framework = frameworkSubType;\n }\n\n // FAFB top-level sections (read by faf-rust-sdk's compile_fafb).\n // Without these, every cli-generated .fafb is META-only.\n // Per v6.6.md + faf-auto-no-guess-no-slop:\n // tech_stack/key_files/commands auto-populate from observable signals;\n // architecture/context stay empty (user fill — architecture overlaps with\n // human_context.how, context is free-form additional signal).\n const techStack = detectTechStack(dir, pkg, frameworks, language);\n const keyFiles = detectKeyFiles(dir);\n const commands = detectCommands(dir, pkg);\n\n const result: FafData = {\n faf_version: FAF_VERSION,\n project,\n stack,\n human_context: {\n who: '',\n what: pkg?.description ?? '',\n why: '',\n where: '',\n when: '',\n how: '',\n },\n monorepo,\n // Runtime-only meta. Stripped before YAML serialization by writeFaf,\n // which uses _meta.found to inject `# found: <list>` next to `type:`.\n // Glass Hood doctrine — the user sees WHY the cli classified as it did.\n _meta: { found: detection.found },\n };\n\n // Only emit FAFB top-level keys if non-empty (no slop / empty-list pollution)\n if (techStack.length > 0) result.tech_stack = techStack;\n if (keyFiles.length > 0) result.key_files = keyFiles;\n if (Object.keys(commands).length > 0) result.commands = commands;\n\n return result;\n}\n",
|
|
96
97
|
"/**\n * README.md interrogation — extract slot content from semantic markdown anchors.\n *\n * Per faf-auto-no-guess-no-slop:\n * Each extractor looks for a specific anchor (heading, structural pattern).\n * If the anchor is missing or the content fails validation → return undefined.\n * No slot is synthesized from another slot's content.\n */\n\nimport { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { type ExtractedContext, isValidExtraction } from './types.js';\n\n/** Strip badge / image lines + blank lines from the top of a README */\nfunction stripPreamble(content: string): string {\n const lines = content.split('\\n');\n let i = 0;\n // Skip the title line (first H1) and any blank/badge lines after it\n while (i < lines.length && /^(#\\s|$)/.test(lines[i].trim())) i++;\n while (i < lines.length) {\n const line = lines[i].trim();\n // Badge lines: [](url) — image links inside markdown links\n if (/^\\[!\\[/.test(line)) { i++; continue; }\n // Standalone images: \n if (/^!\\[/.test(line)) { i++; continue; }\n // HTML img tags\n if (/^<img\\s/i.test(line)) { i++; continue; }\n // Blank lines\n if (line === '') { i++; continue; }\n break;\n }\n return lines.slice(i).join('\\n');\n}\n\n/** Get the first prose paragraph (single block, no headings/lists/code) */\nfunction firstProseParagraph(content: string): string | null {\n const stripped = stripPreamble(content);\n const lines = stripped.split('\\n');\n const buf: string[] = [];\n for (const raw of lines) {\n const line = raw.trim();\n if (line === '') {\n if (buf.length > 0) break;\n continue;\n }\n // Stop at next heading / list / code / quote / table\n if (/^(#|>|```|---|\\||\\s*[-*+]\\s|\\d+\\.\\s)/.test(line)) break;\n // Skip pure-bold-tagline lines like \"**For Grok. For the rockets.**\"\n // (these are punchy spirit lines, not informative goal content)\n if (/^\\*\\*[^*]+\\*\\*\\s*$/.test(line) && buf.length === 0) continue;\n buf.push(line);\n }\n if (buf.length === 0) return null;\n return buf.join(' ').trim();\n}\n\n/** Extract content following a heading whose text matches `pattern` */\nfunction sectionContent(content: string, pattern: RegExp): string | null {\n const lines = content.split('\\n');\n let i = 0;\n while (i < lines.length) {\n const line = lines[i].trim();\n const m = line.match(/^(#{1,6})\\s+(.+)$/);\n if (m && pattern.test(m[2])) {\n const headingLevel = m[1].length;\n // Read prose lines until next heading of same-or-higher level\n const buf: string[] = [];\n i++;\n while (i < lines.length) {\n const next = lines[i].trim();\n const nextHeading = next.match(/^(#{1,6})\\s+/);\n if (nextHeading && nextHeading[1].length <= headingLevel) break;\n if (next === '') { if (buf.length > 0) break; i++; continue; }\n // Stop at structural elements (code blocks, lists, tables)\n if (/^(>|```|---|\\||\\s*[-*+]\\s|\\d+\\.\\s)/.test(next)) break;\n buf.push(next);\n i++;\n }\n if (buf.length === 0) return null;\n return buf.join(' ').trim();\n }\n i++;\n }\n return null;\n}\n\n/** Extract `project.goal` — first prose paragraph or ## Use Case / ## Goal */\nexport function extractGoal(content: string): string | undefined {\n // Anchor 1: explicit \"## Use Case\" / \"## Use Cases\" / \"## Goal\" section\n const explicit = sectionContent(content, /^(use\\s+cases?|goal)\\b/i);\n if (explicit && isValidExtraction(explicit)) return explicit;\n\n // Anchor 2: first prose paragraph after title/badges\n const tagline = firstProseParagraph(content);\n if (tagline && isValidExtraction(tagline)) return tagline;\n\n return undefined;\n}\n\n/** Extract `human_context.what` — ## About / ## Description / ## Overview */\nexport function extractWhat(content: string): string | undefined {\n const text = sectionContent(content, /^(about|description|overview|what(\\s+is\\s+this)?)\\b/i);\n if (text && isValidExtraction(text)) return text;\n return undefined;\n}\n\n/** Extract `human_context.who` — ## Audience / ## For Whom / ## Users */\nexport function extractWho(content: string): string | undefined {\n const text = sectionContent(content, /^(audience|users?|for\\s+whom|who(\\s+is\\s+this\\s+for)?)\\b/i);\n if (text && isValidExtraction(text)) return text;\n return undefined;\n}\n\n/** Extract `human_context.why` — ## Why / ## Motivation / ## Problem */\nexport function extractWhy(content: string): string | undefined {\n const text = sectionContent(content, /^(why|motivation|problem|rationale)\\b/i);\n if (text && isValidExtraction(text)) return text;\n return undefined;\n}\n\n/** Extract `human_context.where` — ## Deployment / ## Where it runs / ## Install */\nexport function extractWhere(content: string): string | undefined {\n // Prefer specific \"where it runs\" / \"deployment\" over generic \"install\"\n const specific = sectionContent(content, /^(deployment|where(\\s+it\\s+runs)?|hosting)\\b/i);\n if (specific && isValidExtraction(specific)) return specific;\n return undefined;\n}\n\n/** Extract `human_context.when` — ## Status / ## History / \"Production since\" */\nexport function extractWhen(content: string): string | undefined {\n const text = sectionContent(content, /^(status|history|timeline|since|launched)\\b/i);\n if (text && isValidExtraction(text)) return text;\n return undefined;\n}\n\n/** Extract `human_context.how` — ## Architecture / ## How it works / ## Approach */\nexport function extractHow(content: string): string | undefined {\n const text = sectionContent(content, /^(architecture|how(\\s+it\\s+works)?|approach|design)\\b/i);\n if (text && isValidExtraction(text)) return text;\n return undefined;\n}\n\n/** Read README.md and extract per-slot content. Returns {} if no README. */\nexport function interrogateReadme(dir: string): ExtractedContext {\n const candidates = ['README.md', 'README.MD', 'Readme.md', 'readme.md'];\n let path: string | null = null;\n for (const name of candidates) {\n const full = join(dir, name);\n if (existsSync(full)) { path = full; break; }\n }\n if (!path) return {};\n\n let content: string;\n try {\n content = readFileSync(path, 'utf-8');\n } catch {\n return {};\n }\n\n const result: ExtractedContext = {};\n\n const goal = extractGoal(content);\n if (goal) result.project = { goal };\n\n const human: NonNullable<ExtractedContext['human_context']> = {};\n const what = extractWhat(content); if (what) human.what = what;\n const who = extractWho(content); if (who) human.who = who;\n const why = extractWhy(content); if (why) human.why = why;\n const where = extractWhere(content); if (where) human.where = where;\n const when = extractWhen(content); if (when) human.when = when;\n const how = extractHow(content); if (how) human.how = how;\n\n if (Object.keys(human).length > 0) result.human_context = human;\n\n return result;\n}\n",
|
|
97
98
|
"/**\n * Repo interrogation — extract slot content from README, Cargo.toml,\n * package.json, etc., without guessing or substituting generic slop.\n *\n * Contract (per faf-auto-no-guess-no-slop doctrine):\n * - Each slot has a per-slot evidence anchor\n * - If the anchor is missing → leave empty (do NOT synthesize from other slots)\n * - If the anchor is present but content is generic / too long / structural →\n * leave empty (do NOT settle for slop)\n * - Empty is honest; wrong is a lie\n *\n * Per goal-is-not-a-6w doctrine:\n * - `project.goal` is the elevator pitch / use case — its own anchor\n * - Each `human_context.*` 6W has its own anchor\n * - No slot inherits from / is split-extracted from another\n */\n\n/** Content extracted from a single source file (README, Cargo.toml, etc.) */\nexport interface ExtractedContext {\n project?: {\n /** One-line elevator pitch / use case. README first prose paragraph,\n * ## Use Case section, or Cargo.toml description. */\n goal?: string;\n };\n human_context?: {\n /** Audience — \"## Audience\" / \"for {audience}\" patterns */\n who?: string;\n /** What's being built — \"## About\" / \"## Description\" / \"X is...\" */\n what?: string;\n /** Motivation — \"## Why\" / \"## Motivation\" / \"Problem:\" */\n why?: string;\n /** Where it runs — \"## Deployment\" / \"## Where\" / install-target */\n where?: string;\n /** Status / timeline — \"## Status\" / \"Production since\" / version line */\n when?: string;\n /** Approach — \"## Architecture\" / \"## How it works\" */\n how?: string;\n };\n}\n\n/** Confidence threshold rules for extracted text — empty if violated */\nexport const EXTRACTION_LIMITS = {\n /** Minimum length for a slot to be considered worth filling (in chars) */\n MIN_LENGTH: 8,\n /** Maximum length — anything longer is documentation, not a slot fill */\n MAX_LENGTH: 280,\n} as const;\n\n/** Generic slop patterns — extracted text matching these is rejected */\nexport const SLOP_PATTERNS: readonly RegExp[] = [\n /^(see|see\\s+the?)\\s+readme/i,\n /^(tbd|todo|fixme|coming\\s+soon)\\b/i,\n /^(software|application|app|project|tool|library|framework)\\.?$/i,\n /^(for\\s+users|for\\s+developers)\\.?$/i,\n /^(description|goal|name|title)\\.?$/i,\n /^lorem\\s+ipsum/i,\n /^example(\\s+\\w+)?\\.?$/i,\n];\n\n/** Validate extracted text against the no-guess/no-slop doctrine */\nexport function isValidExtraction(text: string): boolean {\n const trimmed = text.trim();\n if (trimmed.length < EXTRACTION_LIMITS.MIN_LENGTH) return false;\n if (trimmed.length > EXTRACTION_LIMITS.MAX_LENGTH) return false;\n if (SLOP_PATTERNS.some((re) => re.test(trimmed))) return false;\n // Reject if text is mostly markdown structure (links, lists, tables)\n if (/^[\\s|\\-*+]/.test(trimmed)) return false;\n if (trimmed.split('\\n').length > 4) return false; // multi-paragraph blob\n return true;\n}\n",
|
|
98
99
|
"/**\n * Cargo.toml interrogation — extract Rust project metadata.\n *\n * The [package].description field is the Rust ecosystem's equivalent of\n * package.json's `description` — a one-line elevator pitch. It maps to\n * `project.goal` (overarching/use-case framing).\n */\n\nimport { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { type ExtractedContext, isValidExtraction } from './types.js';\n\n/** Parse a single TOML field from `[package]` table. Naive but adequate for\n * description / authors / repository / license — fields that don't span\n * multiple lines or use complex nested structures. */\nfunction readPackageField(content: string, field: string): string | null {\n const lines = content.split('\\n');\n let inPackageSection = false;\n for (const line of lines) {\n const trimmed = line.trim();\n // Section header\n if (/^\\[/.test(trimmed)) {\n inPackageSection = trimmed === '[package]';\n continue;\n }\n if (!inPackageSection) continue;\n // Match `field = \"value\"` or `field=\"value\"`\n const m = trimmed.match(new RegExp(`^${field}\\\\s*=\\\\s*(.+)$`));\n if (m) {\n let value = m[1].trim();\n // Strip trailing comment\n value = value.replace(/\\s*#.*$/, '').trim();\n // Strip surrounding quotes (double or single)\n const quoted = value.match(/^\"((?:[^\"\\\\]|\\\\.)*)\"$/) || value.match(/^'((?:[^'\\\\]|\\\\.)*)'$/);\n if (quoted) return quoted[1];\n return value;\n }\n }\n return null;\n}\n\n/** Read Cargo.toml and extract per-slot content. Returns {} if no Cargo.toml. */\nexport function interrogateCargo(dir: string): ExtractedContext {\n const path = join(dir, 'Cargo.toml');\n if (!existsSync(path)) return {};\n\n let content: string;\n try {\n content = readFileSync(path, 'utf-8');\n } catch {\n return {};\n }\n\n const description = readPackageField(content, 'description');\n if (description && isValidExtraction(description)) {\n return { project: { goal: description } };\n }\n\n return {};\n}\n",
|
|
99
100
|
"/**\n * Repo interrogation orchestrator — runs all extractors and merges results.\n *\n * Order of precedence: extractors that run first WIN (their non-empty values\n * are kept; later extractors fill only empties). README is highest-precedence\n * because its prose is most likely to be hand-curated; manifest fields\n * (Cargo.toml description, package.json description) are fallbacks.\n *\n * The orchestrator never overwrites with empty — only fills empties.\n */\n\nimport type { ExtractedContext } from './types.js';\nimport { interrogateReadme } from './readme.js';\nimport { interrogateCargo } from './cargo.js';\n\nexport type { ExtractedContext } from './types.js';\nexport { interrogateReadme } from './readme.js';\nexport { interrogateCargo } from './cargo.js';\n\n/** Merge `b` into `a` — only fill empties in `a`, never overwrite. */\nfunction mergeFillEmpty(a: ExtractedContext, b: ExtractedContext): ExtractedContext {\n const out: ExtractedContext = {\n project: { ...(b.project ?? {}), ...(a.project ?? {}) },\n human_context: { ...(b.human_context ?? {}), ...(a.human_context ?? {}) },\n };\n // Strip empties for clean equality semantics\n if (out.project && Object.keys(out.project).length === 0) delete out.project;\n if (out.human_context && Object.keys(out.human_context).length === 0) delete out.human_context;\n return out;\n}\n\n/** Run all repo interrogators and return merged context. */\nexport function interrogateRepo(dir: string): ExtractedContext {\n // README wins on overlapping slots; Cargo.toml fills any remaining empties.\n return mergeFillEmpty(interrogateReadme(dir), interrogateCargo(dir));\n}\n",
|
|
100
101
|
"/**\n * Shared .faf assembly pipeline. The full slot-filling flow used to build a\n * FRESH .faf for a directory:\n * detect → interrogate → slotignore inactive categories → Turbo-Cat → Relentless\n *\n * Used by BOTH `faf auto` (new-file path) and `faf git` (cloned repo) so they\n * can't drift — `faf git` previously ran detectStack alone (~33% vs ~75%).\n */\n\nimport { detectStack } from './stack.js';\nimport { interrogateRepo } from '../interrogate/index.js';\nimport { turboCatSlots } from './turbo-cat.js';\nimport { relentlessContext } from './relentless.js';\nimport { APP_TYPE_CATEGORIES, SLOTS, isPlaceholder } from '../core/slots.js';\n\n/** Build a fresh .faf for `dir` using the full slot-filling pipeline. */\nexport function assembleFreshFaf(dir: string): Record<string, unknown> {\n const detected = detectStack(dir) as Record<string, unknown>;\n const interrogated = interrogateRepo(dir) as Record<string, unknown>;\n\n const seeded = fillEmpties(detected, interrogated);\n applySlotIgnore(seeded);\n const withFormats = fillEmpties(seeded, turboCatSlots(dir) as Record<string, unknown>);\n return fillEmpties(withFormats, { human_context: relentlessContext(dir) } as Record<string, unknown>);\n}\n\n/** Mark slots outside the app-type's active categories as `slotignored`. */\nfunction applySlotIgnore(seeded: Record<string, unknown>): void {\n const projectType = (seeded.project as { type?: string } | undefined)?.type ?? 'library';\n const activeCategories = APP_TYPE_CATEGORIES[projectType] || APP_TYPE_CATEGORIES.library;\n for (const slot of SLOTS) {\n if (activeCategories.includes(slot.category)) {continue;}\n const [section, field] = slot.path.split('.');\n if (section === 'stack' && seeded.stack) {\n (seeded.stack as Record<string, string>)[field] = 'slotignored';\n }\n if (section === 'monorepo' && seeded.monorepo) {\n (seeded.monorepo as Record<string, string>)[field] = 'slotignored';\n }\n }\n}\n\n/** Fill empty/placeholder slots in `target` with values from `source`.\n * `target` wins when its slot is non-empty. Empty here is per `isPlaceholder`\n * (covers '', null, undefined, and known placeholder strings) — this is what\n * lets interrogated/detected values overwrite the empty-string defaults that\n * detectStack writes to human_context. */\nexport function fillEmpties(\n target: Record<string, unknown>,\n source: Record<string, unknown>,\n): Record<string, unknown> {\n const result = { ...target };\n for (const [key, value] of Object.entries(source)) {\n const existing = result[key];\n if (isPlaceholder(existing)) {\n result[key] = value;\n } else if (\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n typeof existing === 'object' &&\n existing !== null &&\n !Array.isArray(existing)\n ) {\n result[key] = fillEmpties(\n existing as Record<string, unknown>,\n value as Record<string, unknown>,\n );\n }\n }\n return result;\n}\n"
|
|
101
102
|
],
|
|
102
|
-
"mappings": "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",
|
|
103
|
-
"debugId": "
|
|
103
|
+
"mappings": "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",
|
|
104
|
+
"debugId": "1575DADF27D56D1664756E2164756E21",
|
|
104
105
|
"names": []
|
|
105
106
|
}
|