@ni-kismet/sl-webapp-nipkg 1.0.1 → 2.0.0

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 CHANGED
@@ -3,14 +3,15 @@
3
3
  [![JFrog Registry](https://img.shields.io/badge/registry-JFrog-green)](https://pull.artifacts.ni.com/ui/repos/tree/General/npm-remote-cache/.npm/@ni-kismet/sl-webapp-nipkg)
4
4
  [![Tests](https://github.com/ni/sl-webapp-nipkg/actions/workflows/ci.yml/badge.svg)](https://github.com/ni/sl-webapp-nipkg/actions)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
6
+ [![Page](https://img.shields.io/badge/Page-github.io-darkgreen.svg)](https://ni.github.io/sl-webapp-nipkg/)
6
7
 
7
8
  A flexible tool for packaging web applications into SystemLink WebApp `.nipkg` format for National Instruments Package Manager. Works with any web application framework including Node.js (React, Angular, Vue), Python (Pyodide), .NET (Blazor), and static HTML sites.
8
9
 
9
10
  ## Features
10
11
 
11
12
  - 🚀 **Easy Integration**: Works seamlessly with any web application
12
- - 📦 **Automated Packaging**: Builds and packages your app in one command
13
- - 🏪 **App Store Ready**: Embed rich catalog metadata display name, icon, screenshots, category, license, and more
13
+ - 📦 **Automated Packaging**: Builds and packages your app in one command
14
+ - 🏪 **Plugin Manager Submission Ready**: Generate Plugin Manager metadata for display name, icon, category, license, and screenshot submission files without embedding `screenshotFiles` in the control file
14
15
  - 🚢 **SystemLink Deployment**: Create/update WebApps and upload `.nipkg` content from CLI
15
16
  - 🔐 **Secure Authentication**: `login`/`logout` commands store credentials per-host — no secrets in config files
16
17
  - ⚙️ **Flexible Configuration**: Optional config files - use CLI flags or JSON config
@@ -51,7 +52,7 @@ sl-webapp-nipkg build --build-dir ./dist --name my-app
51
52
  # With full metadata
52
53
  sl-webapp-nipkg build \
53
54
  --build-dir ./dist \
54
- --name "My WebApp" \
55
+ --name my-webapp \
55
56
  --version "1.0.0" \
56
57
  --maintainer "Your Name <name@example.com>"
57
58
  ```
@@ -77,10 +78,11 @@ sl-webapp-nipkg build \
77
78
  "package": "my-webapp",
78
79
  "maintainer": "John Doe <john.doe@company.com>",
79
80
  "displayName": "My WebApp",
80
- "section": "WebApps",
81
+ "section": "Dashboard",
81
82
  "license": "MIT",
82
- "appStoreCategory": "Dashboard",
83
- "appStoreType": "webapp",
83
+ "xbPlugin": "webapp",
84
+ "slPluginManagerTags": "dashboard,monitoring",
85
+ "iconFile": "icon.svg",
84
86
  "buildDir": "dist",
85
87
  "buildCommand": "npm run build"
86
88
  }
@@ -92,6 +94,9 @@ sl-webapp-nipkg build \
92
94
 
93
95
  ```bash
94
96
  sl-webapp-nipkg build --build
97
+
98
+ # Build, package, and also emit a schema v2 manifest.json
99
+ sl-webapp-nipkg build --build --manifest
95
100
  ```
96
101
 
97
102
  ## CLI Commands
@@ -105,7 +110,7 @@ Build and package your web application.
105
110
  **Core Options:**
106
111
 
107
112
  - `--build-dir <path>` - Build output directory to package (required if not in config)
108
- - `--name <name>` - Package name (auto-detected from package.json or directory name)
113
+ - `--name <name>` - Package identifier in `^[a-z0-9][a-z0-9._-]*$` format (auto-detected from package.json or directory name)
109
114
  - `--version <version>` - Package version (auto-detected from package.json or defaults to 1.0.0)
110
115
  - `--description <description>` - Package description (optional)
111
116
  - `--maintainer <maintainer>` - Maintainer info (defaults to 'Unknown')
@@ -118,6 +123,11 @@ Build and package your web application.
118
123
  - `--skip-cleanup` - Skip cleanup of existing packages
119
124
  - `--build-suffix <suffix>` - Add a suffix to the package name (e.g., build ID for CI/CD)
120
125
  - `--config <path>` - Custom config file path (default: 'nipkg.config.json')
126
+ - `--manifest` - Generate `manifest.json` from the built `.nipkg`
127
+ - `--manifest-output <path>` - Output path for the generated manifest file (default: `manifest.json`)
128
+ - `--source-repo <owner/name>` - Optional source repository for generated manifest provenance
129
+ - `--release-tag <tag>` - Optional release tag for generated manifest provenance; must be used together with `--source-repo`
130
+ - `--source-commit <sha>` - Optional source commit SHA for generated manifest provenance
121
131
 
122
132
  **Note:** CLI options override config file values, which override package.json values.
123
133
 
@@ -138,7 +148,13 @@ sl-webapp-nipkg build
138
148
  # Build with build ID suffix for CI/CD
139
149
  sl-webapp-nipkg build --build --build-suffix "${BUILD_ID}"
140
150
 
141
- # Verbose output with custom config
151
+ # Build, package, and generate manifest.json in one step
152
+ sl-webapp-nipkg build --build --manifest
153
+
154
+ # Build, package, and write manifest to a custom path
155
+ sl-webapp-nipkg build --build --manifest --manifest-output submissions/manifest.json
156
+
157
+ # Verbose output with custom config
142
158
  sl-webapp-nipkg build --build --verbose --config my-nipkg.config.json
143
159
  ```
144
160
 
@@ -151,7 +167,7 @@ sl-webapp-nipkg build --build-dir ./public --name my-pyodide-app
151
167
  # .NET Blazor webapp
152
168
  sl-webapp-nipkg build \
153
169
  --build-dir ./bin/Release/net8.0/publish \
154
- --name "My Blazor App" \
170
+ --name my-blazor-app \
155
171
  --version "2.0.0"
156
172
 
157
173
  # Static HTML site
@@ -160,7 +176,7 @@ sl-webapp-nipkg build --build-dir ./dist --name my-static-site --version 1.0.0
160
176
  # With full metadata
161
177
  sl-webapp-nipkg build \
162
178
  --build-dir ./output \
163
- --name "My WebApp" \
179
+ --name my-webapp \
164
180
  --version "1.5.0" \
165
181
  --description "My awesome webapp" \
166
182
  --maintainer "Team <team@company.com>"
@@ -168,24 +184,31 @@ sl-webapp-nipkg build \
168
184
 
169
185
  ### `sl-webapp-nipkg init`
170
186
 
171
- Initialize a `nipkg.config.json` file in the current directory. Auto-populates `package`, `maintainer`, `homepage`, and `license` from `package.json`, and sets `section: "WebApps"` and `appStoreType: "webapp"` as defaults.
187
+ Initialize a `nipkg.config.json` file in the current directory. Auto-populates `package`, `maintainer`, `homepage`, and `license` from `package.json`, and sets `section: "Dashboard"` and `xbPlugin: "webapp"` as starter defaults.
172
188
 
173
189
  ### `sl-webapp-nipkg generate-manifest`
174
190
 
175
- Generate a `manifest.json` for App Store submission from `nipkg.config.json`. Copies all metadata fields while excluding build-only fields (`buildDir`, `buildCommand`, `outputDir`, `buildSuffix`, `deployment`).
191
+ Generate a schema v2 `manifest.json` for a reviewed `.nipkg` artifact. The command hashes the artifact bytes and writes the thin submission-manifest shape defined by `app-manifest.schema.json`.
176
192
 
177
193
  #### Options
178
194
 
179
- - `--config <path>` - Path to nipkg config file (default: `nipkg.config.json`)
180
195
  - `--output <path>` - Output path for manifest file (default: `manifest.json`)
181
- - `--nipkg-file <filename>` - Filename of the `.nipkg` to reference in the manifest
196
+ - `--nipkg-file <path>` - Path to the `.nipkg` artifact to reference and hash
197
+ - `--source-repo <owner/name>` - Optional source repository in `owner/name` format
198
+ - `--release-tag <tag>` - Optional release tag for the reviewed artifact; must be used together with `--source-repo`
199
+ - `--source-commit <sha>` - Optional 40-character lowercase commit SHA for the build that produced the artifact
200
+
201
+ The generated manifest always contains `schemaVersion: 2`, the `.nipkg` basename as `nipkgFile`, and a `sha256` hash of the exact `.nipkg` bytes.
182
202
 
183
203
  #### Example
184
204
 
185
205
  ```bash
186
206
  # Generate manifest after build
187
207
  sl-webapp-nipkg build
188
- sl-webapp-nipkg generate-manifest --nipkg-file my-app_1.0.0_all.nipkg
208
+ sl-webapp-nipkg generate-manifest \
209
+ --nipkg-file dist/nipkg/my-app_1.0.0_all.nipkg \
210
+ --source-repo ni/sl-webapp-nipkg \
211
+ --release-tag v1.0.0
189
212
  ```
190
213
 
191
214
  ### `sl-webapp-nipkg login`
@@ -379,35 +402,34 @@ Precedence: CLI flags > environment variables > stored login credential (`sl-web
379
402
 
380
403
  **All fields are optional.** CLI options override config file values. Config file values override package.json auto-detection.
381
404
 
382
- | Property | Type | Required | Description |
383
- | -------- | ---- | -------- | ----------- |
384
- | `package` | string | | Unique package identifier — lowercase with hyphens/dots/underscores (auto-detected from package.json) |
385
- | `name` | string | | **Deprecated.** Use `package` instead |
386
- | `version` | string | ❌ | Package version (auto-detected from package.json, defaults to 1.0.0) |
387
- | `displayName` | string | ❌ | Human-readable display name shown in the catalog card |
388
- | `description` | string | ❌ | Short description (auto-detected from package.json) |
389
- | `section` | string | ❌ | Package section (e.g. `'WebApps'`) |
390
- | `maintainer` | string | ❌ | Maintainer information (defaults to 'Unknown') |
391
- | `homepage` | string | ❌ | Homepage / repository URL (auto-detected from package.json) |
392
- | `license` | string | ❌ | SPDX license identifier — **required for App Store submissions** (auto-detected from package.json) |
393
- | `appStoreCategory` | string | ❌ | App Store category (e.g. `'Dashboard'`, `'Data Analysis'`) |
394
- | `appStoreType` | string | ❌ | Resource type: `'webapp'`, `'notebook'`, or `'dashboard'` |
395
- | `appStoreAuthor` | string | ❌ | Author / company name shown in the catalog |
396
- | `appStoreTags` | string | ❌ | Comma-separated search tags (e.g. `'assets,calibration'`) |
397
- | `appStoreRepo` | string | ❌ | Source repository URL |
398
- | `appStoreMinServerVersion` | string | ❌ | Minimum SystemLink server version (e.g. `'2024 Q4'`) |
399
- | `iconFile` | string | ❌ | Path to app icon (SVG or PNG, max 128×128 px) base64-embedded in package |
400
- | `screenshotFiles` | string[] | ❌ | Paths to up to 3 screenshot files (PNG, max 800×600 px) base64-embedded in package |
401
- | `tags` | string | ❌ | Standard nipkg `Tags:` field (falls back to `appStoreTags` if omitted) |
402
- | `extraControlFields` | object | ❌ | Arbitrary extra control file fields written verbatim as `Key: value` lines |
403
- | `architecture` | string | ❌ | Target architecture (default: `'windows_all'` for App Store packages) |
404
- | `userVisible` | boolean \| `'yes'` \| `'no'` | | Whether the package appears in the App Store catalog (default: `'yes'`) |
405
- | `buildDir` | string | ❌* | Build output directory (e.g., `'dist'`, `'build'`) — *Required if not provided via CLI |
406
- | `buildCommand` | string | ❌ | Custom build command (default: `'npm run build'`) |
407
- | `outputDir` | string | ❌ | Custom nipkg output directory (default: `'dist/nipkg'`) |
408
- | `buildSuffix` | string | ❌ | Optional suffix for package filename (e.g., build ID for CI/CD) |
409
- | `depends` | string[] | ❌ | Package dependencies |
410
- | `deployment` | object | ❌ | SystemLink deployment defaults used by `deploy` command |
405
+ Legacy `appStore*` fields are still accepted as input during the transition, but generated manifests and control files always use the new Plugin Manager field names.
406
+
407
+ | Property | Type | Required | Description |
408
+ | --------------------------------- | ---------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |
409
+ | `package` | string | ❌ | Unique package identifier — lowercase with hyphens/dots/underscores (auto-detected from package.json) |
410
+ | `name` | string | ❌ | **Deprecated.** Use `package` instead |
411
+ | `version` | string | ❌ | Package version (auto-detected from package.json, defaults to 1.0.0) |
412
+ | `displayName` | string | ❌ | Human-readable display name shown in the catalog card |
413
+ | `description` | string | ❌ | Short description (auto-detected from package.json) |
414
+ | `section` | string | ❌ | Fine-grained catalog section (e.g. `'Dashboard'`, `'Administration'`, `'Monitoring'`) |
415
+ | `maintainer` | string | ❌ | Maintainer information (defaults to 'Unknown') |
416
+ | `homepage` | string | ❌ | Homepage / repository URL (auto-detected from package.json) |
417
+ | `license` | string | ❌ | SPDX license identifier **required for Plugin Manager submissions** (auto-detected from package.json) |
418
+ | `xbPlugin` | string | ❌ | Top-level plugin type: `'webapp'`, `'notebook'`, `'dashboard'`, `'routine'`, or `'bundle'` |
419
+ | `slPluginManagerTags` | string | ❌ | Comma-separated Plugin Manager tags (e.g. `'assets,calibration'`) |
420
+ | `slPluginManagerMinServerVersion` | string | ❌ | Minimum SystemLink server version (e.g. `'2024 Q4'`) |
421
+ | `iconFile` | string | ❌ | Path to the primary app icon (SVG or PNG, max 128×128 px); included in generated manifests and embedded as `XB-SlPluginManagerIcon` |
422
+ | `screenshotFiles` | string[] | ❌ | Paths to up to 3 screenshot files (PNG, max 800×600 px) preserved in config for higher-level tooling |
423
+ | `tags` | string | ❌ | Standard nipkg `Tags:` field (falls back to `slPluginManagerTags`, then `appStoreTags` if omitted) |
424
+ | `extraControlFields` | object | ❌ | Arbitrary extra control file fields written verbatim as `Key: value` lines |
425
+ | `architecture` | string | ❌ | Target architecture (default: `'windows_all'` for Plugin Manager submissions) |
426
+ | `userVisible` | boolean \| `'yes'` \| `'no'` | ❌ | Whether the package appears in the Plugin Manager catalog (default: `'yes'`) |
427
+ | `buildDir` | string | ❌\* | Build output directory (e.g., `'dist'`, `'build'`) \*Required if not provided via CLI |
428
+ | `buildCommand` | string | | Custom build command (default: `'npm run build'`) |
429
+ | `outputDir` | string | ❌ | Custom nipkg output directory (default: `'dist/nipkg'`) |
430
+ | `buildSuffix` | string | ❌ | Optional suffix for package filename (e.g., build ID for CI/CD) |
431
+ | `depends` | string[] | ❌ | Package dependencies |
432
+ | `deployment` | object | ❌ | SystemLink deployment defaults used by `deploy` command |
411
433
 
412
434
  ### Example Configuration
413
435
 
@@ -417,23 +439,19 @@ Precedence: CLI flags > environment variables > stored login credential (`sl-web
417
439
  "version": "1.2.3",
418
440
  "description": "A SystemLink WebApp for National Instruments",
419
441
  "displayName": "My WebApp",
420
- "section": "WebApps",
442
+ "section": "Dashboard",
421
443
  "maintainer": "John Doe <john.doe@company.com>",
422
444
  "homepage": "https://github.com/org/my-webapp",
423
445
  "license": "MIT",
424
- "appStoreCategory": "Dashboard",
425
- "appStoreType": "webapp",
426
- "appStoreAuthor": "Acme Corp",
427
- "appStoreTags": "assets,calibration",
428
- "appStoreMinServerVersion": "2024 Q4",
446
+ "xbPlugin": "webapp",
447
+ "slPluginManagerTags": "assets,calibration",
448
+ "slPluginManagerMinServerVersion": "2024 Q4",
429
449
  "iconFile": "assets/icon.svg",
430
450
  "architecture": "all",
431
451
  "userVisible": "yes",
432
452
  "buildDir": "dist",
433
453
  "buildCommand": "npm run build",
434
- "depends": [
435
- "ni-systemlink-server >= 2023.1"
436
- ],
454
+ "depends": ["ni-systemlink-server >= 2023.1"],
437
455
  "outputDir": "packages",
438
456
  "deployment": {
439
457
  "host": "https://test.lifecyclesolutions.ni.com",
@@ -556,24 +574,27 @@ npm run package:nipkg
556
574
  ## Programmatic Usage
557
575
 
558
576
  ```typescript
559
- import { SystemLinkNipkgBuilder, NipkgConfig, BuildOptions } from '@ni-kismet/sl-webapp-nipkg';
577
+ import {
578
+ SystemLinkNipkgBuilder,
579
+ NipkgConfig,
580
+ BuildOptions,
581
+ } from "@ni-kismet/sl-webapp-nipkg";
560
582
 
561
583
  const config: NipkgConfig = {
562
- package: 'my-app',
563
- version: '1.0.0',
564
- description: 'My SystemLink WebApp',
565
- displayName: 'My App',
566
- section: 'WebApps',
567
- maintainer: 'John Doe <john@example.com>',
568
- license: 'MIT',
569
- appStoreCategory: 'Dashboard',
570
- appStoreType: 'webapp',
571
- buildDir: 'dist',
584
+ package: "my-app",
585
+ version: "1.0.0",
586
+ description: "My SystemLink WebApp",
587
+ displayName: "My App",
588
+ section: "Dashboard",
589
+ maintainer: "John Doe <john@example.com>",
590
+ license: "MIT",
591
+ xbPlugin: "webapp",
592
+ buildDir: "dist",
572
593
  };
573
594
 
574
595
  const options: BuildOptions = {
575
596
  build: true,
576
- verbose: true
597
+ verbose: true,
577
598
  };
578
599
 
579
600
  const builder = new SystemLinkNipkgBuilder(config, options);
@@ -596,72 +617,72 @@ name: Build and Package
596
617
 
597
618
  on:
598
619
  push:
599
- branches: [ main ]
620
+ branches: [main]
600
621
  pull_request:
601
- branches: [ main ]
622
+ branches: [main]
602
623
 
603
624
  jobs:
604
625
  build:
605
626
  runs-on: windows-latest
606
-
627
+
607
628
  steps:
608
- - uses: actions/checkout@v3
609
-
610
- - name: Setup Node.js
611
- uses: actions/setup-node@v3
612
- with:
613
- node-version: '20'
614
- cache: 'npm'
615
-
616
- - name: Install dependencies
617
- run: npm ci
618
-
619
- - name: Build and Package (PR)
620
- if: github.event_name == 'pull_request'
621
- run: sl-webapp-nipkg build --build --build-suffix "${{ github.run_number }}"
622
-
623
- - name: Build and Package (Main)
624
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
625
- run: sl-webapp-nipkg build --build
626
-
627
- - name: Upload Package
628
- uses: actions/upload-artifact@v3
629
- with:
630
- name: nipkg-package
631
- path: dist/nipkg/*.nipkg
629
+ - uses: actions/checkout@v3
630
+
631
+ - name: Setup Node.js
632
+ uses: actions/setup-node@v3
633
+ with:
634
+ node-version: "20"
635
+ cache: "npm"
636
+
637
+ - name: Install dependencies
638
+ run: npm ci
639
+
640
+ - name: Build and Package (PR)
641
+ if: github.event_name == 'pull_request'
642
+ run: sl-webapp-nipkg build --build --build-suffix "${{ github.run_number }}"
643
+
644
+ - name: Build and Package (Main)
645
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
646
+ run: sl-webapp-nipkg build --build
647
+
648
+ - name: Upload Package
649
+ uses: actions/upload-artifact@v3
650
+ with:
651
+ name: nipkg-package
652
+ path: dist/nipkg/*.nipkg
632
653
  ```
633
654
 
634
655
  ### Azure DevOps
635
656
 
636
657
  ```yaml
637
658
  trigger:
638
- - main
659
+ - main
639
660
 
640
661
  pool:
641
- vmImage: 'windows-latest'
662
+ vmImage: "windows-latest"
642
663
 
643
664
  steps:
644
- - task: NodeTool@0
645
- inputs:
646
- versionSpec: '20.x'
647
-
648
- - script: npm ci
649
- displayName: 'Install dependencies'
650
-
651
- - script: |
652
- if [ "$(Build.SourceBranch)" = "refs/heads/main" ]; then
653
- npm run build
654
- sl-webapp-nipkg build
655
- else
656
- npm run build
657
- sl-webapp-nipkg build --build-suffix "$(Build.BuildId)"
658
- fi
659
- displayName: 'Build and package'
660
-
661
- - task: PublishBuildArtifacts@1
662
- inputs:
663
- PathtoPublish: 'dist/nipkg'
664
- ArtifactName: 'nipkg-package'
665
+ - task: NodeTool@0
666
+ inputs:
667
+ versionSpec: "20.x"
668
+
669
+ - script: npm ci
670
+ displayName: "Install dependencies"
671
+
672
+ - script: |
673
+ if [ "$(Build.SourceBranch)" = "refs/heads/main" ]; then
674
+ npm run build
675
+ sl-webapp-nipkg build
676
+ else
677
+ npm run build
678
+ sl-webapp-nipkg build --build-suffix "$(Build.BuildId)"
679
+ fi
680
+ displayName: "Build and package"
681
+
682
+ - task: PublishBuildArtifacts@1
683
+ inputs:
684
+ PathtoPublish: "dist/nipkg"
685
+ ArtifactName: "nipkg-package"
665
686
  ```
666
687
 
667
688
  ## Package Structure
@@ -677,7 +698,7 @@ your-webapp-project/
677
698
  ├── dist/nipkg/ # NIPKG packaging
678
699
  │ ├── your-app_1.0.0_all.nipkg # Final package
679
700
  │ └── temp-source/ # Temporary (auto-cleaned)
680
- ├── nipkg.config.json # Package configuration
701
+ ├── nipkg.config.json # Package configuration
681
702
  └── package.json # NPM scripts
682
703
  ```
683
704
 
@@ -755,4 +776,4 @@ MIT © National Instruments
755
776
 
756
777
  ---
757
778
 
758
- *Made with ❤️ for the National Instruments community*
779
+ _Made with ❤️ for the National Instruments community_
package/dist/builder.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare class SystemLinkNipkgBuilder {
11
11
  /**
12
12
  * Build the complete nipkg package
13
13
  */
14
- build(): Promise<void>;
14
+ build(): Promise<string>;
15
15
  /**
16
16
  * Build the complete control file content with all standard and custom fields.
17
17
  */
@@ -20,6 +20,7 @@ export declare class SystemLinkNipkgBuilder {
20
20
  * Get the package name from CLI options, config, or package.json
21
21
  */
22
22
  private getName;
23
+ private getValidatedBuildSuffix;
23
24
  /**
24
25
  * Get the package description from CLI options, config, or package.json
25
26
  */
@@ -32,6 +33,11 @@ export declare class SystemLinkNipkgBuilder {
32
33
  * Get the maintainer from CLI options, config, or use default
33
34
  */
34
35
  private getMaintainer;
36
+ /**
37
+ * Get the plugin type from config, falling back to the package's default webapp type.
38
+ */
39
+ private getPluginType;
40
+ private resolveIconFilePath;
35
41
  /**
36
42
  * Run project build command
37
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA0FvD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa3D;AAoBD,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IAM3D;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;OAEG;IACI,uBAAuB,IAAI,MAAM;IA2ExC;;OAEG;IACH,OAAO,CAAC,OAAO;IAgCf;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;YACW,sBAAsB;IAwCpC;;OAEG;YACW,kBAAkB;IA0EhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAU7B"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AA+FnE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa3D;AAoBD,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IAM3D;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BrC;;OAEG;IACI,uBAAuB,IAAI,MAAM;IAuDxC;;OAEG;IACH,OAAO,CAAC,OAAO;IA0Cf,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;YACW,sBAAsB;IAwCpC;;OAEG;YACW,kBAAkB;IAkFhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAU7B"}