@dagger.io/dagger 0.11.8 → 0.12.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.
Files changed (54) hide show
  1. package/dist/api/client.gen.d.ts +382 -71
  2. package/dist/api/client.gen.d.ts.map +1 -1
  3. package/dist/api/client.gen.js +790 -106
  4. package/dist/connect.d.ts.map +1 -1
  5. package/dist/connect.js +1 -2
  6. package/dist/entrypoint/invoke.d.ts.map +1 -1
  7. package/dist/entrypoint/invoke.js +7 -3
  8. package/dist/entrypoint/load.d.ts +3 -2
  9. package/dist/entrypoint/load.d.ts.map +1 -1
  10. package/dist/entrypoint/load.js +9 -1
  11. package/dist/entrypoint/register.d.ts.map +1 -1
  12. package/dist/entrypoint/register.js +40 -10
  13. package/dist/introspector/decorators/decorators.d.ts +5 -1
  14. package/dist/introspector/decorators/decorators.d.ts.map +1 -1
  15. package/dist/introspector/decorators/decorators.js +4 -0
  16. package/dist/introspector/registry/registry.d.ts +8 -2
  17. package/dist/introspector/registry/registry.d.ts.map +1 -1
  18. package/dist/introspector/registry/registry.js +11 -1
  19. package/dist/introspector/scanner/abtractions/argument.d.ts +23 -2
  20. package/dist/introspector/scanner/abtractions/argument.d.ts.map +1 -1
  21. package/dist/introspector/scanner/abtractions/argument.js +71 -38
  22. package/dist/introspector/scanner/abtractions/constructor.d.ts +3 -2
  23. package/dist/introspector/scanner/abtractions/constructor.d.ts.map +1 -1
  24. package/dist/introspector/scanner/abtractions/constructor.js +17 -19
  25. package/dist/introspector/scanner/abtractions/enum.d.ts +33 -0
  26. package/dist/introspector/scanner/abtractions/enum.d.ts.map +1 -0
  27. package/dist/introspector/scanner/abtractions/enum.js +73 -0
  28. package/dist/introspector/scanner/abtractions/enumValue.d.ts +24 -0
  29. package/dist/introspector/scanner/abtractions/enumValue.d.ts.map +1 -0
  30. package/dist/introspector/scanner/abtractions/enumValue.js +51 -0
  31. package/dist/introspector/scanner/abtractions/method.d.ts +19 -3
  32. package/dist/introspector/scanner/abtractions/method.d.ts.map +1 -1
  33. package/dist/introspector/scanner/abtractions/method.js +61 -33
  34. package/dist/introspector/scanner/abtractions/module.d.ts +12 -4
  35. package/dist/introspector/scanner/abtractions/module.d.ts.map +1 -1
  36. package/dist/introspector/scanner/abtractions/module.js +58 -14
  37. package/dist/introspector/scanner/abtractions/object.d.ts +17 -2
  38. package/dist/introspector/scanner/abtractions/object.d.ts.map +1 -1
  39. package/dist/introspector/scanner/abtractions/object.js +57 -33
  40. package/dist/introspector/scanner/abtractions/property.d.ts +11 -2
  41. package/dist/introspector/scanner/abtractions/property.d.ts.map +1 -1
  42. package/dist/introspector/scanner/abtractions/property.js +49 -30
  43. package/dist/introspector/scanner/abtractions/typeToTypedef.d.ts +8 -0
  44. package/dist/introspector/scanner/abtractions/typeToTypedef.d.ts.map +1 -0
  45. package/dist/introspector/scanner/abtractions/typeToTypedef.js +76 -0
  46. package/dist/introspector/scanner/scan.d.ts +0 -12
  47. package/dist/introspector/scanner/scan.d.ts.map +1 -1
  48. package/dist/introspector/scanner/typeDefs.d.ts +8 -53
  49. package/dist/introspector/scanner/typeDefs.d.ts.map +1 -1
  50. package/dist/introspector/scanner/utils.d.ts +1 -1
  51. package/dist/introspector/scanner/utils.js +1 -1
  52. package/dist/provisioning/default.d.ts +1 -1
  53. package/dist/provisioning/default.js +1 -1
  54. package/package.json +1 -1
@@ -225,9 +225,13 @@ export type ContainerWithEnvVariableOpts = {
225
225
  };
