@dagger.io/dagger 0.18.17 → 0.18.18

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.
@@ -53,6 +53,12 @@ export declare enum CacheSharingMode {
53
53
  export type CacheVolumeID = string & {
54
54
  __CacheVolumeID: never;
55
55
  };
56
+ /**
57
+ * The `ChangesetID` scalar type represents an identifier for an object of type Changeset.
58
+ */
59
+ export type ChangesetID = string & {
60
+ __ChangesetID: never;
61
+ };
56
62
  /**
57
63
  * The `CloudID` scalar type represents an identifier for an object of type Cloud.
58
64
  */
@@ -764,12 +770,28 @@ export type DirectoryWithDirectoryOpts = {
764
770
  * Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]).
765
771
  */
766
772
  include?: string[];
773
+ /**
774
+ * A user:group to set for the copied directory and its contents.
775
+ *
776
+ * The user and group must be an ID (1000:1000), not a name (foo:bar).
777
+ *
778
+ * If the group is omitted, it defaults to the same as the user.
779
+ */
780
+ owner?: string;
767
781
  };
768
782
  export type DirectoryWithFileOpts = {
769
783
  /**
770
784
  * Permission given to the copied file (e.g., 0600).
771
785
  */
772
786
  permissions?: number;
787
+ /**
788
+ * A user:group to set for the copied directory and its contents.
789
+ *
790
+ * The user and group must be an ID (1000:1000), not a name (foo:bar).
791
+ *
792
+ * If the group is omitted, it defaults to the same as the user.
793
+ */
794
+ owner?: string;
773
795
  };
