@dagger.io/dagger 0.15.1 → 0.15.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 (80) hide show
  1. package/dist/src/api/client.gen.d.ts +59 -6
  2. package/dist/src/api/client.gen.d.ts.map +1 -1
  3. package/dist/src/api/client.gen.js +52 -166
  4. package/dist/src/common/context.d.ts +1 -1
  5. package/dist/src/common/context.d.ts.map +1 -1
  6. package/dist/src/common/context.js +2 -2
  7. package/dist/src/common/utils.d.ts +14 -14
  8. package/dist/src/module/decorators.d.ts.map +1 -1
  9. package/dist/src/module/entrypoint/invoke.d.ts.map +1 -1
  10. package/dist/src/module/entrypoint/invoke.js +10 -0
  11. package/dist/src/module/entrypoint/load.d.ts.map +1 -1
  12. package/dist/src/module/entrypoint/load.js +9 -3
  13. package/dist/src/module/entrypoint/register.d.ts.map +1 -1
  14. package/dist/src/module/entrypoint/register.js +23 -0
  15. package/dist/src/module/executor.d.ts +5 -0
  16. package/dist/src/module/executor.d.ts.map +1 -1
  17. package/dist/src/module/executor.js +110 -1
  18. package/dist/src/module/introspector/case_convertor.d.ts.map +1 -1
  19. package/dist/src/module/introspector/case_convertor.js +7 -9
  20. package/dist/src/module/introspector/dagger_module/argument.d.ts +2 -1
  21. package/dist/src/module/introspector/dagger_module/argument.d.ts.map +1 -1
  22. package/dist/src/module/introspector/dagger_module/argument.js +3 -1
  23. package/dist/src/module/introspector/dagger_module/enum.d.ts +3 -2
  24. package/dist/src/module/introspector/dagger_module/enum.d.ts.map +1 -1
  25. package/dist/src/module/introspector/dagger_module/enum.js +5 -2
  26. package/dist/src/module/introspector/dagger_module/enumBase.d.ts +3 -2
  27. package/dist/src/module/introspector/dagger_module/enumBase.d.ts.map +1 -1
  28. package/dist/src/module/introspector/dagger_module/enumClass.d.ts +3 -2
  29. package/dist/src/module/introspector/dagger_module/enumClass.d.ts.map +1 -1
  30. package/dist/src/module/introspector/dagger_module/enumClass.js +5 -2
  31. package/dist/src/module/introspector/dagger_module/function.d.ts +2 -1
  32. package/dist/src/module/introspector/dagger_module/function.d.ts.map +1 -1
  33. package/dist/src/module/introspector/dagger_module/function.js +3 -1
  34. package/dist/src/module/introspector/dagger_module/index.d.ts +2 -0
  35. package/dist/src/module/introspector/dagger_module/index.d.ts.map +1 -1
  36. package/dist/src/module/introspector/dagger_module/index.js +2 -0
  37. package/dist/src/module/introspector/dagger_module/interface.d.ts +25 -0
  38. package/dist/src/module/introspector/dagger_module/interface.d.ts.map +1 -0
  39. package/dist/src/module/introspector/dagger_module/interface.js +56 -0
  40. package/dist/src/module/introspector/dagger_module/interfaceFunction.d.ts +32 -0
  41. package/dist/src/module/introspector/dagger_module/interfaceFunction.d.ts.map +1 -0
  42. package/dist/src/module/introspector/dagger_module/interfaceFunction.js +87 -0
  43. package/dist/src/module/introspector/dagger_module/locatable.d.ts +12 -0
  44. package/dist/src/module/introspector/dagger_module/locatable.d.ts.map +1 -0
  45. package/dist/src/module/introspector/dagger_module/locatable.js +14 -0
  46. package/dist/src/module/introspector/dagger_module/module.d.ts +16 -1
  47. package/dist/src/module/introspector/dagger_module/module.d.ts.map +1 -1
  48. package/dist/src/module/introspector/dagger_module/module.js +36 -2
  49. package/dist/src/module/introspector/dagger_module/object.d.ts +17 -2
  50. package/dist/src/module/introspector/dagger_module/object.d.ts.map +1 -1
  51. package/dist/src/module/introspector/dagger_module/object.js +19 -1
  52. package/dist/src/module/introspector/dagger_module/objectBase.d.ts +3 -2
  53. package/dist/src/module/introspector/dagger_module/objectBase.d.ts.map +1 -1
  54. package/dist/src/module/introspector/dagger_module/property.d.ts +2 -1
  55. package/dist/src/module/introspector/dagger_module/property.d.ts.map +1 -1
  56. package/dist/src/module/introspector/dagger_module/property.js +3 -1
  57. package/dist/src/module/introspector/dagger_module/reference.d.ts +1 -1
  58. package/dist/src/module/introspector/dagger_module/reference.d.ts.map +1 -1
  59. package/dist/src/module/introspector/dagger_module/typeObject.d.ts +24 -2
  60. package/dist/src/module/introspector/dagger_module/typeObject.d.ts.map +1 -1
  61. package/dist/src/module/introspector/dagger_module/typeObject.js +26 -1
  62. package/dist/src/module/introspector/dagger_module/typeObjectProperty.d.ts +2 -1
  63. package/dist/src/module/introspector/dagger_module/typeObjectProperty.d.ts.map +1 -1
  64. package/dist/src/module/introspector/dagger_module/typeObjectProperty.js +3 -1
  65. package/dist/src/module/introspector/typedef.d.ts +8 -1
  66. package/dist/src/module/introspector/typedef.d.ts.map +1 -1
  67. package/dist/src/module/introspector/typescript_module/ast.d.ts +14 -0
  68. package/dist/src/module/introspector/typescript_module/ast.d.ts.map +1 -1
  69. package/dist/src/module/introspector/typescript_module/ast.js +37 -2
  70. package/dist/src/module/introspector/typescript_module/index.d.ts +1 -0
  71. package/dist/src/module/introspector/typescript_module/index.d.ts.map +1 -1
  72. package/dist/src/module/introspector/typescript_module/index.js +1 -0
  73. package/dist/src/module/introspector/typescript_module/location.d.ts +6 -0
  74. package/dist/src/module/introspector/typescript_module/location.d.ts.map +1 -0
  75. package/dist/src/module/introspector/typescript_module/location.js +1 -0
  76. package/dist/src/module/registry.d.ts.map +1 -1
  77. package/dist/src/provisioning/bin.js +1 -1
  78. package/dist/src/provisioning/default.d.ts +1 -1
  79. package/dist/src/provisioning/default.js +1 -1
  80. package/package.json +21 -21