226
226
  export type ContainerWithExecOpts = {
227
227
  /**
228
- * If the container has an entrypoint, ignore it for args rather than using it to wrap them.
228
+ * DEPRECATED: For true this can be removed. For false, use `useEntrypoint` instead.
229
229
  */
230
230
  skipEntrypoint?: boolean;
231
+ /**
232
+ * If the container has an entrypoint, prepend it to the args.
233
+ */
234
+ useEntrypoint?: boolean;
231
235
  /**
232
236
  * Content to write to the command's standard input before closing (e.g., "Hello world").
233
237
  */
@@ -350,10 +354,6 @@ export type ContainerWithMountedSecretOpts = {
350
354
  mode?: number;
351
355
  };
352
356
  export type ContainerWithNewFileOpts = {
353
- /**
354
- * Content of the file to write (e.g., "Hello world!").
355
- */
356
- contents?: string;
357
357
  /**
358
358
  * Permission given to the written file (e.g., 0600).
359
359
  */
@@ -411,6 +411,30 @@ export type CurrentModuleWorkdirOpts = {
411
411
  export type CurrentModuleID = string & {
412
412
  __CurrentModuleID: never;
413
413
  };
414
+ /**
415
+ * The `DaggerEngineCacheEntryID` scalar type represents an identifier for an object of type DaggerEngineCacheEntry.
416
+ */
417
+ export type DaggerEngineCacheEntryID = string & {
418
+ __DaggerEngineCacheEntryID: never;
419
+ };
420
+ /**
421
+ * The `DaggerEngineCacheEntrySetID` scalar type represents an identifier for an object of type DaggerEngineCacheEntrySet.
422
+ */
423
+ export type DaggerEngineCacheEntrySetID = string & {
424
+ __DaggerEngineCacheEntrySetID: never;
425
+ };
426
+ /**
427
+ * The `DaggerEngineCacheID` scalar type represents an identifier for an object of type DaggerEngineCache.
428
+ */
429
+ export type DaggerEngineCacheID = string & {
430
+ __DaggerEngineCacheID: never;
431
+ };
432
+ /**
433
+ * The `DaggerEngineID` scalar type represents an identifier for an object of type DaggerEngine.
434
+ */
435
+ export type DaggerEngineID = string & {
436
+ __DaggerEngineID: never;
437
+ };
414
438
  export type DirectoryAsModuleOpts = {
415
439
  /**
416
440
  * An optional subpath of the directory which contains the module's configuration file.
@@ -420,6 +444,10 @@ export type DirectoryAsModuleOpts = {
420
444
  * If not set, the module source code is loaded from the root of the directory.
421
445
  */
422
446
  sourceRootPath?: string;
447
+ /**
448
+ * The engine version to upgrade to.
449
+ */
450
+ engineVersion?: string;
423
451
  };
424
452
  export type DirectoryDockerBuildOpts = {
425
453
  /**
@@ -467,6 +495,26 @@ export type DirectoryPipelineOpts = {
467
495
  */
468
496
  labels?: PipelineLabel[];
469
497
  };
498
+ export type DirectoryTerminalOpts = {
499
+ /**
500
+ * If set, override the container's default terminal command and invoke these command arguments instead.
501
+ */
502
+ cmd?: string[];
503
+ /**
504
+ * Provides Dagger access to the executed command.
505
+ *
506
+ * Do not use this option unless you trust the command being executed; the command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
507
+ */
508
+ experimentalPrivilegedNesting?: boolean;
509
+ /**
510
+ * Execute the command with all root capabilities. This is similar to running a command with "sudo" or executing "docker run" with the "--privileged" flag. Containerization does not provide any security guarantees when using this option. It should only be used when absolutely necessary and only with trusted commands.
511
+ */
512
+ insecureRootCapabilities?: boolean;
513
+ /**
514
+ * If set, override the default container used for the terminal.
515
+ */
516
+ container?: Container;
517
+ };
470
518
  export type DirectoryWithDirectoryOpts = {
471
519
  /**
472
520
  * Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]).
@@ -507,6 +555,18 @@ export type DirectoryWithNewFileOpts = {
507
555
  export type DirectoryID = string & {
508
556
  __DirectoryID: never;
509
557
  };
558
+ /**
559
+ * The `EnumTypeDefID` scalar type represents an identifier for an object of type EnumTypeDef.
560
+ */
561
+ export type EnumTypeDefID = string & {
562
+ __EnumTypeDefID: never;
563
+ };
564
+ /**
565
+ * The `EnumValueTypeDefID` scalar type represents an identifier for an object of type EnumValueTypeDef.
566
+ */
567
+ export type EnumValueTypeDefID = string & {
568
+ __EnumValueTypeDefID: never;
569
+ };
510
570
  /**
511
571
  * The `EnvVariableID` scalar type represents an identifier for an object of type EnvVariable.
512
572
  */
@@ -577,22 +637,18 @@ export type GeneratedCodeID = string & {
577
637
  export type GitModuleSourceID = string & {
578
638
  __GitModuleSourceID: never;
579
639
  };
580
- export type GitRefTreeOpts = {
581
- /**
582
- * DEPRECATED: This option should be passed to `git` instead.
583
- */
584
- sshKnownHosts?: string;
585
- /**
586
- * DEPRECATED: This option should be passed to `git` instead.
587
- */
588
- sshAuthSocket?: Socket;
589
- };
590
640
  /**
591
641
  * The `GitRefID` scalar type represents an identifier for an object of type GitRef.
592
642
  */
593
643
  export type GitRefID = string & {
594
644
  __GitRefID: never;
595
645
  };
646
+ export type GitRepositoryTagsOpts = {
647
+ /**
648
+ * Glob patterns (e.g., "refs/tags/v*").
649
+ */
650
+ patterns?: string[];
651
+ };
596
652
  /**
597
653
  * The `GitRepositoryID` scalar type represents an identifier for an object of type GitRepository.
598
654
  */
@@ -699,6 +755,12 @@ export type ListTypeDefID = string & {
699
755
  export type LocalModuleSourceID = string & {
700
756
  __LocalModuleSourceID: never;
701
757
  };
758
+ export type ModuleWithSourceOpts = {
759
+ /**
760
+ * The engine version to upgrade to.
761
+ */
762
+ engineVersion?: string;
763
+ };
702
764
  /**
703
765
  * The `ModuleDependencyID` scalar type represents an identifier for an object of type ModuleDependency.
704
766
  */
@@ -711,6 +773,12 @@ export type ModuleDependencyID = string & {
711
773
  export type ModuleID = string & {
712
774
  __ModuleID: never;
713
775
  };
776
+ export type ModuleSourceAsModuleOpts = {
777
+ /**
778
+ * The engine version to upgrade to.
779
+ */
780
+ engineVersion?: string;
781
+ };
714
782
  export type ModuleSourceResolveDirectoryFromCallerOpts = {
715
783
  /**
716
784
  * If set, the name of the view to apply to the path.
@@ -788,21 +856,11 @@ export type PortID = string & {
788
856
  __PortID: never;
789
857
  };
790
858
  export type ClientContainerOpts = {
791
- /**
792
- * DEPRECATED: Use `loadContainerFromID` instead.
793
- */
794
- id?: ContainerID;
795
859
  /**
796
860
  * Platform to initialize the container with.
797
861
  */
798
862
  platform?: Platform;
799
863
  };
800
- export type ClientDirectoryOpts = {
801
- /**
802
- * DEPRECATED: Use `loadDirectoryFromID` instead.
803
- */
804
- id?: DirectoryID;
805
- };
806
864
  export type ClientGitOpts = {
807
865
  /**
808
866
  * Set to true to keep .git directory.
@@ -910,6 +968,18 @@ export type SocketID = string & {
910
968
  export type TerminalID = string & {
911
969
  __TerminalID: never;
912
970
  };
971
+ export type TypeDefWithEnumOpts = {
972
+ /**
973
+ * A doc string for the enum, if any
974
+ */
975
+ description?: string;
976
+ };
977
+ export type TypeDefWithEnumValueOpts = {
978
+ /**
979
+ * A doc string for the value, if any
980
+ */
981
+ description?: string;
982
+ };
913
983
  export type TypeDefWithFieldOpts = {
914
984
  /**
915
985
  * A doc string for the field, if any
@@ -939,6 +1009,12 @@ export declare enum TypeDefKind {
939
1009
  * A boolean value.
940
1010
  */
941
1011
  BooleanKind = "BOOLEAN_KIND",
1012
+ /**
1013
+ * A GraphQL enum type and its values
1014
+ *
1015
+ * Always paired with an EnumTypeDef.
1016
+ */
1017
+ EnumKind = "ENUM_KIND",
942
1018
  /**
943
1019
  * A graphql input type, used only when representing the core API via TypeDefs.
944
1020
  */
@@ -1033,7 +1109,7 @@ export declare class Container extends BaseClient {
1033
1109
  constructor(parent?: {
1034
1110
  queryTree?: QueryTree[];
1035
1111
  ctx: Context;
1036
- }, _id?: ContainerID, _envVariable?: string, _export?: boolean, _imageRef?: string, _label?: string, _platform?: Platform, _publish?: string, _stderr?: string, _stdout?: string, _sync?: ContainerID, _user?: string, _workdir?: string);
1112
+ }, _id?: ContainerID, _envVariable?: string, _export?: string, _imageRef?: string, _label?: string, _platform?: Platform, _publish?: string, _stderr?: string, _stdout?: string, _sync?: ContainerID, _user?: string, _workdir?: string);
1037
1113
  /**
1038
1114
  * A unique identifier for this Container.
1039
1115
  */
@@ -1114,8 +1190,6 @@ export declare class Container extends BaseClient {
1114
1190
  /**
1115
1191
  * Writes the container as an OCI tarball to the destination file path on the host.
1116
1192
  *
1117
- * Return true on success.
1118
- *
1119
1193
  * It can also export platform variants.
1120
1194
  * @param path Host's destination path (e.g., "./tarball").
1121
1195
  *
@@ -1130,7 +1204,7 @@ export declare class Container extends BaseClient {
1130
1204
  *
1131
1205
  * Defaults to OCI, which is largely compatible with most recent container runtimes, but Docker may be needed for older runtimes without OCI support.
1132
1206
  */
1133
- export: (path: string, opts?: ContainerExportOpts) => Promise<boolean>;
1207
+ export: (path: string, opts?: ContainerExportOpts) => Promise<string>;
1134
1208
  /**
1135
1209
  * Retrieves the list of exposed ports.
1136
1210
  *
@@ -1228,14 +1302,14 @@ export declare class Container extends BaseClient {
1228
1302
  */
1229
1303
  sync: () => Promise<Container>;
1230
1304
  /**
1231
- * Return an interactive terminal for this container using its configured default terminal command if not overridden by args (or sh as a fallback default).
1305
+ * Opens an interactive terminal for this container using its configured default terminal command if not overridden by args (or sh as a fallback default).
1232
1306
  * @param opts.cmd If set, override the container's default terminal command and invoke these command arguments instead.
1233
1307
  * @param opts.experimentalPrivilegedNesting Provides Dagger access to the executed command.
1234
1308
  *
1235
1309
  * Do not use this option unless you trust the command being executed; the command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
1236
1310
  * @param opts.insecureRootCapabilities Execute the command with all root capabilities. This is similar to running a command with "sudo" or executing "docker run" with the "--privileged" flag. Containerization does not provide any security guarantees when using this option. It should only be used when absolutely necessary and only with trusted commands.
1237
1311
  */
1238
- terminal: (opts?: ContainerTerminalOpts) => Terminal;
1312
+ terminal: (opts?: ContainerTerminalOpts) => Container;
1239
1313
  /**
1240
1314
  * Retrieves the user to be set for all commands.
1241
1315
  */
@@ -1285,7 +1359,8 @@ export declare class Container extends BaseClient {
1285
1359
  * @param args Command to run instead of the container's default command (e.g., ["run", "main.go"]).
1286
1360
  *
1287
1361
  * If empty, the container's default command is used.
1288
- * @param opts.skipEntrypoint If the container has an entrypoint, ignore it for args rather than using it to wrap them.
1362
+ * @param opts.skipEntrypoint DEPRECATED: For true this can be removed. For false, use `useEntrypoint` instead.
1363
+ * @param opts.useEntrypoint If the container has an entrypoint, prepend it to the args.
1289
1364
  * @param opts.stdin Content to write to the command's standard input before closing (e.g., "Hello world").
1290
1365
  * @param opts.redirectStdout Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout").
1291
1366
  * @param opts.redirectStderr Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr").
@@ -1402,7 +1477,7 @@ export declare class Container extends BaseClient {
1402
1477
  /**
1403
1478
  * Retrieves this container plus a new file written at the given path.
1404
1479
  * @param path Location of the written file (e.g., "/tmp/file.txt").
1405
- * @param opts.contents Content of the file to write (e.g., "Hello world!").
1480
+ * @param contents Content of the file to write (e.g., "Hello world!").
1406
1481
  * @param opts.permissions Permission given to the written file (e.g., 0600).
1407
1482
  * @param opts.owner A user:group to set for the file.
1408
1483
  *
@@ -1410,7 +1485,7 @@ export declare class Container extends BaseClient {
1410
1485
  *
1411
1486
  * If the group is omitted, it defaults to the same as the user.
1412
1487
  */
1413
- withNewFile: (path: string, opts?: ContainerWithNewFileOpts) => Container;
1488
+ withNewFile: (path: string, contents: string, opts?: ContainerWithNewFileOpts) => Container;
1414
1489
  /**
1415
1490
  * Retrieves this container with a registry authentication for a given address.
1416
1491
  * @param address Registry's address to bind the authentication to.
@@ -1588,6 +1663,131 @@ export declare class CurrentModule extends BaseClient {
1588
1663
  */
1589
1664
  workdirFile: (path: string) => File;
1590
1665
  }
1666
+ /**
1667
+ * The Dagger engine configuration and state
1668
+ */
1669
+ export declare class DaggerEngine extends BaseClient {
1670
+ private readonly _id?;
1671
+ /**
1672
+ * Constructor is used for internal usage only, do not create object from it.
1673
+ */
1674
+ constructor(parent?: {
1675
+ queryTree?: QueryTree[];
1676
+ ctx: Context;
1677
+ }, _id?: DaggerEngineID);
1678
+ /**
1679
+ * A unique identifier for this DaggerEngine.
1680
+ */
1681
+ id: () => Promise<DaggerEngineID>;
1682
+ /**
1683
+ * The local (on-disk) cache for the Dagger engine
1684
+ */
1685
+ localCache: () => DaggerEngineCache;
1686
+ }
1687
+ /**
1688
+ * A cache storage for the Dagger engine
1689
+ */
1690
+ export declare class DaggerEngineCache extends BaseClient {
1691
+ private readonly _id?;
1692
+ private readonly _keepBytes?;
1693
+ private readonly _prune?;
1694
+ /**
1695
+ * Constructor is used for internal usage only, do not create object from it.
1696
+ */
1697
+ constructor(parent?: {
1698
+ queryTree?: QueryTree[];
1699
+ ctx: Context;
1700
+ }, _id?: DaggerEngineCacheID, _keepBytes?: number, _prune?: Void);
1701
+ /**
1702
+ * A unique identifier for this DaggerEngineCache.
1703
+ */
1704
+ id: () => Promise<DaggerEngineCacheID>;
1705
+ /**
1706
+ * The current set of entries in the cache
1707
+ */
1708
+ entrySet: () => DaggerEngineCacheEntrySet;
1709
+ /**
1710
+ * The maximum bytes to keep in the cache without pruning, after which automatic pruning may kick in.
1711
+ */
1712
+ keepBytes: () => Promise<number>;
1713
+ /**
1714
+ * Prune the cache of releaseable entries
1715
+ */
1716
+ prune: () => Promise<void>;
1717
+ }
1718
+ /**
1719
+ * An individual cache entry in a cache entry set
1720
+ */
1721
+ export declare class DaggerEngineCacheEntry extends BaseClient {
1722
+ private readonly _id?;
1723
+ private readonly _activelyUsed?;
1724
+ private readonly _createdTimeUnixNano?;
1725
+ private readonly _description?;
1726
+ private readonly _diskSpaceBytes?;
1727
+ private readonly _mostRecentUseTimeUnixNano?;
1728
+ /**
1729
+ * Constructor is used for internal usage only, do not create object from it.
1730
+ */
1731
+ constructor(parent?: {
1732
+ queryTree?: QueryTree[];
1733
+ ctx: Context;
1734
+ }, _id?: DaggerEngineCacheEntryID, _activelyUsed?: boolean, _createdTimeUnixNano?: number, _description?: string, _diskSpaceBytes?: number, _mostRecentUseTimeUnixNano?: number);
1735
+ /**
1736
+ * A unique identifier for this DaggerEngineCacheEntry.
1737
+ */
1738
+ id: () => Promise<DaggerEngineCacheEntryID>;
1739
+ /**
1740
+ * Whether the cache entry is actively being used.
1741
+ */
1742
+ activelyUsed: () => Promise<boolean>;
1743
+ /**
1744
+ * The time the cache entry was created, in Unix nanoseconds.
1745
+ */
1746
+ createdTimeUnixNano: () => Promise<number>;
1747
+ /**
1748
+ * The description of the cache entry.
1749
+ */
1750
+ description: () => Promise<string>;
1751
+ /**
1752
+ * The disk space used by the cache entry.
1753
+ */
1754
+ diskSpaceBytes: () => Promise<number>;
1755
+ /**
1756
+ * The most recent time the cache entry was used, in Unix nanoseconds.
1757
+ */
1758
+ mostRecentUseTimeUnixNano: () => Promise<number>;
1759
+ }
1760
+ /**
1761
+ * A set of cache entries returned by a query to a cache
1762
+ */
1763
+ export declare class DaggerEngineCacheEntrySet extends BaseClient {
1764
+ private readonly _id?;
1765
+ private readonly _diskSpaceBytes?;
1766
+ private readonly _entryCount?;
1767
+ /**
1768
+ * Constructor is used for internal usage only, do not create object from it.
1769
+ */
1770
+ constructor(parent?: {
1771
+ queryTree?: QueryTree[];
1772
+ ctx: Context;
1773
+ }, _id?: DaggerEngineCacheEntrySetID, _diskSpaceBytes?: number, _entryCount?: number);
1774
+ /**
1775
+ * A unique identifier for this DaggerEngineCacheEntrySet.
1776
+ */
1777
+ id: () => Promise<DaggerEngineCacheEntrySetID>;
1778
+ /**
1779
+ * The total disk space used by the cache entries in this set.
1780
+ */
1781
+ diskSpaceBytes: () => Promise<number>;
1782
+ /**
1783
+ * The list of individual cache entries in the set
1784
+ */
1785
+ entries: () => Promise<DaggerEngineCacheEntry[]>;
1786
+ /**
1787
+ * The number of cache entries in this set.
1788
+ */
1789
+ entryCount: () => Promise<number>;
1790
+ }
1591
1791
  /**
1592
1792
  * A directory.
1593
1793
  */
@@ -1601,7 +1801,7 @@ export declare class Directory extends BaseClient {
1601
1801
  constructor(parent?: {
1602
1802
  queryTree?: QueryTree[];
1603
1803
  ctx: Context;
1604
- }, _id?: DirectoryID, _export?: boolean, _sync?: DirectoryID);
1804
+ }, _id?: DirectoryID, _export?: string, _sync?: DirectoryID);
1605
1805
  /**
1606
1806
  * A unique identifier for this Directory.
1607
1807
  */
@@ -1613,6 +1813,7 @@ export declare class Directory extends BaseClient {
1613
1813
  * This is needed when the module code is in a subdirectory but requires parent directories to be loaded in order to execute. For example, the module source code may need a go.mod, project.toml, package.json, etc. file from a parent directory.
1614
1814
  *
1615
1815
  * If not set, the module source code is loaded from the root of the directory.
1816
+ * @param opts.engineVersion The engine version to upgrade to.
1616
1817
  */
1617
1818
  asModule: (opts?: DirectoryAsModuleOpts) => Module_;
1618
1819
  /**
@@ -1646,7 +1847,7 @@ export declare class Directory extends BaseClient {
1646
1847
  * @param path Location of the copied directory (e.g., "logs/").
1647
1848
  * @param opts.wipe If true, then the host directory will be wiped clean before exporting so that it exactly matches the directory being exported; this means it will delete any files on the host that aren't in the exported dir. If false (the default), the contents of the directory will be merged with any existing contents of the host directory, leaving any existing files on the host that aren't in the exported directory alone.
1648
1849
  */
1649
- export: (path: string, opts?: DirectoryExportOpts) => Promise<boolean>;
1850
+ export: (path: string, opts?: DirectoryExportOpts) => Promise<string>;
1650
1851
  /**
1651
1852
  * Retrieves a file at the given path.
1652
1853
  * @param path Location of the file to retrieve (e.g., "README.md").
@@ -1668,6 +1869,16 @@ export declare class Directory extends BaseClient {
1668
1869
  * Force evaluation in the engine.
1669
1870
  */
1670
1871
  sync: () => Promise<Directory>;
1872
+ /**
1873
+ * Opens an interactive terminal in new container with this directory mounted inside.
1874
+ * @param opts.cmd If set, override the container's default terminal command and invoke these command arguments instead.
1875
+ * @param opts.experimentalPrivilegedNesting Provides Dagger access to the executed command.
1876
+ *
1877
+ * Do not use this option unless you trust the command being executed; the command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
1878
+ * @param opts.insecureRootCapabilities Execute the command with all root capabilities. This is similar to running a command with "sudo" or executing "docker run" with the "--privileged" flag. Containerization does not provide any security guarantees when using this option. It should only be used when absolutely necessary and only with trusted commands.
1879
+ * @param opts.container If set, override the default container used for the terminal.
1880
+ */
1881
+ terminal: (opts?: DirectoryTerminalOpts) => Directory;
1671
1882
  /**
1672
1883
  * Retrieves this directory plus a directory written at the given path.
1673
1884
  * @param path Location of the written directory (e.g., "/src/").
@@ -1727,6 +1938,69 @@ export declare class Directory extends BaseClient {
1727
1938
  */
1728
1939
  with: (arg: (param: Directory) => Directory) => Directory;
1729
1940
  }
1941
+ /**
1942
+ * A definition of a custom enum defined in a Module.
1943
+ */
1944
+ export declare class EnumTypeDef extends BaseClient {
1945
+ private readonly _id?;
1946
+ private readonly _description?;
1947
+ private readonly _name?;
1948
+ private readonly _sourceModuleName?;
1949
+ /**
1950
+ * Constructor is used for internal usage only, do not create object from it.
1951
+ */
1952
+ constructor(parent?: {
1953
+ queryTree?: QueryTree[];
1954
+ ctx: Context;
1955
+ }, _id?: EnumTypeDefID, _description?: string, _name?: string, _sourceModuleName?: string);
1956
+ /**
1957
+ * A unique identifier for this EnumTypeDef.
1958
+ */
1959
+ id: () => Promise<EnumTypeDefID>;
1960
+ /**
1961
+ * A doc string for the enum, if any.
1962
+ */
1963
+ description: () => Promise<string>;
1964
+ /**
1965
+ * The name of the enum.
1966
+ */
1967
+ name: () => Promise<string>;
1968
+ /**
1969
+ * If this EnumTypeDef is associated with a Module, the name of the module. Unset otherwise.
1970
+ */
1971
+ sourceModuleName: () => Promise<string>;
1972
+ /**
1973
+ * The values of the enum.
1974
+ */
1975
+ values: () => Promise<EnumValueTypeDef[]>;
1976
+ }
1977
+ /**
1978
+ * A definition of a value in a custom enum defined in a Module.
1979
+ */
1980
+ export declare class EnumValueTypeDef extends BaseClient {
1981
+ private readonly _id?;
1982
+ private readonly _description?;
1983
+ private readonly _name?;
1984
+ /**
1985
+ * Constructor is used for internal usage only, do not create object from it.
1986
+ */
1987
+ constructor(parent?: {
1988
+ queryTree?: QueryTree[];
1989
+ ctx: Context;
1990
+ }, _id?: EnumValueTypeDefID, _description?: string, _name?: string);
1991
+ /**
1992
+ * A unique identifier for this EnumValueTypeDef.
1993
+ */
1994
+ id: () => Promise<EnumValueTypeDefID>;
1995
+ /**
1996
+ * A doc string for the enum value, if any.
1997
+ */
1998
+ description: () => Promise<string>;
1999
+ /**
2000
+ * The name of the enum value.
2001
+ */
2002
+ name: () => Promise<string>;
2003
+ }
1730
2004
  /**
1731
2005
  * An environment variable name and value.
1732
2006
  */
@@ -1803,7 +2077,7 @@ export declare class File extends BaseClient {
1803
2077
  constructor(parent?: {
1804
2078
  queryTree?: QueryTree[];
1805
2079
  ctx: Context;
1806
- }, _id?: FileID, _contents?: string, _export?: boolean, _name?: string, _size?: number, _sync?: FileID);
2080
+ }, _id?: FileID, _contents?: string, _export?: string, _name?: string, _size?: number, _sync?: FileID);
1807
2081
  /**
1808
2082
  * A unique identifier for this File.
1809
2083
  */
@@ -1817,7 +2091,7 @@ export declare class File extends BaseClient {
1817
2091
  * @param path Location of the written directory (e.g., "output.txt").
1818
2092
  * @param opts.allowParentDirPath If allowParentDirPath is true, the path argument can be a directory path, in which case the file will be created in that directory.
1819
2093
  */
1820
- export: (path: string, opts?: FileExportOpts) => Promise<boolean>;
2094
+ export: (path: string, opts?: FileExportOpts) => Promise<string>;
1821
2095
  /**
1822
2096
  * Retrieves the name of the file.
1823
2097
  */
@@ -1983,7 +2257,7 @@ export declare class FunctionCall extends BaseClient {
1983
2257
  * Set the return value of the function call to the provided value.
1984
2258
  * @param value JSON serialization of the return value.
1985
2259
  */
1986
- returnValue: (value: JSON) => Promise<Void>;
2260
+ returnValue: (value: JSON) => Promise<void>;
1987
2261
  }
1988
2262
  /**
1989
2263
  * A value passed as a named argument to a function call.
@@ -2129,10 +2403,8 @@ export declare class GitRef extends BaseClient {
2129
2403
  commit: () => Promise<string>;
2130
2404
  /**
2131
2405
  * The filesystem tree at this ref.
2132
- * @param opts.sshKnownHosts DEPRECATED: This option should be passed to `git` instead.
2133
- * @param opts.sshAuthSocket DEPRECATED: This option should be passed to `git` instead.
2134
2406
  */
2135
- tree: (opts?: GitRefTreeOpts) => Directory;
2407
+ tree: () => Directory;
2136
2408
  }
2137
2409
  /**
2138
2410
  * A git repository.
@@ -2174,6 +2446,11 @@ export declare class GitRepository extends BaseClient {
2174
2446
  * @param name Tag's name (e.g., "v0.3.9").
2175
2447
  */
2176
2448
  tag: (name: string) => GitRef;
2449
+ /**
2450
+ * tags that match any of the given glob patterns.
2451
+ * @param opts.patterns Glob patterns (e.g., "refs/tags/v*").
2452
+ */
2453
+ tags: (opts?: GitRepositoryTagsOpts) => Promise<string[]>;
2177
2454
  /**
2178
2455
  * Header to authenticate the remote with.
2179
2456
  * @param header Secret used to populate the Authorization HTTP header
@@ -2429,6 +2706,10 @@ export declare class Module_ extends BaseClient {
2429
2706
  * The doc string of the module, if any
2430
2707
  */
2431
2708
  description: () => Promise<string>;
2709
+ /**
2710
+ * Enumerations served by this module.
2711
+ */
2712
+ enums: () => Promise<TypeDef[]>;
2432
2713
  /**
2433
2714
  * The generated files and directories made on top of the module source's context directory.
2434
2715
  */
@@ -2466,7 +2747,7 @@ export declare class Module_ extends BaseClient {
2466
2747
  *
2467
2748
  * Note: this can only be called once per session. In the future, it could return a stream or service to remove the side effect.
2468
2749
  */
2469
- serve: () => Promise<Void>;
2750
+ serve: () => Promise<void>;
2470
2751
  /**
2471
2752
  * The source for the module.
2472
2753
  */
@@ -2476,6 +2757,10 @@ export declare class Module_ extends BaseClient {
2476
2757
  * @param description The description to set
2477
2758
  */
2478
2759
  withDescription: (description: string) => Module_;
2760
+ /**
2761
+ * This module plus the given Enum type and associated values
2762
+ */
2763
+ withEnum: (enum_: TypeDef) => Module_;
2479
2764
  /**
2480
2765
  * This module plus the given Interface type and associated functions
2481
2766
  */
@@ -2487,8 +2772,9 @@ export declare class Module_ extends BaseClient {
2487
2772
  /**
2488
2773
  * Retrieves the module with basic configuration loaded if present.
2489
2774
  * @param source The module source to initialize from.
2775
+ * @param opts.engineVersion The engine version to upgrade to.
2490
2776
  */
2491
- withSource: (source: ModuleSource) => Module_;
2777
+ withSource: (source: ModuleSource, opts?: ModuleWithSourceOpts) => Module_;
2492
2778
  /**
2493
2779
  * Call the provided function with current Module.
2494
2780
  *
@@ -2556,8 +2842,9 @@ export declare class ModuleSource extends BaseClient {
2556
2842
  asLocalSource: () => LocalModuleSource;
2557
2843
  /**
2558
2844
  * Load the source as a module. If this is a local source, the parent directory must have been provided during module source creation
2845
+ * @param opts.engineVersion The engine version to upgrade to.
2559
2846
  */
2560
- asModule: () => Module_;
2847
+ asModule: (opts?: ModuleSourceAsModuleOpts) => Module_;
2561
2848
  /**
2562
2849
  * A human readable ref string representation of this module source.
2563
2850
  */
@@ -2776,7 +3063,6 @@ export declare class Port extends BaseClient {
2776
3063
  * The root of the DAG.
2777
3064
  */
2778
3065
  export declare class Client extends BaseClient {
2779
- private readonly _checkVersionCompatibility?;
2780
3066
  private readonly _defaultPlatform?;
2781
3067
  private readonly _version?;
2782
3068
  /**
@@ -2785,7 +3071,7 @@ export declare class Client extends BaseClient {
2785
3071
  constructor(parent?: {
2786
3072
  queryTree?: QueryTree[];
2787
3073
  ctx: Context;
2788
- }, _checkVersionCompatibility?: boolean, _defaultPlatform?: Platform, _version?: string);
3074
+ }, _defaultPlatform?: Platform, _version?: string);
2789
3075
  /**
2790
3076
  * Get the Raw GraphQL client.
2791
3077
  */
@@ -2808,16 +3094,10 @@ export declare class Client extends BaseClient {
2808
3094
  * @param key A string identifier to target this cache volume (e.g., "modules-cache").
2809
3095
  */
2810
3096
  cacheVolume: (key: string) => CacheVolume;
2811
- /**
2812
- * Checks if the current Dagger Engine is compatible with an SDK's required version.
2813
- * @param version Version required by the SDK.
2814
- */
2815
- checkVersionCompatibility: (version: string) => Promise<boolean>;
2816
3097
  /**
2817
3098
  * Creates a scratch container.
2818
3099
  *
2819
3100
  * Optional platform argument initializes new containers to execute and publish as that platform. Platform defaults to that of the builder's host.
2820
- * @param opts.id DEPRECATED: Use `loadContainerFromID` instead.
2821
3101
  * @param opts.platform Platform to initialize the container with.
2822
3102
  */
2823
3103
  container: (opts?: ClientContainerOpts) => Container;
@@ -2835,19 +3115,18 @@ export declare class Client extends BaseClient {
2835
3115
  * The TypeDef representations of the objects currently being served in the session.
2836
3116
  */
2837
3117
  currentTypeDefs: () => Promise<TypeDef[]>;
3118
+ /**
3119
+ * The Dagger engine container configuration and state
3120
+ */
3121
+ daggerEngine: () => DaggerEngine;
2838
3122
  /**
2839
3123
  * The default platform of the engine.
2840
3124
  */
2841
3125
  defaultPlatform: () => Promise<Platform>;
2842
3126
  /**
2843
3127
  * Creates an empty directory.
2844
- * @param opts.id DEPRECATED: Use `loadDirectoryFromID` instead.
2845
3128
  */
2846
- directory: (opts?: ClientDirectoryOpts) => Directory;
2847
- /**
2848
- * @deprecated Use loadFileFromID instead.
2849
- */
2850
- file: (id: FileID) => File;
3129
+ directory: () => Directory;
2851
3130
  /**
2852
3131
  * Creates a function.
2853
3132
  * @param name Name of the function, in its original format from the implementation language.
@@ -2893,10 +3172,34 @@ export declare class Client extends BaseClient {
2893
3172
  * Load a CurrentModule from its ID.
2894
3173
  */
2895
3174
  loadCurrentModuleFromID: (id: CurrentModuleID) => CurrentModule;
3175
+ /**
3176
+ * Load a DaggerEngineCacheEntry from its ID.
3177
+ */
3178
+ loadDaggerEngineCacheEntryFromID: (id: DaggerEngineCacheEntryID) => DaggerEngineCacheEntry;
3179
+ /**
3180
+ * Load a DaggerEngineCacheEntrySet from its ID.
3181
+ */
3182
+ loadDaggerEngineCacheEntrySetFromID: (id: DaggerEngineCacheEntrySetID) => DaggerEngineCacheEntrySet;
3183
+ /**
3184
+ * Load a DaggerEngineCache from its ID.
3185
+ */
3186
+ loadDaggerEngineCacheFromID: (id: DaggerEngineCacheID) => DaggerEngineCache;
3187
+ /**
3188
+ * Load a DaggerEngine from its ID.
3189
+ */
3190
+ loadDaggerEngineFromID: (id: DaggerEngineID) => DaggerEngine;
2896
3191
  /**
2897
3192
  * Load a Directory from its ID.
2898
3193
  */
2899
3194
  loadDirectoryFromID: (id: DirectoryID) => Directory;
3195
+ /**
3196
+ * Load a EnumTypeDef from its ID.
3197
+ */
3198
+ loadEnumTypeDefFromID: (id: EnumTypeDefID) => EnumTypeDef;
3199
+ /**
3200
+ * Load a EnumValueTypeDef from its ID.
3201
+ */
3202
+ loadEnumValueTypeDefFromID: (id: EnumValueTypeDefID) => EnumValueTypeDef;
2900
3203
  /**
2901
3204
  * Load a EnvVariable from its ID.
2902
3205
  */
@@ -3048,11 +3351,6 @@ export declare class Client extends BaseClient {
3048
3351
  * @param plaintext The plaintext of the secret
3049
3352
  */
3050
3353
  setSecret: (name: string, plaintext: string) => Secret;
3051
- /**
3052
- * Loads a socket by its ID.
3053
- * @deprecated Use loadSocketFromID instead.
3054
- */
3055
- socket: (id: SocketID) => Socket;
3056
3354
  /**
3057
3355
  * Create a new TypeDef.
3058
3356
  */
@@ -3184,7 +3482,7 @@ export declare class Service extends BaseClient {
3184
3482
  * Frontend is the port accepting traffic on the host, backend is the service port.
3185
3483
  * @param opts.random Bind each tunnel port to a random port on the host.
3186
3484
  */
3187
- up: (opts?: ServiceUpOpts) => Promise<Void>;
3485
+ up: (opts?: ServiceUpOpts) => Promise<void>;
3188
3486
  }
3189
3487
  /**
3190
3488
  * A Unix or TCP/IP socket that can be mounted into a container.
@@ -3208,22 +3506,17 @@ export declare class Socket extends BaseClient {
3208
3506
  */
3209
3507
  export declare class Terminal extends BaseClient {
3210
3508
  private readonly _id?;
3211
- private readonly _websocketEndpoint?;
3212
3509
  /**
3213
3510
  * Constructor is used for internal usage only, do not create object from it.
3214
3511
  */
3215
3512
  constructor(parent?: {
3216
3513
  queryTree?: QueryTree[];
3217
3514
  ctx: Context;
3218
- }, _id?: TerminalID, _websocketEndpoint?: string);
3515
+ }, _id?: TerminalID);
3219
3516
  /**
3220
3517
  * A unique identifier for this Terminal.
3221
3518
  */
3222
3519
  id: () => Promise<TerminalID>;
3223
- /**
3224
- * An http endpoint at which this terminal can be connected to over a websocket.
3225
- */
3226
- websocketEndpoint: () => Promise<string>;
3227
3520
  }
3228
3521
  /**
3229
3522
  * A definition of a parameter or return type in a Module.
@@ -3243,6 +3536,10 @@ export declare class TypeDef extends BaseClient {
3243
3536
  * A unique identifier for this TypeDef.
3244
3537
  */
3245
3538
  id: () => Promise<TypeDefID>;
3539
+ /**
3540
+ * If kind is ENUM, the enum-specific type definition. If kind is not ENUM, this will be null.
3541
+ */
3542
+ asEnum: () => EnumTypeDef;
3246
3543
  /**
3247
3544
  * If kind is INPUT, the input-specific type definition. If kind is not INPUT, this will be null.
3248
3545
  */
@@ -3275,6 +3572,20 @@ export declare class TypeDef extends BaseClient {
3275
3572
  * Adds a function for constructing a new instance of an Object TypeDef, failing if the type is not an object.
3276
3573
  */
3277
3574
  withConstructor: (function_: Function_) => TypeDef;
3575
+ /**
3576
+ * Returns a TypeDef of kind Enum with the provided name.
3577
+ *
3578
+ * Note that an enum's values may be omitted if the intent is only to refer to an enum. This is how functions are able to return their own, or any other circular reference.
3579
+ * @param name The name of the enum
3580
+ * @param opts.description A doc string for the enum, if any
3581
+ */
3582
+ withEnum: (name: string, opts?: TypeDefWithEnumOpts) => TypeDef;
3583
+ /**
3584
+ * Adds a static value for an Enum TypeDef, failing if the type is not an enum.
3585
+ * @param value The name of the value in the enum
3586
+ * @param opts.description A doc string for the value, if any
3587
+ */
3588
+ withEnumValue: (value: string, opts?: TypeDefWithEnumValueOpts) => TypeDef;
3278
3589
  /**
3279
3590
  * Adds a static field for an Object TypeDef, failing if the type is not an object.
3280
3591
  * @param name The name of the field in the object