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.
Files changed (62) hide show
  1. package/README.md +49 -4
  2. package/dist/config/loader.d.ts.map +1 -1
  3. package/dist/config/loader.js +6 -0
  4. package/dist/config/loader.js.map +1 -1
  5. package/dist/config/schema.d.ts +11 -1
  6. package/dist/config/schema.d.ts.map +1 -1
  7. package/dist/index.js +22 -11
  8. package/dist/index.js.map +1 -1
  9. package/dist/ir/environmentVariable.d.ts +25 -0
  10. package/dist/ir/environmentVariable.d.ts.map +1 -0
  11. package/dist/ir/environmentVariable.js +7 -0
  12. package/dist/ir/environmentVariable.js.map +1 -0
  13. package/dist/ir/globalChoice.d.ts +32 -0
  14. package/dist/ir/globalChoice.d.ts.map +1 -0
  15. package/dist/ir/globalChoice.js +6 -0
  16. package/dist/ir/globalChoice.js.map +1 -0
  17. package/dist/ir/index.d.ts +2 -0
  18. package/dist/ir/index.d.ts.map +1 -1
  19. package/dist/ir/index.js.map +1 -1
  20. package/dist/parsers/environmentVariableParser.d.ts +7 -0
  21. package/dist/parsers/environmentVariableParser.d.ts.map +1 -0
  22. package/dist/parsers/environmentVariableParser.js +87 -0
  23. package/dist/parsers/environmentVariableParser.js.map +1 -0
  24. package/dist/parsers/globalChoiceParser.d.ts +8 -0
  25. package/dist/parsers/globalChoiceParser.d.ts.map +1 -0
  26. package/dist/parsers/globalChoiceParser.js +83 -0
  27. package/dist/parsers/globalChoiceParser.js.map +1 -0
  28. package/dist/parsers/index.d.ts +2 -0
  29. package/dist/parsers/index.d.ts.map +1 -1
  30. package/dist/parsers/index.js +2 -0
  31. package/dist/parsers/index.js.map +1 -1
  32. package/dist/publisher/wikiAssembler.d.ts +2 -2
  33. package/dist/publisher/wikiAssembler.d.ts.map +1 -1
  34. package/dist/publisher/wikiAssembler.js +39 -13
  35. package/dist/publisher/wikiAssembler.js.map +1 -1
  36. package/dist/renderers/environmentVariableRenderer.d.ts +8 -0
  37. package/dist/renderers/environmentVariableRenderer.d.ts.map +1 -0
  38. package/dist/renderers/environmentVariableRenderer.js +69 -0
  39. package/dist/renderers/environmentVariableRenderer.js.map +1 -0
  40. package/dist/renderers/flowRenderer.d.ts.map +1 -1
  41. package/dist/renderers/flowRenderer.js +0 -2
  42. package/dist/renderers/flowRenderer.js.map +1 -1
  43. package/dist/renderers/globalChoiceRenderer.d.ts +10 -0
  44. package/dist/renderers/globalChoiceRenderer.d.ts.map +1 -0
  45. package/dist/renderers/globalChoiceRenderer.js +72 -0
  46. package/dist/renderers/globalChoiceRenderer.js.map +1 -0
  47. package/dist/renderers/index.d.ts +3 -1
  48. package/dist/renderers/index.d.ts.map +1 -1
  49. package/dist/renderers/index.js +3 -1
  50. package/dist/renderers/index.js.map +1 -1
  51. package/dist/renderers/pluginRenderer.d.ts.map +1 -1
  52. package/dist/renderers/pluginRenderer.js +0 -2
  53. package/dist/renderers/pluginRenderer.js.map +1 -1
  54. package/dist/renderers/securityRoleRenderer.d.ts +6 -2
  55. package/dist/renderers/securityRoleRenderer.d.ts.map +1 -1
  56. package/dist/renderers/securityRoleRenderer.js +15 -36
  57. package/dist/renderers/securityRoleRenderer.js.map +1 -1
  58. package/dist/renderers/webResourceRenderer.d.ts +1 -1
  59. package/dist/renderers/webResourceRenderer.d.ts.map +1 -1
  60. package/dist/renderers/webResourceRenderer.js +15 -24
  61. package/dist/renderers/webResourceRenderer.js.map +1 -1
  62. package/package.json +1 -1
package/README.md CHANGED
@@ -1,14 +1,28 @@
1
- # vel-docgen
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
- for Azure DevOps Wiki — automatically, on every deployment.
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 docs are written to `./output/`. See `src/config/` for filtering and render options.
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,YA+B7B,CAAC;AA4BF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,MAAsB,GAAG,YAAY,CAmC1E"}
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"}
@@ -45,6 +45,12 @@ export const CONFIG_DEFAULTS = {
45
45
  plugins: true,
46
46
  webResources: true,
47
47
  securityRoles: true,
48
+ environmentVariables: {
49
+ enabled: false,
50
+ showDefaultValue: true,
51
+ showCurrentValue: true,
52
+ },
53
+ globalChoices: false,
48
54
  },
49
55
  };
50
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -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;AAE7H,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,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;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"}
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":"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"}
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,6 @@
1
+ /**
2
+ * IR model for Global Option Sets (Global Choices).
3
+ * These are solution-level picklists reusable across multiple tables/columns.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=globalChoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalChoice.js","sourceRoot":"","sources":["../../src/ir/globalChoice.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -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
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
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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"}
@@ -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"}
@@ -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":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClK,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA8BnD,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,GACtC,QAAQ,EAAE,CAgMZ"}
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"}