@dagger.io/dagger 0.0.1-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 (213) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +88 -0
  3. package/dist/src/api/client.gen.d.ts +6123 -0
  4. package/dist/src/api/client.gen.d.ts.map +1 -0
  5. package/dist/src/api/client.gen.js +8494 -0
  6. package/dist/src/common/context.d.ts +12 -0
  7. package/dist/src/common/context.d.ts.map +1 -0
  8. package/dist/src/common/context.js +22 -0
  9. package/dist/src/common/errors/DaggerSDKError.d.ts +32 -0
  10. package/dist/src/common/errors/DaggerSDKError.d.ts.map +1 -0
  11. package/dist/src/common/errors/DaggerSDKError.js +26 -0
  12. package/dist/src/common/errors/DockerImageRefValidationError.d.ts +22 -0
  13. package/dist/src/common/errors/DockerImageRefValidationError.d.ts.map +1 -0
  14. package/dist/src/common/errors/DockerImageRefValidationError.js +21 -0
  15. package/dist/src/common/errors/EngineSessionConnectParamsParseError.d.ts +21 -0
  16. package/dist/src/common/errors/EngineSessionConnectParamsParseError.d.ts.map +1 -0
  17. package/dist/src/common/errors/EngineSessionConnectParamsParseError.js +20 -0
  18. package/dist/src/common/errors/EngineSessionConnectionTimeoutError.d.ts +21 -0
  19. package/dist/src/common/errors/EngineSessionConnectionTimeoutError.d.ts.map +1 -0
  20. package/dist/src/common/errors/EngineSessionConnectionTimeoutError.js +20 -0
  21. package/dist/src/common/errors/EngineSessionErrorOptions.d.ts +16 -0
  22. package/dist/src/common/errors/EngineSessionErrorOptions.d.ts.map +1 -0
  23. package/dist/src/common/errors/EngineSessionErrorOptions.js +16 -0
  24. package/dist/src/common/errors/ExecError.d.ts +42 -0
  25. package/dist/src/common/errors/ExecError.d.ts.map +1 -0
  26. package/dist/src/common/errors/ExecError.js +40 -0
  27. package/dist/src/common/errors/FunctionNotFound.d.ts +7 -0
  28. package/dist/src/common/errors/FunctionNotFound.d.ts.map +1 -0
  29. package/dist/src/common/errors/FunctionNotFound.js +9 -0
  30. package/dist/src/common/errors/GraphQLRequestError.d.ts +31 -0
  31. package/dist/src/common/errors/GraphQLRequestError.d.ts.map +1 -0
  32. package/dist/src/common/errors/GraphQLRequestError.js +30 -0
  33. package/dist/src/common/errors/InitEngineSessionBinaryError.d.ts +13 -0
  34. package/dist/src/common/errors/InitEngineSessionBinaryError.d.ts.map +1 -0
  35. package/dist/src/common/errors/InitEngineSessionBinaryError.js +15 -0
  36. package/dist/src/common/errors/IntrospectionError.d.ts +7 -0
  37. package/dist/src/common/errors/IntrospectionError.d.ts.map +1 -0
  38. package/dist/src/common/errors/IntrospectionError.js +9 -0
  39. package/dist/src/common/errors/NotAwaitedRequestError.d.ts +13 -0
  40. package/dist/src/common/errors/NotAwaitedRequestError.d.ts.map +1 -0
  41. package/dist/src/common/errors/NotAwaitedRequestError.js +15 -0
  42. package/dist/src/common/errors/TooManyNestedObjectsError.d.ts +21 -0
  43. package/dist/src/common/errors/TooManyNestedObjectsError.d.ts.map +1 -0
  44. package/dist/src/common/errors/TooManyNestedObjectsError.js +20 -0
  45. package/dist/src/common/errors/UnknownDaggerError.d.ts +13 -0
  46. package/dist/src/common/errors/UnknownDaggerError.d.ts.map +1 -0
  47. package/dist/src/common/errors/UnknownDaggerError.js +15 -0
  48. package/dist/src/common/errors/errors-codes.d.ts +55 -0
  49. package/dist/src/common/errors/errors-codes.d.ts.map +1 -0
  50. package/dist/src/common/errors/errors-codes.js +47 -0
  51. package/dist/src/common/errors/index.d.ts +15 -0
  52. package/dist/src/common/errors/index.d.ts.map +1 -0
  53. package/dist/src/common/errors/index.js +14 -0
  54. package/dist/src/common/graphql/client.d.ts +3 -0
  55. package/dist/src/common/graphql/client.d.ts.map +1 -0
  56. package/dist/src/common/graphql/client.js +58 -0
  57. package/dist/src/common/graphql/compute_query.d.ts +37 -0
  58. package/dist/src/common/graphql/compute_query.d.ts.map +1 -0
  59. package/dist/src/common/graphql/compute_query.js +171 -0
  60. package/dist/src/common/graphql/connect.d.ts +8 -0
  61. package/dist/src/common/graphql/connect.d.ts.map +1 -0
  62. package/dist/src/common/graphql/connect.js +22 -0
  63. package/dist/src/common/graphql/connection.d.ts +14 -0
  64. package/dist/src/common/graphql/connection.d.ts.map +1 -0
  65. package/dist/src/common/graphql/connection.js +23 -0
  66. package/dist/src/common/utils.d.ts +70 -0
  67. package/dist/src/common/utils.d.ts.map +1 -0
  68. package/dist/src/common/utils.js +6 -0
  69. package/dist/src/connect.d.ts +28 -0
  70. package/dist/src/connect.d.ts.map +1 -0
  71. package/dist/src/connect.js +64 -0
  72. package/dist/src/connectOpts.d.ts +24 -0
  73. package/dist/src/connectOpts.d.ts.map +1 -0
  74. package/dist/src/connectOpts.js +1 -0
  75. package/dist/src/index.d.ts +11 -0
  76. package/dist/src/index.d.ts.map +1 -0
  77. package/dist/src/index.js +13 -0
  78. package/dist/src/module/decorators.d.ts +52 -0
  79. package/dist/src/module/decorators.d.ts.map +1 -0
  80. package/dist/src/module/decorators.js +55 -0
  81. package/dist/src/module/entrypoint/context.d.ts +8 -0
  82. package/dist/src/module/entrypoint/context.d.ts.map +1 -0
  83. package/dist/src/module/entrypoint/context.js +1 -0
  84. package/dist/src/module/entrypoint/entrypoint.d.ts +2 -0
  85. package/dist/src/module/entrypoint/entrypoint.d.ts.map +1 -0
  86. package/dist/src/module/entrypoint/entrypoint.js +92 -0
  87. package/dist/src/module/entrypoint/introspection_entrypoint.d.ts +2 -0
  88. package/dist/src/module/entrypoint/introspection_entrypoint.d.ts.map +1 -0
  89. package/dist/src/module/entrypoint/introspection_entrypoint.js +52 -0
  90. package/dist/src/module/entrypoint/invoke.d.ts +14 -0
  91. package/dist/src/module/entrypoint/invoke.d.ts.map +1 -0
  92. package/dist/src/module/entrypoint/invoke.js +66 -0
  93. package/dist/src/module/entrypoint/load.d.ts +53 -0
  94. package/dist/src/module/entrypoint/load.d.ts.map +1 -0
  95. package/dist/src/module/entrypoint/load.js +237 -0
  96. package/dist/src/module/entrypoint/register.d.ts +33 -0
  97. package/dist/src/module/entrypoint/register.d.ts.map +1 -0
  98. package/dist/src/module/entrypoint/register.js +227 -0
  99. package/dist/src/module/executor.d.ts +28 -0
  100. package/dist/src/module/executor.d.ts.map +1 -0
  101. package/dist/src/module/executor.js +171 -0
  102. package/dist/src/module/introspector/case_convertor.d.ts +2 -0
  103. package/dist/src/module/introspector/case_convertor.d.ts.map +1 -0
  104. package/dist/src/module/introspector/case_convertor.js +15 -0
  105. package/dist/src/module/introspector/dagger_module/argument.d.ts +50 -0
  106. package/dist/src/module/introspector/dagger_module/argument.d.ts.map +1 -0
  107. package/dist/src/module/introspector/dagger_module/argument.js +118 -0
  108. package/dist/src/module/introspector/dagger_module/constructor.d.ts +18 -0
  109. package/dist/src/module/introspector/dagger_module/constructor.d.ts.map +1 -0
  110. package/dist/src/module/introspector/dagger_module/constructor.js +38 -0
  111. package/dist/src/module/introspector/dagger_module/decorator.d.ts +8 -0
  112. package/dist/src/module/introspector/dagger_module/decorator.d.ts.map +1 -0
  113. package/dist/src/module/introspector/dagger_module/decorator.js +7 -0
  114. package/dist/src/module/introspector/dagger_module/enum.d.ts +41 -0
  115. package/dist/src/module/introspector/dagger_module/enum.d.ts.map +1 -0
  116. package/dist/src/module/introspector/dagger_module/enum.js +63 -0
  117. package/dist/src/module/introspector/dagger_module/enumBase.d.ts +19 -0
  118. package/dist/src/module/introspector/dagger_module/enumBase.d.ts.map +1 -0
  119. package/dist/src/module/introspector/dagger_module/enumBase.js +1 -0
  120. package/dist/src/module/introspector/dagger_module/enumClass.d.ts +41 -0
  121. package/dist/src/module/introspector/dagger_module/enumClass.d.ts.map +1 -0
  122. package/dist/src/module/introspector/dagger_module/enumClass.js +69 -0
  123. package/dist/src/module/introspector/dagger_module/function.d.ts +39 -0
  124. package/dist/src/module/introspector/dagger_module/function.d.ts.map +1 -0
  125. package/dist/src/module/introspector/dagger_module/function.js +102 -0
  126. package/dist/src/module/introspector/dagger_module/index.d.ts +15 -0
  127. package/dist/src/module/introspector/dagger_module/index.d.ts.map +1 -0
  128. package/dist/src/module/introspector/dagger_module/index.js +14 -0
  129. package/dist/src/module/introspector/dagger_module/interface.d.ts +25 -0
  130. package/dist/src/module/introspector/dagger_module/interface.d.ts.map +1 -0
  131. package/dist/src/module/introspector/dagger_module/interface.js +56 -0
  132. package/dist/src/module/introspector/dagger_module/interfaceFunction.d.ts +35 -0
  133. package/dist/src/module/introspector/dagger_module/interfaceFunction.d.ts.map +1 -0
  134. package/dist/src/module/introspector/dagger_module/interfaceFunction.js +92 -0
  135. package/dist/src/module/introspector/dagger_module/locatable.d.ts +12 -0
  136. package/dist/src/module/introspector/dagger_module/locatable.d.ts.map +1 -0
  137. package/dist/src/module/introspector/dagger_module/locatable.js +14 -0
  138. package/dist/src/module/introspector/dagger_module/module.d.ts +118 -0
  139. package/dist/src/module/introspector/dagger_module/module.d.ts.map +1 -0
  140. package/dist/src/module/introspector/dagger_module/module.js +316 -0
  141. package/dist/src/module/introspector/dagger_module/object.d.ts +46 -0
  142. package/dist/src/module/introspector/dagger_module/object.d.ts.map +1 -0
  143. package/dist/src/module/introspector/dagger_module/object.js +113 -0
  144. package/dist/src/module/introspector/dagger_module/objectBase.d.ts +32 -0
  145. package/dist/src/module/introspector/dagger_module/objectBase.d.ts.map +1 -0
  146. package/dist/src/module/introspector/dagger_module/objectBase.js +1 -0
  147. package/dist/src/module/introspector/dagger_module/property.d.ts +36 -0
  148. package/dist/src/module/introspector/dagger_module/property.d.ts.map +1 -0
  149. package/dist/src/module/introspector/dagger_module/property.js +82 -0
  150. package/dist/src/module/introspector/dagger_module/reference.d.ts +13 -0
  151. package/dist/src/module/introspector/dagger_module/reference.d.ts.map +1 -0
  152. package/dist/src/module/introspector/dagger_module/reference.js +33 -0
  153. package/dist/src/module/introspector/dagger_module/typeObject.d.ts +49 -0
  154. package/dist/src/module/introspector/dagger_module/typeObject.d.ts.map +1 -0
  155. package/dist/src/module/introspector/dagger_module/typeObject.js +87 -0
  156. package/dist/src/module/introspector/dagger_module/typeObjectProperty.d.ts +34 -0
  157. package/dist/src/module/introspector/dagger_module/typeObjectProperty.d.ts.map +1 -0
  158. package/dist/src/module/introspector/dagger_module/typeObjectProperty.js +60 -0
  159. package/dist/src/module/introspector/index.d.ts +3 -0
  160. package/dist/src/module/introspector/index.d.ts.map +1 -0
  161. package/dist/src/module/introspector/index.js +19 -0
  162. package/dist/src/module/introspector/typedef.d.ts +52 -0
  163. package/dist/src/module/introspector/typedef.d.ts.map +1 -0
  164. package/dist/src/module/introspector/typedef.js +1 -0
  165. package/dist/src/module/introspector/typescript_module/ast.d.ts +64 -0
  166. package/dist/src/module/introspector/typescript_module/ast.d.ts.map +1 -0
  167. package/dist/src/module/introspector/typescript_module/ast.js +476 -0
  168. package/dist/src/module/introspector/typescript_module/declarations.d.ts +15 -0
  169. package/dist/src/module/introspector/typescript_module/declarations.d.ts.map +1 -0
  170. package/dist/src/module/introspector/typescript_module/declarations.js +10 -0
  171. package/dist/src/module/introspector/typescript_module/index.d.ts +4 -0
  172. package/dist/src/module/introspector/typescript_module/index.d.ts.map +1 -0
  173. package/dist/src/module/introspector/typescript_module/index.js +3 -0
  174. package/dist/src/module/introspector/typescript_module/location.d.ts +6 -0
  175. package/dist/src/module/introspector/typescript_module/location.d.ts.map +1 -0
  176. package/dist/src/module/introspector/typescript_module/location.js +1 -0
  177. package/dist/src/module/introspector/typescript_module/typedef_utils.d.ts +5 -0
  178. package/dist/src/module/introspector/typescript_module/typedef_utils.d.ts.map +1 -0
  179. package/dist/src/module/introspector/typescript_module/typedef_utils.js +26 -0
  180. package/dist/src/module/introspector/utils/files.d.ts +5 -0
  181. package/dist/src/module/introspector/utils/files.d.ts.map +1 -0
  182. package/dist/src/module/introspector/utils/files.js +28 -0
  183. package/dist/src/module/registry.d.ts +109 -0
  184. package/dist/src/module/registry.d.ts.map +1 -0
  185. package/dist/src/module/registry.js +123 -0
  186. package/dist/src/provisioning/bin.d.ts +77 -0
  187. package/dist/src/provisioning/bin.d.ts.map +1 -0
  188. package/dist/src/provisioning/bin.js +353 -0
  189. package/dist/src/provisioning/default.d.ts +2 -0
  190. package/dist/src/provisioning/default.d.ts.map +1 -0
  191. package/dist/src/provisioning/default.js +2 -0
  192. package/dist/src/provisioning/engineconn.d.ts +30 -0
  193. package/dist/src/provisioning/engineconn.d.ts.map +1 -0
  194. package/dist/src/provisioning/engineconn.js +1 -0
  195. package/dist/src/provisioning/index.d.ts +4 -0
  196. package/dist/src/provisioning/index.d.ts.map +1 -0
  197. package/dist/src/provisioning/index.js +14 -0
  198. package/dist/src/telemetry/index.d.ts +3 -0
  199. package/dist/src/telemetry/index.d.ts.map +1 -0
  200. package/dist/src/telemetry/index.js +2 -0
  201. package/dist/src/telemetry/init.d.ts +21 -0
  202. package/dist/src/telemetry/init.d.ts.map +1 -0
  203. package/dist/src/telemetry/init.js +86 -0
  204. package/dist/src/telemetry/live_processor.d.ts +12 -0
  205. package/dist/src/telemetry/live_processor.d.ts.map +1 -0
  206. package/dist/src/telemetry/live_processor.js +13 -0
  207. package/dist/src/telemetry/telemetry.d.ts +16 -0
  208. package/dist/src/telemetry/telemetry.d.ts.map +1 -0
  209. package/dist/src/telemetry/telemetry.js +38 -0
  210. package/dist/src/telemetry/tracer.d.ts +32 -0
  211. package/dist/src/telemetry/tracer.d.ts.map +1 -0
  212. package/dist/src/telemetry/tracer.js +54 -0
  213. package/package.json +74 -0