@@ -0,0 +1,87 @@
1
+ import ts from "typescript";
2
+ import { IntrospectionError } from "../../../common/errors/index.js";
3
+ import { AST, isTypeDefResolved, resolveTypeDef, } from "../typescript_module/index.js";
4
+ import { DaggerArgument } from "./argument.js";
5
+ import { Locatable } from "./locatable.js";
6
+ export class DaggerInterfaceFunction extends Locatable {
7
+ node;
8
+ ast;
9
+ name;
10
+ description;
11
+ _returnTypeRef;
12
+ returnType;
13
+ arguments = {};
14
+ // Just a placeholder to be compatible with `Method` during registration
15
+ alias;
16
+ symbol;
17
+ signature;
18
+ constructor(node, ast) {
19
+ super(node);
20
+ this.node = node;
21
+ this.ast = ast;
22
+ if (!this.node.name) {
23
+ throw new IntrospectionError(`could not resolve name of interface function at ${AST.getNodePosition(node)}`);
24
+ }
25
+ this.name = this.node.name.getText();
26
+ this.symbol = this.ast.getSymbolOrThrow(this.node.name);
27
+ this.description = this.ast.getDocFromSymbol(this.symbol);
28
+ // If it's a method signature, we can directly use it to get the signature props
29
+ // If it's a property kind signature, we need to get the signature from the type
30
+ // Examle:
31
+ // interface Foo {
32
+ // bar(): void // <- this is a method signature
33
+ // baz: () => string // <- this is a property kind signature
34
+ // }
35
+ const nodeType = this.node.type && ts.isFunctionTypeNode(this.node.type)
36
+ ? this.node.type
37
+ : this.node;
38
+ const signature = this.ast.getSignatureFromFunctionOrThrow(nodeType);
39
+ for (const parameter of nodeType.parameters) {
40
+ this.arguments[parameter.name.getText()] = new DaggerArgument(parameter, this.ast);
41
+ }
42
+ const signatureReturnType = signature.getReturnType();
43
+ const typedef = this.ast.tsTypeToTypeDef(this.node, signatureReturnType);
44
+ if (typedef === undefined || !isTypeDefResolved(typedef)) {
45
+ this._returnTypeRef = this.ast.typeToStringType(signatureReturnType);
46
+ }
47
+ this.returnType = typedef;
48
+ }
49
+ getReferences() {
50
+ const references = [];
51
+ if (this._returnTypeRef &&
52
+ (this.returnType === undefined || !isTypeDefResolved(this.returnType))) {
53
+ references.push(this._returnTypeRef);
54
+ }
55
+ for (const argument of Object.values(this.arguments)) {
56
+ const reference = argument.getReference();
57
+ if (reference) {
58
+ references.push(reference);
59
+ }
60
+ }
61
+ return references;
62
+ }
63
+ propagateReferences(references) {
64
+ for (const argument of Object.values(this.arguments)) {
65
+ argument.propagateReferences(references);
66
+ }
67
+ if (!this._returnTypeRef) {
68
+ return;
69
+ }
70
+ if (this.returnType && isTypeDefResolved(this.returnType)) {
71
+ return;
72
+ }
73
+ const typeDef = references[this._returnTypeRef];
74
+ if (!typeDef) {
75
+ throw new IntrospectionError(`could not find type reference for ${this._returnTypeRef} at ${AST.getNodePosition(this.node)}.`);
76
+ }
77
+ this.returnType = resolveTypeDef(this.returnType, typeDef);
78
+ }
79
+ toJSON() {
80
+ return {
81
+ name: this.name,
82
+ description: this.description,
83
+ arguments: this.arguments,
84
+ returnType: this.returnType,
85
+ };
86
+ }
87
+ }
@@ -0,0 +1,12 @@
1
+ import ts from "typescript";
2
+ import { Location } from "../typescript_module/index.js";
3
+ /**
4
+ * Locatable is a base class that any Dagger object can extend from to
5
+ * provide a location method.
6
+ */
7
+ export declare class Locatable {
8
+ private readonly __node;
9
+ constructor(__node: ts.Node);
10
+ getLocation(): Location;
11
+ }
12
+ //# sourceMappingURL=locatable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locatable.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/locatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAO,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAE7D;;;GAGG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,EAAE,CAAC,IAAI;IAE5C,WAAW,IAAI,QAAQ;CAGxB"}
@@ -0,0 +1,14 @@
1
+ import { AST } from "../typescript_module/index.js";
2
+ /**
3
+ * Locatable is a base class that any Dagger object can extend from to
4
+ * provide a location method.
5
+ */
6
+ export class Locatable {
7
+ __node;
8
+ constructor(__node) {
9
+ this.__node = __node;
10
+ }
11
+ getLocation() {
12
+ return AST.getNodeLocation(this.__node);
13
+ }
14
+ }
@@ -1,6 +1,7 @@
1
1
  import Module from "node:module";
