@adaptabletools/adaptable-mcp 0.1.0-canary.0 → 0.1.0-canary.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 +58 -61
- package/data/changes/21-22.json +542 -0
- package/data/changes/22-23.json +639 -0
- package/data/changes/23-24.json +1874 -0
- package/data/manifest.snapshot.json +202 -0
- package/data/templates/angular/src/app/adaptableOptions.ts +40 -0
- package/data/templates/angular/src/app/agGridModules.ts +7 -0
- package/data/templates/angular/src/app/app.component.ts +66 -0
- package/data/templates/angular/src/app/app.module.ts +14 -0
- package/data/templates/angular/src/app/columnDefs.ts +121 -0
- package/data/templates/angular/src/app/gridOptions.ts +32 -0
- package/data/templates/angular/src/app/onAdaptableReady.ts +11 -0
- package/data/templates/angular/src/app/rowData.ts +851 -0
- package/data/templates/angular/src/app/styles.css +50 -0
- package/data/templates/angular/src/index.html +17 -0
- package/data/templates/angular/src/main.ts +18 -0
- package/data/templates/angular/src/polyfills.ts +1 -0
- package/data/templates/angular/tsconfig.json +16 -0
- package/data/templates/manifest.json +406 -0
- package/data/templates/react/src/App.tsx +71 -0
- package/data/templates/react/src/adaptableOptions.ts +40 -0
- package/data/templates/react/src/agGridModules.ts +7 -0
- package/data/templates/react/src/columnDefs.ts +121 -0
- package/data/templates/react/src/gridOptions.ts +32 -0
- package/data/templates/react/src/index.tsx +8 -0
- package/data/templates/react/src/onAdaptableReady.ts +11 -0
- package/data/templates/react/src/rowData.ts +851 -0
- package/data/templates/react/src/styles.css +50 -0
- package/data/templates/react/tsconfig.json +9 -0
- package/data/templates/vanilla/index.html +18 -0
- package/data/templates/vanilla/src/adaptableOptions.ts +40 -0
- package/data/templates/vanilla/src/agGridModules.ts +7 -0
- package/data/templates/vanilla/src/columnDefs.ts +121 -0
- package/data/templates/vanilla/src/gridOptions.ts +32 -0
- package/data/templates/vanilla/src/index.ts +41 -0
- package/data/templates/vanilla/src/onAdaptableReady.ts +11 -0
- package/data/templates/vanilla/src/rowData.ts +851 -0
- package/data/templates/vanilla/src/styles.css +50 -0
- package/data/templates/vanilla/tsconfig.json +14 -0
- package/data/templates/vue/.babelrc +3 -0
- package/data/templates/vue/public/index.html +19 -0
- package/data/templates/vue/src/App.vue +35 -0
- package/data/templates/vue/src/adaptableOptions.ts +40 -0
- package/data/templates/vue/src/agGridModules.ts +7 -0
- package/data/templates/vue/src/columnDefs.ts +121 -0
- package/data/templates/vue/src/gridOptions.ts +32 -0
- package/data/templates/vue/src/main.ts +6 -0
- package/data/templates/vue/src/onAdaptableReady.ts +11 -0
- package/data/templates/vue/src/rowData.ts +851 -0
- package/data/templates/vue/src/shims-vue.d.ts +6 -0
- package/data/templates/vue/src/styles.css +50 -0
- package/data/templates/vue/tsconfig.json +30 -0
- package/dist/bin.js +23 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/build-commands.js +200 -0
- package/dist/cli/build-commands.js.map +1 -0
- package/dist/cli/index.js +94 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/render.js +57 -0
- package/dist/cli/render.js.map +1 -0
- package/dist/core/anonymise/anonymise.js +315 -0
- package/dist/core/anonymise/anonymise.js.map +1 -0
- package/dist/core/anonymise/capabilities.js +94 -0
- package/dist/core/anonymise/capabilities.js.map +1 -0
- package/dist/core/aql/capabilities.js +339 -0
- package/dist/core/aql/capabilities.js.map +1 -0
- package/dist/core/aql/check.js +204 -0
- package/dist/core/aql/check.js.map +1 -0
- package/dist/core/aql/engine.js +92 -0
- package/dist/core/aql/engine.js.map +1 -0
- package/dist/core/aql/functions.js +108 -0
- package/dist/core/aql/functions.js.map +1 -0
- package/dist/core/aql/migrate.js +62 -0
- package/dist/core/aql/migrate.js.map +1 -0
- package/dist/core/capabilities.js +105 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/changes/capabilities.js +92 -0
- package/dist/core/changes/capabilities.js.map +1 -0
- package/dist/core/changes/changes.js +101 -0
- package/dist/core/changes/changes.js.map +1 -0
- package/dist/core/changes/grep.js +183 -0
- package/dist/core/changes/grep.js.map +1 -0
- package/dist/core/changes/records.js +172 -0
- package/dist/core/changes/records.js.map +1 -0
- package/dist/core/changes/render-md.js +101 -0
- package/dist/core/changes/render-md.js.map +1 -0
- package/dist/core/changes/with-docs.js +86 -0
- package/dist/core/changes/with-docs.js.map +1 -0
- package/dist/core/compat/capabilities.js +127 -0
- package/dist/core/compat/capabilities.js.map +1 -0
- package/dist/core/compat/manifest.js +203 -0
- package/dist/core/compat/manifest.js.map +1 -0
- package/dist/core/constants.js +38 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/context/capabilities.js +106 -0
- package/dist/core/context/capabilities.js.map +1 -0
- package/dist/core/context/detect.js +370 -0
- package/dist/core/context/detect.js.map +1 -0
- package/dist/core/context/projects.js +159 -0
- package/dist/core/context/projects.js.map +1 -0
- package/dist/core/context/resolve.js +85 -0
- package/dist/core/context/resolve.js.map +1 -0
- package/dist/core/convert/capabilities.js +86 -0
- package/dist/core/convert/capabilities.js.map +1 -0
- package/dist/core/convert/coldefs.js +313 -0
- package/dist/core/convert/coldefs.js.map +1 -0
- package/dist/core/docs/areas.js +22 -0
- package/dist/core/docs/areas.js.map +1 -0
- package/dist/core/docs/cache.js +133 -0
- package/dist/core/docs/cache.js.map +1 -0
- package/dist/core/docs/capabilities.js +377 -0
- package/dist/core/docs/capabilities.js.map +1 -0
- package/dist/core/docs/corpus.js.map +1 -0
- package/dist/core/docs/demos.js +105 -0
- package/dist/core/docs/demos.js.map +1 -0
- package/dist/core/docs/get-page.js +182 -0
- package/dist/core/docs/get-page.js.map +1 -0
- package/dist/core/docs/hosts.js +74 -0
- package/dist/core/docs/hosts.js.map +1 -0
- package/dist/core/docs/search.js.map +1 -0
- package/dist/core/envelope.js +79 -0
- package/dist/core/envelope.js.map +1 -0
- package/dist/core/extract/imports.js +163 -0
- package/dist/core/extract/imports.js.map +1 -0
- package/dist/core/extract/input.js +140 -0
- package/dist/core/extract/input.js.map +1 -0
- package/dist/core/extract/line-map.js +90 -0
- package/dist/core/extract/line-map.js.map +1 -0
- package/dist/core/extract/ts-literal.js +963 -0
- package/dist/core/extract/ts-literal.js.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/migrate/capabilities.js +143 -0
- package/dist/core/migrate/capabilities.js.map +1 -0
- package/dist/core/migrate/leftovers.js +119 -0
- package/dist/core/migrate/leftovers.js.map +1 -0
- package/dist/core/migrate/state.js +295 -0
- package/dist/core/migrate/state.js.map +1 -0
- package/dist/core/packages/cache.js +139 -0
- package/dist/core/packages/cache.js.map +1 -0
- package/dist/core/packages/capabilities.js +95 -0
- package/dist/core/packages/capabilities.js.map +1 -0
- package/dist/{adaptable/types.js → core/packages/entry-types.js} +1 -1
- package/dist/core/packages/entry-types.js.map +1 -0
- package/dist/core/packages/exec.js +37 -0
- package/dist/core/packages/exec.js.map +1 -0
- package/dist/core/packages/load-entry.js +123 -0
- package/dist/core/packages/load-entry.js.map +1 -0
- package/dist/core/packages/prepare.js +122 -0
- package/dist/core/packages/prepare.js.map +1 -0
- package/dist/core/packages/registry.js +75 -0
- package/dist/core/packages/registry.js.map +1 -0
- package/dist/core/packages/resolve.js +94 -0
- package/dist/core/packages/resolve.js.map +1 -0
- package/dist/core/packages/versions.js +71 -0
- package/dist/core/packages/versions.js.map +1 -0
- package/dist/core/ping.js +22 -0
- package/dist/core/ping.js.map +1 -0
- package/dist/core/register.js +18 -0
- package/dist/core/register.js.map +1 -0
- package/dist/core/scaffold/capabilities.js +434 -0
- package/dist/core/scaffold/capabilities.js.map +1 -0
- package/dist/core/scaffold/generate.js +409 -0
- package/dist/core/scaffold/generate.js.map +1 -0
- package/dist/core/scaffold/infer.js +441 -0
- package/dist/core/scaffold/infer.js.map +1 -0
- package/dist/core/scaffold/overlay.js +290 -0
- package/dist/core/scaffold/overlay.js.map +1 -0
- package/dist/core/scaffold/readers/csv.js +146 -0
- package/dist/core/scaffold/readers/csv.js.map +1 -0
- package/dist/core/scaffold/readers/dataset.js +53 -0
- package/dist/core/scaffold/readers/dataset.js.map +1 -0
- package/dist/core/scaffold/readers/index.js +62 -0
- package/dist/core/scaffold/readers/index.js.map +1 -0
- package/dist/core/scaffold/readers/json.js +101 -0
- package/dist/core/scaffold/readers/json.js.map +1 -0
- package/dist/core/scaffold/readers/xlsx.js +81 -0
- package/dist/core/scaffold/readers/xlsx.js.map +1 -0
- package/dist/core/scaffold/suggestions.js +57 -0
- package/dist/core/scaffold/suggestions.js.map +1 -0
- package/dist/core/scaffold/templates.js +59 -0
- package/dist/core/scaffold/templates.js.map +1 -0
- package/dist/core/setup/audit.js +91 -0
- package/dist/core/setup/audit.js.map +1 -0
- package/dist/core/setup/capabilities.js +80 -0
- package/dist/core/setup/capabilities.js.map +1 -0
- package/dist/core/setup/context.js +118 -0
- package/dist/core/setup/context.js.map +1 -0
- package/dist/core/setup/rules/cell-data-type.js +40 -0
- package/dist/core/setup/rules/cell-data-type.js.map +1 -0
- package/dist/core/setup/rules/coldef-ownership.js +67 -0
- package/dist/core/setup/rules/coldef-ownership.js.map +1 -0
- package/dist/core/setup/rules/css-import.js +34 -0
- package/dist/core/setup/rules/css-import.js.map +1 -0
- package/dist/core/setup/rules/direct-grid.js +42 -0
- package/dist/core/setup/rules/direct-grid.js.map +1 -0
- package/dist/core/setup/rules/index.js +53 -0
- package/dist/core/setup/rules/index.js.map +1 -0
- package/dist/core/setup/rules/licence-literal.js +23 -0
- package/dist/core/setup/rules/licence-literal.js.map +1 -0
- package/dist/core/setup/rules/modules.js +86 -0
- package/dist/core/setup/rules/modules.js.map +1 -0
- package/dist/core/setup/rules/react-stable-refs.js +20 -0
- package/dist/core/setup/rules/react-stable-refs.js.map +1 -0
- package/dist/core/setup/rules/ready-hook.js +33 -0
- package/dist/core/setup/rules/ready-hook.js.map +1 -0
- package/dist/core/setup/rules/required-options.js +43 -0
- package/dist/core/setup/rules/required-options.js.map +1 -0
- package/dist/core/setup/rules/rule.js +10 -0
- package/dist/core/setup/rules/rule.js.map +1 -0
- package/dist/core/setup/rules/version-skew.js +65 -0
- package/dist/core/setup/rules/version-skew.js.map +1 -0
- package/dist/core/state/capabilities.js +78 -0
- package/dist/core/state/capabilities.js.map +1 -0
- package/dist/core/state/check.js +216 -0
- package/dist/core/state/check.js.map +1 -0
- package/dist/core/state/columns.js +130 -0
- package/dist/core/state/columns.js.map +1 -0
- package/dist/core/state/did-you-mean.js +83 -0
- package/dist/core/state/did-you-mean.js.map +1 -0
- package/dist/core/state/expressions.js +170 -0
- package/dist/core/state/expressions.js.map +1 -0
- package/dist/core/state/known-names.js +96 -0
- package/dist/core/state/known-names.js.map +1 -0
- package/dist/core/state/rules/aql-legacy-shape.js +42 -0
- package/dist/core/state/rules/aql-legacy-shape.js.map +1 -0
- package/dist/core/state/rules/aql-missing.js +21 -0
- package/dist/core/state/rules/aql-missing.js.map +1 -0
- package/dist/core/state/rules/aql-syntax.js +77 -0
- package/dist/core/state/rules/aql-syntax.js.map +1 -0
- package/dist/core/state/rules/calculated-settings.js +23 -0
- package/dist/core/state/rules/calculated-settings.js.map +1 -0
- package/dist/core/state/rules/column-id-exists.js +29 -0
- package/dist/core/state/rules/column-id-exists.js.map +1 -0
- package/dist/core/state/rules/dashboard-module-names.js +31 -0
- package/dist/core/state/rules/dashboard-module-names.js.map +1 -0
- package/dist/core/state/rules/dashboard-toolbar-names.js +48 -0
- package/dist/core/state/rules/dashboard-toolbar-names.js.map +1 -0
- package/dist/core/state/rules/format-column-pivot-display-format.js +43 -0
- package/dist/core/state/rules/format-column-pivot-display-format.js.map +1 -0
- package/dist/core/state/rules/helpers.js +39 -0
- package/dist/core/state/rules/helpers.js.map +1 -0
- package/dist/core/state/rules/index.js +80 -0
- package/dist/core/state/rules/index.js.map +1 -0
- package/dist/core/state/rules/layout-column-refs.js +60 -0
- package/dist/core/state/rules/layout-column-refs.js.map +1 -0
- package/dist/core/state/rules/layout-current-exists.js +27 -0
- package/dist/core/state/rules/layout-current-exists.js.map +1 -0
- package/dist/core/state/rules/layout-non-empty.js +32 -0
- package/dist/core/state/rules/layout-non-empty.js.map +1 -0
- package/dist/core/state/rules/rule.js +2 -0
- package/dist/core/state/rules/rule.js.map +1 -0
- package/dist/core/state/rules/scope-column-refs.js +32 -0
- package/dist/core/state/rules/scope-column-refs.js.map +1 -0
- package/dist/core/state/rules/scope-shape.js +61 -0
- package/dist/core/state/rules/scope-shape.js.map +1 -0
- package/dist/core/state/rules/state-unique-name.js +40 -0
- package/dist/core/state/rules/state-unique-name.js.map +1 -0
- package/dist/core/state/rules/state-unknown-section.js +30 -0
- package/dist/core/state/rules/state-unknown-section.js.map +1 -0
- package/dist/core/state/rules/type-discriminator.js +70 -0
- package/dist/core/state/rules/type-discriminator.js.map +1 -0
- package/dist/core/state/type-check.js +408 -0
- package/dist/core/state/type-check.js.map +1 -0
- package/dist/mcp/index.js +109 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.js +110 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/skills/adaptable-debug/SKILL.md +145 -0
- package/dist/skills/adaptable-debug/VERSION.md +1 -0
- package/dist/skills/adaptable-debug/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-debug/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-debug/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-debug/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-debug/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-debug/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-debug/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-debug/references/devtools-api.md +36 -0
- package/dist/skills/adaptable-debug/references/feedback-template.md +36 -0
- package/dist/skills/adaptable-debug/references/symptoms.md +37 -0
- package/dist/skills/adaptable-debug/references/ticket-template.md +50 -0
- package/dist/skills/adaptable-dev/SKILL.md +97 -0
- package/dist/skills/adaptable-dev/VERSION.md +1 -0
- package/dist/skills/adaptable-dev/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-dev/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-dev/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-dev/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-dev/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-dev/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-dev/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-dev/references/recommendations.md +93 -0
- package/dist/skills/adaptable-setup/SKILL.md +158 -0
- package/dist/skills/adaptable-setup/VERSION.md +1 -0
- package/dist/skills/adaptable-setup/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-setup/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-setup/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-setup/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-setup/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-setup/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-setup/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-setup/references/paths.md +45 -0
- package/dist/skills/adaptable-upgrade/SKILL.md +269 -0
- package/dist/skills/adaptable-upgrade/VERSION.md +1 -0
- package/dist/skills/adaptable-upgrade/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-upgrade/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-upgrade/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-upgrade/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-upgrade/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-upgrade/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-upgrade/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-upgrade/references/apply-order.md +171 -0
- package/dist/skills/adaptable-upgrade/references/plan-preamble.md +151 -0
- package/dist/skills/adaptable-upgrade/scripts/adaptable.mjs +24 -0
- package/package.json +34 -13
- package/dist/adaptable/loadEntry.js +0 -94
- package/dist/adaptable/loadEntry.js.map +0 -1
- package/dist/adaptable/types.js.map +0 -1
- package/dist/cache.js +0 -11
- package/dist/cache.js.map +0 -1
- package/dist/checks/stateRules.js +0 -389
- package/dist/checks/stateRules.js.map +0 -1
- package/dist/checks/stateTypes.js +0 -142
- package/dist/checks/stateTypes.js.map +0 -1
- package/dist/context.js +0 -39
- package/dist/context.js.map +0 -1
- package/dist/docs/corpus.js.map +0 -1
- package/dist/docs/search.js.map +0 -1
- package/dist/docs/source.js +0 -151
- package/dist/docs/source.js.map +0 -1
- package/dist/environment.js +0 -181
- package/dist/environment.js.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/prompts.js +0 -84
- package/dist/prompts.js.map +0 -1
- package/dist/resources.js +0 -59
- package/dist/resources.js.map +0 -1
- package/dist/server.js +0 -23
- package/dist/server.js.map +0 -1
- package/dist/tools/checks.js +0 -250
- package/dist/tools/checks.js.map +0 -1
- package/dist/tools/docs.js +0 -173
- package/dist/tools/docs.js.map +0 -1
- package/dist/tools/environment.js +0 -52
- package/dist/tools/environment.js.map +0 -1
- package/skills/adaptable-dev/SKILL.md +0 -42
- /package/dist/{docs → core/docs}/corpus.js +0 -0
- /package/dist/{docs → core/docs}/search.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/core/context/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adaptable convert coldefs <file|-> [--layout-name <name>] [--out <file>]` · CLI only (plan §8.7).
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { registerCapability } from '../capabilities.js';
|
|
6
|
+
import { CapabilityError, ok } from '../envelope.js';
|
|
7
|
+
import { convertColdefs } from './coldefs.js';
|
|
8
|
+
const Position = { file: z.string(), line: z.number(), column: z.number() };
|
|
9
|
+
const ConvertOutput = z.object({
|
|
10
|
+
source: z.object({ file: z.string(), locatedBy: z.string(), line: z.number().optional(), column: z.number().optional() }),
|
|
11
|
+
layoutType: z.enum(['Table', 'Pivot']),
|
|
12
|
+
layout: z.record(z.string(), z.unknown()),
|
|
13
|
+
state: z.object({ Layout: z.object({ CurrentLayout: z.string(), Layouts: z.array(z.record(z.string(), z.unknown())) }) }),
|
|
14
|
+
columns: z.object({ total: z.number(), included: z.array(z.string()), hidden: z.array(z.string()), groups: z.number(), skipped: z.array(z.string()) }),
|
|
15
|
+
remove: z.array(z.object({ ...Position, colId: z.string(), prop: z.string(), movedTo: z.string() })),
|
|
16
|
+
candidates: z.array(z.object({ ...Position, colId: z.string(), prop: z.string(), owner: z.string(), note: z.string().optional(), source: z.string(), kind: z.enum(['function', 'value', 'unverifiable']) })),
|
|
17
|
+
check: z.object({
|
|
18
|
+
checked: z.object({ shape: z.string(), semantics: z.string(), columnRefs: z.string(), options: z.enum(['visible', 'not visible']), aql: z.string(), agGridTypes: z.boolean().optional() }),
|
|
19
|
+
rules: z.number(),
|
|
20
|
+
issues: z.number(),
|
|
21
|
+
requiresAnotherCheckAfterFix: z.boolean(),
|
|
22
|
+
}),
|
|
23
|
+
wrote: z.string().optional(),
|
|
24
|
+
});
|
|
25
|
+
registerCapability({
|
|
26
|
+
name: 'convert-coldefs',
|
|
27
|
+
description: 'Turns AG Grid columnDefs into an AdapTable Layout (order, hidden columns, sizing, pinning, sorts, row groups, aggregations, pivots), lists the ColDef properties to remove with file:line, and the cellStyle / valueFormatter / valueGetter / cellRenderer snippets to re-express as Format, Calculated, Styled or Action Columns. The Layout is run through check state first.',
|
|
28
|
+
cli: { command: ['convert', 'coldefs'], positionals: ['file'], stdinField: 'text' },
|
|
29
|
+
mcp: null,
|
|
30
|
+
input: z.object({
|
|
31
|
+
file: z.string().optional().describe('columnDefs input: a JSON / JSONC / JSON5 array, or a .ts/.tsx/.js/.jsx/.vue file holding the literal; `-` reads stdin'),
|
|
32
|
+
text: z.string().optional().describe('The input text itself (stdin); the CLI fills it for `-`'),
|
|
33
|
+
layoutName: z.string().default('Default').describe('Name of the Layout to emit'),
|
|
34
|
+
out: z.string().optional().describe('Write the Layout (JSON) to this file; never the input file'),
|
|
35
|
+
}),
|
|
36
|
+
output: ConvertOutput,
|
|
37
|
+
run: async (input, ctx) => {
|
|
38
|
+
if (!input.file && input.text === undefined) {
|
|
39
|
+
throw new CapabilityError('USAGE', 'Pass the columnDefs file (or `-` for stdin).', 'Example: `adaptable convert coldefs src/columnDefs.ts --layout-name "Trading"`.');
|
|
40
|
+
}
|
|
41
|
+
const resolution = await ctx.resolveContext();
|
|
42
|
+
const major = resolution.context.adaptableMajor;
|
|
43
|
+
if (major === undefined) {
|
|
44
|
+
throw new CapabilityError('USAGE', 'The AdapTable major to check the Layout against could not be determined.', 'Run inside a project that depends on @adaptabletools/adaptable, or pass --major <n>.');
|
|
45
|
+
}
|
|
46
|
+
const result = await convertColdefs({ file: input.file, text: input.text, layoutName: input.layoutName, out: input.out }, { major, projectDir: resolution.project?.path ?? ctx.cwd, offline: ctx.globals.offline });
|
|
47
|
+
return ok(result.data, {
|
|
48
|
+
issues: result.issues,
|
|
49
|
+
warnings: [...resolution.warnings, ...result.warnings],
|
|
50
|
+
resolvedContext: {
|
|
51
|
+
...resolution.context,
|
|
52
|
+
...(result.codeSource ? { codeSource: result.codeSource } : {}),
|
|
53
|
+
...(result.engine ? { engine: result.engine } : {}),
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
markdown: (data, envelope) => {
|
|
58
|
+
const lines = [
|
|
59
|
+
`# convert coldefs → ${data.layoutType} Layout "${data.layout.Name}"`,
|
|
60
|
+
'',
|
|
61
|
+
`- Input: ${data.source.file}${data.source.line ? `:${data.source.line}:${data.source.column}` : ''} (${data.source.locatedBy}); ${data.columns.total} column${data.columns.total === 1 ? '' : 's'}${data.columns.groups ? ` in ${data.columns.groups} group${data.columns.groups === 1 ? '' : 's'}` : ''}${data.columns.hidden.length ? `, ${data.columns.hidden.length} hidden (${data.columns.hidden.join(', ')})` : ''}`,
|
|
62
|
+
`- check state --major: ${data.check.issues === 0 ? 'clean' : `${data.check.issues} issue${data.check.issues === 1 ? '' : 's'}`} (${data.check.rules} rules; shape ${data.check.checked.shape}; column refs ${data.check.checked.columnRefs})`,
|
|
63
|
+
];
|
|
64
|
+
if (data.wrote) {
|
|
65
|
+
lines.push(`- Written to: ${data.wrote}`);
|
|
66
|
+
}
|
|
67
|
+
lines.push('', '## Layout', '', '```json', JSON.stringify(data.state, null, 2), '```');
|
|
68
|
+
if (data.remove.length) {
|
|
69
|
+
lines.push('', `## Remove from the ColDefs (${data.remove.length})`, '', '| Where | Column | Property | Now in |', '| --- | --- | --- | --- |');
|
|
70
|
+
for (const r of data.remove) {
|
|
71
|
+
lines.push(`| ${r.file}:${r.line}:${r.column} | \`${r.colId}\` | \`${r.prop}\` | ${r.movedTo} |`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (data.candidates.length) {
|
|
75
|
+
lines.push('', `## Re-express by hand (${data.candidates.length})`, '');
|
|
76
|
+
for (const c of data.candidates) {
|
|
77
|
+
lines.push(`- \`${c.colId}.${c.prop}\` (${c.file}:${c.line}:${c.column}) → ${c.owner}${c.note ? ` — ${c.note}` : ''}`, ` \`${c.source}\``);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (envelope.issues.length) {
|
|
81
|
+
lines.push('', '_The Layout did not pass check state cleanly; see the findings above before pasting it._');
|
|
82
|
+
}
|
|
83
|
+
return lines.join('\n');
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/convert/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `convert coldefs` (plan §8.7, Appendix E): reads `columnDefs` through the shared
|
|
3
|
+
* extractor and emits a Layout — the columns in declared order minus the hidden ones,
|
|
4
|
+
* sizing, pinning, sorts, row groups, aggregations, pivots — plus `remove[]` for the
|
|
5
|
+
* ColDef properties the Layout now owns (positioned) and `candidates[]` for the
|
|
6
|
+
* `cellStyle` / `cellClassRules` / `valueFormatter` / `valueGetter` / `cellRenderer`
|
|
7
|
+
* snippets to re-express by hand as Format, Calculated, Styled or Action Columns. The
|
|
8
|
+
* Layout is run through `check state` (with the columns) before it is returned.
|
|
9
|
+
*
|
|
10
|
+
* Which ColDef properties are owned, and by what, comes from `COLDEF_OWNERSHIP` — the
|
|
11
|
+
* Appendix E table `check setup` uses — not from a second list here. The Layout written
|
|
12
|
+
* is the 24 shape (`TableLayout` / `PivotLayout` with `ColumnSizing`, `ColumnPinning`,
|
|
13
|
+
* `TableAggregationColumns`); §8.7 names the pre-24 `ColumnWidthMap` / `PinnedColumnsMap` /
|
|
14
|
+
* `AggregationColumns`, which the library keeps only as `LayoutOld`.
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
17
|
+
import { basename, resolve } from 'node:path';
|
|
18
|
+
import { CapabilityError } from '../envelope.js';
|
|
19
|
+
import { extractFromFile, extractFromSource } from '../extract/input.js';
|
|
20
|
+
import { COLDEF_OWNERSHIP } from '../setup/rules/coldef-ownership.js';
|
|
21
|
+
import { positionOf } from '../setup/rules/rule.js';
|
|
22
|
+
import { checkState } from '../state/check.js';
|
|
23
|
+
const isObj = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
24
|
+
/** Leaf columns in declared order, through column groups; `colId ?? field`, groups counted */
|
|
25
|
+
function flatten(defs) {
|
|
26
|
+
const leaves = [];
|
|
27
|
+
const skipped = [];
|
|
28
|
+
let groups = 0;
|
|
29
|
+
const visit = (def, path) => {
|
|
30
|
+
if (!isObj(def)) {
|
|
31
|
+
skipped.push(`${path}: not an object`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (Array.isArray(def.children)) {
|
|
35
|
+
groups += 1;
|
|
36
|
+
def.children.forEach((child, i) => visit(child, `${path}.children[${i}]`));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const colId = typeof def.colId === 'string' ? def.colId : typeof def.field === 'string' ? def.field : undefined;
|
|
40
|
+
if (!colId) {
|
|
41
|
+
skipped.push(`${path}: no colId or field`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
leaves.push({ def, path, colId, order: leaves.length });
|
|
45
|
+
};
|
|
46
|
+
defs.forEach((def, i) => visit(def, `[${i}]`));
|
|
47
|
+
return { leaves, groups, skipped };
|
|
48
|
+
}
|
|
49
|
+
function readInput(input) {
|
|
50
|
+
const options = { target: 'columnDefs' };
|
|
51
|
+
const result = input.text !== undefined ? extractFromSource(input.text, { ...options, file: input.file && input.file !== '-' ? input.file : '<stdin>' }) : extractFromFile(input.file ?? '', options);
|
|
52
|
+
if (result.value === undefined) {
|
|
53
|
+
throw new CapabilityError('EXTRACTION_FAILED', `No columnDefs found in ${basename(input.file ?? '<stdin>')}: tried ${result.tried.join(', ')}.`, 'Pass a JSON array of ColDefs, or a .ts/.tsx/.js/.jsx/.vue file that declares `columnDefs` (annotated `ColDef[]`, named `columnDefs`, or the `columnDefs` property of the Grid Options).');
|
|
54
|
+
}
|
|
55
|
+
return { extraction: result, result };
|
|
56
|
+
}
|
|
57
|
+
/** The source from the value's column to the end of its line, without a trailing `},` / `,` */
|
|
58
|
+
function sourceSnippet(file, line, column) {
|
|
59
|
+
try {
|
|
60
|
+
const text = readFileSync(file, 'utf8').split(/\r?\n/)[line - 1] ?? '';
|
|
61
|
+
const trimmed = text
|
|
62
|
+
.slice(Math.max(0, column - 1))
|
|
63
|
+
.trim()
|
|
64
|
+
.replace(/\s*\}?\s*,?\s*$/, '');
|
|
65
|
+
return trimmed.length > 200 ? `${trimmed.slice(0, 197)}…` : trimmed;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/** Appendix E guidance for a JavaScript `aggFunc`, which the Layout cannot carry */
|
|
72
|
+
const AGG_FUNC_CANDIDATE = {
|
|
73
|
+
owner: 'TableAggregationColumns with a named aggregation (sum, min, max, avg, count, first, last) or a CalculatedColumn with an AdapTableQL aggregation',
|
|
74
|
+
note: 'a JavaScript aggFunc does not serialise into State',
|
|
75
|
+
};
|
|
76
|
+
function shortJson(value) {
|
|
77
|
+
const text = JSON.stringify(value);
|
|
78
|
+
return text.length > 200 ? `${text.slice(0, 197)}…` : text;
|
|
79
|
+
}
|
|
80
|
+
/** Sorted by an explicit index (undefined last), then by declared order */
|
|
81
|
+
function byIndex(items) {
|
|
82
|
+
return [...items].sort((a, b) => {
|
|
83
|
+
if (a.index === undefined && b.index === undefined) {
|
|
84
|
+
return a.order - b.order;
|
|
85
|
+
}
|
|
86
|
+
if (a.index === undefined) {
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
if (b.index === undefined) {
|
|
90
|
+
return -1;
|
|
91
|
+
}
|
|
92
|
+
return a.index - b.index || a.order - b.order;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const asIndex = (value) => (typeof value === 'number' && Number.isFinite(value) ? value : undefined);
|
|
96
|
+
export async function convertColdefs(input, deps) {
|
|
97
|
+
const { extraction } = readInput(input);
|
|
98
|
+
if (!Array.isArray(extraction.value)) {
|
|
99
|
+
throw new CapabilityError('EXTRACTION_FAILED', `The columnDefs in ${basename(extraction.source.file)} is not an array.`, 'columnDefs is an array of ColDef / ColGroupDef objects.');
|
|
100
|
+
}
|
|
101
|
+
const defs = extraction.value;
|
|
102
|
+
const { leaves, groups, skipped } = flatten(defs);
|
|
103
|
+
const unverifiableAt = new Map(extraction.unverifiable.map((u) => [u.path, u]));
|
|
104
|
+
const warnings = [];
|
|
105
|
+
for (const entry of skipped) {
|
|
106
|
+
warnings.push(`Column ${entry}; left out of the Layout.`);
|
|
107
|
+
}
|
|
108
|
+
const remove = [];
|
|
109
|
+
const candidates = [];
|
|
110
|
+
const position = (path, at) => positionOf(extraction, path, at) ?? { file: extraction.source.file, line: extraction.source.line, column: extraction.source.column };
|
|
111
|
+
const included = [];
|
|
112
|
+
const hidden = [];
|
|
113
|
+
const sizing = {};
|
|
114
|
+
const pinning = {};
|
|
115
|
+
const sorts = [];
|
|
116
|
+
const rowGroups = [];
|
|
117
|
+
const pivots = [];
|
|
118
|
+
const aggregations = [];
|
|
119
|
+
const moved = (leaf, prop, movedTo) => {
|
|
120
|
+
const at = position(`${leaf.path}.${prop}`, 'key');
|
|
121
|
+
remove.push({ file: at.file, line: at.line, column: at.column, colId: leaf.colId, prop, movedTo });
|
|
122
|
+
};
|
|
123
|
+
const candidate = (leaf, prop) => {
|
|
124
|
+
const ownership = prop === 'aggFunc' ? AGG_FUNC_CANDIDATE : COLDEF_OWNERSHIP[prop];
|
|
125
|
+
const path = `${leaf.path}.${prop}`;
|
|
126
|
+
const stub = unverifiableAt.get(path);
|
|
127
|
+
const at = position(path, 'value');
|
|
128
|
+
const value = leaf.def[prop];
|
|
129
|
+
candidates.push({
|
|
130
|
+
colId: leaf.colId,
|
|
131
|
+
prop,
|
|
132
|
+
owner: ownership.owner,
|
|
133
|
+
...(ownership.note ? { note: ownership.note } : {}),
|
|
134
|
+
source: stub ? sourceSnippet(at.file, at.line, at.column) || `(${stub.kind})` : shortJson(value ?? null),
|
|
135
|
+
kind: stub ? (stub.kind === 'function' ? 'function' : 'unverifiable') : 'value',
|
|
136
|
+
file: at.file,
|
|
137
|
+
line: at.line,
|
|
138
|
+
column: at.column,
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
for (const leaf of leaves) {
|
|
142
|
+
const { def, colId, order } = leaf;
|
|
143
|
+
const stubbed = (prop) => unverifiableAt.has(`${leaf.path}.${prop}`);
|
|
144
|
+
// visibility and order
|
|
145
|
+
if (def.hide === true) {
|
|
146
|
+
hidden.push(colId);
|
|
147
|
+
moved(leaf, 'hide', 'TableColumns (left out)');
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
included.push(colId);
|
|
151
|
+
if (def.hide !== undefined && !stubbed('hide')) {
|
|
152
|
+
moved(leaf, 'hide', 'TableColumns (included)');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// sizing
|
|
156
|
+
if (typeof def.width === 'number') {
|
|
157
|
+
sizing[colId] = { Width: def.width };
|
|
158
|
+
moved(leaf, 'width', `ColumnSizing.${colId}.Width`);
|
|
159
|
+
}
|
|
160
|
+
else if (typeof def.flex === 'number') {
|
|
161
|
+
sizing[colId] = { Flex: def.flex };
|
|
162
|
+
moved(leaf, 'flex', `ColumnSizing.${colId}.Flex`);
|
|
163
|
+
}
|
|
164
|
+
if (typeof def.width === 'number' && typeof def.flex === 'number') {
|
|
165
|
+
warnings.push(`Column "${colId}" sets both width and flex; the Layout keeps Width (a column is fixed-width or flex, not both).`);
|
|
166
|
+
moved(leaf, 'flex', `ColumnSizing.${colId} (dropped: Width wins)`);
|
|
167
|
+
}
|
|
168
|
+
// pinning
|
|
169
|
+
if (def.pinned === 'left' || def.pinned === 'right' || def.pinned === true) {
|
|
170
|
+
pinning[colId] = def.pinned === true ? 'left' : def.pinned;
|
|
171
|
+
moved(leaf, 'pinned', `ColumnPinning.${colId}`);
|
|
172
|
+
}
|
|
173
|
+
else if (def.pinned !== undefined && !stubbed('pinned')) {
|
|
174
|
+
moved(leaf, 'pinned', 'ColumnPinning (not pinned)');
|
|
175
|
+
}
|
|
176
|
+
// sorting
|
|
177
|
+
if (def.sort === 'asc' || def.sort === 'desc') {
|
|
178
|
+
sorts.push({ ColumnId: colId, SortOrder: def.sort === 'asc' ? 'Asc' : 'Desc', index: asIndex(def.sortIndex), order });
|
|
179
|
+
moved(leaf, 'sort', 'ColumnSorts');
|
|
180
|
+
if (def.sortIndex !== undefined) {
|
|
181
|
+
moved(leaf, 'sortIndex', 'ColumnSorts (order)');
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
if (def.sort !== undefined && !stubbed('sort')) {
|
|
186
|
+
moved(leaf, 'sort', 'ColumnSorts (no sort)');
|
|
187
|
+
}
|
|
188
|
+
if (def.sortIndex !== undefined) {
|
|
189
|
+
moved(leaf, 'sortIndex', 'ColumnSorts (no sort)');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// row grouping
|
|
193
|
+
if (def.rowGroup === true || asIndex(def.rowGroupIndex) !== undefined) {
|
|
194
|
+
rowGroups.push({ ColumnId: colId, index: asIndex(def.rowGroupIndex), order });
|
|
195
|
+
}
|
|
196
|
+
if (def.rowGroup !== undefined && !stubbed('rowGroup')) {
|
|
197
|
+
moved(leaf, 'rowGroup', def.rowGroup === true || asIndex(def.rowGroupIndex) !== undefined ? 'RowGroupedColumns' : 'RowGroupedColumns (not grouped)');
|
|
198
|
+
}
|
|
199
|
+
if (def.rowGroupIndex !== undefined) {
|
|
200
|
+
moved(leaf, 'rowGroupIndex', 'RowGroupedColumns (order)');
|
|
201
|
+
}
|
|
202
|
+
// pivoting
|
|
203
|
+
if (def.pivot === true || asIndex(def.pivotIndex) !== undefined) {
|
|
204
|
+
pivots.push({ ColumnId: colId, index: asIndex(def.pivotIndex), order });
|
|
205
|
+
}
|
|
206
|
+
if (def.pivot !== undefined && !stubbed('pivot')) {
|
|
207
|
+
moved(leaf, 'pivot', def.pivot === true || asIndex(def.pivotIndex) !== undefined ? 'PivotColumns' : 'PivotColumns (not pivoted)');
|
|
208
|
+
}
|
|
209
|
+
if (def.pivotIndex !== undefined) {
|
|
210
|
+
moved(leaf, 'pivotIndex', 'PivotColumns (order)');
|
|
211
|
+
}
|
|
212
|
+
// aggregation: a named function converts, a JavaScript one is a candidate
|
|
213
|
+
if (typeof def.aggFunc === 'string' && def.aggFunc !== '') {
|
|
214
|
+
aggregations.push({ ColumnId: colId, AggFunc: def.aggFunc, order });
|
|
215
|
+
moved(leaf, 'aggFunc', 'TableAggregationColumns / PivotAggregationColumns');
|
|
216
|
+
}
|
|
217
|
+
else if (def.aggFunc === true) {
|
|
218
|
+
aggregations.push({ ColumnId: colId, AggFunc: true, order });
|
|
219
|
+
moved(leaf, 'aggFunc', 'TableAggregationColumns / PivotAggregationColumns');
|
|
220
|
+
}
|
|
221
|
+
else if (stubbed('aggFunc')) {
|
|
222
|
+
candidate(leaf, 'aggFunc');
|
|
223
|
+
}
|
|
224
|
+
else if (def.aggFunc !== undefined && def.aggFunc !== null && def.aggFunc !== false) {
|
|
225
|
+
warnings.push(`Column "${colId}": aggFunc ${shortJson(def.aggFunc)} is not a named aggregation; left in the ColDef.`);
|
|
226
|
+
}
|
|
227
|
+
// the Format / Calculated / Styled / Action Column candidates (the info rows of Appendix E)
|
|
228
|
+
for (const [prop, ownership] of Object.entries(COLDEF_OWNERSHIP)) {
|
|
229
|
+
if (ownership.severity === 'info' && (def[prop] !== undefined || stubbed(prop))) {
|
|
230
|
+
candidate(leaf, prop);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
const base = { Name: input.layoutName };
|
|
235
|
+
const layoutType = pivots.length > 0 ? 'Pivot' : 'Table';
|
|
236
|
+
const sortList = byIndex(sorts).map(({ ColumnId, SortOrder }) => ({ ColumnId, SortOrder }));
|
|
237
|
+
const groupList = byIndex(rowGroups).map((g) => g.ColumnId);
|
|
238
|
+
const aggList = aggregations.map(({ ColumnId, AggFunc }) => ({ ColumnId, AggFunc }));
|
|
239
|
+
let layout;
|
|
240
|
+
if (layoutType === 'Pivot') {
|
|
241
|
+
layout = {
|
|
242
|
+
...base,
|
|
243
|
+
PivotColumns: byIndex(pivots).map((p) => p.ColumnId),
|
|
244
|
+
...(groupList.length ? { PivotGroupedColumns: groupList } : {}),
|
|
245
|
+
...(aggList.length ? { PivotAggregationColumns: aggList } : {}),
|
|
246
|
+
};
|
|
247
|
+
warnings.push('Columns with `pivot` produce a Pivot Layout: it has no TableColumns, so the column order and the hidden columns apply only to a Table Layout you add beside it.');
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
layout = {
|
|
251
|
+
...base,
|
|
252
|
+
TableColumns: included,
|
|
253
|
+
...(groupList.length ? { RowGroupedColumns: groupList } : {}),
|
|
254
|
+
...(aggList.length ? { TableAggregationColumns: aggList } : {}),
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
if (sortList.length) {
|
|
258
|
+
layout.ColumnSorts = sortList;
|
|
259
|
+
}
|
|
260
|
+
if (Object.keys(pinning).length) {
|
|
261
|
+
layout.ColumnPinning = pinning;
|
|
262
|
+
}
|
|
263
|
+
if (Object.keys(sizing).length) {
|
|
264
|
+
layout.ColumnSizing = sizing;
|
|
265
|
+
}
|
|
266
|
+
// remove entries whose owner is the Table-only part when the Layout is a Pivot one
|
|
267
|
+
if (layoutType === 'Pivot') {
|
|
268
|
+
for (const entry of remove) {
|
|
269
|
+
if (entry.movedTo.startsWith('TableColumns')) {
|
|
270
|
+
entry.movedTo = `${entry.movedTo}; no TableColumns in a Pivot Layout`;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
const state = { Layout: { CurrentLayout: input.layoutName, Layouts: [layout] } };
|
|
275
|
+
// the Layout through check state, with the columns, before it is returned (plan §8.7)
|
|
276
|
+
const check = await checkState({ state, columnsValue: defs, kind: 'initial' }, deps);
|
|
277
|
+
const issues = check.issues.map((issue) => ({ ...issue, file: issue.file ?? extraction.source.file }));
|
|
278
|
+
warnings.push(...check.warnings);
|
|
279
|
+
let wrote;
|
|
280
|
+
if (input.out) {
|
|
281
|
+
const target = resolve(input.out);
|
|
282
|
+
if (input.file && input.file !== '-' && resolve(input.file) === target) {
|
|
283
|
+
throw new CapabilityError('USAGE', '--out must not be the input file.', 'Write the Layout to a new file and paste it into initialState.Layout.');
|
|
284
|
+
}
|
|
285
|
+
if (existsSync(target) && extraction.source.file === target) {
|
|
286
|
+
throw new CapabilityError('USAGE', '--out must not be the file the columnDefs were read from.', 'Write the Layout to a new file.');
|
|
287
|
+
}
|
|
288
|
+
writeFileSync(target, `${JSON.stringify(layout, null, 2)}\n`);
|
|
289
|
+
wrote = target;
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
data: {
|
|
293
|
+
source: {
|
|
294
|
+
file: extraction.source.file,
|
|
295
|
+
locatedBy: extraction.source.locatedBy,
|
|
296
|
+
...(extraction.source.line ? { line: extraction.source.line, column: extraction.source.column } : {}),
|
|
297
|
+
},
|
|
298
|
+
layoutType,
|
|
299
|
+
layout,
|
|
300
|
+
state,
|
|
301
|
+
columns: { total: leaves.length, included, hidden, groups, skipped },
|
|
302
|
+
remove,
|
|
303
|
+
candidates,
|
|
304
|
+
check: { checked: check.data.checked, rules: check.data.rules.length, issues: check.issues.length, requiresAnotherCheckAfterFix: check.data.requiresAnotherCheckAfterFix },
|
|
305
|
+
...(wrote ? { wrote } : {}),
|
|
306
|
+
},
|
|
307
|
+
issues,
|
|
308
|
+
warnings,
|
|
309
|
+
...(check.codeSource ? { codeSource: check.codeSource } : {}),
|
|
310
|
+
...(check.engine ? { engine: check.engine } : {}),
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=coldefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coldefs.js","sourceRoot":"","sources":["../../../src/core/convert/coldefs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** `--area` of `docs list|search` (plan §8.3) → the `pages.json` categories it covers */
|
|
2
|
+
export const AREAS = ['handbook', 'dev-guide', 'reference', 'tutorial', 'support', 'all'];
|
|
3
|
+
const AREA_CATEGORIES = {
|
|
4
|
+
handbook: ['handbook', 'ui', 'adaptable-ql', 'framework', 'integrations', 'adaptable-server'],
|
|
5
|
+
'dev-guide': ['dev-guide'],
|
|
6
|
+
reference: ['api', 'technical-reference'],
|
|
7
|
+
tutorial: ['getting-started', 'demos', 'documentation'],
|
|
8
|
+
support: ['support', 'release-notes'],
|
|
9
|
+
};
|
|
10
|
+
/** Categories for an area; undefined for `all` */
|
|
11
|
+
export function categoriesFor(area) {
|
|
12
|
+
return area && area !== 'all' ? AREA_CATEGORIES[area] : undefined;
|
|
13
|
+
}
|
|
14
|
+
export function areaOf(category) {
|
|
15
|
+
for (const [area, categories] of Object.entries(AREA_CATEGORIES)) {
|
|
16
|
+
if (categories.includes(category)) {
|
|
17
|
+
return area;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return 'handbook';
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=areas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areas.js","sourceRoot":"","sources":["../../../src/core/docs/areas.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAGnG,MAAM,eAAe,GAA2C;IAC9D,QAAQ,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,CAAC;IAC7F,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,SAAS,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACzC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,OAAO,EAAE,eAAe,CAAC;IACvD,OAAO,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;CACtC,CAAC;AAEF,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,IAAsB;IAClD,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,QAAgB;IACrC,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAuC,EAAE,CAAC;QACvG,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The docs corpus cache (plan §8.3 "Freshness"): `pages.json` and `llms-full.txt`
|
|
3
|
+
* live under `docs/<host>/<files hash>/`, where the hash is taken from the
|
|
4
|
+
* manifest's `files` block, so a deploy that changes the docs changes the folder
|
|
5
|
+
* and nothing else triggers a download. Offline, the newest cached corpus for the
|
|
6
|
+
* host is used with a warning.
|
|
7
|
+
*/
|
|
8
|
+
import { createHash } from 'node:crypto';
|
|
9
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { hostCacheDir } from '../compat/manifest.js';
|
|
12
|
+
import { splitPages, splitSections } from './corpus.js';
|
|
13
|
+
import { docsNotAvailable, resolveDocsSource } from './hosts.js';
|
|
14
|
+
import { SectionIndex } from './search.js';
|
|
15
|
+
const CORPUS_FILES = { full: 'llms-full.txt', pages: 'pages.json' };
|
|
16
|
+
const FETCH_TIMEOUT_MS = 60_000;
|
|
17
|
+
/** Short hash of the manifest's file hashes: the corpus folder name */
|
|
18
|
+
export function corpusKey(manifest) {
|
|
19
|
+
const hashes = Object.keys(manifest.files)
|
|
20
|
+
.sort()
|
|
21
|
+
.map((name) => `${name}:${manifest.files[name].sha256}`)
|
|
22
|
+
.join('\n');
|
|
23
|
+
return createHash('sha256').update(hashes).digest('hex').slice(0, 16);
|
|
24
|
+
}
|
|
25
|
+
export function corpusDir(host, manifest) {
|
|
26
|
+
return join(hostCacheDir(host), corpusKey(manifest));
|
|
27
|
+
}
|
|
28
|
+
const isComplete = (dir) => Object.values(CORPUS_FILES).every((file) => existsSync(join(dir, file)));
|
|
29
|
+
/** The newest complete corpus folder cached for a host, by modification time */
|
|
30
|
+
function newestCachedCorpus(host) {
|
|
31
|
+
const root = hostCacheDir(host);
|
|
32
|
+
let entries;
|
|
33
|
+
try {
|
|
34
|
+
entries = readdirSync(root);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
return entries
|
|
40
|
+
.map((name) => join(root, name))
|
|
41
|
+
.filter((dir) => statSync(dir).isDirectory() && isComplete(dir))
|
|
42
|
+
.sort((a, b) => statSync(b).mtimeMs - statSync(a).mtimeMs)[0];
|
|
43
|
+
}
|
|
44
|
+
async function download(host, path) {
|
|
45
|
+
const url = `${host}${path}`;
|
|
46
|
+
const response = await fetch(url, { signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
throw new Error(`${url} returned ${response.status}`);
|
|
49
|
+
}
|
|
50
|
+
return response.text();
|
|
51
|
+
}
|
|
52
|
+
function buildCorpus(source, origin, dir) {
|
|
53
|
+
const pagesJson = readFileSync(join(dir, CORPUS_FILES.pages), 'utf8');
|
|
54
|
+
const llmsFull = readFileSync(join(dir, CORPUS_FILES.full), 'utf8');
|
|
55
|
+
const pageMeta = new Map(JSON.parse(pagesJson).map((meta) => [meta.routePath, meta]));
|
|
56
|
+
const pages = new Map();
|
|
57
|
+
const sections = [];
|
|
58
|
+
for (const page of splitPages(llmsFull, pageMeta)) {
|
|
59
|
+
pages.set(page.routePath, page);
|
|
60
|
+
sections.push(...splitSections(page, sections.length));
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
manifest: source.manifest,
|
|
64
|
+
host: source.host,
|
|
65
|
+
origin,
|
|
66
|
+
pages,
|
|
67
|
+
pageMeta,
|
|
68
|
+
sections,
|
|
69
|
+
index: new SectionIndex(sections),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async function loadUncached(source, options) {
|
|
73
|
+
const warnings = [...source.warnings];
|
|
74
|
+
const { host, manifest } = source;
|
|
75
|
+
const files = manifest.files ?? {};
|
|
76
|
+
if (!files.pages?.path || !files.llmsFullTxt?.path) {
|
|
77
|
+
throw docsNotAvailable(host, 'The docs manifest lists no pages.json / llms-full.txt');
|
|
78
|
+
}
|
|
79
|
+
const dir = corpusDir(host, manifest);
|
|
80
|
+
if (isComplete(dir)) {
|
|
81
|
+
return { corpus: buildCorpus(source, 'cache', dir), warnings };
|
|
82
|
+
}
|
|
83
|
+
if (options.offline) {
|
|
84
|
+
const fallback = newestCachedCorpus(host);
|
|
85
|
+
if (!fallback) {
|
|
86
|
+
throw docsNotAvailable(host, '--offline and no docs corpus is cached');
|
|
87
|
+
}
|
|
88
|
+
warnings.push(`--offline: using the most recent docs corpus cached for ${host}, which predates the current manifest.`);
|
|
89
|
+
return { corpus: buildCorpus(source, 'cache', fallback), warnings };
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const [pagesJson, llmsFull] = await Promise.all([download(host, files.pages.path), download(host, files.llmsFullTxt.path)]);
|
|
93
|
+
mkdirSync(dir, { recursive: true });
|
|
94
|
+
writeFileSync(join(dir, CORPUS_FILES.pages), pagesJson);
|
|
95
|
+
writeFileSync(join(dir, CORPUS_FILES.full), llmsFull);
|
|
96
|
+
writeFileSync(join(dir, 'manifest.json'), JSON.stringify(manifest, null, 2));
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
const fallback = newestCachedCorpus(host);
|
|
100
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
101
|
+
if (!fallback) {
|
|
102
|
+
throw docsNotAvailable(host, `Could not download the docs corpus: ${reason}`);
|
|
103
|
+
}
|
|
104
|
+
warnings.push(`Could not download the docs corpus (${reason}); using the most recent one cached for ${host}.`);
|
|
105
|
+
return { corpus: buildCorpus(source, 'cache', fallback), warnings };
|
|
106
|
+
}
|
|
107
|
+
return { corpus: buildCorpus(source, 'host', dir), warnings };
|
|
108
|
+
}
|
|
109
|
+
const corpora = new Map();
|
|
110
|
+
/**
|
|
111
|
+
* The corpus for a major (or the current host): host resolution, manifest
|
|
112
|
+
* re-validation, cache lookup or download. Memoised per host + manifest hash
|
|
113
|
+
* within the process; the manifest re-validation is governed by `maxAgeMs`.
|
|
114
|
+
*/
|
|
115
|
+
export async function loadCorpus(options = {}) {
|
|
116
|
+
const source = await resolveDocsSource(options);
|
|
117
|
+
const key = `${source.host}/${corpusKey(source.manifest)}`;
|
|
118
|
+
let loaded = corpora.get(key);
|
|
119
|
+
if (!loaded) {
|
|
120
|
+
loaded = loadUncached(source, options);
|
|
121
|
+
loaded.catch(() => corpora.delete(key));
|
|
122
|
+
corpora.set(key, loaded);
|
|
123
|
+
}
|
|
124
|
+
const result = await loaded;
|
|
125
|
+
// the memoised load carries its own warnings; the fresh source resolution may add new ones
|
|
126
|
+
const warnings = [...new Set([...result.warnings, ...source.warnings])];
|
|
127
|
+
return { corpus: result.corpus, warnings };
|
|
128
|
+
}
|
|
129
|
+
/** Test hook: forget memoised corpora */
|
|
130
|
+
export function resetCorpusCache() {
|
|
131
|
+
corpora.clear();
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/core/docs/cache.ts"],"names":[],"mappings":"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"}
|