@@ -0,0 +1,33 @@
1
+ import { TypeDefKind } from "../../../api/client.gen.js";
2
+ export function isKindArray(type) {
3
+ return type.kind === TypeDefKind.ListKind;
4
+ }
5
+ export function isKindObject(type) {
6
+ return type.kind === TypeDefKind.ObjectKind;
7
+ }
8
+ export function isKindEnum(type) {
9
+ return type.kind === TypeDefKind.EnumKind;
10
+ }
11
+ export function isKindScalar(type) {
12
+ return type.kind === TypeDefKind.ScalarKind;
13
+ }
14
+ export function isReferencableTypeDef(type) {
15
+ switch (type.kind) {
16
+ case TypeDefKind.ObjectKind:
17
+ return true;
18
+ case TypeDefKind.EnumKind:
19
+ return true;
20
+ case TypeDefKind.ScalarKind:
21
+ return true;
22
+ case TypeDefKind.ListKind:
23
+ return isReferencableTypeDef(getTypeDefArrayBaseType(type));
24
+ default:
25
+ return false;
26
+ }
27
+ }
28
+ export function getTypeDefArrayBaseType(type) {
29
+ if (isKindArray(type)) {
30
+ return getTypeDefArrayBaseType(type.typeDef);
31
+ }
32
+ return type;
33
+ }
@@ -0,0 +1,49 @@
1
+ import ts from "typescript";
2
+ import { AST, Location } from "../typescript_module/index.js";
3
+ import { Locatable } from "./locatable.js";
4
+ import { DaggerObjectBase } from "./objectBase.js";
5
+ import { References } from "./reference.js";
6
+ import { DaggerObjectTypeProperties } from "./typeObjectProperty.js";
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 {
28
+ private readonly node;
29
+ private readonly ast;
30
+ name: string;
31
+ description: string;
32
+ deprecated?: string;
33
+ _constructor: undefined;
34
+ methods: {};
35
+ properties: DaggerObjectTypeProperties;
36
+ private symbol;
37
+ kind(): "class" | "object";
38
+ constructor(node: ts.TypeAliasDeclaration, ast: AST);
39
+ getLocation(): Location;
40
+ getReferences(): string[];
41
+ propagateReferences(references: References): void;
42
+ toJSON(): {
43
+ name: string;
44
+ description: string;
45
+ properties: DaggerObjectTypeProperties;
46
+ deprecated: string | undefined;
47
+ };
48
+ }
49
+ //# sourceMappingURL=typeObject.d.ts.map
@@ -0,0 +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,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;IAevE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAff,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,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;IA+BpB,WAAW,IAAI,QAAQ;IAIvB,aAAa,IAAI,MAAM,EAAE;IAazB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAMxD,MAAM;;;;;;CAQP"}
@@ -0,0 +1,87 @@
1
+ import ts from "typescript";
2
+ import { IntrospectionError } from "../../../common/errors/index.js";
3
+ import { AST } from "../typescript_module/index.js";
4
+ import { Locatable } from "./locatable.js";
5
+ import { DaggerObjectTypeProperty, } from "./typeObjectProperty.js";
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 {
27
+ node;
28
+ ast;
29
+ name;
30
+ description;
31
+ deprecated;
32
+ _constructor = undefined;
33
+ methods = {};
34
+ properties = {};
35
+ symbol;
36
+ kind() {
37
+ return "object";
38
+ }
39
+ constructor(node, ast) {
40
+ super(node);
41
+ this.node = node;
42
+ this.ast = ast;
43
+ if (!this.node.name) {
44
+ throw new IntrospectionError(`could not resolve name of enum at ${AST.getNodePosition(node)}.`);
45
+ }
46
+ this.name = this.node.name.getText();
47
+ this.symbol = this.ast.getSymbolOrThrow(this.node.name);
48
+ const { description, deprecated } = this.ast.getSymbolDoc(this.symbol);
49
+ this.description = description;
50
+ this.deprecated = deprecated;
51
+ const type = this.ast.getTypeFromTypeAlias(this.node);
52
+ if (type.flags & ts.TypeFlags.Object) {
53
+ const objectType = type;
54
+ const properties = objectType.getProperties();
55
+ for (const property of properties) {
56
+ const daggerProperty = new DaggerObjectTypeProperty(this.node, property, this.ast);
57
+ this.properties[daggerProperty.name] = daggerProperty;
58
+ }
59
+ }
60
+ }
61
+ getLocation() {
62
+ return AST.getNodeLocation(this.node);
63
+ }
64
+ getReferences() {
65
+ const references = [];
66
+ for (const property of Object.values(this.properties)) {
67
+ const ref = property.getReference();
68
+ if (ref) {
69
+ references.push(ref);
70
+ }
71
+ }
72
+ return references.filter((v, i, arr) => arr.indexOf(v) === i);
73
+ }
74
+ propagateReferences(references) {
75
+ for (const property of Object.values(this.properties)) {
76
+ property.propagateReferences(references);
77
+ }
78
+ }
79
+ toJSON() {
80
+ return {
81
+ name: this.name,
82
+ description: this.description,
83
+ properties: this.properties,
84
+ deprecated: this.deprecated,
85
+ };
86
+ }
87
+ }
@@ -0,0 +1,34 @@
1
+ import ts from "typescript";
2
+ import { TypeDefKind } from "../../../api/client.gen.js";
3
+ import { TypeDef } from "../typedef.js";
4
+ import { AST } from "../typescript_module/index.js";
5
+ import { Locatable } from "./locatable.js";
6
+ import { DaggerObjectPropertyBase } from "./objectBase.js";
7
+ import { References } from "./reference.js";
8
+ export type DaggerObjectTypeProperties = {
9
+ [name: string]: DaggerObjectTypeProperty;
10
+ };
11
+ export declare class DaggerObjectTypeProperty extends Locatable implements DaggerObjectPropertyBase {
12
+ private readonly node;
13
+ private readonly symbol;
14
+ private readonly ast;
15
+ name: string;
16
+ description: string;
17
+ deprecated?: string;
18
+ alias: undefined;
19
+ isExposed: boolean;
20
+ private _typeRef?;
21
+ type?: TypeDef<TypeDefKind>;
22
+ constructor(node: ts.TypeAliasDeclaration, symbol: ts.Symbol, ast: AST);
23
+ getReference(): string | undefined;
24
+ propagateReferences(references: References): void;
25
+ toJSON(): {
26
+ name: string;
27
+ description: string;
28
+ deprecated: string | undefined;
29
+ alias: undefined;
30
+ type: TypeDef<TypeDefKind> | undefined;
31
+ isExposed: boolean;
32
+ };
33
+ }
34
+ //# sourceMappingURL=typeObjectProperty.d.ts.map
@@ -0,0 +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,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;IAYjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAZf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,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;IAmBpB,YAAY,IAAI,MAAM,GAAG,SAAS;IAWlC,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAmBjD,MAAM;;;;;;;;CAUd"}
@@ -0,0 +1,60 @@
1
+ import { IntrospectionError } from "../../../common/errors/index.js";
2
+ import { isTypeDefResolved, resolveTypeDef, } from "../typescript_module/index.js";
3
+ import { Locatable } from "./locatable.js";
4
+ export class DaggerObjectTypeProperty extends Locatable {
5
+ node;
6
+ symbol;
7
+ ast;
8
+ name;
9
+ description;
10
+ deprecated;
11
+ alias = undefined;
12
+ isExposed = true;
13
+ _typeRef;
14
+ type;
15
+ constructor(node, symbol, ast) {
16
+ super(node);
17
+ this.node = node;
18
+ this.symbol = symbol;
19
+ this.ast = ast;
20
+ this.name = symbol.name;
21
+ const { description, deprecated } = this.ast.getSymbolDoc(this.symbol);
22
+ this.description = description;
23
+ this.deprecated = deprecated;
24
+ const type = this.ast.checker.getTypeOfSymbolAtLocation(this.symbol, this.node);
25
+ this.type = this.ast.tsTypeToTypeDef(this.node, type);
26
+ if (this.type === undefined || !isTypeDefResolved(this.type)) {
27
+ this._typeRef = this.ast.typeToStringType(type);
28
+ }
29
+ }
30
+ getReference() {
31
+ if (this._typeRef &&
32
+ (this.type === undefined || !isTypeDefResolved(this.type))) {
33
+ return this._typeRef;
34
+ }
35
+ return undefined;
36
+ }
37
+ propagateReferences(references) {
38
+ if (!this._typeRef) {
39
+ return;
40
+ }
41
+ if (this.type && isTypeDefResolved(this.type)) {
42
+ return;
43
+ }
44
+ const typeDef = references[this._typeRef];
45
+ if (!typeDef) {
46
+ throw new IntrospectionError(`could not find type reference for ${this._typeRef}.`);
47
+ }
48
+ this.type = resolveTypeDef(this.type, typeDef);
49
+ }
50
+ toJSON() {
51
+ return {
52
+ name: this.name,
53
+ description: this.description,
54
+ deprecated: this.deprecated,
55
+ alias: this.alias,
56
+ type: this.type,
57
+ isExposed: this.isExposed,
58
+ };
59
+ }
60
+ }
@@ -0,0 +1,3 @@
1
+ import { DaggerModule } from "./dagger_module/index.js";
2
+ export declare function scan(files: string[], moduleName?: string, loadModule?: boolean): Promise<DaggerModule>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/module/introspector/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,wBAAsB,IAAI,CACxB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,SAAK,EACf,UAAU,UAAO,yBAkBlB"}
@@ -0,0 +1,19 @@
1
+ import { IntrospectionError } from "../../common/errors/index.js";
2
+ import { load } from "../entrypoint/load.js";
3
+ import { convertToPascalCase } from "./case_convertor.js";
4
+ import { DaggerModule } from "./dagger_module/index.js";
5
+ import { AST } from "./typescript_module/index.js";
6
+ export async function scan(files, moduleName = "", loadModule = true) {
7
+ if (files.length === 0) {
8
+ throw new IntrospectionError("no files to introspect found");
9
+ }
10
+ const formattedModuleName = convertToPascalCase(moduleName);
11
+ // Interpret the given typescript source files.
12
+ let userModule = [];
13
+ if (loadModule) {
14
+ userModule = await load(files);
15
+ }
16
+ const ast = new AST(files, userModule);
17
+ const module = new DaggerModule(formattedModuleName, userModule, ast);
18
+ return module;
19
+ }
@@ -0,0 +1,52 @@
1
+ import { TypeDefKind } from "../../api/client.gen.js";
2
+ /**
3
+ * Base type of argument, field or return type.
4
+ */
5
+ export type BaseTypeDef = {
6
+ kind: TypeDefKind;
7
+ };
8
+ /**
9
+ * Extends the base type def if it's an object to add its name.
10
+ */
11
+ export type ObjectTypeDef = BaseTypeDef & {
12
+ kind: TypeDefKind.ObjectKind;
13
+ name: string;
14
+ };
15
+ /**
16
+ * Extends the base type def if it's an enum to add its name.
17
+ */
18
+ export type EnumTypeDef = BaseTypeDef & {
19
+ kind: TypeDefKind.EnumKind;
20
+ name: string;
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
+ };
29
+ /**
30
+ * Extends the base typedef if it's a scalar to add its name and real type.
31
+ */
32
+ export type ScalarTypeDef = BaseTypeDef & {
33
+ kind: TypeDefKind.ScalarKind;
34
+ name: string;
35
+ };
36
+ /**
37
+ * Extends the base if it's a list to add its subtype.
38
+ */
39
+ export type ListTypeDef = BaseTypeDef & {
40
+ kind: TypeDefKind.ListKind;
41
+ typeDef: TypeDef<TypeDefKind>;
42
+ };
43
+ /**
44
+ * A generic TypeDef that will dynamically add necessary properties
45
+ * depending on its type.
46
+ *
47
+ * If it's a type of kind scalar, it transforms the BaseTypeDef into a ScalarTypeDef.
48
+ * If it's type of kind object, it transforms the BaseTypeDef into an ObjectTypeDef.
49
+ * If it's a type of kind list, it transforms the BaseTypeDef into a ListTypeDef.
50
+ */
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;
52
+ //# sourceMappingURL=typedef.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ import Module from "node:module";
2
+ import ts from "typescript";
3
+ import { TypeDefKind } from "../../../api/client.gen.js";
4
+ import { DaggerDecorators } from "../dagger_module/index.js";
5
+ import { TypeDef } from "../typedef.js";
6
+ import { DeclarationsMap } from "./declarations.js";
7
+ import { Location } from "./location.js";
8
+ export declare const CLIENT_GEN_FILE = "client.gen.ts";
9
+ export type ResolvedNodeWithSymbol<T extends keyof DeclarationsMap> = {
10
+ type: T;
11
+ node: DeclarationsMap[T];
12
+ symbol: ts.Symbol;
13
+ file: ts.SourceFile;
14
+ };
15
+ export type SymbolDoc = {
16
+ description: string;
17
+ deprecated?: string;
18
+ };
19
+ export declare class AST {
20
+ readonly files: string[];
21
+ private readonly userModule;
22
+ checker: ts.TypeChecker;
23
+ private readonly sourceFiles;
24
+ constructor(files: string[], userModule: Module[]);
25
+ findResolvedNodeByName<T extends keyof DeclarationsMap>(name: string,
26
+ /**
27
+ * Optionally look for a specific node kind if we already know
28
+ * what we're looking for.
29
+ */
30
+ kind: T): ResolvedNodeWithSymbol<T> | undefined;
31
+ findAllDeclarations<T extends keyof DeclarationsMap>(kind: T): ResolvedNodeWithSymbol<T>[];
32
+ getTypeFromTypeAlias(typeAlias: ts.TypeAliasDeclaration): ts.Type;
33
+ static getNodePosition(node: ts.Node): string;
34
+ /**
35
+ * Returns the location of the node in the source file.
36
+ *
37
+ * The filepath is relative to the module root directory.
38
+ * Ideally, we use the identifier of the node accessible by node.name but fallback
39
+ * to node itself if it's not available.
40
+ *
41
+ * The TypeScript SDK based it's line and column on index 0 but editors starts
42
+ * at 1 so we always add 1 to fix that difference.
43
+ */
44
+ static getNodeLocation(node: ts.Node & {
45
+ name?: ts.Identifier;
46
+ }): Location;
47
+ getDocFromSymbol(symbol: ts.Symbol): string;
48
+ getSymbolDoc(symbol: ts.Symbol): SymbolDoc;
49
+ getSymbolOrThrow(node: ts.Node): ts.Symbol;
50
+ getSignatureFromFunctionOrThrow(node: ts.SignatureDeclaration): ts.Signature;
51
+ getSymbol(node: ts.Node): ts.Symbol | undefined;
52
+ isNodeDecoratedWith(node: ts.HasDecorators, daggerDecorator: DaggerDecorators): boolean;
53
+ getDecoratorArgument<T>(node: ts.HasDecorators, daggerDecorator: DaggerDecorators, type: "string" | "object", position?: number): T | undefined;
54
+ unwrapTypeStringFromPromise(type: string): string;
55
+ unwrapTypeStringFromArray(type: string): string;
56
+ stringTypeToUnwrappedType(type: string): string;
57
+ typeToStringType(type: ts.Type): string;
58
+ tsTypeToTypeDef(node: ts.Node, type: ts.Type): TypeDef<TypeDefKind> | undefined;
59
+ private resolveParameterDefaultValueTypeReference;
60
+ private getLiteralValueFromExpression;
61
+ private warnUnresolvedDefaultValue;
62
+ resolveParameterDefaultValue(expression: ts.Expression): any;
63
+ }
64
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../../src/module/introspector/typescript_module/ast.ts"],"names":[],"mappings":"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"}