2
2
  import { AST } from "../typescript_module/index.js";
3
3
  import { DaggerEnumsBase } from "./enumBase.js";
4
+ import { DaggerInterfaces } from "./interface.js";
4
5
  import { DaggerObjectsBase } from "./objectBase.js";
5
6
  /**
6
7
  * DaggerModule represents a TypeScript module with a set of files
@@ -60,6 +61,18 @@ export declare class DaggerModule {
60
61
  * ```
61
62
  */
62
63
  enums: DaggerEnumsBase;
64
+ /**
65
+ * An interface is declared using the `interface` keyword.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * export interface Example {
70
+ * foo: (): string
71
+ * asyncFoo: (): Promise<string>
72
+ * }
73
+ * ```
74
+ */
75
+ interfaces: DaggerInterfaces;
63
76
  description: string | undefined;
64
77
  private references;
65
78
  constructor(name: string, userModule: Module[], ast: AST);
@@ -72,8 +85,9 @@ export declare class DaggerModule {
72
85
  * - classes
73
86
  * - enums
74
87
  * - scalars
88
+ * - interfaces
75
89
  *
76
- * If the reference is an object or a class, recursively find the references of the object.
90
+ * If the reference is an object, a class or an interface, recursively find the references of the object.
77
91
  *
78
92
  * *Note*: If a class is referenced but not exported and not decorated with `@object()`, we throw an error
79
93
  * because we aim to be explicit. (TomChv: Should we change this behaviour?)
@@ -105,6 +119,7 @@ export declare class DaggerModule {
105
119
  description: string | undefined;
106
120
  objects: DaggerObjectsBase;
107
121
  enums: DaggerEnumsBase;
122
+ interfaces: DaggerInterfaces;
108
123
  };
109
124
  }
110
125
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/module.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAKhC,OAAO,EAEL,GAAG,EAGJ,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAInD;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAoDd,IAAI,EAAE,MAAM;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IArDb;;;;;;;;;;;;;;;;;;;OAmBG;IACI,OAAO,EAAE,iBAAiB,CAAK;IAEtC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,EAAE,eAAe,CAAK;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAEtC,OAAO,CAAC,UAAU,CAAiB;gBAG1B,IAAI,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,GAAG;IAkClB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IAmHzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;IAsExB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB,MAAM;;;;;;CAQP"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/module.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAKhC,OAAO,EAEL,GAAG,EAGJ,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,EAAmB,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAInD;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAuEd,IAAI,EAAE,MAAM;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAxEb;;;;;;;;;;;;;;;;;;;OAmBG;IACI,OAAO,EAAE,iBAAiB,CAAK;IAEtC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,EAAE,eAAe,CAAK;IAElC;;;;;;;;;;OAUG;IACI,UAAU,EAAE,gBAAgB,CAAK;IAEjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAEtC,OAAO,CAAC,UAAU,CAKjB;gBAGQ,IAAI,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,GAAG;IAkClB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,iBAAiB;IAkIzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;IAsExB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB,MAAM;;;;;;;CASP"}
@@ -5,6 +5,7 @@ import { findModuleByExportedName, AST, CLIENT_GEN_FILE, } from "../typescript_m
5
5
  import { ENUM_DECORATOR, OBJECT_DECORATOR } from "./decorator.js";
6
6
  import { DaggerEnum } from "./enum.js";
7
7
  import { DaggerEnumClass } from "./enumClass.js";
8
+ import { DaggerInterface } from "./interface.js";
8
9
  import { DaggerObject } from "./object.js";
9
10
  import { DaggerTypeObject } from "./typeObject.js";
10
11
  /**
@@ -65,8 +66,25 @@ export class DaggerModule {
65
66
  * ```
66
67
  */
67
68
  enums = {};
69
+ /**
70
+ * An interface is declared using the `interface` keyword.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * export interface Example {
75
+ * foo: (): string
76
+ * asyncFoo: (): Promise<string>
77
+ * }
78
+ * ```
79
+ */
80
+ interfaces = {};
68
81
  description;
