Fix bin/publish: copy docs.dist from project root

Fix bin/publish: use correct .env path for rspade_system
Fix bin/publish script: prevent grep exit code 1 from terminating script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-10-21 02:08:33 +00:00
commit f6fac6c4bc
79758 changed files with 10547827 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
const parser = require('postcss-selector-parser')
function nodeIsInsensitiveAttribute(node) {
return node.type === 'attribute' && node.insensitive
}
function selectorHasInsensitiveAttribute(selector) {
return selector.some(nodeIsInsensitiveAttribute)
}
function transformString(strings, charPos, string) {
const char = string.charAt(charPos)
if (char === '') {
return strings
}
let newStrings = strings.map(x => x + char)
const upperChar = char.toLocaleUpperCase()
if (upperChar !== char) {
newStrings = newStrings.concat(strings.map(x => x + upperChar))
}
return transformString(newStrings, charPos + 1, string)
}
function createSensitiveAtributes(attribute) {
const attributes = transformString([''], 0, attribute.value)
return attributes.map(x => {
const newAttribute = attribute.clone({
spaces: {
after: attribute.spaces.after,
before: attribute.spaces.before
},
insensitive: false
})
newAttribute.setValue(x)
return newAttribute
})
}
function createNewSelectors(selector) {
let newSelectors = [parser.selector()]
selector.walk(node => {
if (!nodeIsInsensitiveAttribute(node)) {
newSelectors.forEach(newSelector => {
newSelector.append(node.clone())
})
return
}
const sensitiveAttributes = createSensitiveAtributes(node)
const newSelectorsWithSensitiveAttributes = []
sensitiveAttributes.forEach(newNode => {
newSelectors.forEach(newSelector => {
const newSelectorWithNewNode = newSelector.clone()
newSelectorWithNewNode.append(newNode)
newSelectorsWithSensitiveAttributes.push(newSelectorWithNewNode)
})
})
newSelectors = newSelectorsWithSensitiveAttributes
})
return newSelectors
}
function transform(selectors) {
let newSelectors = []
selectors.each(selector => {
if (selectorHasInsensitiveAttribute(selector)) {
newSelectors = newSelectors.concat(createNewSelectors(selector))
selector.remove()
}
})
if (newSelectors.length) {
newSelectors.forEach(newSelector => selectors.append(newSelector))
}
}
const caseInsensitiveRegExp = /i(\s*\/\*[\W\w]*?\*\/)*\s*\]/
module.exports = () => {
return {
postcssPlugin: 'postcss-attribute-case-insensitive',
Rule(rule) {
if (caseInsensitiveRegExp.test(rule.selector)) {
rule.selector = parser(transform).processSync(rule.selector)
}
}
}
}
module.exports.postcss = true