powerautodoc 0.1.18 → 0.1.20
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 +49 -4
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +6 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +11 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/index.js +22 -11
- package/dist/index.js.map +1 -1
- package/dist/ir/environmentVariable.d.ts +25 -0
- package/dist/ir/environmentVariable.d.ts.map +1 -0
- package/dist/ir/environmentVariable.js +7 -0
- package/dist/ir/environmentVariable.js.map +1 -0
- package/dist/ir/globalChoice.d.ts +32 -0
- package/dist/ir/globalChoice.d.ts.map +1 -0
- package/dist/ir/globalChoice.js +6 -0
- package/dist/ir/globalChoice.js.map +1 -0
- package/dist/ir/index.d.ts +2 -0
- package/dist/ir/index.d.ts.map +1 -1
- package/dist/ir/index.js.map +1 -1
- package/dist/parsers/environmentVariableParser.d.ts +7 -0
- package/dist/parsers/environmentVariableParser.d.ts.map +1 -0
- package/dist/parsers/environmentVariableParser.js +87 -0
- package/dist/parsers/environmentVariableParser.js.map +1 -0
- package/dist/parsers/globalChoiceParser.d.ts +8 -0
- package/dist/parsers/globalChoiceParser.d.ts.map +1 -0
- package/dist/parsers/globalChoiceParser.js +83 -0
- package/dist/parsers/globalChoiceParser.js.map +1 -0
- package/dist/parsers/index.d.ts +2 -0
- package/dist/parsers/index.d.ts.map +1 -1
- package/dist/parsers/index.js +2 -0
- package/dist/parsers/index.js.map +1 -1
- package/dist/publisher/wikiAssembler.d.ts +2 -2
- package/dist/publisher/wikiAssembler.d.ts.map +1 -1
- package/dist/publisher/wikiAssembler.js +39 -13
- package/dist/publisher/wikiAssembler.js.map +1 -1
- package/dist/renderers/environmentVariableRenderer.d.ts +8 -0
- package/dist/renderers/environmentVariableRenderer.d.ts.map +1 -0
- package/dist/renderers/environmentVariableRenderer.js +69 -0
- package/dist/renderers/environmentVariableRenderer.js.map +1 -0
- package/dist/renderers/flowRenderer.d.ts.map +1 -1
- package/dist/renderers/flowRenderer.js +0 -2
- package/dist/renderers/flowRenderer.js.map +1 -1
- package/dist/renderers/globalChoiceRenderer.d.ts +10 -0
- package/dist/renderers/globalChoiceRenderer.d.ts.map +1 -0
- package/dist/renderers/globalChoiceRenderer.js +72 -0
- package/dist/renderers/globalChoiceRenderer.js.map +1 -0
- package/dist/renderers/index.d.ts +3 -1
- package/dist/renderers/index.d.ts.map +1 -1
- package/dist/renderers/index.js +3 -1
- package/dist/renderers/index.js.map +1 -1
- package/dist/renderers/pluginRenderer.d.ts.map +1 -1
- package/dist/renderers/pluginRenderer.js +0 -2
- package/dist/renderers/pluginRenderer.js.map +1 -1
- package/dist/renderers/securityRoleRenderer.d.ts +6 -2
- package/dist/renderers/securityRoleRenderer.d.ts.map +1 -1
- package/dist/renderers/securityRoleRenderer.js +15 -36
- package/dist/renderers/securityRoleRenderer.js.map +1 -1
- package/dist/renderers/webResourceRenderer.d.ts +1 -1
- package/dist/renderers/webResourceRenderer.d.ts.map +1 -1
- package/dist/renderers/webResourceRenderer.js +15 -24
- package/dist/renderers/webResourceRenderer.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# PowerAutoDoc
|
|
2
2
|
|
|
3
3
|
Automated as-built documentation generator for Power Platform solutions.
|
|
4
4
|
|
|
5
|
-
Reads unpacked solution XML from Git and produces structured markdown documentation
|
|
6
|
-
|
|
5
|
+
Reads unpacked solution XML from Git and produces structured markdown documentation for Azure DevOps Wiki — automatically, on every deployment.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
PowerAutoDoc uses an IR-based (Intermediate Representation) pipeline to parse Power Platform solutions and generate consistent, human-readable documentation. It covers the full stack of a solution:
|
|
10
|
+
|
|
11
|
+
- **C# Plugins** — Assembly metadata, step registrations, and configurations
|
|
12
|
+
- **JavaScript Web Resources** — Client-side logic and dependencies
|
|
13
|
+
- **Dataverse Schema** — Tables, columns, relationships, and forms
|
|
14
|
+
- **Security Roles** — Privilege definitions and access levels
|
|
7
15
|
|
|
8
16
|
## Quick Start
|
|
17
|
+
|
|
9
18
|
```bash
|
|
19
|
+
# Unpack your solution from source control
|
|
10
20
|
pac solution unpack --zipfile MySolution.zip --folder ./unpacked
|
|
21
|
+
|
|
22
|
+
# Install dependencies
|
|
11
23
|
npm install
|
|
24
|
+
|
|
25
|
+
# Run locally
|
|
12
26
|
npm run dev
|
|
13
27
|
```
|
|
14
28
|
|
|
@@ -16,6 +30,37 @@ npm run dev
|
|
|
16
30
|
|
|
17
31
|
See `docs/architecture.jsx` for the full system design (open as a React artifact in Claude).
|
|
18
32
|
|
|
33
|
+
The pipeline follows a Git-native input model:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Unpacked Solution XML → IR Parser → Intermediate Representation → Renderers → Markdown Output
|
|
37
|
+
```
|
|
38
|
+
|
|
19
39
|
## Output
|
|
20
40
|
|
|
21
|
-
Generated
|
|
41
|
+
Generated documentation is written to `./output/` as structured markdown, ready for publishing to an Azure DevOps Wiki.
|
|
42
|
+
|
|
43
|
+
See `src/config/` for filtering and render options.
|
|
44
|
+
|
|
45
|
+
## CI/CD Integration
|
|
46
|
+
|
|
47
|
+
PowerAutoDoc is designed to run as part of your Azure DevOps pipeline, producing up-to-date as-built docs on every deployment with no manual effort.
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
- script: npm run build:docs
|
|
51
|
+
displayName: "Generate As-Built Documentation"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Configuration
|
|
55
|
+
|
|
56
|
+
| Option | Location | Description |
|
|
57
|
+
| ----------- | ------------------------- | ------------------------------ |
|
|
58
|
+
| Filters | `src/config/filters.js` | Exclude components from output |
|
|
59
|
+
| Renderers | `src/config/renderers.js` | Customise markdown formatting |
|
|
60
|
+
| Output path | `src/config/output.js` | Set destination directory |
|
|
61
|
+
|
|
62
|
+
## Requirements
|
|
63
|
+
|
|
64
|
+
- Node.js 18+
|
|
65
|
+
- Power Platform CLI (`pac`)
|
|
66
|
+
- Access to an unpacked Power Platform solution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiBhD,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiBhD,eAAO,MAAM,eAAe,EAAE,YAqC7B,CAAC;AA4BF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,MAAsB,GAAG,YAAY,CAmC1E"}
|
package/dist/config/loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAGhC,MAAM,wBAAwB,GAAG;IAC/B,2BAA2B;IAC3B,2BAA2B;IAC3B,sBAAsB;IACtB,qBAAqB;IACrB,cAAc;IACd,uBAAuB;IACvB,YAAY;IACZ,YAAY;IACZ,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,eAAe,EAAE,EAAE;YACnB,IAAI,EAAE,KAAK;SACZ;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,UAAU;KACjB;IACD,KAAK,EAAE;QACL,iBAAiB,EAAE,KAAK;QACxB,yBAAyB,EAAE,IAAI;QAC/B,4BAA4B,EAAE,IAAI;QAClC,eAAe,EAAE,wBAAwB;KAC1C;IACD,MAAM,EAAE;QACN,UAAU,EAAE,SAAS;KACtB;IACD,UAAU,EAAE;QACV,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,IAAI;QACX,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Shape of doc-gen.config.yml
|
|
3
3
|
* All fields are optional — loader merges with defaults.
|
|
4
4
|
*/
|
|
5
|
-
export type SolutionRole = 'datamodel' | 'flows' | 'classicWorkflows' | 'plugins' | 'webresources' | 'securityRoles' | 'all';
|
|
5
|
+
export type SolutionRole = 'datamodel' | 'flows' | 'classicWorkflows' | 'plugins' | 'webresources' | 'securityRoles' | 'environmentVariables' | 'globalChoices' | 'all';
|
|
6
6
|
export interface SolutionEntry {
|
|
7
7
|
/** Path to the unpacked solution folder (relative to config file) */
|
|
8
8
|
path: string;
|
|
@@ -13,6 +13,14 @@ export interface SolutionEntry {
|
|
|
13
13
|
/** Optional display name — used in wiki headings. Defaults to folder name. */
|
|
14
14
|
displayName?: string;
|
|
15
15
|
}
|
|
16
|
+
export interface EnvironmentVariablesConfig {
|
|
17
|
+
/** Include environment variables in the output. Default: false */
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
/** Include the Default Value column. Default: true */
|
|
20
|
+
showDefaultValue: boolean;
|
|
21
|
+
/** Include the Current Value column. Default: true */
|
|
22
|
+
showCurrentValue: boolean;
|
|
23
|
+
}
|
|
16
24
|
export interface DocGenConfig {
|
|
17
25
|
solutions: SolutionEntry[];
|
|
18
26
|
output: {
|
|
@@ -44,6 +52,8 @@ export interface DocGenConfig {
|
|
|
44
52
|
plugins: boolean;
|
|
45
53
|
webResources: boolean;
|
|
46
54
|
securityRoles: boolean;
|
|
55
|
+
environmentVariables: EnvironmentVariablesConfig;
|
|
56
|
+
globalChoices: boolean;
|
|
47
57
|
};
|
|
48
58
|
wiki?: WikiConfig;
|
|
49
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,kBAAkB,GAAG,SAAS,GAAG,cAAc,GAAG,eAAe,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,kBAAkB,GAAG,SAAS,GAAG,cAAc,GAAG,eAAe,GAAG,sBAAsB,GAAG,eAAe,GAAG,KAAK,CAAC;AAExK,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAE3B,MAAM,EAAE;QACN,kDAAkD;QAClD,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,KAAK,EAAE;QACL,4DAA4D;QAC5D,iBAAiB,EAAE,OAAO,CAAC;QAC3B,8DAA8D;QAC9D,yBAAyB,EAAE,OAAO,CAAC;QACnC,sDAAsD;QACtD,4BAA4B,EAAE,OAAO,CAAC;QACtC,oDAAoD;QACpD,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IAEF,MAAM,EAAE;QACN,4FAA4F;QAC5F,UAAU,EAAE,SAAS,GAAG,UAAU,CAAC;KACpC,CAAC;IAEF,UAAU,EAAE;QACV,iDAAiD;QACjD,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC;QACf,gBAAgB,EAAE,OAAO,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;QACvB,oBAAoB,EAAE,0BAA0B,CAAC;QACjD,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IAEF,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;CACb"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { loadConfig } from './config/index.js';
|
|
3
|
-
import { parseSolution, parseSolutionManifest } from './parsers/index.js';
|
|
4
|
-
import { writeTableMarkdown, writeOverviewMarkdown, writePluginMarkdown } from './renderers/index.js';
|
|
5
|
-
import { parseAllFlows } from './parsers/index.js';
|
|
6
|
-
import { writeFlowMarkdown } from './renderers/index.js';
|
|
3
|
+
import { parseSolution, parseSolutionManifest, parseAllFlows, parseClassicWorkflows, parseBusinessRules, parseAllPlugins, parseAllWebResources, parseSecurityRoles, parseEnvironmentVariables, parseGlobalChoices, } from './parsers/index.js';
|
|
4
|
+
import { writeTableMarkdown, writeOverviewMarkdown, writeFlowMarkdown, writePluginMarkdown, writeWebResourceMarkdown, } from './renderers/index.js';
|
|
7
5
|
import { publishToWiki } from './publisher/wikiPublisher.js';
|
|
8
6
|
import { buildWikiPages } from './publisher/wikiAssembler.js';
|
|
9
|
-
import { parseAllPlugins } from './parsers/index.js';
|
|
10
|
-
import { parseAllWebResources } from './parsers/index.js';
|
|
11
|
-
import { writeWebResourceMarkdown } from './renderers/index.js';
|
|
12
|
-
import { parseClassicWorkflows } from './parsers/classicWorkflowParser.js';
|
|
13
|
-
import { parseBusinessRules } from './parsers/businessRuleParser.js';
|
|
14
|
-
import { parseSecurityRoles } from './parsers/index.js';
|
|
15
7
|
async function main() {
|
|
16
8
|
const config = loadConfig();
|
|
17
9
|
const { path: outputPath } = config.output;
|
|
@@ -23,6 +15,8 @@ async function main() {
|
|
|
23
15
|
const allPluginAssemblies = [];
|
|
24
16
|
const allWebResources = [];
|
|
25
17
|
const allSecurityRoles = [];
|
|
18
|
+
const allEnvVars = [];
|
|
19
|
+
const allGlobalChoices = [];
|
|
26
20
|
for (const solutionEntry of config.solutions) {
|
|
27
21
|
const { path: unpackedPath, role, publisherPrefix } = solutionEntry;
|
|
28
22
|
console.log(`\nProcessing solution: ${unpackedPath} (role: ${role})`);
|
|
@@ -39,6 +33,7 @@ async function main() {
|
|
|
39
33
|
const isPlugins = role === 'plugins' || role === 'all';
|
|
40
34
|
const isWebResources = role === 'webresources' || role === 'all';
|
|
41
35
|
const isSecurity = role === 'all' || role === 'securityRoles';
|
|
36
|
+
const isEnvVars = role === 'all' || role === 'environmentVariables';
|
|
42
37
|
// Always parse the manifest so every solution appears in the Overview
|
|
43
38
|
const manifest = parseSolutionManifest(unpackedPath);
|
|
44
39
|
// ---- Data model ----
|
|
@@ -104,10 +99,26 @@ async function main() {
|
|
|
104
99
|
allSecurityRoles.push(...roles);
|
|
105
100
|
console.log(` Parsed ${roles.length} security roles from: ${unpackedPath}`);
|
|
106
101
|
}
|
|
102
|
+
// ---- Global Choices ----
|
|
103
|
+
if ((role === 'all' || role === 'globalChoices') && config.components.globalChoices) {
|
|
104
|
+
const choices = parseGlobalChoices(unpackedPath, publisherPrefix);
|
|
105
|
+
allGlobalChoices.push(...choices);
|
|
106
|
+
if (choices.length > 0) {
|
|
107
|
+
console.log(` Parsed ${choices.length} global choices from: ${unpackedPath}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// ---- Environment Variables ----
|
|
111
|
+
if ((role === 'all' || role === 'environmentVariables') && config.components.environmentVariables.enabled) {
|
|
112
|
+
const envVars = parseEnvironmentVariables(unpackedPath);
|
|
113
|
+
allEnvVars.push(...envVars);
|
|
114
|
+
if (envVars.length > 0) {
|
|
115
|
+
console.log(` Parsed ${envVars.length} environment variables from: ${unpackedPath}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
107
118
|
}
|
|
108
119
|
// ---- Wiki publish ----
|
|
109
120
|
if (config.wiki && mergedSolution) {
|
|
110
|
-
const pages = buildWikiPages(config, allSolutions, mergedSolution, allFlows, allPluginAssemblies, allWebResources, allClassicWorkflows, allBusinessRules, allSecurityRoles);
|
|
121
|
+
const pages = buildWikiPages(config, allSolutions, mergedSolution, allFlows, allPluginAssemblies, allWebResources, allClassicWorkflows, allBusinessRules, allSecurityRoles, allEnvVars, allGlobalChoices);
|
|
111
122
|
await publishToWiki(config.wiki, pages);
|
|
112
123
|
}
|
|
113
124
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IR model for Environment Variable Definitions.
|
|
3
|
+
* Each definition may have an optional current value (from environmentvariablevalues.json).
|
|
4
|
+
* If no value file exists, currentValue is undefined and defaultValue applies.
|
|
5
|
+
*/
|
|
6
|
+
export type EnvironmentVariableType = 'String' | 'Number' | 'Boolean' | 'JSON' | 'DataSource' | 'Unknown';
|
|
7
|
+
export interface EnvironmentVariableModel {
|
|
8
|
+
/** Schema name, e.g. "isms_AccountTypeSchool" */
|
|
9
|
+
schemaName: string;
|
|
10
|
+
/** Display name, e.g. "Account Type - School" */
|
|
11
|
+
displayName: string;
|
|
12
|
+
/** Description / purpose */
|
|
13
|
+
description: string;
|
|
14
|
+
/** Data type */
|
|
15
|
+
type: EnvironmentVariableType;
|
|
16
|
+
/** Default value from the definition XML (may be empty) */
|
|
17
|
+
defaultValue: string;
|
|
18
|
+
/** Current value from environmentvariablevalues.json (undefined if not set) */
|
|
19
|
+
currentValue: string | undefined;
|
|
20
|
+
/** Whether this variable is required */
|
|
21
|
+
isRequired: boolean;
|
|
22
|
+
/** Whether the value is stored in a secret store (0=none, 1=Azure KV, 2=MS Secret Store) */
|
|
23
|
+
secretStore: number;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=environmentVariable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentVariable.d.ts","sourceRoot":"","sources":["../../src/ir/environmentVariable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IR model for Environment Variable Definitions.
|
|
3
|
+
* Each definition may have an optional current value (from environmentvariablevalues.json).
|
|
4
|
+
* If no value file exists, currentValue is undefined and defaultValue applies.
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=environmentVariable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentVariable.js","sourceRoot":"","sources":["../../src/ir/environmentVariable.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IR model for Global Option Sets (Global Choices).
|
|
3
|
+
* These are solution-level picklists reusable across multiple tables/columns.
|
|
4
|
+
*/
|
|
5
|
+
export type OptionSetType = 'picklist' | 'bool' | 'status' | 'state' | 'Unknown';
|
|
6
|
+
export interface ChoiceOptionModel {
|
|
7
|
+
/** Integer value stored in Dataverse */
|
|
8
|
+
value: number;
|
|
9
|
+
/** Display label (English 1033) */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Description if provided */
|
|
12
|
+
description: string;
|
|
13
|
+
/** Whether the option is hidden from the UI */
|
|
14
|
+
isHidden: boolean;
|
|
15
|
+
/** External value for integration mapping (if set) */
|
|
16
|
+
externalValue: string;
|
|
17
|
+
}
|
|
18
|
+
export interface GlobalChoiceModel {
|
|
19
|
+
/** Schema name e.g. "isms_accounttype" */
|
|
20
|
+
schemaName: string;
|
|
21
|
+
/** Display name e.g. "Account type" */
|
|
22
|
+
displayName: string;
|
|
23
|
+
/** Description if provided */
|
|
24
|
+
description: string;
|
|
25
|
+
/** Picklist type */
|
|
26
|
+
optionSetType: OptionSetType;
|
|
27
|
+
/** Whether this is a global (solution-level) option set */
|
|
28
|
+
isGlobal: boolean;
|
|
29
|
+
/** Ordered list of options */
|
|
30
|
+
options: ChoiceOptionModel[];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=globalChoice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalChoice.d.ts","sourceRoot":"","sources":["../../src/ir/globalChoice.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalChoice.js","sourceRoot":"","sources":["../../src/ir/globalChoice.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/ir/index.d.ts
CHANGED
|
@@ -9,5 +9,7 @@ export type { WebResourceType, WebResourceFunction, WebResourceModel } from './w
|
|
|
9
9
|
export type { ClassicWorkflowCategory, ClassicWorkflowMode, ClassicWorkflowScope, ClassicWorkflowStepModel, ClassicWorkflowTriggers, ClassicWorkflowModel } from './classicWorkflow.js';
|
|
10
10
|
export type { BusinessRuleModel, BusinessRuleCondition, BusinessRuleAction, BusinessRuleActionType, BusinessRuleScope } from './businessRule.js';
|
|
11
11
|
export type { SecurityRoleModel, EntityPrivileges, PrivilegeLevel } from './securityRole.js';
|
|
12
|
+
export type { EnvironmentVariableModel, EnvironmentVariableType } from './environmentVariable.js';
|
|
13
|
+
export type { GlobalChoiceModel, ChoiceOptionModel, OptionSetType } from './globalChoice.js';
|
|
12
14
|
export { WEB_RESOURCE_TYPE_MAP } from './webResource.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/ir/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7G,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClI,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACvL,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjJ,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7G,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClI,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACvL,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjJ,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7F,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAClG,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/ir/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EnvironmentVariableModel } from '../ir/environmentVariable.js';
|
|
2
|
+
/**
|
|
3
|
+
* Scans the EnvironmentVariableDefinitions/ folder and returns a model per variable.
|
|
4
|
+
* Sorted alphabetically by display name.
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseEnvironmentVariables(solutionRoot: string): EnvironmentVariableModel[];
|
|
7
|
+
//# sourceMappingURL=environmentVariableParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentVariableParser.d.ts","sourceRoot":"","sources":["../../src/parsers/environmentVariableParser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAA2B,MAAM,8BAA8B,CAAC;AAgFtG;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,wBAAwB,EAAE,CAU1F"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
4
|
+
const xmlParser = new XMLParser({
|
|
5
|
+
ignoreAttributes: false,
|
|
6
|
+
attributeNamePrefix: '@_',
|
|
7
|
+
isArray: () => false,
|
|
8
|
+
});
|
|
9
|
+
// Maps Dataverse type codes to readable labels
|
|
10
|
+
const TYPE_MAP = {
|
|
11
|
+
'100000000': 'String',
|
|
12
|
+
'100000001': 'Number',
|
|
13
|
+
'100000002': 'Boolean',
|
|
14
|
+
'100000003': 'JSON',
|
|
15
|
+
'100000010': 'DataSource',
|
|
16
|
+
};
|
|
17
|
+
function parseType(raw) {
|
|
18
|
+
return TYPE_MAP[String(raw ?? '')] ?? 'Unknown';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Reads a single EnvironmentVariableDefinitions/{schemaName}/ folder.
|
|
22
|
+
* Returns null if the definition file is missing or malformed.
|
|
23
|
+
*/
|
|
24
|
+
function parseEnvVarFolder(folderPath) {
|
|
25
|
+
const defPath = path.join(folderPath, 'environmentvariabledefinition.xml');
|
|
26
|
+
if (!fs.existsSync(defPath))
|
|
27
|
+
return null;
|
|
28
|
+
const xml = fs.readFileSync(defPath, 'utf-8');
|
|
29
|
+
const doc = xmlParser.parse(xml);
|
|
30
|
+
const def = doc['environmentvariabledefinition'];
|
|
31
|
+
if (!def)
|
|
32
|
+
return null;
|
|
33
|
+
const schemaName = def['@_schemaname'] ?? path.basename(folderPath);
|
|
34
|
+
// Display name — prefer the `default` attribute on the <displayname> element
|
|
35
|
+
const displayName = def['displayname']?.['@_default'] ??
|
|
36
|
+
def['displayname'] ??
|
|
37
|
+
schemaName;
|
|
38
|
+
// Description
|
|
39
|
+
const description = def['description']?.['@_default'] ??
|
|
40
|
+
def['description'] ??
|
|
41
|
+
'';
|
|
42
|
+
const defaultValue = String(def['defaultvalue'] ?? '');
|
|
43
|
+
const isRequired = String(def['isrequired']) === '1';
|
|
44
|
+
const secretStore = Number(def['secretstore'] ?? 0);
|
|
45
|
+
const type = parseType(def['type']);
|
|
46
|
+
// Try to read the current value from the optional values JSON
|
|
47
|
+
let currentValue;
|
|
48
|
+
const valPath = path.join(folderPath, 'environmentvariablevalues.json');
|
|
49
|
+
if (fs.existsSync(valPath)) {
|
|
50
|
+
try {
|
|
51
|
+
const json = JSON.parse(fs.readFileSync(valPath, 'utf-8'));
|
|
52
|
+
const raw = json?.environmentvariablevalues?.environmentvariablevalue?.value;
|
|
53
|
+
if (raw !== undefined && raw !== null && String(raw).trim() !== '') {
|
|
54
|
+
currentValue = String(raw);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// malformed JSON — leave currentValue undefined
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
schemaName,
|
|
63
|
+
displayName,
|
|
64
|
+
description,
|
|
65
|
+
type,
|
|
66
|
+
defaultValue,
|
|
67
|
+
currentValue,
|
|
68
|
+
isRequired,
|
|
69
|
+
secretStore,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Scans the EnvironmentVariableDefinitions/ folder and returns a model per variable.
|
|
74
|
+
* Sorted alphabetically by display name.
|
|
75
|
+
*/
|
|
76
|
+
export function parseEnvironmentVariables(solutionRoot) {
|
|
77
|
+
const defsDir = path.join(solutionRoot, 'EnvironmentVariableDefinitions');
|
|
78
|
+
if (!fs.existsSync(defsDir))
|
|
79
|
+
return [];
|
|
80
|
+
return fs
|
|
81
|
+
.readdirSync(defsDir, { withFileTypes: true })
|
|
82
|
+
.filter(e => e.isDirectory())
|
|
83
|
+
.map(e => parseEnvVarFolder(path.join(defsDir, e.name)))
|
|
84
|
+
.filter((m) => m !== null)
|
|
85
|
+
.sort((a, b) => a.displayName.localeCompare(b.displayName));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=environmentVariableParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentVariableParser.js","sourceRoot":"","sources":["../../src/parsers/environmentVariableParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GlobalChoiceModel } from '../ir/globalChoice.js';
|
|
2
|
+
/**
|
|
3
|
+
* Scans the OptionSets/ folder and returns a model per global choice file.
|
|
4
|
+
* Filters to custom choices using the publisher prefix (e.g. "isms_").
|
|
5
|
+
* Sorted alphabetically by display name.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseGlobalChoices(solutionRoot: string, publisherPrefix?: string): GlobalChoiceModel[];
|
|
8
|
+
//# sourceMappingURL=globalChoiceParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalChoiceParser.d.ts","sourceRoot":"","sources":["../../src/parsers/globalChoiceParser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAoC,MAAM,uBAAuB,CAAC;AAsEjG;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,iBAAiB,EAAE,CAgBrB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
4
|
+
const xmlParser = new XMLParser({
|
|
5
|
+
ignoreAttributes: false,
|
|
6
|
+
attributeNamePrefix: '@_',
|
|
7
|
+
isArray: (name) => name === 'option' || name === 'label' || name === 'Description' || name === 'displayname',
|
|
8
|
+
});
|
|
9
|
+
function parseOptionSetType(raw) {
|
|
10
|
+
switch ((raw ?? '').toLowerCase()) {
|
|
11
|
+
case 'picklist': return 'picklist';
|
|
12
|
+
case 'bool': return 'bool';
|
|
13
|
+
case 'status': return 'status';
|
|
14
|
+
case 'state': return 'state';
|
|
15
|
+
default: return 'Unknown';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function parseOption(raw) {
|
|
19
|
+
const value = Number(raw['@_value'] ?? 0);
|
|
20
|
+
const isHidden = String(raw['@_IsHidden'] ?? '0') === '1';
|
|
21
|
+
const externalValue = String(raw['@_ExternalValue'] ?? '');
|
|
22
|
+
// Label — pick languagecode 1033 (English) first, fall back to first available
|
|
23
|
+
const labels = raw['labels']?.['label'] ?? [];
|
|
24
|
+
const englishLabel = labels.find((l) => String(l['@_languagecode']) === '1033');
|
|
25
|
+
const label = (englishLabel ?? labels[0])?.['@_description'] ?? '';
|
|
26
|
+
// Description
|
|
27
|
+
const descriptions = raw['Descriptions']?.['Description'] ?? [];
|
|
28
|
+
const englishDesc = descriptions.find((d) => String(d['@_languagecode']) === '1033');
|
|
29
|
+
const description = (englishDesc ?? descriptions[0])?.['@_description'] ?? '';
|
|
30
|
+
return { value, label, description, isHidden, externalValue };
|
|
31
|
+
}
|
|
32
|
+
function parseChoiceFile(filePath) {
|
|
33
|
+
try {
|
|
34
|
+
const xml = fs.readFileSync(filePath, 'utf-8');
|
|
35
|
+
const doc = xmlParser.parse(xml);
|
|
36
|
+
const os = doc['optionset'];
|
|
37
|
+
if (!os)
|
|
38
|
+
return null;
|
|
39
|
+
const schemaName = os['@_Name'] ?? path.basename(filePath, '.xml');
|
|
40
|
+
// Display name — prefer localizedName attribute, fall back to displaynames element
|
|
41
|
+
const localizedName = os['@_localizedName'] ?? '';
|
|
42
|
+
const displayNameEl = os['displaynames']?.['displayname'] ?? [];
|
|
43
|
+
const displayNameFromEl = (Array.isArray(displayNameEl) ? displayNameEl[0] : displayNameEl)?.['@_description'] ?? '';
|
|
44
|
+
const displayName = localizedName || displayNameFromEl || schemaName;
|
|
45
|
+
// Description
|
|
46
|
+
const descEl = os['Descriptions']?.['Description'] ?? [];
|
|
47
|
+
const descItem = Array.isArray(descEl) ? descEl[0] : descEl;
|
|
48
|
+
const description = descItem?.['@_description'] ?? '';
|
|
49
|
+
const optionSetType = parseOptionSetType(os['OptionSetType']);
|
|
50
|
+
const isGlobal = String(os['IsGlobal'] ?? '1') === '1';
|
|
51
|
+
// Options — filter out hidden ones by default; keep all and let renderer decide
|
|
52
|
+
const rawOptions = os['options']?.['option'] ?? [];
|
|
53
|
+
const options = rawOptions.map(parseOption);
|
|
54
|
+
return { schemaName, displayName, description, optionSetType, isGlobal, options };
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Scans the OptionSets/ folder and returns a model per global choice file.
|
|
62
|
+
* Filters to custom choices using the publisher prefix (e.g. "isms_").
|
|
63
|
+
* Sorted alphabetically by display name.
|
|
64
|
+
*/
|
|
65
|
+
export function parseGlobalChoices(solutionRoot, publisherPrefix) {
|
|
66
|
+
const optionSetsDir = path.join(solutionRoot, 'OptionSets');
|
|
67
|
+
if (!fs.existsSync(optionSetsDir))
|
|
68
|
+
return [];
|
|
69
|
+
return fs
|
|
70
|
+
.readdirSync(optionSetsDir)
|
|
71
|
+
.filter(f => {
|
|
72
|
+
if (!f.endsWith('.xml'))
|
|
73
|
+
return false;
|
|
74
|
+
if (publisherPrefix) {
|
|
75
|
+
return f.toLowerCase().startsWith(`${publisherPrefix.toLowerCase()}_`);
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
})
|
|
79
|
+
.map(f => parseChoiceFile(path.join(optionSetsDir, f)))
|
|
80
|
+
.filter((m) => m !== null)
|
|
81
|
+
.sort((a, b) => a.displayName.localeCompare(b.displayName));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=globalChoiceParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalChoiceParser.js","sourceRoot":"","sources":["../../src/parsers/globalChoiceParser.ts"],"names":[],"mappings":"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"}
|
package/dist/parsers/index.d.ts
CHANGED
|
@@ -10,4 +10,6 @@ export { parseAllWebResources } from './webResourceParser.js';
|
|
|
10
10
|
export { parseClassicWorkflows } from './classicWorkflowParser.js';
|
|
11
11
|
export { parseBusinessRules } from './businessRuleParser.js';
|
|
12
12
|
export { parseSecurityRoles } from './securityRoleParser.js';
|
|
13
|
+
export { parseEnvironmentVariables } from './environmentVariableParser.js';
|
|
14
|
+
export { parseGlobalChoices } from './globalChoiceParser.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/parsers/index.js
CHANGED
|
@@ -10,4 +10,6 @@ export { parseAllWebResources } from './webResourceParser.js';
|
|
|
10
10
|
export { parseClassicWorkflows } from './classicWorkflowParser.js';
|
|
11
11
|
export { parseBusinessRules } from './businessRuleParser.js';
|
|
12
12
|
export { parseSecurityRoles } from './securityRoleParser.js';
|
|
13
|
+
export { parseEnvironmentVariables } from './environmentVariableParser.js';
|
|
14
|
+
export { parseGlobalChoices } from './globalChoiceParser.js';
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DocGenConfig } from '../config/index.js';
|
|
2
|
-
import type { SolutionModel, FlowModel, PluginAssemblyModel, WebResourceModel, SecurityRoleModel, ClassicWorkflowModel, BusinessRuleModel } from '../ir/index.js';
|
|
2
|
+
import type { SolutionModel, FlowModel, PluginAssemblyModel, WebResourceModel, SecurityRoleModel, ClassicWorkflowModel, BusinessRuleModel, EnvironmentVariableModel, GlobalChoiceModel } from '../ir/index.js';
|
|
3
3
|
import type { WikiPage } from './wikiPublisher.js';
|
|
4
|
-
export declare function buildWikiPages(config: DocGenConfig, solutions: SolutionModel[], mergedSolution: SolutionModel, flows: FlowModel[], pluginAssemblies?: PluginAssemblyModel[], webResources?: WebResourceModel[], classicWorkflows?: ClassicWorkflowModel[], businessRules?: BusinessRuleModel[], securityRoles?: SecurityRoleModel[]): WikiPage[];
|
|
4
|
+
export declare function buildWikiPages(config: DocGenConfig, solutions: SolutionModel[], mergedSolution: SolutionModel, flows: FlowModel[], pluginAssemblies?: PluginAssemblyModel[], webResources?: WebResourceModel[], classicWorkflows?: ClassicWorkflowModel[], businessRules?: BusinessRuleModel[], securityRoles?: SecurityRoleModel[], envVars?: EnvironmentVariableModel[], globalChoices?: GlobalChoiceModel[]): WikiPage[];
|
|
5
5
|
//# sourceMappingURL=wikiAssembler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wikiAssembler.d.ts","sourceRoot":"","sources":["../../src/publisher/wikiAssembler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wikiAssembler.d.ts","sourceRoot":"","sources":["../../src/publisher/wikiAssembler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,gBAAgB,EAC/D,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,wBAAwB,EACpF,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA2BnD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,aAAa,EAAE,EAC1B,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,SAAS,EAAE,EAClB,gBAAgB,GAAE,mBAAmB,EAAO,EAC5C,YAAY,GAAE,gBAAgB,EAAO,EACrC,gBAAgB,GAAE,oBAAoB,EAAO,EAC7C,aAAa,GAAE,iBAAiB,EAAO,EACvC,aAAa,GAAE,iBAAiB,EAAO,EACvC,OAAO,GAAE,wBAAwB,EAAO,EACxC,aAAa,GAAE,iBAAiB,EAAO,GACtC,QAAQ,EAAE,CAwOZ"}
|