sandlot 0.1.1 → 0.1.3

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 (59) hide show
  1. package/README.md +145 -518
  2. package/dist/build-emitter.d.ts +47 -0
  3. package/dist/build-emitter.d.ts.map +1 -0
  4. package/dist/builder.d.ts +370 -0
  5. package/dist/builder.d.ts.map +1 -0
  6. package/dist/bundler.d.ts +3 -3
  7. package/dist/bundler.d.ts.map +1 -1
  8. package/dist/commands/compile.d.ts +13 -0
  9. package/dist/commands/compile.d.ts.map +1 -0
  10. package/dist/commands/index.d.ts +17 -0
  11. package/dist/commands/index.d.ts.map +1 -0
  12. package/dist/commands/packages.d.ts +17 -0
  13. package/dist/commands/packages.d.ts.map +1 -0
  14. package/dist/commands/run.d.ts +40 -0
  15. package/dist/commands/run.d.ts.map +1 -0
  16. package/dist/commands/types.d.ts +141 -0
  17. package/dist/commands/types.d.ts.map +1 -0
  18. package/dist/fs.d.ts +60 -42
  19. package/dist/fs.d.ts.map +1 -1
  20. package/dist/index.d.ts +5 -4
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +304 -491
  23. package/dist/internal.d.ts +5 -0
  24. package/dist/internal.d.ts.map +1 -1
  25. package/dist/internal.js +174 -95
  26. package/dist/runner.d.ts +314 -0
  27. package/dist/runner.d.ts.map +1 -0
  28. package/dist/sandbox-manager.d.ts +45 -33
  29. package/dist/sandbox-manager.d.ts.map +1 -1
  30. package/dist/sandbox.d.ts +144 -70
  31. package/dist/sandbox.d.ts.map +1 -1
  32. package/dist/shared-modules.d.ts +22 -3
  33. package/dist/shared-modules.d.ts.map +1 -1
  34. package/dist/shared-resources.d.ts +0 -3
  35. package/dist/shared-resources.d.ts.map +1 -1
  36. package/dist/typechecker.d.ts +1 -1
  37. package/package.json +3 -17
  38. package/src/build-emitter.ts +64 -0
  39. package/src/builder.ts +498 -0
  40. package/src/bundler.ts +86 -57
  41. package/src/commands/compile.ts +236 -0
  42. package/src/commands/index.ts +51 -0
  43. package/src/commands/packages.ts +154 -0
  44. package/src/commands/run.ts +245 -0
  45. package/src/commands/types.ts +172 -0
  46. package/src/fs.ts +90 -216
  47. package/src/index.ts +34 -12
  48. package/src/internal.ts +5 -2
  49. package/src/sandbox.ts +214 -220
  50. package/src/shared-modules.ts +74 -4
  51. package/src/shared-resources.ts +0 -3
  52. package/src/ts-libs.ts +1 -1
  53. package/src/typechecker.ts +1 -1
  54. package/dist/react.d.ts +0 -159
  55. package/dist/react.d.ts.map +0 -1
  56. package/dist/react.js +0 -149
  57. package/src/commands.ts +0 -733
  58. package/src/react.tsx +0 -331
  59. package/src/sandbox-manager.ts +0 -490
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Types and utilities for sandbox bash commands.
3
+ */
4
+ import type { IFileSystem } from "just-bash/browser";
5
+ import type { BundleResult } from "../bundler";
6
+ import type { TypesCache } from "../packages";
7
+ /**
8
+ * The result of a successful build, including the bundle and loaded module.
9
+ */
10
+ export interface BuildOutput {
11
+ /**
12
+ * The compiled bundle (code, metadata, etc.)
13
+ */
14
+ bundle: BundleResult;
15
+ /**
16
+ * The loaded module exports.
17
+ * If validation was provided, this is the validated module.
18
+ */
19
+ module: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Validation function type for module validation.
23
+ * Takes the raw module exports and returns validated exports (or throws).
24
+ */
25
+ export type ValidateFn = (module: Record<string, unknown>) => Record<string, unknown>;
26
+ /**
27
+ * Dependencies required by command factories
28
+ */
29
+ export interface CommandDeps {
30
+ /**
31
+ * The virtual filesystem to operate on
32
+ */
33
+ fs: IFileSystem;
34
+ /**
35
+ * Pre-loaded TypeScript lib files for type checking
36
+ */
37
+ libFiles: Map<string, string>;
38
+ /**
39
+ * Path to tsconfig.json in the virtual filesystem
40
+ */
41
+ tsconfigPath: string;
42
+ /**
43
+ * Callback invoked when a build succeeds (after loading and validation).
44
+ */
45
+ onBuild?: (result: BuildOutput) => void | Promise<void>;
46
+ /**
47
+ * Getter for the current validation function.
48
+ * Called during build to check if validation should be performed.
49
+ */
50
+ getValidation?: () => ValidateFn | null;
51
+ /**
52
+ * Cache for package type definitions.
53
+ * When provided, avoids redundant network fetches for packages
54
+ * that have already been installed in other sandboxes.
55
+ */
56
+ typesCache?: TypesCache;
57
+ /**
58
+ * Options for the `run` command
59
+ */
60
+ runOptions?: RunOptions;
61
+ /**
62
+ * Module IDs that should be resolved from the host's SharedModuleRegistry
63
+ * instead of esm.sh CDN. The host must have registered these modules.
64
+ *
65
+ * Example: ['react', 'react-dom/client']
66
+ */
67
+ sharedModules?: string[];
68
+ }
69
+ /**
70
+ * Runtime context passed to the `main()` function when code is executed.
71
+ * This provides sandboxed code with access to sandbox capabilities.
72
+ */
73
+ export interface RunContext {
74
+ /**
75
+ * The virtual filesystem - read/write files within the sandbox
76
+ */
77
+ fs: IFileSystem;
78
+ /**
79
+ * Environment variables (configurable per-sandbox)
80
+ */
81
+ env: Record<string, string>;
82
+ /**
83
+ * Command-line arguments passed to `run`
84
+ */
85
+ args: string[];
86
+ /**
87
+ * Explicit logging function (alternative to console.log)
88
+ */
89
+ log: (...args: unknown[]) => void;
90
+ /**
91
+ * Explicit error logging function (alternative to console.error)
92
+ */
93
+ error: (...args: unknown[]) => void;
94
+ }
95
+ /**
96
+ * Options for configuring the `run` command behavior
97
+ */
98
+ export interface RunOptions {
99
+ /**
100
+ * Environment variables available via ctx.env
101
+ */
102
+ env?: Record<string, string>;
103
+ /**
104
+ * Maximum execution time in milliseconds (default: 30000 = 30s)
105
+ * Set to 0 to disable timeout.
106
+ */
107
+ timeout?: number;
108
+ /**
109
+ * Whether to skip type checking before running (default: false)
110
+ */
111
+ skipTypecheck?: boolean;
112
+ }
113
+ /**
114
+ * Result of running code via the `run` command
115
+ */
116
+ export interface RunResult {
117
+ /**
118
+ * Captured console output (log, warn, error)
119
+ */
120
+ logs: string[];
121
+ /**
122
+ * Return value from main() if present
123
+ */
124
+ returnValue?: unknown;
125
+ /**
126
+ * Execution time in milliseconds
127
+ */
128
+ executionTimeMs: number;
129
+ }
130
+ /**
131
+ * Format esbuild messages (warnings/errors) for display
132
+ */
133
+ export declare function formatEsbuildMessages(messages: {
134
+ text: string;
135
+ location?: {
136
+ file?: string;
137
+ line?: number;
138
+ column?: number;
139
+ } | null;
140
+ }[]): string;
141
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,WAAW,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,WAAW,CAAC;IAEhB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,EAAE,GAChG,MAAM,CAaR"}
package/dist/fs.d.ts CHANGED
@@ -10,9 +10,12 @@ interface ReadFileOptions {
10
10
  encoding?: BufferEncoding | null;
11
11
  }
12
12
  /**
13
- * Options for writing files
13
+ * Options for writing files.
14
+ * Note: In this browser-based filesystem, content is stored as-is.
15
+ * The encoding option is accepted for API compatibility but not used.
14
16
  */
15
17
  interface WriteFileOptions {
18
+ /** Accepted for API compatibility but not used - content is stored as-is */
16
19
  encoding?: BufferEncoding;
17
20
  }
18
21
  /**
@@ -25,59 +28,76 @@ interface DirentEntry {
25
28
  isSymbolicLink: boolean;
26
29
  }
27
30
  /**
28
- * Options for creating an IndexedDbFs instance
31
+ * Options for creating a Filesystem instance
29
32
  */
30
- export interface IndexedDbFsOptions {
31
- /** Database name in IndexedDB */
32
- dbName?: string;
33
+ export interface FilesystemOptions {
33
34
  /** Maximum total size in bytes (default: 50MB) */
34
35
  maxSizeBytes?: number;
35
- /** Initial files to populate (only used if DB is empty) */
36
+ /** Initial files to populate */
36
37
  initialFiles?: InitialFiles;
37
38
  }
38
39
  /**
39
- * In-memory filesystem with IndexedDB persistence.
40
- * All operations are fast (in-memory), persistence is manual via save().
40
+ * In-memory virtual filesystem for sandlot sandboxes.
41
+ *
42
+ * All operations are synchronous in-memory. Use `getFiles()` to export
43
+ * the current state for persistence, and `initialFiles` to restore.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * // Create filesystem
48
+ * const fs = Filesystem.create({ initialFiles: { '/src/index.ts': 'export const x = 1;' } });
49
+ *
50
+ * // Use filesystem
51
+ * await fs.writeFile('/src/app.ts', 'console.log("hello")');
52
+ *
53
+ * // Export for persistence
54
+ * const files = fs.getFiles();
55
+ * localStorage.setItem('my-project', JSON.stringify(files));
56
+ *
57
+ * // Later, restore
58
+ * const saved = JSON.parse(localStorage.getItem('my-project'));
59
+ * const fs2 = Filesystem.create({ initialFiles: saved });
60
+ * ```
41
61
  */
42
- export declare class IndexedDbFs implements IFileSystem {
62
+ export declare class Filesystem implements IFileSystem {
43
63
  private entries;
44
- private db;
45
- private dbName;
46
64
  private maxSizeBytes;
47
- private dirty;
48
65
  private constructor();
49
66
  /**
50
- * Create and initialize a new IndexedDbFs instance
67
+ * Create a new Filesystem instance
51
68
  */
52
- static create(options?: IndexedDbFsOptions): Promise<IndexedDbFs>;
69
+ static create(options?: FilesystemOptions): Filesystem;
53
70
  /**
54
- * Create an in-memory only instance (no IndexedDB)
71
+ * Get all files as a serializable object.
72
+ *
73
+ * Returns a Record<string, string> that can be JSON-serialized and
74
+ * used as `initialFiles` when creating a new filesystem.
75
+ *
76
+ * Note: Only includes files, not directories (directories are
77
+ * automatically created from file paths). Binary files are
78
+ * base64-encoded with a `data:` prefix.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const files = fs.getFiles();
83
+ * // { '/src/index.ts': 'export const x = 1;', '/package.json': '{"name":"app"}' }
84
+ *
85
+ * // Persist however you want
86
+ * localStorage.setItem('project', JSON.stringify(files));
87
+ *
88
+ * // Restore later
89
+ * const saved = JSON.parse(localStorage.getItem('project'));
90
+ * const fs2 = Filesystem.create({ initialFiles: saved });
91
+ * ```
55
92
  */
56
- static createInMemory(options?: Omit<IndexedDbFsOptions, "dbName">): IndexedDbFs;
57
- /**
58
- * Save all entries to IndexedDB
59
- * @returns true if saved, false if no db or not dirty
60
- */
61
- save(): Promise<boolean>;
62
- /**
63
- * Reload entries from IndexedDB, discarding unsaved changes
64
- */
65
- reload(): Promise<void>;
66
- /**
67
- * Check if there are unsaved changes
68
- */
69
- isDirty(): boolean;
93
+ getFiles(): Record<string, string>;
70
94
  /**
71
95
  * Get approximate size of all stored data in bytes
72
96
  */
73
97
  getSize(): number;
74
- /**
75
- * Close the database connection
76
- */
77
- close(): void;
78
98
  readFile(path: string, options?: ReadFileOptions | BufferEncoding): Promise<string>;
79
99
  readFileBuffer(path: string): Promise<Uint8Array>;
80
- writeFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
100
+ writeFile(path: string, content: FileContent, _options?: WriteFileOptions | BufferEncoding): Promise<void>;
81
101
  appendFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
82
102
  exists(path: string): Promise<boolean>;
83
103
  stat(path: string): Promise<FsStat>;
@@ -108,18 +128,16 @@ export declare class IndexedDbFs implements IFileSystem {
108
128
  private checkSizeLimit;
109
129
  private getEncoding;
110
130
  private decodeBuffer;
131
+ private encodeBase64;
111
132
  private concatBuffers;
112
133
  private static parseFileInit;
113
- private static openDatabase;
114
- private static loadEntries;
115
- private serializeEntry;
116
- private static deserializeEntry;
117
- private promisifyRequest;
118
- private promisifyTransaction;
119
134
  }
120
135
  /**
121
- * Factory function matching the FileSystemFactory type
136
+ * Create an in-memory filesystem.
137
+ *
138
+ * @param initialFiles - Optional initial files to populate the filesystem
139
+ * @returns A new Filesystem instance
122
140
  */
123
- export declare function createIndexedDbFs(initialFiles?: InitialFiles): IFileSystem;
141
+ export declare function createFilesystem(options?: FilesystemOptions): Filesystem;
124
142
  export {};
125
143
  //# sourceMappingURL=fs.d.ts.map
package/dist/fs.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,16 +1,17 @@
1
- export { createSandbox, createInMemorySandbox, type Sandbox, type SandboxOptions, } from "./sandbox";
2
- export { SandboxManager, createSandboxManager, type ManagedSandbox, type ManagedSandboxOptions, type SandboxManagerStats, type SandboxManagerOptions, } from "./sandbox-manager";
1
+ export { createSandbox, type Sandbox, type SandboxOptions, type SandboxState, type SandboxBashOptions, } from "./sandbox";
2
+ export { createBuilder, type BuildResult, type CreateBuilderOptions, type BuildCallOptions, type BuilderFn, } from "./builder";
3
3
  export { loadModule, loadExport, loadDefault, getExportNames, hasExport, ModuleLoadError, ExportNotFoundError, } from "./loader";
4
4
  export { registerSharedModules, unregisterSharedModule, clearSharedModules, } from "./shared-modules";
5
5
  export type { BundleResult } from "./bundler";
6
+ export type { BuildOutput, ValidateFn } from "./commands/types";
6
7
  export type { TypecheckResult, Diagnostic } from "./typechecker";
7
8
  export type { PackageManifest, InstallResult } from "./packages";
8
9
  export { initBundler, bundle, bundleToUrl, bundleAndImport, type BundleOptions, type NpmImportsMode, } from "./bundler";
9
10
  export { typecheck, formatDiagnostics, formatDiagnosticsForAgent, type TypecheckOptions, } from "./typechecker";
10
11
  export { installPackage, uninstallPackage, listPackages, getPackageManifest, type InstallOptions, } from "./packages";
11
12
  export { createSharedResources, getDefaultResources, clearDefaultResources, hasDefaultResources, type SharedResourcesOptions, type SharedResources, type TypesCache, } from "./shared-resources";
12
- export { IndexedDbFs, createIndexedDbFs, type IndexedDbFsOptions, } from "./fs";
13
+ export { Filesystem, createFilesystem, type FilesystemOptions, } from "./fs";
13
14
  export type { IFileSystem, FsEntry } from "just-bash/browser";
14
15
  export { getDefaultBrowserLibs, fetchAndCacheLibs, } from "./ts-libs";
15
- export { createTscCommand, createBuildCommand, createInstallCommand, createUninstallCommand, createListCommand, createRunCommand, createDefaultCommands, type CommandDeps, type RunContext, type RunOptions, type RunResult, } from "./commands";
16
+ export { createTscCommand, createBuildCommand, createInstallCommand, createUninstallCommand, createListCommand, createRunCommand, createDefaultCommands, type CommandDeps, type RunContext, type RunOptions, type RunResult, } from "./commands/index";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAM1B,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWjE,OAAO,EACL,WAAW,EACX,MAAM,EACN,WAAW,EACX,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,MAAM,CAAC;AAEd,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM9D,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAM1B,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWjE,OAAO,EACL,WAAW,EACX,MAAM,EACN,WAAW,EACX,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,MAAM,CAAC;AAEd,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM9D,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAC"}