774
796
  export type DirectoryWithFilesOpts = {
775
797
  /**
@@ -840,6 +862,12 @@ export type EnumTypeDefID = string & {
840
862
  export type EnumValueTypeDefID = string & {
841
863
  __EnumValueTypeDefID: never;
842
864
  };
865
+ /**
866
+ * The `EnvFileID` scalar type represents an identifier for an object of type EnvFile.
867
+ */
868
+ export type EnvFileID = string & {
869
+ __EnvFileID: never;
870
+ };
843
871
  /**
844
872
  * The `EnvID` scalar type represents an identifier for an object of type Env.
845
873
  */
@@ -887,6 +915,12 @@ export declare enum ExistsType {
887
915
  export type FieldTypeDefID = string & {
888
916
  __FieldTypeDefID: never;
889
917
  };
918
+ export type FileAsEnvFileOpts = {
919
+ /**
920
+ * Replace "${VAR}" or "$VAR" with the value of other vars
921
+ */
922
+ expand?: boolean;
923
+ };
890
924
  export type FileContentsOpts = {
891
925
  /**
892
926
  * Start reading after this line
@@ -1061,9 +1095,9 @@ export type HostDirectoryOpts = {
1061
1095
  */
1062
1096
  noCache?: boolean;
1063
1097
  /**
1064
- * Don't apply .gitignore filter rules inside the directory
1098
+ * Apply .gitignore filter rules inside the directory
1065
1099
  */
1066
- noGitAutoIgnore?: boolean;
1100
+ gitignore?: boolean;
1067
1101
  };
1068
1102
  export type HostFileOpts = {
1069
1103
  /**
@@ -1071,6 +1105,9 @@ export type HostFileOpts = {
1071
1105
  */
1072
1106
  noCache?: boolean;
1073
1107
  };
1108
+ export type HostFindUpOpts = {
1109
+ noCache?: boolean;
1110
+ };
1074
1111
  export type HostServiceOpts = {
1075
1112
  /**
1076
1113
  * Upstream host to forward traffic to.
@@ -1280,6 +1317,12 @@ export type ClientEnvOpts = {
1280
1317
  */
1281
1318
  writable?: boolean;
1282
1319
  };
1320
+ export type ClientEnvFileOpts = {
1321
+ /**
1322
+ * Replace "${VAR}" or "$VAR" with the value of other vars
1323
+ */
1324
+ expand?: boolean;
1325
+ };
1283
1326
  export type ClientFileOpts = {
1284
1327
  /**
1285
1328
  * Permissions of the new file. Example: 0600
@@ -1690,6 +1733,10 @@ export declare class Binding extends BaseClient {
1690
1733
  * Retrieve the binding value, as type CacheVolume
1691
1734
  */
1692
1735
  asCacheVolume: () => CacheVolume;
1736
+ /**
1737
+ * Retrieve the binding value, as type Changeset
1738
+ */
1739
+ asChangeset: () => Changeset;
1693
1740
  /**
1694
1741
  * Retrieve the binding value, as type Cloud
1695
1742
  */
@@ -1706,6 +1753,10 @@ export declare class Binding extends BaseClient {
1706
1753
  * Retrieve the binding value, as type Env
1707
1754
  */
1708
1755
  asEnv: () => Env;
1756
+ /**
1757
+ * Retrieve the binding value, as type EnvFile
1758
+ */
1759
+ asEnvFile: () => EnvFile;
1709
1760
  /**
1710
1761
  * Retrieve the binding value, as type File
1711
1762
  */
@@ -1793,6 +1844,53 @@ export declare class CacheVolume extends BaseClient {
1793
1844
  */
1794
1845
  id: () => Promise<CacheVolumeID>;
1795
1846
  }
1847
+ /**
1848
+ * A comparison between two directories representing changes that can be applied.
1849
+ */
1850
+ export declare class Changeset extends BaseClient {
1851
+ private readonly _id?;
1852
+ private readonly _sync?;
1853
+ /**
1854
+ * Constructor is used for internal usage only, do not create object from it.
1855
+ */
1856
+ constructor(ctx?: Context, _id?: ChangesetID, _sync?: ChangesetID);
1857
+ /**
1858
+ * A unique identifier for this Changeset.
1859
+ */
1860
+ id: () => Promise<ChangesetID>;
1861
+ /**
1862
+ * Files and directories that were added in the newer directory.
1863
+ */
1864
+ addedPaths: () => Promise<string[]>;
1865
+ /**
1866
+ * The newer/upper snapshot.
1867
+ */
1868
+ after: () => Directory;
1869
+ /**
1870
+ * Return a Git-compatible patch of the changes
1871
+ */
1872
+ asPatch: () => File;
1873
+ /**
1874
+ * The older/lower snapshot to compare against.
1875
+ */
1876
+ before: () => Directory;
1877
+ /**
1878
+ * Return a snapshot containing only the created and modified files
1879
+ */
1880
+ layer: () => Directory;
1881
+ /**
1882
+ * Files and directories that existed before and were updated in the newer directory.
1883
+ */
1884
+ modifiedPaths: () => Promise<string[]>;
1885
+ /**
1886
+ * Files and directories that were removed. Directories are indicated by a trailing slash, and their child paths are not included.
1887
+ */
1888
+ removedPaths: () => Promise<string[]>;
1889
+ /**
1890
+ * Force evaluation in the engine.
1891
+ */
1892
+ sync: () => Promise<Changeset>;
1893
+ }
1796
1894
  /**
1797
1895
  * Dagger Cloud configuration and state
1798
1896
  */
@@ -2485,12 +2583,13 @@ export declare class Directory extends BaseClient {
2485
2583
  private readonly _digest?;
2486
2584
  private readonly _exists?;
2487
2585
  private readonly _export?;
2586
+ private readonly _findUp?;
2488
2587
  private readonly _name?;
2489
2588
  private readonly _sync?;
2490
2589
  /**
2491
2590
  * Constructor is used for internal usage only, do not create object from it.
2492
2591
  */
2493
- constructor(ctx?: Context, _id?: DirectoryID, _digest?: string, _exists?: boolean, _export?: string, _name?: string, _sync?: DirectoryID);
2592
+ constructor(ctx?: Context, _id?: DirectoryID, _digest?: string, _exists?: boolean, _export?: string, _findUp?: string, _name?: string, _sync?: DirectoryID);
2494
2593
  /**
2495
2594
  * A unique identifier for this Directory.
2496
2595
  */
@@ -2513,6 +2612,23 @@ export declare class Directory extends BaseClient {
2513
2612
  * If not set, the module source code is loaded from the root of the directory.
2514
2613
  */
2515
2614
  asModuleSource: (opts?: DirectoryAsModuleSourceOpts) => ModuleSource;
2615
+ /**
2616
+ * Return the difference between this directory and another directory, typically an older snapshot.
2617
+ *
2618
+ * The difference is encoded as a changeset, which also tracks removed files, and can be applied to other directories.
2619
+ * @param from The base directory snapshot to compare against
2620
+ */
2621
+ changes: (from: Directory) => Changeset;
2622
+ /**
2623
+ * Change the owner of the directory contents recursively.
2624
+ * @param path Path of the directory to change ownership of (e.g., "/").
2625
+ * @param owner A user:group to set for the mounted directory and its contents.
2626
+ *
2627
+ * The user and group must be an ID (1000:1000), not a name (foo:bar).
2628
+ *
2629
+ * If the group is omitted, it defaults to the same as the user.
2630
+ */
2631
+ chown: (path: string, owner: string) => Directory;
2516
2632
  /**
2517
2633
  * Return the difference between this directory and an another directory. The difference is encoded as a directory.
2518
2634
  * @param other The directory to compare against
@@ -2570,6 +2686,12 @@ export declare class Directory extends BaseClient {
2570
2686
  * @param opts.include If set, only paths matching one of these glob patterns is included in the new snapshot. Example: (e.g., ["app/", "package.*"]).
2571
2687
  */
2572
2688
  filter: (opts?: DirectoryFilterOpts) => Directory;
2689
+ /**
2690
+ * Search up the directory tree for a file or directory, and return its path. If no match, return null
2691
+ * @param name The name of the file or directory to search for
2692
+ * @param start The path to start the search from
2693
+ */
2694
+ findUp: (name: string, start: string) => Promise<string>;
2573
2695
  /**
2574
2696
  * Returns a list of files and directories that matche the given pattern.
2575
2697
  * @param pattern Pattern to match (e.g., "*.md").
@@ -2608,12 +2730,22 @@ export declare class Directory extends BaseClient {
2608
2730
  * @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.
2609
2731
  */
2610
2732
  terminal: (opts?: DirectoryTerminalOpts) => Directory;
2733
+ /**
2734
+ * Return a directory with changes from another directory applied to it.
2735
+ * @param changes Changes to apply to the directory
2736
+ */
2737
+ withChanges: (changes: Changeset) => Directory;
2611
2738
  /**
2612
2739
  * Return a snapshot with a directory added
2613
2740
  * @param path Location of the written directory (e.g., "/src/").
2614
2741
  * @param directory Identifier of the directory to copy.
2615
2742
  * @param opts.exclude Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]).
2616
2743
  * @param opts.include Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]).
2744
+ * @param opts.owner A user:group to set for the copied directory and its contents.
2745
+ *
2746
+ * The user and group must be an ID (1000:1000), not a name (foo:bar).
2747
+ *
2748
+ * If the group is omitted, it defaults to the same as the user.
2617
2749
  */
2618
2750
  withDirectory: (path: string, directory: Directory, opts?: DirectoryWithDirectoryOpts) => Directory;
2619
2751
  /**
@@ -2621,6 +2753,11 @@ export declare class Directory extends BaseClient {
2621
2753
  * @param path Location of the copied file (e.g., "/file.txt").
2622
2754
  * @param source Identifier of the file to copy.
2623
2755
  * @param opts.permissions Permission given to the copied file (e.g., 0600).
2756
+ * @param opts.owner A user:group to set for the copied directory and its contents.
2757
+ *
2758
+ * The user and group must be an ID (1000:1000), not a name (foo:bar).
2759
+ *
2760
+ * If the group is omitted, it defaults to the same as the user.
2624
2761
  */
2625
2762
  withFile: (path: string, source: File, opts?: DirectoryWithFileOpts) => Directory;
2626
2763
  /**
@@ -2649,6 +2786,12 @@ export declare class Directory extends BaseClient {
2649
2786
  * @experimental
2650
2787
  */
2651
2788
  withPatch: (patch: string) => Directory;
2789
+ /**
2790
+ * Retrieves this directory with the given Git-compatible patch file applied.
2791
+ * @param patch File containing the patch to apply
2792
+ * @experimental
2793
+ */
2794
+ withPatchFile: (patch: File) => Directory;
2652
2795
  /**
2653
2796
  * Return a snapshot with a symlink
2654
2797
  * @param target Location of the file or directory to link to (e.g., "/existing/file").
@@ -2932,6 +3075,19 @@ export declare class Env extends BaseClient {
2932
3075
  * @param description A description of the desired value of the binding
2933
3076
  */
2934
3077
  withCacheVolumeOutput: (name: string, description: string) => Env;
3078
+ /**
3079
+ * Create or update a binding of type Changeset in the environment
3080
+ * @param name The name of the binding
3081
+ * @param value The Changeset value to assign to the binding
3082
+ * @param description The purpose of the input
3083
+ */
3084
+ withChangesetInput: (name: string, value: Changeset, description: string) => Env;
3085
+ /**
3086
+ * Declare a desired Changeset output to be assigned in the environment
3087
+ * @param name The name of the binding
3088
+ * @param description A description of the desired value of the binding
3089
+ */
3090
+ withChangesetOutput: (name: string, description: string) => Env;
2935
3091
  /**
2936
3092
  * Create or update a binding of type Cloud in the environment
2937
3093
  * @param name The name of the binding
@@ -2971,6 +3127,19 @@ export declare class Env extends BaseClient {
2971
3127
  * @param description A description of the desired value of the binding
2972
3128
  */
2973
3129
  withDirectoryOutput: (name: string, description: string) => Env;
3130
+ /**
3131
+ * Create or update a binding of type EnvFile in the environment
3132
+ * @param name The name of the binding
3133
+ * @param value The EnvFile value to assign to the binding
3134
+ * @param description The purpose of the input
3135
+ */
3136
+ withEnvFileInput: (name: string, value: EnvFile, description: string) => Env;
3137
+ /**
3138
+ * Declare a desired EnvFile output to be assigned in the environment
3139
+ * @param name The name of the binding
3140
+ * @param description A description of the desired value of the binding
3141
+ */
3142
+ withEnvFileOutput: (name: string, description: string) => Env;
2974
3143
  /**
2975
3144
  * Create or update a binding of type Env in the environment
2976
3145
  * @param name The name of the binding
@@ -3173,6 +3342,57 @@ export declare class Env extends BaseClient {
3173
3342
  */
3174
3343
  with: (arg: (param: Env) => Env) => Env;
3175
3344
  }
3345
+ /**
3346
+ * A collection of environment variables.
3347
+ */
3348
+ export declare class EnvFile extends BaseClient {
3349
+ private readonly _id?;
3350
+ private readonly _exists?;
3351
+ private readonly _get?;
3352
+ /**
3353
+ * Constructor is used for internal usage only, do not create object from it.
3354
+ */
3355
+ constructor(ctx?: Context, _id?: EnvFileID, _exists?: boolean, _get?: string);
3356
+ /**
3357
+ * A unique identifier for this EnvFile.
3358
+ */
3359
+ id: () => Promise<EnvFileID>;
3360
+ /**
3361
+ * Return as a file
3362
+ */
3363
+ asFile: () => File;
3364
+ /**
3365
+ * Check if a variable exists
3366
+ * @param name Variable name
3367
+ */
3368
+ exists: (name: string) => Promise<boolean>;
3369
+ /**
3370
+ * Lookup a variable (last occurrence wins) and return its value, or an empty string
3371
+ * @param name Variable name
3372
+ */
3373
+ get: (name: string) => Promise<string>;
3374
+ /**
3375
+ * Return all variables
3376
+ */
3377
+ variables: () => Promise<EnvVariable[]>;
3378
+ /**
3379
+ * Add a variable
3380
+ * @param name Variable name
3381
+ * @param value Variable value
3382
+ */
3383
+ withVariable: (name: string, value: string) => EnvFile;
3384
+ /**
3385
+ * Remove all occurrences of the named variable
3386
+ * @param name Variable name
3387
+ */
3388
+ withoutVariable: (name: string) => EnvFile;
3389
+ /**
3390
+ * Call the provided function with current EnvFile.
3391
+ *
3392
+ * This is useful for reusability and readability by not breaking the calling chain.
3393
+ */
3394
+ with: (arg: (param: EnvFile) => EnvFile) => EnvFile;
3395
+ }
3176
3396
  /**
3177
3397
  * An environment variable name and value.
3178
3398
  */
@@ -3303,6 +3523,20 @@ export declare class File extends BaseClient {
3303
3523
  * A unique identifier for this File.
3304
3524
  */
3305
3525
  id: () => Promise<FileID>;
3526
+ /**
3527
+ * Parse as an env file
3528
+ * @param opts.expand Replace "${VAR}" or "$VAR" with the value of other vars
3529
+ */
3530
+ asEnvFile: (opts?: FileAsEnvFileOpts) => EnvFile;
3531
+ /**
3532
+ * Change the owner of the file recursively.
3533
+ * @param owner A user:group to set for the file.
3534
+ *
3535
+ * The user and group must be an ID (1000:1000), not a name (foo:bar).
3536
+ *
3537
+ * If the group is omitted, it defaults to the same as the user.
3538
+ */
3539
+ chown: (owner: string) => File;
3306
3540
  /**
3307
3541
  * Retrieves the contents of the file.
3308
3542
  * @param opts.offsetLines Start reading after this line
@@ -3725,10 +3959,11 @@ export declare class GitRepository extends BaseClient {
3725
3959
  */
3726
3960
  export declare class Host extends BaseClient {
3727
3961
  private readonly _id?;
3962
+ private readonly _findUp?;
3728
3963
  /**
3729
3964
  * Constructor is used for internal usage only, do not create object from it.
3730
3965
  */
3731
- constructor(ctx?: Context, _id?: HostID);
3966
+ constructor(ctx?: Context, _id?: HostID, _findUp?: string);
3732
3967
  /**
3733
3968
  * A unique identifier for this Host.
3734
3969
  */
@@ -3744,7 +3979,7 @@ export declare class Host extends BaseClient {
3744
3979
  * @param opts.exclude Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]).
3745
3980
  * @param opts.include Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]).
3746
3981
  * @param opts.noCache If true, the directory will always be reloaded from the host.
3747
- * @param opts.noGitAutoIgnore Don't apply .gitignore filter rules inside the directory
3982
+ * @param opts.gitignore Apply .gitignore filter rules inside the directory
3748
3983
  */
3749
3984
  directory: (path: string, opts?: HostDirectoryOpts) => Directory;
3750
3985
  /**
@@ -3753,6 +3988,11 @@ export declare class Host extends BaseClient {
3753
3988
  * @param opts.noCache If true, the file will always be reloaded from the host.
3754
3989
  */
3755
3990
  file: (path: string, opts?: HostFileOpts) => File;
3991
+ /**
3992
+ * Search for a file or directory by walking up the tree from system workdir. Return its relative path. If no match, return null
3993
+ * @param name name of the file or directory to search for
3994
+ */
3995
+ findUp: (name: string, opts?: HostFindUpOpts) => Promise<string>;
3756
3996
  /**
3757
3997
  * Creates a service that forwards traffic to a specified address via the host.
3758
3998
  * @param ports Ports to expose via the service, forwarding through the host network.
@@ -4566,6 +4806,11 @@ export declare class Client extends BaseClient {
4566
4806
  * @experimental
4567
4807
  */
4568
4808
  env: (opts?: ClientEnvOpts) => Env;
4809
+ /**
4810
+ * Initialize an environment file
4811
+ * @param opts.expand Replace "${VAR}" or "$VAR" with the value of other vars
4812
+ */
4813
+ envFile: (opts?: ClientEnvFileOpts) => EnvFile;
4569
4814
  /**
4570
4815
  * Create a new error.
4571
4816
  * @param message A brief description of the error.
@@ -4636,6 +4881,10 @@ export declare class Client extends BaseClient {
4636
4881
  * Load a CacheVolume from its ID.
4637
4882
  */
4638
4883
  loadCacheVolumeFromID: (id: CacheVolumeID) => CacheVolume;
4884
+ /**
4885
+ * Load a Changeset from its ID.
4886
+ */
4887
+ loadChangesetFromID: (id: ChangesetID) => Changeset;
4639
4888
  /**
4640
4889
  * Load a Cloud from its ID.
4641
4890
  */
@@ -4676,6 +4925,10 @@ export declare class Client extends BaseClient {
4676
4925
  * Load a EnumValueTypeDef from its ID.
4677
4926
  */
4678
4927
  loadEnumValueTypeDefFromID: (id: EnumValueTypeDefID) => EnumValueTypeDef;
4928
+ /**
4929
+ * Load a EnvFile from its ID.
4930
+ */
4931
+ loadEnvFileFromID: (id: EnvFileID) => EnvFile;
4679
4932
  /**
4680
4933
  * Load a Env from its ID.
4681
4934
  */