@gallop.software/canon 2.7.0 → 2.7.2
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 +86 -39
- package/dist/cli/commands/validate.js +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/schema.json +1 -1
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# @gallop/canon
|
|
1
|
+
# @gallop.software/canon
|
|
2
2
|
|
|
3
|
-
**Gallop
|
|
3
|
+
**Gallop Canon** — A versioned, AI-compatible, auditable system of approved web architecture patterns.
|
|
4
4
|
|
|
5
5
|
## What is the Canon?
|
|
6
6
|
|
|
7
|
-
The Canon is a closed set of authoritative patterns that define how
|
|
7
|
+
The Canon is a closed set of authoritative patterns that define how web applications should be built. Each pattern is:
|
|
8
8
|
|
|
9
9
|
- **Versioned** — Pin to a specific version, upgrade deliberately
|
|
10
10
|
- **Documented** — Decision-level documentation, not just code comments
|
|
@@ -14,28 +14,98 @@ The Canon is a closed set of authoritative patterns that define how serious web
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
npm install @gallop/canon
|
|
17
|
+
npm install @gallop.software/canon
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## ESLint Setup
|
|
21
|
+
|
|
22
|
+
Add Canon rules to your `eslint.config.mjs`:
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
import nextConfig from 'eslint-config-next'
|
|
26
|
+
import gallop from '@gallop.software/canon/eslint'
|
|
27
|
+
|
|
28
|
+
export default [
|
|
29
|
+
...nextConfig,
|
|
30
|
+
{
|
|
31
|
+
files: ['src/blocks/**/*.tsx', 'src/components/**/*.tsx'],
|
|
32
|
+
plugins: {
|
|
33
|
+
gallop,
|
|
34
|
+
},
|
|
35
|
+
rules: {
|
|
36
|
+
...gallop.recommended,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
]
|
|
40
|
+
```
|
|
21
41
|
|
|
22
|
-
###
|
|
42
|
+
### Opting Out of Rules
|
|
23
43
|
|
|
24
|
-
|
|
25
|
-
import { patterns, getPattern, getPatternsByCategory } from '@gallop/canon'
|
|
44
|
+
To disable specific rules, override them after spreading `recommended`:
|
|
26
45
|
|
|
27
|
-
|
|
28
|
-
|
|
46
|
+
```javascript
|
|
47
|
+
rules: {
|
|
48
|
+
...gallop.recommended,
|
|
49
|
+
// Disable specific rules
|
|
50
|
+
'gallop/no-inline-styles': 'off',
|
|
51
|
+
'gallop/no-arbitrary-colors': 'off',
|
|
52
|
+
}
|
|
53
|
+
```
|
|
29
54
|
|
|
30
|
-
|
|
31
|
-
const pattern = getPattern('001')
|
|
32
|
-
console.log(pattern.title) // "Server-First Blocks"
|
|
55
|
+
To change a rule from warning to error:
|
|
33
56
|
|
|
34
|
-
|
|
35
|
-
|
|
57
|
+
```javascript
|
|
58
|
+
rules: {
|
|
59
|
+
...gallop.recommended,
|
|
60
|
+
'gallop/no-cross-zone-imports': 'error',
|
|
61
|
+
}
|
|
36
62
|
```
|
|
37
63
|
|
|
38
|
-
###
|
|
64
|
+
### Available Rules
|
|
65
|
+
|
|
66
|
+
| Rule | Description |
|
|
67
|
+
|------|-------------|
|
|
68
|
+
| `gallop/no-client-blocks` | Blocks must be server components |
|
|
69
|
+
| `gallop/no-container-in-section` | No Container inside Section |
|
|
70
|
+
| `gallop/prefer-component-props` | Use props over className for styles |
|
|
71
|
+
| `gallop/prefer-typography-components` | Use Paragraph/Span, not raw tags |
|
|
72
|
+
| `gallop/prefer-layout-components` | Use Grid/Columns, not raw div |
|
|
73
|
+
| `gallop/background-image-rounded` | Background images need rounded prop |
|
|
74
|
+
| `gallop/no-inline-styles` | No style attribute, use Tailwind |
|
|
75
|
+
| `gallop/no-arbitrary-colors` | Use color tokens, not arbitrary values |
|
|
76
|
+
| `gallop/no-cross-zone-imports` | Enforce import boundaries |
|
|
77
|
+
| `gallop/no-data-imports` | No direct _data/ imports in runtime |
|
|
78
|
+
|
|
79
|
+
## CLI Commands
|
|
80
|
+
|
|
81
|
+
### Generate AI Rules
|
|
82
|
+
|
|
83
|
+
Generate `.cursorrules` or Copilot instructions from Canon:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npx gallop generate .cursorrules
|
|
87
|
+
npx gallop generate .github/copilot-instructions.md
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Validate Project Structure
|
|
91
|
+
|
|
92
|
+
Check folder structure compliance:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npx gallop validate
|
|
96
|
+
npx gallop validate --strict # Exit code 1 on violations
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Audit Code
|
|
100
|
+
|
|
101
|
+
Check code compliance:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npx gallop audit
|
|
105
|
+
npx gallop audit src/blocks/ --strict
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Pattern Categories
|
|
39
109
|
|
|
40
110
|
| Category | Description |
|
|
41
111
|
|----------|-------------|
|
|
@@ -51,29 +121,6 @@ const renderingPatterns = getPatternsByCategory('rendering')
|
|
|
51
121
|
|
|
52
122
|
See the [patterns/](./patterns) directory for full documentation of each pattern.
|
|
53
123
|
|
|
54
|
-
### Enforced by ESLint
|
|
55
|
-
|
|
56
|
-
- **001** Server-First Blocks
|
|
57
|
-
- **002** Layout Hierarchy
|
|
58
|
-
- **003** Typography Components
|
|
59
|
-
- **004** Component Props
|
|
60
|
-
|
|
61
|
-
### Documentation-Only
|
|
62
|
-
|
|
63
|
-
- **005** Page Structure
|
|
64
|
-
- **006** Block Naming
|
|
65
|
-
- **007** Import Paths
|
|
66
|
-
- **008** Tailwind Only
|
|
67
|
-
- **009** Color Tokens
|
|
68
|
-
- **010** Spacing System
|
|
69
|
-
- **011** Responsive Mobile-First
|
|
70
|
-
- **012** Icon System
|
|
71
|
-
- **013** New Component Pattern
|
|
72
|
-
- **014** clsx Not classnames
|
|
73
|
-
- **015** No Inline Hover Styles
|
|
74
|
-
- **016** Client Extraction
|
|
75
|
-
- **017** SEO Metadata
|
|
76
|
-
|
|
77
124
|
## Guarantees
|
|
78
125
|
|
|
79
126
|
See [guarantees.md](./guarantees.md) for version-specific promises.
|
|
@@ -27,6 +27,7 @@ const ALLOWED_TOP_LEVEL_FILES = [
|
|
|
27
27
|
'package.json',
|
|
28
28
|
'package-lock.json',
|
|
29
29
|
'tsconfig.json',
|
|
30
|
+
'tsconfig.tsbuildinfo',
|
|
30
31
|
'next.config.mjs',
|
|
31
32
|
'next.config.js',
|
|
32
33
|
'next-env.d.ts',
|
|
@@ -164,4 +165,4 @@ export async function validate(projectPath, options) {
|
|
|
164
165
|
process.exit(1);
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRzL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3hCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBYTVCLCtDQUErQztBQUMvQyxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLEtBQUs7SUFDTCxRQUFRO0lBQ1IsVUFBVTtJQUNWLE9BQU87SUFDUCxPQUFPO0lBQ1AsY0FBYztDQUNmLENBQUE7QUFFRCxzQ0FBc0M7QUFDdEMsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixLQUFLO0lBQ0wsUUFBUTtJQUNSLE1BQU07SUFDTixZQUFZO0lBQ1osT0FBTztJQUNQLFFBQVE7SUFDUixVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0NBQ1IsQ0FBQTtBQUVELDZCQUE2QjtBQUM3QixNQUFNLHVCQUF1QixHQUFHO0lBQzlCLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixXQUFXO0lBQ1gsU0FBUztJQUNULGNBQWM7SUFDZCxZQUFZO0lBQ1osY0FBYztDQUNmLENBQUE7QUFFRDs7R0FFRztBQUNILFNBQVMsU0FBUyxDQUFDLElBQVk7SUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsc0JBQXNCLENBQUMsSUFBWTtJQUMxQyxzRUFBc0U7SUFDdEUsK0RBQStEO0lBQy9ELHVFQUF1RTtJQUN2RSxPQUFPLENBQUMsbUJBQW1CLENBQUMs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UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLENBQUMsR0FBRyxDQUNULElBQUksQ0FBQyxTQUFTLENBQ1o7WUFDRSxLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQzlCLFVBQVU7U0FDWCxFQUNELElBQUksRUFDSixDQUFDLENBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLENBQUE7WUFDekQsS0FBSyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ2pDLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcydcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuaW50ZXJmYWNlIFZhbGlkYXRlT3B0aW9ucyB7XG4gIHN0cmljdDogYm9vbGVhblxuICBqc29uOiBib29sZWFuXG59XG5cbmludGVyZmFjZSBWaW9sYXRpb24ge1xuICB0eXBlOiAnb3JwaGFuLWZpbGUnIHwgJ2ludmFsaWQtdG9wLWxldmVsJyB8ICdpbnZhbGlkLXNyYy1mb2xkZXInXG4gIHBhdGg6IHN0cmluZ1xuICBtZXNzYWdlOiBzdHJpbmdcbn1cblxuLy8gQWxsb3dlZCB0b3AtbGV2ZWwgZGlyZWN0b3JpZXMgKG5vbi1kb3RmaWxlcylcbmNvbnN0IEFMTE9XRURfVE9QX0xFVkVMID0gW1xuICAnc3JjJyxcbiAgJ3B1YmxpYycsXG4gICdfc2NyaXB0cycsXG4gICdfZGF0YScsXG4gICdfZG9jcycsXG4gICdub2RlX21vZHVsZXMnLFxuXVxuXG4vLyBBbGxvd2VkIGZvbGRlcnMgZGlyZWN0bHkgdW5kZXIgL3NyY1xuY29uc3QgQUxMT1dFRF9TUkNfRk9MREVSUyA9IFtcbiAgJ2FwcCcsXG4gICdibG9ja3MnLFxuICAnYmxvZycsXG4gICdjb21wb25lbnRzJyxcbiAgJ2hvb2tzJyxcbiAgJ3N0eWxlcycsXG4gICd0ZW1wbGF0ZScsXG4gICd0b29scycsXG4gICd0eXBlcycsXG4gICd1dGlscycsXG5dXG5cbi8vIEZpbGVzIGFsbG93ZWQgYXQgdG9wIGxldmVsXG5jb25zdCBBTExPV0VEX1RPUF9MRVZFTF9GSUxFUyA9IFtcbiAgJ3BhY2thZ2UuanNvbicsXG4gICdwYWNrYWdlLWxvY2suanNvbicsXG4gICd0c2NvbmZpZy5qc29uJyxcbiAgJ25leHQuY29uZmlnLm1qcycsXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LWVudi5kLnRzJyxcbiAgJ2VzbGludC5jb25maWcubWpzJyxcbiAgJ2VzbGludC5jb25maWcuanMnLFxuICAnLmVzbGludHJjLmpzJyxcbiAgJy5lc2xpbnRyYy5qc29uJyxcbiAgJ3Bvc3Rjc3MuY29uZmlnLmpzJyxcbiAgJ3RhaWx3aW5kLmNvbmZpZy5qcycsXG4gICd0YWlsd2luZC5jb25maWcudHMnLFxuICAnUkVBRE1FLm1kJyxcbiAgJ0xJQ0VOU0UnLFxuICAnQ0hBTkdFTE9HLm1kJyxcbiAgJy5naXRpZ25vcmUnLFxuICAnLmN1cnNvcnJ1bGVzJyxcbl1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHBhdGggaXMgYSBkb3RmaWxlIG9yIGRvdGZvbGRlclxuICovXG5mdW5jdGlvbiBpc0RvdGZpbGUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBuYW1lLnN0YXJ0c1dpdGgoJy4nKVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgcGF0aCBpcyBhbiBhcmNoaXZlIGNvbnRlbnQgZm9sZGVyIChhbGxvd2VkIG5ldyBmb2xkZXJzIGluIC9zcmMpXG4gKi9cbmZ1bmN0aW9uIGlzQXJjaGl2ZUNvbnRlbnRGb2xkZXIobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIEFyY2hpdmUgZm9sZGVycyB0eXBpY2FsbHkgaGF2ZSBwbHVyYWwgbmFtZXMgZm9yIGNvbnRlbnQgY29sbGVjdGlvbnNcbiAgLy8gV2UgYWxsb3cgYW55IGZvbGRlciB0aGF0IGNvdWxkIHJlYXNvbmFibHkgYmUgYXJjaGl2ZSBjb250ZW50XG4gIC8vIFRoaXMgaXMgYSBoZXVyaXN0aWMgLSB3ZSBjaGVjayBpZiBpdCBsb29rcyBsaWtlIGEgY29udGVudCBjb2xsZWN0aW9uXG4gIHJldHVybiAhQUxMT1dFRF9TUkNfRk9MREVSUy5pbmNsdWRlcyhuYW1lKVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIHByb2plY3Qgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZShcbiAgcHJvamVjdFBhdGg6IHN0cmluZyxcbiAgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdmlvbGF0aW9uczogVmlvbGF0aW9uW10gPSBbXVxuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcHJvamVjdFBhdGgpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGFic29sdXRlUGF0aCkpIHtcbiAgICBjb25zb2xlLmVycm9yKGBQYXRoIGRvZXMgbm90IGV4aXN0OiAke3Byb2plY3RQYXRofWApXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cblxuICAvLyBDaGVjayB0b3AtbGV2ZWwgZGlyZWN0b3JpZXNcbiAgY29uc3QgdG9wTGV2ZWxJdGVtcyA9IGZzLnJlYWRkaXJTeW5jKGFic29sdXRlUGF0aClcbiAgZm9yIChjb25zdCBpdGVtIG9mIHRvcExldmVsSXRlbXMpIHtcbiAgICBjb25zdCBpdGVtUGF0aCA9IHBhdGguam9pbihhYnNvbHV0ZVBhdGgsIGl0ZW0pXG4gICAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKGl0ZW1QYXRoKVxuXG4gICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgLy8gRG90Zm9sZGVycyBhcmUgZXhlbXB0XG4gICAgICBpZiAoaXNEb3RmaWxlKGl0ZW0pKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIGl0J3MgYW4gYWxsb3dlZCB0b3AtbGV2ZWwgZGlyZWN0b3J5XG4gICAgICBpZiAoIUFMTE9XRURfVE9QX0xFVkVMLmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgIHZpb2xhdGlvbnMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ2ludmFsaWQtdG9wLWxldmVsJyxcbiAgICAgICAgICBwYXRoOiBpdGVtLFxuICAgICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIHRvcC1sZXZlbCBkaXJlY3Rvcnk6ICR7aXRlbX0uIEFsbG93ZWQ6ICR7QUxMT1dFRF9UT1BfTEVWRUwuam9pbignLCAnKX0gKGRvdGZvbGRlcnMgZXhlbXB0KWAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEl0J3MgYSBmaWxlIC0gY2hlY2sgaWYgaXQncyBhbGxvd2VkIGF0IHRvcCBsZXZlbFxuICAgICAgaWYgKCFpc0RvdGZpbGUoaXRlbSkgJiYgIUFMTE9XRURfVE9QX0xFVkVMX0ZJTEVTLmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgIC8vIEFsbG93IGNvbW1vbiBjb25maWcgZmlsZSBwYXR0ZXJuc1xuICAgICAgICBjb25zdCBpc0NvbmZpZ0ZpbGUgPVxuICAgICAgICAgIGl0ZW0uZW5kc1dpdGgoJy5jb25maWcuanMnKSB8fFxuICAgICAgICAgIGl0ZW0uZW5kc1dpdGgoJy5jb25maWcubWpzJykgfHxcbiAgICAgICAgICBpdGVtLmVuZHNXaXRoKCcuY29uZmlnLnRzJykgfHxcbiAgICAgICAgICBpdGVtLmVuZHNXaXRoKCcuanNvbicpIHx8XG4gICAgICAgICAgaXRlbS5lbmRzV2l0aCgnLm1kJykgfHxcbiAgICAgICAgICBpdGVtLmVuZHNXaXRoKCcuc2gnKVxuXG4gICAgICAgIGlmICghaXNDb25maWdGaWxlKSB7XG4gICAgICAgICAgdmlvbGF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdvcnBoYW4tZmlsZScsXG4gICAgICAgICAgICBwYXRoOiBpdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogYE9ycGhhbiBmaWxlIGF0IHByb2plY3Qgcm9vdDogJHtpdGVtfS4gRmlsZXMgc2hvdWxkIGJlIGluIGRlZmluZWQgem9uZXMuYCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgL3NyYyBmb2xkZXIgc3RydWN0dXJlXG4gIGNvbnN0IHNyY1BhdGggPSBwYXRoLmpvaW4oYWJzb2x1dGVQYXRoLCAnc3JjJylcbiAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjUGF0aCkpIHtcbiAgICBjb25zdCBzcmNJdGVtcyA9IGZzLnJlYWRkaXJTeW5jKHNyY1BhdGgpXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHNyY0l0ZW1zKSB7XG4gICAgICBjb25zdCBpdGVtUGF0aCA9IHBhdGguam9pbihzcmNQYXRoLCBpdGVtKVxuICAgICAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKGl0ZW1QYXRoKVxuXG4gICAgICBpZiAoc3RhdC5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGl0J3MgYW4gYWxsb3dlZCAvc3JjIGZvbGRlclxuICAgICAgICBpZiAoXG4gICAgICAgICAgIUFMTE9XRURfU1JDX0ZPTERFUlMuaW5jbHVkZXMoaXRlbSkgJiZcbiAgICAgICAgICAhaXNBcmNoaXZlQ29udGVudEZvbGRlcihpdGVtKVxuICAgICAgICApIHtcbiAgICAgICAgICB2aW9sYXRpb25zLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ2ludmFsaWQtc3JjLWZvbGRlcicsXG4gICAgICAgICAgICBwYXRoOiBgc3JjLyR7aXRlbX1gLFxuICAgICAgICAgICAgbWVzc2FnZTogYEludmFsaWQgZm9sZGVyIGluIC9zcmM6ICR7aXRlbX0uIEFsbG93ZWQ6ICR7QUxMT1dFRF9TUkNfRk9MREVSUy5qb2luKCcsICcpfSBvciBhcmNoaXZlIGNvbnRlbnQgZm9sZGVyc2AsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIHRoYXQgc3JjL2FwcCBoYXMgcm91dGUgZ3JvdXBzXG4gICAgY29uc3QgYXBwUGF0aCA9IHBhdGguam9pbihzcmNQYXRoLCAnYXBwJylcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhhcHBQYXRoKSkge1xuICAgICAgY29uc3QgYXBwSXRlbXMgPSBmcy5yZWFkZGlyU3luYyhhcHBQYXRoKVxuICAgICAgY29uc3QgaGFzRGVmYXVsdEdyb3VwID0gYXBwSXRlbXMuc29tZShcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0gPT09ICcoZGVmYXVsdCknIHx8IGl0ZW0uc3RhcnRzV2l0aCgnKCcpXG4gICAgICApXG5cbiAgICAgIGlmICghaGFzRGVmYXVsdEdyb3VwKSB7XG4gICAgICAgIHZpb2xhdGlvbnMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ2ludmFsaWQtc3JjLWZvbGRlcicsXG4gICAgICAgICAgcGF0aDogJ3NyYy9hcHAnLFxuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAnc3JjL2FwcCBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgcm91dGUgZ3JvdXAgZm9sZGVyIChlLmcuLCAoZGVmYXVsdCkvKScsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3V0cHV0IHJlc3VsdHNcbiAgaWYgKG9wdGlvbnMuanNvbikge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHtcbiAgICAgICAgICB2YWxpZDogdmlvbGF0aW9ucy5sZW5ndGggPT09IDAsXG4gICAgICAgICAgdmlvbGF0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgMlxuICAgICAgKVxuICAgIClcbiAgfSBlbHNlIHtcbiAgICBpZiAodmlvbGF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCfinJMgUHJvamVjdCBzdHJ1Y3R1cmUgaXMgdmFsaWQnKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgRm91bmQgJHt2aW9sYXRpb25zLmxlbmd0aH0gdmlvbGF0aW9uKHMpOlxcbmApXG4gICAgICBmb3IgKGNvbnN0IHYgb2YgdmlvbGF0aW9ucykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICDinJcgJHt2Lm1lc3NhZ2V9YClcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUubG9nKCcnKVxuICAgIH1cbiAgfVxuXG4gIC8vIEV4aXQgd2l0aCBlcnJvciBjb2RlIGlmIHN0cmljdCBtb2RlIGFuZCB2aW9sYXRpb25zIGZvdW5kXG4gIGlmIChvcHRpb25zLnN0cmljdCAmJiB2aW9sYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxufVxuIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRzL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3hCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBYTVCLCtDQUErQztBQUMvQyxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLEtBQUs7SUFDTCxRQUFRO0lBQ1IsVUFBVTtJQUNWLE9BQU87SUFDUCxPQUFPO0lBQ1AsY0FBYztDQUNmLENBQUE7QUFFRCxzQ0FBc0M7QUFDdEMsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixLQUFLO0lBQ0wsUUFBUTtJQUNSLE1BQU07SUFDTixZQUFZO0lBQ1osT0FBTztJQUNQLFFBQVE7SUFDUixVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0NBQ1IsQ0FBQTtBQUVELDZCQUE2QjtBQUM3QixNQUFNLHVCQUF1QixHQUFHO0lBQzlCLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsV0FBVztJQUNYLFNBQVM7SUFDVCxjQUFjO0lBQ2QsWUFBWTtJQUNaLGNBQWM7Q0FDZixDQUFBO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsc0VBQXNFO0lBQ3RFLCtEQUErRDtJQUMvRCx1RUFBdUU7SUFDdkUsT0FBTyxDQUFD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QUE7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7SUFDakIsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLENBQUMsU0FBUyxDQUNaO1lBQ0UsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUM5QixVQUFVO1NBQ1gsRUFDRCxJQUFJLEVBQ0osQ0FBQyxDQUNGLENBQ0YsQ0FBQTtJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxVQUFVLENBQUMsTUFBTSxrQkFBa0IsQ0FBQyxDQUFBO1lBQ3pELEtBQUssTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNqQyxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5cbmludGVyZmFjZSBWYWxpZGF0ZU9wdGlvbnMge1xuICBzdHJpY3Q6IGJvb2xlYW5cbiAganNvbjogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgVmlvbGF0aW9uIHtcbiAgdHlwZTogJ29ycGhhbi1maWxlJyB8ICdpbnZhbGlkLXRvcC1sZXZlbCcgfCAnaW52YWxpZC1zcmMtZm9sZGVyJ1xuICBwYXRoOiBzdHJpbmdcbiAgbWVzc2FnZTogc3RyaW5nXG59XG5cbi8vIEFsbG93ZWQgdG9wLWxldmVsIGRpcmVjdG9yaWVzIChub24tZG90ZmlsZXMpXG5jb25zdCBBTExPV0VEX1RPUF9MRVZFTCA9IFtcbiAgJ3NyYycsXG4gICdwdWJsaWMnLFxuICAnX3NjcmlwdHMnLFxuICAnX2RhdGEnLFxuICAnX2RvY3MnLFxuICAnbm9kZV9tb2R1bGVzJyxcbl1cblxuLy8gQWxsb3dlZCBmb2xkZXJzIGRpcmVjdGx5IHVuZGVyIC9zcmNcbmNvbnN0IEFMTE9XRURfU1JDX0ZPTERFUlMgPSBbXG4gICdhcHAnLFxuICAnYmxvY2tzJyxcbiAgJ2Jsb2cnLFxuICAnY29tcG9uZW50cycsXG4gICdob29rcycsXG4gICdzdHlsZXMnLFxuICAndGVtcGxhdGUnLFxuICAndG9vbHMnLFxuICAndHlwZXMnLFxuICAndXRpbHMnLFxuXVxuXG4vLyBGaWxlcyBhbGxvd2VkIGF0IHRvcCBsZXZlbFxuY29uc3QgQUxMT1dFRF9UT1BfTEVWRUxfRklMRVMgPSBbXG4gICdwYWNrYWdlLmpzb24nLFxuICAncGFja2FnZS1sb2NrLmpzb24nLFxuICAndHNjb25maWcuanNvbicsXG4gICd0c2NvbmZpZy50c2J1aWxkaW5mbycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcuanMnLFxuICAnbmV4dC1lbnYuZC50cycsXG4gICdlc2xpbnQuY29uZmlnLm1qcycsXG4gICdlc2xpbnQuY29uZmlnLmpzJyxcbiAgJy5lc2xpbnRyYy5qcycsXG4gICcuZXNsaW50cmMuanNvbicsXG4gICdwb3N0Y3NzLmNvbmZpZy5qcycsXG4gICd0YWlsd2luZC5jb25maWcuanMnLFxuICAndGFpbHdpbmQuY29uZmlnLnRzJyxcbiAgJ1JFQURNRS5tZCcsXG4gICdMSUNFTlNFJyxcbiAgJ0NIQU5HRUxPRy5tZCcsXG4gICcuZ2l0aWdub3JlJyxcbiAgJy5jdXJzb3JydWxlcycsXG5dXG5cbi8qKlxuICogQ2hlY2sgaWYgYSBwYXRoIGlzIGEgZG90ZmlsZSBvciBkb3Rmb2xkZXJcbiAqL1xuZnVuY3Rpb24gaXNEb3RmaWxlKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gbmFtZS5zdGFydHNXaXRoKCcuJylcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHBhdGggaXMgYW4gYXJjaGl2ZSBjb250ZW50IGZvbGRlciAoYWxsb3dlZCBuZXcgZm9sZGVycyBpbiAvc3JjKVxuICovXG5mdW5jdGlvbiBpc0FyY2hpdmVDb250ZW50Rm9sZGVyKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBBcmNoaXZlIGZvbGRlcnMgdHlwaWNhbGx5IGhhdmUgcGx1cmFsIG5hbWVzIGZvciBjb250ZW50IGNvbGxlY3Rpb25zXG4gIC8vIFdlIGFsbG93IGFueSBmb2xkZXIgdGhhdCBjb3VsZCByZWFzb25hYmx5IGJlIGFyY2hpdmUgY29udGVudFxuICAvLyBUaGlzIGlzIGEgaGV1cmlzdGljIC0gd2UgY2hlY2sgaWYgaXQgbG9va3MgbGlrZSBhIGNvbnRlbnQgY29sbGVjdGlvblxuICByZXR1cm4gIUFMTE9XRURfU1JDX0ZPTERFUlMuaW5jbHVkZXMobmFtZSlcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBwcm9qZWN0IHN0cnVjdHVyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGUoXG4gIHByb2plY3RQYXRoOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFZhbGlkYXRlT3B0aW9uc1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHZpb2xhdGlvbnM6IFZpb2xhdGlvbltdID0gW11cbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHByb2plY3RQYXRoKVxuXG4gIGlmICghZnMuZXhpc3RzU3luYyhhYnNvbHV0ZVBhdGgpKSB7XG4gICAgY29uc29sZS5lcnJvcihgUGF0aCBkb2VzIG5vdCBleGlzdDogJHtwcm9qZWN0UGF0aH1gKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG5cbiAgLy8gQ2hlY2sgdG9wLWxldmVsIGRpcmVjdG9yaWVzXG4gIGNvbnN0IHRvcExldmVsSXRlbXMgPSBmcy5yZWFkZGlyU3luYyhhYnNvbHV0ZVBhdGgpXG4gIGZvciAoY29uc3QgaXRlbSBvZiB0b3BMZXZlbEl0ZW1zKSB7XG4gICAgY29uc3QgaXRlbVBhdGggPSBwYXRoLmpvaW4oYWJzb2x1dGVQYXRoLCBpdGVtKVxuICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhpdGVtUGF0aClcblxuICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIC8vIERvdGZvbGRlcnMgYXJlIGV4ZW1wdFxuICAgICAgaWYgKGlzRG90ZmlsZShpdGVtKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGFuIGFsbG93ZWQgdG9wLWxldmVsIGRpcmVjdG9yeVxuICAgICAgaWYgKCFBTExPV0VEX1RPUF9MRVZFTC5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICB2aW9sYXRpb25zLnB1c2goe1xuICAgICAgICAgIHR5cGU6ICdpbnZhbGlkLXRvcC1sZXZlbCcsXG4gICAgICAgICAgcGF0aDogaXRlbSxcbiAgICAgICAgICBtZXNzYWdlOiBgSW52YWxpZCB0b3AtbGV2ZWwgZGlyZWN0b3J5OiAke2l0ZW19LiBBbGxvd2VkOiAke0FMTE9XRURfVE9QX0xFVkVMLmpvaW4oJywgJyl9IChkb3Rmb2xkZXJzIGV4ZW1wdClgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJdCdzIGEgZmlsZSAtIGNoZWNrIGlmIGl0J3MgYWxsb3dlZCBhdCB0b3AgbGV2ZWxcbiAgICAgIGlmICghaXNEb3RmaWxlKGl0ZW0pICYmICFBTExPV0VEX1RPUF9MRVZFTF9GSUxFUy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAvLyBBbGxvdyBjb21tb24gY29uZmlnIGZpbGUgcGF0dGVybnNcbiAgICAgICAgY29uc3QgaXNDb25maWdGaWxlID1cbiAgICAgICAgICBpdGVtLmVuZHNXaXRoKCcuY29uZmlnLmpzJykgfHxcbiAgICAgICAgICBpdGVtLmVuZHNXaXRoKCcuY29uZmlnLm1qcycpIHx8XG4gICAgICAgICAgaXRlbS5lbmRzV2l0aCgnLmNvbmZpZy50cycpIHx8XG4gICAgICAgICAgaXRlbS5lbmRzV2l0aCgnLmpzb24nKSB8fFxuICAgICAgICAgIGl0ZW0uZW5kc1dpdGgoJy5tZCcpIHx8XG4gICAgICAgICAgaXRlbS5lbmRzV2l0aCgnLnNoJylcblxuICAgICAgICBpZiAoIWlzQ29uZmlnRmlsZSkge1xuICAgICAgICAgIHZpb2xhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiAnb3JwaGFuLWZpbGUnLFxuICAgICAgICAgICAgcGF0aDogaXRlbSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBPcnBoYW4gZmlsZSBhdCBwcm9qZWN0IHJvb3Q6ICR7aXRlbX0uIEZpbGVzIHNob3VsZCBiZSBpbiBkZWZpbmVkIHpvbmVzLmAsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIC9zcmMgZm9sZGVyIHN0cnVjdHVyZVxuICBjb25zdCBzcmNQYXRoID0gcGF0aC5qb2luKGFic29sdXRlUGF0aCwgJ3NyYycpXG4gIGlmIChmcy5leGlzdHNTeW5jKHNyY1BhdGgpKSB7XG4gICAgY29uc3Qgc3JjSXRlbXMgPSBmcy5yZWFkZGlyU3luYyhzcmNQYXRoKVxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBzcmNJdGVtcykge1xuICAgICAgY29uc3QgaXRlbVBhdGggPSBwYXRoLmpvaW4oc3JjUGF0aCwgaXRlbSlcbiAgICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhpdGVtUGF0aClcblxuICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAvLyBDaGVjayBpZiBpdCdzIGFuIGFsbG93ZWQgL3NyYyBmb2xkZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFBTExPV0VEX1NSQ19GT0xERVJTLmluY2x1ZGVzKGl0ZW0pICYmXG4gICAgICAgICAgIWlzQXJjaGl2ZUNvbnRlbnRGb2xkZXIoaXRlbSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmlvbGF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdpbnZhbGlkLXNyYy1mb2xkZXInLFxuICAgICAgICAgICAgcGF0aDogYHNyYy8ke2l0ZW19YCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIGZvbGRlciBpbiAvc3JjOiAke2l0ZW19LiBBbGxvd2VkOiAke0FMTE9XRURfU1JDX0ZPTERFUlMuam9pbignLCAnKX0gb3IgYXJjaGl2ZSBjb250ZW50IGZvbGRlcnNgLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDaGVjayB0aGF0IHNyYy9hcHAgaGFzIHJvdXRlIGdyb3Vwc1xuICAgIGNvbnN0IGFwcFBhdGggPSBwYXRoLmpvaW4oc3JjUGF0aCwgJ2FwcCcpXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoYXBwUGF0aCkpIHtcbiAgICAgIGNvbnN0IGFwcEl0ZW1zID0gZnMucmVhZGRpclN5bmMoYXBwUGF0aClcbiAgICAgIGNvbnN0IGhhc0RlZmF1bHRHcm91cCA9IGFwcEl0ZW1zLnNvbWUoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtID09PSAnKGRlZmF1bHQpJyB8fCBpdGVtLnN0YXJ0c1dpdGgoJygnKVxuICAgICAgKVxuXG4gICAgICBpZiAoIWhhc0RlZmF1bHRHcm91cCkge1xuICAgICAgICB2aW9sYXRpb25zLnB1c2goe1xuICAgICAgICAgIHR5cGU6ICdpbnZhbGlkLXNyYy1mb2xkZXInLFxuICAgICAgICAgIHBhdGg6ICdzcmMvYXBwJyxcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgJ3NyYy9hcHAgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIHJvdXRlIGdyb3VwIGZvbGRlciAoZS5nLiwgKGRlZmF1bHQpLyknLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE91dHB1dCByZXN1bHRzXG4gIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICB7XG4gICAgICAgICAgdmFsaWQ6IHZpb2xhdGlvbnMubGVuZ3RoID09PSAwLFxuICAgICAgICAgIHZpb2xhdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIG51bGwsXG4gICAgICAgIDJcbiAgICAgIClcbiAgICApXG4gIH0gZWxzZSB7XG4gICAgaWYgKHZpb2xhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLmxvZygn4pyTIFByb2plY3Qgc3RydWN0dXJlIGlzIHZhbGlkJylcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYEZvdW5kICR7dmlvbGF0aW9ucy5sZW5ndGh9IHZpb2xhdGlvbihzKTpcXG5gKVxuICAgICAgZm9yIChjb25zdCB2IG9mIHZpb2xhdGlvbnMpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAg4pyXICR7di5tZXNzYWdlfWApXG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnJylcbiAgICB9XG4gIH1cblxuICAvLyBFeGl0IHdpdGggZXJyb3IgY29kZSBpZiBzdHJpY3QgbW9kZSBhbmQgdmlvbGF0aW9ucyBmb3VuZFxuICBpZiAob3B0aW9ucy5zdHJpY3QgJiYgdmlvbGF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbn1cbiJdfQ==
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @gallop/canon
|
|
3
3
|
*
|
|
4
|
-
* Gallop
|
|
4
|
+
* Gallop Canon
|
|
5
5
|
* Versioned, AI-compatible, auditable web architecture patterns
|
|
6
6
|
*/
|
|
7
7
|
import schema from '../schema.json' with { type: 'json' };
|
|
@@ -99,4 +99,4 @@ export default {
|
|
|
99
99
|
isValidPattern,
|
|
100
100
|
getEnforcementStats,
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtBQThDekQseUJBQXlCO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBZ0IsTUFBcUIsQ0FBQTtBQUV2RCxpQkFBaUI7QUFDakIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUE7QUFFckMsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBYyxNQUFNLENBQUMsUUFBcUIsQ0FBQTtBQUUvRCwwQkFBMEI7QUFDMUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUE7QUFFdkQsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBZ0IsTUFBTSxDQUFDLFVBQXlCLENBQUE7QUFFdkU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsRUFBVTtJQUNuQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBeUI7SUFDN0QsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFBO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQTtBQUMzRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQTtBQUNoRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBVTtJQUNyQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDNUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsV0FBbUI7SUFDekQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzNDLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFDekIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNsRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsRUFBVTtJQUN2QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxLQUFLLEdBQTJCLEVBQUUsQ0FBQTtJQUN4QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsaUJBQWlCO0FBQ2pCLGVBQWU7SUFDYixPQUFPO0lBQ1AsUUFBUTtJQUNSLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsY0FBYztJQUNkLG1CQUFtQjtDQUNwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZ2FsbG9wL2Nhbm9uXG4gKlxuICogR2FsbG9wIENhbm9uXG4gKiBWZXJzaW9uZWQsIEFJLWNvbXBhdGlibGUsIGF1ZGl0YWJsZSB3ZWIgYXJjaGl0ZWN0dXJlIHBhdHRlcm5zXG4gKi9cblxuaW1wb3J0IHNjaGVtYSBmcm9tICcuLi9zY2hlbWEuanNvbicgd2l0aCB7IHR5cGU6ICdqc29uJyB9XG5cbi8vIFR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm4ge1xuICBpZDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgZmlsZTogc3RyaW5nXG4gIGNhdGVnb3J5OiBQYXR0ZXJuQ2F0ZWdvcnlcbiAgc3RhdHVzOiAnc3RhYmxlJyB8ICdwcm9wb3NlZCcgfCAnZGVwcmVjYXRlZCdcbiAgZW5mb3JjZW1lbnQ6ICdlc2xpbnQnIHwgJ2RvY3VtZW50YXRpb24nIHwgJ2NpJ1xuICBydWxlOiBzdHJpbmcgfCBudWxsXG4gIHN1bW1hcnk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3J5IHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJhbnRlZSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpbmNlOiBzdHJpbmdcbiAgc3RhdHVzOiAnc3RhYmxlJyB8ICdwcm9wb3NlZCcgfCAnZGVwcmVjYXRlZCdcbiAgcGF0dGVybnM6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCB0eXBlIFBhdHRlcm5DYXRlZ29yeSA9XG4gIHwgJ3JlbmRlcmluZydcbiAgfCAnbGF5b3V0J1xuICB8ICd0eXBvZ3JhcGh5J1xuICB8ICdzdHJ1Y3R1cmUnXG4gIHwgJ3N0eWxpbmcnXG4gIHwgJ2NvbXBvbmVudHMnXG4gIHwgJ3NlbydcblxuZXhwb3J0IGludGVyZmFjZSBDYW5vblNjaGVtYSB7XG4gIG5hbWU6IHN0cmluZ1xuICB2ZXJzaW9uOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xuICBjYXRlZ29yaWVzOiBDYXRlZ29yeVtdXG4gIHBhdHRlcm5zOiBQYXR0ZXJuW11cbiAgZ3VhcmFudGVlczogR3VhcmFudGVlW11cbn1cblxuLy8gRXhwb3J0IHRoZSBmdWxsIHNjaGVtYVxuZXhwb3J0IGNvbnN0IGNhbm9uOiBDYW5vblNjaGVtYSA9IHNjaGVtYSBhcyBDYW5vblNjaGVtYVxuXG4vLyBFeHBvcnQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBzY2hlbWEudmVyc2lvblxuXG4vLyBFeHBvcnQgcGF0dGVybnMgYXJyYXlcbmV4cG9ydCBjb25zdCBwYXR0ZXJuczogUGF0dGVybltdID0gc2NoZW1hLnBhdHRlcm5zIGFzIFBhdHRlcm5bXVxuXG4vLyBFeHBvcnQgY2F0ZWdvcmllcyBhcnJheVxuZXhwb3J0IGNvbnN0IGNhdGVnb3JpZXM6IENhdGVnb3J5W10gPSBzY2hlbWEuY2F0ZWdvcmllc1xuXG4vLyBFeHBvcnQgZ3VhcmFudGVlcyBhcnJheVxuZXhwb3J0IGNvbnN0IGd1YXJhbnRlZXM6IEd1YXJhbnRlZVtdID0gc2NoZW1hLmd1YXJhbnRlZXMgYXMgR3VhcmFudGVlW11cblxuLyoqXG4gKiBHZXQgYSBwYXR0ZXJuIGJ5IElEXG4gKiBAcGFyYW0gaWQgLSBQYXR0ZXJuIElEIChlLmcuLCBcIjAwMVwiLCBcIjAwMlwiKVxuICogQHJldHVybnMgUGF0dGVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0dGVybihpZDogc3RyaW5nKTogUGF0dGVybiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXR0ZXJucy5maW5kKChwKSA9PiBwLmlkID09PSBpZClcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHBhdHRlcm5zIGluIGEgY2F0ZWdvcnlcbiAqIEBwYXJhbSBjYXRlZ29yeSAtIENhdGVnb3J5IElEIChlLmcuLCBcInJlbmRlcmluZ1wiLCBcInR5cG9ncmFwaHlcIilcbiAqIEByZXR1cm5zIEFycmF5IG9mIHBhdHRlcm5zIGluIHRoYXQgY2F0ZWdvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdHRlcm5zQnlDYXRlZ29yeShjYXRlZ29yeTogUGF0dGVybkNhdGVnb3J5KTogUGF0dGVybltdIHtcbiAgcmV0dXJuIHBhdHRlcm5zLmZpbHRlcigocCkgPT4gcC5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkpXG59XG5cbi8qKlxuICogR2V0IGFsbCBwYXR0ZXJucyBlbmZvcmNlZCBieSBFU0xpbnRcbiAqIEByZXR1cm5zIEFycmF5IG9mIEVTTGludC1lbmZvcmNlZCBwYXR0ZXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5mb3JjZWRQYXR0ZXJucygpOiBQYXR0ZXJuW10ge1xuICByZXR1cm4gcGF0dGVybnMuZmlsdGVyKChwKSA9PiBwLmVuZm9yY2VtZW50ID09PSAnZXNsaW50Jylcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHBhdHRlcm5zIHdpdGggYSBzcGVjaWZpYyBFU0xpbnQgcnVsZVxuICogQHBhcmFtIHJ1bGUgLSBFU0xpbnQgcnVsZSBuYW1lIChlLmcuLCBcImdhbGxvcC9uby1jbGllbnQtYmxvY2tzXCIpXG4gKiBAcmV0dXJucyBBcnJheSBvZiBwYXR0ZXJucyB1c2luZyB0aGF0IHJ1bGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdHRlcm5zQnlSdWxlKHJ1bGU6IHN0cmluZyk6IFBhdHRlcm5bXSB7XG4gIHJldHVybiBwYXR0ZXJucy5maWx0ZXIoKHApID0+IHAucnVsZSA9PT0gcnVsZSlcbn1cblxuLyoqXG4gKiBHZXQgYSBndWFyYW50ZWUgYnkgSURcbiAqIEBwYXJhbSBpZCAtIEd1YXJhbnRlZSBJRCAoZS5nLiwgXCJTRU9fU1RBQkxFXCIpXG4gKiBAcmV0dXJucyBHdWFyYW50ZWUgb2JqZWN0IG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEd1YXJhbnRlZShpZDogc3RyaW5nKTogR3VhcmFudGVlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGd1YXJhbnRlZXMuZmluZCgoZykgPT4gZy5pZCA9PT0gaWQpXG59XG5cbi8qKlxuICogR2V0IGFsbCBwYXR0ZXJucyBhc3NvY2lhdGVkIHdpdGggYSBndWFyYW50ZWVcbiAqIEBwYXJhbSBndWFyYW50ZWVJZCAtIEd1YXJhbnRlZSBJRCAoZS5nLiwgXCJTRU9fU1RBQkxFXCIpXG4gKiBAcmV0dXJucyBBcnJheSBvZiBwYXR0ZXJucyB0aGF0IHN1cHBvcnQgdGhpcyBndWFyYW50ZWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdHRlcm5zRm9yR3VhcmFudGVlKGd1YXJhbnRlZUlkOiBzdHJpbmcpOiBQYXR0ZXJuW10ge1xuICBjb25zdCBndWFyYW50ZWUgPSBnZXRHdWFyYW50ZWUoZ3VhcmFudGVlSWQpXG4gIGlmICghZ3VhcmFudGVlKSByZXR1cm4gW11cbiAgcmV0dXJuIHBhdHRlcm5zLmZpbHRlcigocCkgPT4gZ3VhcmFudGVlLnBhdHRlcm5zLmluY2x1ZGVzKHAuaWQpKVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgcGF0dGVybiBJRCBpcyB2YWxpZFxuICogQHBhcmFtIGlkIC0gUGF0dGVybiBJRCB0byBjaGVja1xuICogQHJldHVybnMgdHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUGF0dGVybihpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBwYXR0ZXJucy5zb21lKChwKSA9PiBwLmlkID09PSBpZClcbn1cblxuLyoqXG4gKiBHZXQgcGF0dGVybiBjb3VudCBieSBlbmZvcmNlbWVudCB0eXBlXG4gKiBAcmV0dXJucyBPYmplY3Qgd2l0aCBjb3VudHMgcGVyIGVuZm9yY2VtZW50IHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVuZm9yY2VtZW50U3RhdHMoKTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiB7XG4gIGNvbnN0IHN0YXRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIHBhdHRlcm5zKSB7XG4gICAgc3RhdHNbcGF0dGVybi5lbmZvcmNlbWVudF0gPSAoc3RhdHNbcGF0dGVybi5lbmZvcmNlbWVudF0gfHwgMCkgKyAxXG4gIH1cbiAgcmV0dXJuIHN0YXRzXG59XG5cbi8vIERlZmF1bHQgZXhwb3J0XG5leHBvcnQgZGVmYXVsdCB7XG4gIHZlcnNpb24sXG4gIHBhdHRlcm5zLFxuICBjYXRlZ29yaWVzLFxuICBndWFyYW50ZWVzLFxuICBnZXRQYXR0ZXJuLFxuICBnZXRQYXR0ZXJuc0J5Q2F0ZWdvcnksXG4gIGdldEVuZm9yY2VkUGF0dGVybnMsXG4gIGdldFBhdHRlcm5zQnlSdWxlLFxuICBnZXRHdWFyYW50ZWUsXG4gIGdldFBhdHRlcm5zRm9yR3VhcmFudGVlLFxuICBpc1ZhbGlkUGF0dGVybixcbiAgZ2V0RW5mb3JjZW1lbnRTdGF0cyxcbn1cbiJdfQ==
|
package/package.json
CHANGED
package/schema.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"name": "Gallop Canon",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "Gallop
|
|
5
|
+
"description": "Gallop Canon - Versioned, AI-compatible, auditable web architecture patterns",
|
|
6
6
|
"categories": [
|
|
7
7
|
{
|
|
8
8
|
"id": "rendering",
|