69
- references = {};
82
+ references = {
83
+ // Float is a special case, it's an alias of number but it serves to declare a float type
84
+ // in the Dagger API.
85
+ // So we auto register it because it will be detected as a referenced type by the introspector.
86
+ float: { kind: TypeDefKind.FloatKind },
87
+ };
70
88
  constructor(name, userModule, ast) {
71
89
  this.name = name;
72
90
  this.userModule = userModule;
@@ -99,8 +117,9 @@ export class DaggerModule {
99
117
  * - classes
100
118
  * - enums
101
119
  * - scalars
120
+ * - interfaces
102
121
  *
103
- * If the reference is an object or a class, recursively find the references of the object.
122
+ * If the reference is an object, a class or an interface, recursively find the references of the object.
104
123
  *
105
124
  * *Note*: If a class is referenced but not exported and not decorated with `@object()`, we throw an error
106
125
  * because we aim to be explicit. (TomChv: Should we change this behaviour?)
@@ -164,6 +183,17 @@ export class DaggerModule {
164
183
  // There should be no reference in enums.
165
184
  continue;
166
185
  }
186
+ const interfaceRef = this.ast.findResolvedNodeByName(reference, ts.SyntaxKind.InterfaceDeclaration);
187
+ if (interfaceRef) {
188
+ const daggerInterface = new DaggerInterface(interfaceRef.node, this.ast);
189
+ this.interfaces[daggerInterface.name] = daggerInterface;
190
+ this.references[daggerInterface.name] = {
191
+ kind: TypeDefKind.InterfaceKind,
192
+ name: daggerInterface.name,
193
+ };
194
+ this.resolveReferences(daggerInterface.getReferences());
195
+ continue;
196
+ }
167
197
  const typeAliasRef = this.ast.findResolvedNodeByName(reference, ts.SyntaxKind.TypeAliasDeclaration);
168
198
  if (typeAliasRef) {
169
199
  // The resolution is to big so we split it in a sub function.
@@ -248,6 +278,9 @@ export class DaggerModule {
248
278
  for (const object of Object.values(this.objects)) {
249
279
  object.propagateReferences(this.references);
250
280
  }
281
+ for (const interface_ of Object.values(this.interfaces)) {
282
+ interface_.propagateReferences(this.references);
283
+ }
251
284
  }
252
285
  /**
253
286
  * Get the top level comment of the file that contains the module entrypoint.
@@ -270,6 +303,7 @@ export class DaggerModule {
270
303
  description: this.description,
271
304
  objects: this.objects,
272
305
  enums: this.enums,
306
+ interfaces: this.interfaces,
273
307
  };
274
308
  }
275
309
  }
@@ -1,11 +1,25 @@
1
1
  import ts from "typescript";
2
- import { AST } from "../typescript_module/index.js";
2
+ import { AST, Location } from "../typescript_module/index.js";
3
3
  import { DaggerConstructor } from "./constructor.js";
4
4
  import { DaggerFunctions } from "./function.js";
5
+ import { Locatable } from "./locatable.js";
5
6
  import { DaggerObjectBase } from "./objectBase.js";
6
7
  import { DaggerProperties } from "./property.js";
7
8
  import { References } from "./reference.js";
8
- export declare class DaggerObject implements DaggerObjectBase {
9
+ /**
10
+ * Represents an object defined using the `class` keyword.
11
+ *
12
+ * The class may contains methods and fields, that may or may not be exposed to the Dagger API.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * type MyObject = {
17
+ * name: string
18
+ * age: number
19
+ * }
20
+ * ```
21
+ */
22
+ export declare class DaggerObject extends Locatable implements DaggerObjectBase {
9
23
  private readonly node;
10
24
  private readonly ast;
11
25
  name: string;
@@ -16,6 +30,7 @@ export declare class DaggerObject implements DaggerObjectBase {
16
30
  private symbol;
17
31
  kind(): "class" | "object";
18
32
  constructor(node: ts.ClassDeclaration, ast: AST);
33
+ getLocation(): Location;
19
34
  getReferences(): string[];
20
35
  propagateReferences(references: References): void;
21
36
  toJSON(): {
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAkB,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,qBAAa,YAAa,YAAW,gBAAgB;IAcjD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAdf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAY;IACvD,OAAO,EAAE,eAAe,CAAK;IAC7B,UAAU,EAAE,gBAAgB,CAAK;IAExC,OAAO,CAAC,MAAM,CAAW;IAEzB,IAAI,IAAI,OAAO,GAAG,QAAQ;gBAKP,IAAI,EAAE,EAAE,CAAC,gBAAgB,EACzB,GAAG,EAAE,GAAG;IAqDpB,aAAa,IAAI,MAAM,EAAE;IAqBzB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAcjD,MAAM;;;;;;;CASd"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAkB,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,SAAU,YAAW,gBAAgB;IAcnE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAdf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAY;IACvD,OAAO,EAAE,eAAe,CAAK;IAC7B,UAAU,EAAE,gBAAgB,CAAK;IAExC,OAAO,CAAC,MAAM,CAAW;IAEzB,IAAI,IAAI,OAAO,GAAG,QAAQ;gBAKP,IAAI,EAAE,EAAE,CAAC,gBAAgB,EACzB,GAAG,EAAE,GAAG;IAuDpB,WAAW,IAAI,QAAQ;IAIvB,aAAa,IAAI,MAAM,EAAE;IAqBzB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAcjD,MAAM;;;;;;;CASd"}
@@ -4,8 +4,22 @@ import { AST } from "../typescript_module/index.js";
4
4
  import { DaggerConstructor } from "./constructor.js";
5
5
  import { FUNCTION_DECORATOR, OBJECT_DECORATOR } from "./decorator.js";
6
6
  import { DaggerFunction } from "./function.js";
7
+ import { Locatable } from "./locatable.js";
7
8
  import { DaggerProperty } from "./property.js";
8
- export class DaggerObject {
9
+ /**
10
+ * Represents an object defined using the `class` keyword.
11
+ *
12
+ * The class may contains methods and fields, that may or may not be exposed to the Dagger API.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * type MyObject = {
17
+ * name: string
18
+ * age: number
19
+ * }
20
+ * ```
21
+ */
22
+ export class DaggerObject extends Locatable {
9
23
  node;
10
24
  ast;
11
25
  name;
@@ -18,6 +32,7 @@ export class DaggerObject {
18
32
  return "class";
19
33
  }
20
34
  constructor(node, ast) {
35
+ super(node);
21
36
  this.node = node;
22
37
  this.ast = ast;
23
38
  if (!this.node.name) {
@@ -52,6 +67,9 @@ export class DaggerObject {
52
67
  }
53
68
  }
54
69
  }
70
+ getLocation() {
71
+ return AST.getNodeLocation(this.node);
72
+ }
55
73
  getReferences() {
56
74
  const references = [];
57
75
  if (this._constructor) {
@@ -2,8 +2,9 @@ import { TypeDefKind } from "../../../api/client.gen.js";
2
2
  import { TypeDef } from "../typedef.js";
3
3
  import { DaggerConstructor } from "./constructor.js";
4
4
  import { DaggerFunctions } from "./function.js";
5
+ import { Locatable } from "./locatable.js";
5
6
  import { References } from "./reference.js";
6
- export interface DaggerObjectPropertyBase {
7
+ export interface DaggerObjectPropertyBase extends Locatable {
7
8
  name: string;
8
9
  description: string;
9
10
  alias?: string;
@@ -14,7 +15,7 @@ export interface DaggerObjectPropertyBase {
14
15
  export type DaggerObjectPropertiesBase = {
15
16
  [name: string]: DaggerObjectPropertyBase;
16
17
  };
17
- export interface DaggerObjectBase {
18
+ export interface DaggerObjectBase extends Locatable {
18
19
  name: string;
19
20
  description: string;
20
21
  _constructor: DaggerConstructor | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"objectBase.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/objectBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAE3B,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAA;CACzC,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC3C,OAAO,EAAE,eAAe,CAAA;IACxB,UAAU,EAAE,0BAA0B,CAAA;IAEtC,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAA;IAE1B,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"objectBase.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/objectBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,wBAAyB,SAAQ,SAAS;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAE3B,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAA;CACzC,CAAA;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC3C,OAAO,EAAE,eAAe,CAAA;IACxB,UAAU,EAAE,0BAA0B,CAAA;IAEtC,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAA;IAE1B,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAA"}
@@ -2,12 +2,13 @@ import ts from "typescript";
2
2
  import { TypeDefKind } from "../../../api/client.gen.js";
3
3
  import { TypeDef } from "../typedef.js";
4
4
  import { AST } from "../typescript_module/index.js";
5
+ import { Locatable } from "./locatable.js";
5
6
  import { DaggerObjectPropertyBase } from "./objectBase.js";
6
7
  import { References } from "./reference.js";
7
8
  export type DaggerProperties = {
8
9
  [name: string]: DaggerProperty;
9
10
  };
10
- export declare class DaggerProperty implements DaggerObjectPropertyBase {
11
+ export declare class DaggerProperty extends Locatable implements DaggerObjectPropertyBase {
11
12
  private readonly node;
12
13
  private readonly ast;
13
14
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,GAAG,EAGJ,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAAE,CAAA;AAEjE,qBAAa,cAAe,YAAW,wBAAwB;IAW3D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAEzB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBAGf,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,GAAG,EAAE,GAAG;IAmB3B,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,OAAO;IAWR,YAAY,IAAI,MAAM,GAAG,SAAS;IAWlC,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAmBjD,MAAM;;;;;;;CASd"}
1
+ {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,GAAG,EAGJ,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAAE,CAAA;AAEjE,qBAAa,cACX,SAAQ,SACR,YAAW,wBAAwB;IAYjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAEzB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBAGf,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,GAAG,EAAE,GAAG;IAqB3B,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,OAAO;IAWR,YAAY,IAAI,MAAM,GAAG,SAAS;IAWlC,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAmBjD,MAAM;;;;;;;CASd"}
@@ -1,7 +1,8 @@
1
1
  import { IntrospectionError } from "../../../common/errors/index.js";
2
2
  import { AST, isTypeDefResolved, resolveTypeDef, } from "../typescript_module/index.js";
3
3
  import { FIELD_DECORATOR, FUNCTION_DECORATOR } from "./decorator.js";
4
- export class DaggerProperty {
4
+ import { Locatable } from "./locatable.js";
5
+ export class DaggerProperty extends Locatable {
5
6
  node;
6
7
  ast;
7
8
  name;
@@ -12,6 +13,7 @@ export class DaggerProperty {
12
13
  _typeRef;
13
14
  type;
14
15
  constructor(node, ast) {
16
+ super(node);
15
17
  this.node = node;
16
18
  this.ast = ast;
17
19
  if (!this.node.name) {
@@ -3,7 +3,7 @@ import { TypeDef } from "../typedef.js";
3
3
  export type References = {
4
4
  [name: string]: TypeDef<TypeDefKind>;
5
5
  };
6
- export type ReferencableType = TypeDef<TypeDefKind.ObjectKind> | TypeDef<TypeDefKind.EnumKind> | TypeDef<TypeDefKind.ScalarKind>;
6
+ export type ReferencableType = TypeDef<TypeDefKind.ObjectKind> | TypeDef<TypeDefKind.EnumKind> | TypeDef<TypeDefKind.FloatKind> | TypeDef<TypeDefKind.ScalarKind> | TypeDef<TypeDefKind.InterfaceKind>;
7
7
  export declare function isKindArray(type: TypeDef<TypeDefKind>): type is TypeDef<TypeDefKind.ListKind>;
8
8
  export declare function isKindObject(type: TypeDef<TypeDefKind>): type is TypeDef<TypeDefKind.ObjectKind>;
9
9
  export declare function isKindEnum(type: TypeDef<TypeDefKind>): type is TypeDef<TypeDefKind.EnumKind>;
@@ -1 +1 @@
1
- {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,gBAAgB,GACxB,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAC/B,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAC7B,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;AAEnC,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAEzC;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAEzC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAazE;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,CAMtB"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,gBAAgB,GACxB,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAC/B,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAC7B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,GAC9B,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAC/B,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;AAEtC,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAEzC;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAEzC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAazE;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,CAMtB"}
@@ -1,9 +1,30 @@
1
1
  import ts from "typescript";
2
- import { AST } from "../typescript_module/index.js";
2
+ import { AST, Location } from "../typescript_module/index.js";
3
+ import { Locatable } from "./locatable.js";
3
4
  import { DaggerObjectBase } from "./objectBase.js";
4
5
  import { References } from "./reference.js";
5
6
  import { DaggerObjectTypeProperties } from "./typeObjectProperty.js";
6
- export declare class DaggerTypeObject implements DaggerObjectBase {
7
+ /**
8
+ * Represents an object defined using the `type` keyword.
9
+ *
10
+ * Type object can only contains fields, no methods are allowed.
11
+ * All fields are public and exposed to the Dagger API.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * @object()
16
+ * export class MyObject {
17
+ * @func()
18
+ * public name: string
19
+ *
20
+ * @func()
21
+ * async getName(): Promise<string> {
22
+ * return this.name
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export declare class DaggerTypeObject extends Locatable implements DaggerObjectBase {
7
28
  private readonly node;
8
29
  private readonly ast;
9
30
  name: string;
@@ -14,6 +35,7 @@ export declare class DaggerTypeObject implements DaggerObjectBase {
14
35
  private symbol;
15
36
  kind(): "class" | "object";
16
37
  constructor(node: ts.TypeAliasDeclaration, ast: AST);
38
+ getLocation(): Location;
17
39
  getReferences(): string[];
18
40
  propagateReferences(references: References): void;
19
41
  toJSON(): {
@@ -1 +1 @@
1
- {"version":3,"file":"typeObject.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/typeObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EACL,0BAA0B,EAE3B,MAAM,yBAAyB,CAAA;AAEhC,qBAAa,gBAAiB,YAAW,gBAAgB;IAcrD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAdf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,YAAY;IACxB,OAAO,KAAK;IACZ,UAAU,EAAE,0BAA0B,CAAK;IAElD,OAAO,CAAC,MAAM,CAAW;IAEzB,IAAI,IAAI,OAAO,GAAG,QAAQ;gBAKP,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,GAAG,EAAE,GAAG;IA2BpB,aAAa,IAAI,MAAM,EAAE;IAazB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAMxD,MAAM;;;;;CAOP"}
1
+ {"version":3,"file":"typeObject.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/typeObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EACL,0BAA0B,EAE3B,MAAM,yBAAyB,CAAA;AAEhC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAiB,SAAQ,SAAU,YAAW,gBAAgB;IAcvE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAdf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,YAAY;IACxB,OAAO,KAAK;IACZ,UAAU,EAAE,0BAA0B,CAAK;IAElD,OAAO,CAAC,MAAM,CAAW;IAEzB,IAAI,IAAI,OAAO,GAAG,QAAQ;gBAKP,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,GAAG,EAAE,GAAG;IA6BpB,WAAW,IAAI,QAAQ;IAIvB,aAAa,IAAI,MAAM,EAAE;IAazB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAMxD,MAAM;;;;;CAOP"}
@@ -1,8 +1,29 @@
1
1
  import ts from "typescript";
2
2
  import { IntrospectionError } from "../../../common/errors/index.js";
3
3
  import { AST } from "../typescript_module/index.js";
4
+ import { Locatable } from "./locatable.js";
4
5
  import { DaggerObjectTypeProperty, } from "./typeObjectProperty.js";
5
- export class DaggerTypeObject {
6
+ /**
7
+ * Represents an object defined using the `type` keyword.
8
+ *
9
+ * Type object can only contains fields, no methods are allowed.
10
+ * All fields are public and exposed to the Dagger API.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * @object()
15
+ * export class MyObject {
16
+ * @func()
17
+ * public name: string
18
+ *
19
+ * @func()
20
+ * async getName(): Promise<string> {
21
+ * return this.name
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ export class DaggerTypeObject extends Locatable {
6
27
  node;
7
28
  ast;
8
29
  name;
@@ -15,6 +36,7 @@ export class DaggerTypeObject {
15
36
  return "object";
16
37
  }
17
38
  constructor(node, ast) {
39
+ super(node);
18
40
  this.node = node;
19
41
  this.ast = ast;
20
42
  if (!this.node.name) {
@@ -33,6 +55,9 @@ export class DaggerTypeObject {
33
55
  }
34
56
  }
35
57
  }
58
+ getLocation() {
59
+ return AST.getNodeLocation(this.node);
60
+ }
36
61
  getReferences() {
37
62
  const references = [];
38
63
  for (const property of Object.values(this.properties)) {
@@ -2,12 +2,13 @@ import ts from "typescript";
2
2
  import { TypeDefKind } from "../../../api/client.gen.js";
3
3
  import { TypeDef } from "../typedef.js";
4
4
  import { AST } from "../typescript_module/index.js";
5
+ import { Locatable } from "./locatable.js";
5
6
  import { DaggerObjectPropertyBase } from "./objectBase.js";
6
7
  import { References } from "./reference.js";
7
8
  export type DaggerObjectTypeProperties = {
8
9
  [name: string]: DaggerObjectTypeProperty;
9
10
  };
10
- export declare class DaggerObjectTypeProperty implements DaggerObjectPropertyBase {
11
+ export declare class DaggerObjectTypeProperty extends Locatable implements DaggerObjectPropertyBase {
11
12
  private readonly node;
12
13
  private readonly symbol;
13
14
  private readonly ast;
@@ -1 +1 @@
1
- {"version":3,"file":"typeObjectProperty.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/typeObjectProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,GAAG,EAGJ,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,MAAM,0BAA0B,GAAG;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAA;CACzC,CAAA;AAED,qBAAa,wBAAyB,YAAW,wBAAwB;IAUrE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,YAAY;IACjB,SAAS,EAAE,OAAO,CAAO;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBAGf,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,GAAG,EAAE,GAAG;IAepB,YAAY,IAAI,MAAM,GAAG,SAAS;IAWlC,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAmBjD,MAAM;;;;;;;CASd"}
1
+ {"version":3,"file":"typeObjectProperty.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/dagger_module/typeObjectProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,GAAG,EAGJ,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,MAAM,0BAA0B,GAAG;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAA;CACzC,CAAA;AAED,qBAAa,wBACX,SAAQ,SACR,YAAW,wBAAwB;IAWjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,YAAY;IACjB,SAAS,EAAE,OAAO,CAAO;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBAGf,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAC7B,MAAM,EAAE,EAAE,CAAC,MAAM,EACjB,GAAG,EAAE,GAAG;IAiBpB,YAAY,IAAI,MAAM,GAAG,SAAS;IAWlC,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAmBjD,MAAM;;;;;;;CASd"}
@@ -1,6 +1,7 @@
1
1
  import { IntrospectionError } from "../../../common/errors/index.js";
2
2
  import { isTypeDefResolved, resolveTypeDef, } from "../typescript_module/index.js";
3
- export class DaggerObjectTypeProperty {
3
+ import { Locatable } from "./locatable.js";
4
+ export class DaggerObjectTypeProperty extends Locatable {
4
5
  node;
5
6
  symbol;
6
7
  ast;
@@ -11,6 +12,7 @@ export class DaggerObjectTypeProperty {
11
12
  _typeRef;
12
13
  type;
13
14
  constructor(node, symbol, ast) {
15
+ super(node);
14
16
  this.node = node;
15
17
  this.symbol = symbol;
16
18
  this.ast = ast;
@@ -19,6 +19,13 @@ export type EnumTypeDef = BaseTypeDef & {
19
19
  kind: TypeDefKind.EnumKind;
20
20
  name: string;
21
21
  };
22
+ /**
23
+ * Extends the base type def if it's an interface to add its name
24
+ */
25
+ export type InterfaceTypeDef = BaseTypeDef & {
26
+ kind: TypeDefKind.InterfaceKind;
27
+ name: string;
28
+ };
22
29
  /**
23
30
  * Extends the base typedef if it's a scalar to add its name and real type.
24
31
  */
@@ -41,5 +48,5 @@ export type ListTypeDef = BaseTypeDef & {
41
48
  * If it's type of kind object, it transforms the BaseTypeDef into an ObjectTypeDef.
42
49
  * If it's a type of kind list, it transforms the BaseTypeDef into a ListTypeDef.
43
50
  */
44
- export type TypeDef<T extends BaseTypeDef["kind"]> = T extends TypeDefKind.ScalarKind ? ScalarTypeDef : T extends TypeDefKind.ObjectKind ? ObjectTypeDef : T extends TypeDefKind.ListKind ? ListTypeDef : T extends TypeDefKind.EnumKind ? EnumTypeDef : BaseTypeDef;
51
+ export type TypeDef<T extends BaseTypeDef["kind"]> = T extends TypeDefKind.ScalarKind ? ScalarTypeDef : T extends TypeDefKind.ObjectKind ? ObjectTypeDef : T extends TypeDefKind.ListKind ? ListTypeDef : T extends TypeDefKind.EnumKind ? EnumTypeDef : T extends TypeDefKind.InterfaceKind ? InterfaceTypeDef : BaseTypeDef;
45
52
  //# sourceMappingURL=typedef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typedef.d.ts","sourceRoot":"","sources":["../../../../src/module/introspector/typedef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,WAAW,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAC9B,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,IAC/C,CAAC,SAAS,WAAW,CAAC,UAAU,GAC5B,aAAa,GACb,CAAC,SAAS,WAAW,CAAC,UAAU,GAC9B,aAAa,GACb,CAAC,SAAS,WAAW,CAAC,QAAQ,GAC5B,WAAW,GACX,CAAC,SAAS,WAAW,CAAC,QAAQ,GAC5B,WAAW,GACX,WAAW,CAAA"}
1
+ {"version":3,"file":"typedef.d.ts","sourceRoot":"","sources":["../../../../src/module/introspector/typedef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,WAAW,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,IAAI,EAAE,WAAW,CAAC,aAAa,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAC9B,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,IAC/C,CAAC,SAAS,WAAW,CAAC,UAAU,GAC5B,aAAa,GACb,CAAC,SAAS,WAAW,CAAC,UAAU,GAC9B,aAAa,GACb,CAAC,SAAS,WAAW,CAAC,QAAQ,GAC5B,WAAW,GACX,CAAC,SAAS,WAAW,CAAC,QAAQ,GAC5B,WAAW,GACX,CAAC,SAAS,WAAW,CAAC,aAAa,GACjC,gBAAgB,GAChB,WAAW,CAAA"}
@@ -4,6 +4,7 @@ import { TypeDefKind } from "../../../api/client.gen.js";
4
4
  import { DaggerDecorators } from "../dagger_module/index.js";
5
5
  import { TypeDef } from "../typedef.js";
6
6
  import { DeclarationsMap } from "./declarations.js";
7
+ import { Location } from "./location.js";
7
8
  export declare const CLIENT_GEN_FILE = "client.gen.ts";
8
9
  export type ResolvedNodeWithSymbol<T extends keyof DeclarationsMap> = {
9
10
  type: T;
@@ -25,6 +26,19 @@ export declare class AST {
25
26
  kind: T): ResolvedNodeWithSymbol<T> | undefined;
26
27
  getTypeFromTypeAlias(typeAlias: ts.TypeAliasDeclaration): ts.Type;
27
28
  static getNodePosition(node: ts.Node): string;
29
+ /**
30
+ * Returns the location of the node in the source file.
31
+ *
32
+ * The filepath is relative to the module root directory.
33
+ * Ideally, we use the identifier of the node accessible by node.name but fallback
34
+ * to node itself if it's not available.
35
+ *
36
+ * The TypeScript SDK based it's line and column on index 0 but editors starts
37
+ * at 1 so we always add 1 to fix that difference.
38
+ */
39
+ static getNodeLocation(node: ts.Node & {
40
+ name?: ts.Identifier;
41
+ }): Location;
28
42
  getDocFromSymbol(symbol: ts.Symbol): string;
29
43
  getSymbolOrThrow(node: ts.Node): ts.Symbol;
30
44
  getSignatureFromFunctionOrThrow(node: ts.SignatureDeclaration): ts.Signature;
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/typescript_module/ast.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAA;AAGpE,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAE9C,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,eAAe,IAAI;IACpE,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAA;IACjB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAA;CACpB,CAAA;AAED,qBAAa,GAAG;aAMI,KAAK,EAAE,MAAM,EAAE;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IANtB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAA;IAE9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;gBAG3B,KAAK,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAAE;IAahC,sBAAsB,CAAC,CAAC,SAAS,MAAM,eAAe,EAC3D,IAAI,EAAE,MAAM;IAEZ;;;OAGG;IACH,IAAI,EAAE,CAAC,GACN,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS;IA6CjC,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,IAAI;WAM1D,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM;IAW7C,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM;IAI3C,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM;IAW1C,+BAA+B,CACpC,IAAI,EAAE,EAAE,CAAC,oBAAoB,GAC5B,EAAE,CAAC,SAAS;IAWR,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS;IAI/C,mBAAmB,CACxB,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,eAAe,EAAE,gBAAgB,GAChC,OAAO;IAsBH,oBAAoB,CAAC,CAAC,EAC3B,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,eAAe,EAAE,gBAAgB,EACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EACzB,QAAQ,SAAI,GACX,CAAC,GAAG,SAAS;IA4BT,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYjD,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY/C,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY/C,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM;IAMvC,eAAe,CACpB,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,EAAE,EAAE,CAAC,IAAI,GACZ,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS;IAoDnC,OAAO,CAAC,yCAAyC;IAoB1C,4BAA4B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG;CAkDpE"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/typescript_module/ast.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAE9C,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,eAAe,IAAI;IACpE,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAA;IACjB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAA;CACpB,CAAA;AAED,qBAAa,GAAG;aAMI,KAAK,EAAE,MAAM,EAAE;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IANtB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAA;IAE9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;gBAG3B,KAAK,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAAE;IAahC,sBAAsB,CAAC,CAAC,SAAS,MAAM,eAAe,EAC3D,IAAI,EAAE,MAAM;IAEZ;;;OAGG;IACH,IAAI,EAAE,CAAC,GACN,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS;IA6CjC,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,IAAI;WAM1D,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM;IAWpD;;;;;;;;;OASG;WACW,eAAe,CAC3B,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG;QAAE,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAA;KAAE,GACvC,QAAQ;IAyBJ,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM;IAI3C,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM;IAW1C,+BAA+B,CACpC,IAAI,EAAE,EAAE,CAAC,oBAAoB,GAC5B,EAAE,CAAC,SAAS;IAWR,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS;IAI/C,mBAAmB,CACxB,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,eAAe,EAAE,gBAAgB,GAChC,OAAO;IAsBH,oBAAoB,CAAC,CAAC,EAC3B,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,eAAe,EAAE,gBAAgB,EACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EACzB,QAAQ,SAAI,GACX,CAAC,GAAG,SAAS;IA4BT,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYjD,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY/C,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY/C,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM;IAMvC,eAAe,CACpB,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,EAAE,EAAE,CAAC,IAAI,GACZ,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS;IA4DnC,OAAO,CAAC,yCAAyC;IAoB1C,4BAA4B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG;CAkDpE"}