@tailor-platform/sdk 2.37.0 → 2.39.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 (113) hide show
  1. package/CHANGELOG.md +124 -0
  2. package/dist/{application-83WVdH85.mjs → application-OeNMQzOC.mjs} +1 -1
  3. package/dist/application-mNOJx9Y2.mjs +207 -0
  4. package/dist/application-mNOJx9Y2.mjs.map +1 -0
  5. package/dist/cli/commands/deploy/deploy.d.mts +1 -0
  6. package/dist/cli/commands/deploy/tailordb/migration-validation.d.mts +2 -0
  7. package/dist/cli/commands/executor/trigger.d.mts +1 -0
  8. package/dist/cli/commands/generate/seed/bundler.d.mts +7 -5
  9. package/dist/cli/commands/workspace/transform.d.mts +1 -2
  10. package/dist/cli/lib.d.mts +5 -3
  11. package/dist/cli/lib.mjs +1 -1
  12. package/dist/cli/lib.mjs.map +1 -1
  13. package/dist/cli/main.mjs +67 -61
  14. package/dist/cli/main.mjs.map +1 -1
  15. package/dist/cli/shared/args.d.mts +14 -5
  16. package/dist/cli/shared/build-options.d.mts +13 -0
  17. package/dist/cli/shared/client.d.mts +15 -3
  18. package/dist/cli/shared/error-json.d.mts +12 -26
  19. package/dist/cli/shared/script-workflow.d.mts +65 -0
  20. package/dist/cli/shared/seed-chunker.d.mts +3 -3
  21. package/dist/client-CqiPQgMG.mjs +2 -0
  22. package/dist/client-CqiPQgMG.mjs.map +1 -0
  23. package/dist/client-DO2_Xz_z.mjs +1 -0
  24. package/dist/completion/zsh-worker.zsh +193 -74
  25. package/dist/configure/index.mjs +1 -1
  26. package/dist/configure/index.mjs.map +1 -1
  27. package/dist/configure/services/auth/types.d.mts +20 -3
  28. package/dist/configure/services/executor/operation.d.mts +5 -4
  29. package/dist/configure/services/executor/trigger/webhook.d.mts +8 -1
  30. package/dist/configure/services/http-adapter/http-adapter.d.mts +1 -1
  31. package/dist/configure/services/index.d.mts +0 -1
  32. package/dist/configure/services/tailordb/types.d.mts +9 -0
  33. package/dist/context-CYBcQZyO.mjs +1 -0
  34. package/dist/context-aAgFGDBD.mjs +23 -0
  35. package/dist/context-aAgFGDBD.mjs.map +1 -0
  36. package/dist/{crashreport-D_wf4GZh.mjs → crashreport-CQTAlnbA.mjs} +2 -2
  37. package/dist/{crashreport-D_wf4GZh.mjs.map → crashreport-CQTAlnbA.mjs.map} +1 -1
  38. package/dist/crashreport-GRnWyDnF.mjs +1 -0
  39. package/dist/{errors-Dmdnq0zi.mjs → errors-9OOL3xOM.mjs} +6 -5
  40. package/dist/errors-9OOL3xOM.mjs.map +1 -0
  41. package/dist/field_behavior_pb-B196sUx6.mjs +2 -0
  42. package/dist/field_behavior_pb-B196sUx6.mjs.map +1 -0
  43. package/dist/{kysely-type-DVL90_oX.mjs → kysely-type-DhAZqdQg.mjs} +14 -10
  44. package/dist/kysely-type-DhAZqdQg.mjs.map +1 -0
  45. package/dist/notification_resource_pb-BZ0hCA01.mjs +1 -0
  46. package/dist/notification_resource_pb-Dwzah7gO.mjs +2 -0
  47. package/dist/notification_resource_pb-Dwzah7gO.mjs.map +1 -0
  48. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  49. package/dist/register-ts-hook-CORbtrSN.mjs +1105 -0
  50. package/dist/register-ts-hook-CORbtrSN.mjs.map +1 -0
  51. package/dist/repl-editor-Bposemei.mjs +2 -0
  52. package/dist/repl-editor-Bposemei.mjs.map +1 -0
  53. package/dist/resource_pb-elY668ZB.mjs +2 -0
  54. package/dist/resource_pb-elY668ZB.mjs.map +1 -0
  55. package/dist/{secret-file-DiuEcLFP.mjs → secret-file-CSXzcg4c.mjs} +2 -2
  56. package/dist/{secret-file-DiuEcLFP.mjs.map → secret-file-CSXzcg4c.mjs.map} +1 -1
  57. package/dist/service-B2vx6CGM.mjs +2 -0
  58. package/dist/{service-DDrbdyd-.mjs.map → service-B2vx6CGM.mjs.map} +1 -1
  59. package/dist/service-Bkz_TB5v.mjs +9 -0
  60. package/dist/service-Bkz_TB5v.mjs.map +1 -0
  61. package/dist/service-Dffd4how.mjs +1 -0
  62. package/dist/service_pb-Bethc2NW.mjs +1 -0
  63. package/dist/service_pb-CfpSriCy.mjs +2 -0
  64. package/dist/service_pb-CfpSriCy.mjs.map +1 -0
  65. package/dist/syntax-diagnostic-BQgOV8Fz.mjs +2 -0
  66. package/dist/syntax-diagnostic-BQgOV8Fz.mjs.map +1 -0
  67. package/dist/validation-errors-ChvCG6wT.mjs +3 -0
  68. package/dist/validation-errors-ChvCG6wT.mjs.map +1 -0
  69. package/{LICENSE → dist/vendor/graphql/LICENSE} +6 -6
  70. package/dist/vendor/graphql/language/KindTypeMap.d.mts +3 -0
  71. package/dist/vendor/graphql/language/ast.d.mts +784 -0
  72. package/dist/vendor/graphql/language/kinds_.d.mts +203 -0
  73. package/dist/vendor/graphql/language/source.d.mts +46 -0
  74. package/dist/vendor/graphql/language/tokenKind.d.mts +35 -0
  75. package/dist/vitest/index.mjs +1 -1
  76. package/dist/vitest/index.mjs.map +1 -1
  77. package/dist/workspace_resource_pb-Cow7mrJY.mjs +2 -0
  78. package/dist/workspace_resource_pb-Cow7mrJY.mjs.map +1 -0
  79. package/docs/cli/application.md +16 -12
  80. package/docs/cli/executor.md +13 -17
  81. package/docs/cli/function.md +1 -1
  82. package/docs/cli/notification.md +128 -0
  83. package/docs/cli/tailordb.md +26 -57
  84. package/docs/cli/workspace.md +3 -4
  85. package/docs/cli-reference.md +228 -48
  86. package/docs/configuration.md +28 -0
  87. package/docs/github-actions.md +241 -38
  88. package/docs/migration/v2.md +5 -3
  89. package/docs/services/auth.md +5 -0
  90. package/docs/services/executor.md +2 -0
  91. package/docs/services/tailordb/index.md +6 -2
  92. package/docs/services/tailordb/migration.md +54 -57
  93. package/docs/testing.md +0 -1
  94. package/package.json +25 -21
  95. package/dist/application-Cida-j1g.mjs +0 -207
  96. package/dist/application-Cida-j1g.mjs.map +0 -1
  97. package/dist/configure/services/http-adapter/index.d.mts +0 -2
  98. package/dist/crashreport-C2AcQNTe.mjs +0 -1
  99. package/dist/errors-Dmdnq0zi.mjs.map +0 -1
  100. package/dist/kysely-type-DVL90_oX.mjs.map +0 -1
  101. package/dist/register-ts-hook-Ht4zCseV.mjs +0 -1115
  102. package/dist/register-ts-hook-Ht4zCseV.mjs.map +0 -1
  103. package/dist/repl-editor-DkrCZmmg.mjs +0 -2
  104. package/dist/repl-editor-DkrCZmmg.mjs.map +0 -1
  105. package/dist/service-CZ0EdD2-.mjs +0 -10
  106. package/dist/service-CZ0EdD2-.mjs.map +0 -1
  107. package/dist/service-DDrbdyd-.mjs +0 -2
  108. package/dist/service-WhSyhaho.mjs +0 -1
  109. package/dist/service_pb-BMHhVot2.mjs +0 -1
  110. package/dist/service_pb-BxMSK0gg.mjs +0 -2
  111. package/dist/service_pb-BxMSK0gg.mjs.map +0 -1
  112. package/dist/workspace_resource_pb-7smKERdZ.mjs +0 -2
  113. package/dist/workspace_resource_pb-7smKERdZ.mjs.map +0 -1
@@ -0,0 +1,203 @@
1
+ declare namespace kinds__d_exports {
2
+ export { ARGUMENT, ARGUMENT_COORDINATE, BOOLEAN, DIRECTIVE, DIRECTIVE_ARGUMENT_COORDINATE, DIRECTIVE_COORDINATE, DIRECTIVE_DEFINITION, DIRECTIVE_EXTENSION, DOCUMENT, ENUM, ENUM_TYPE_DEFINITION, ENUM_TYPE_EXTENSION, ENUM_VALUE_DEFINITION, FIELD, FIELD_DEFINITION, FLOAT, FRAGMENT_ARGUMENT, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, INPUT_OBJECT_TYPE_DEFINITION, INPUT_OBJECT_TYPE_EXTENSION, INPUT_VALUE_DEFINITION, INT, INTERFACE_TYPE_DEFINITION, INTERFACE_TYPE_EXTENSION, LIST, LIST_TYPE, MEMBER_COORDINATE, NAME, NAMED_TYPE, NON_NULL_TYPE, NULL, OBJECT, OBJECT_FIELD, OBJECT_TYPE_DEFINITION, OBJECT_TYPE_EXTENSION, OPERATION_DEFINITION, OPERATION_TYPE_DEFINITION, SCALAR_TYPE_DEFINITION, SCALAR_TYPE_EXTENSION, SCHEMA_DEFINITION, SCHEMA_EXTENSION, SELECTION_SET, STRING, TYPE_COORDINATE, UNION_TYPE_DEFINITION, UNION_TYPE_EXTENSION, VARIABLE, VARIABLE_DEFINITION };
3
+ }
4
+ /** @category Kinds */
5
+ /** AST kind for name nodes. */
6
+ export declare const NAME = "Name";
7
+ /** Type of the `Kind.NAME` AST kind value. */
8
+ export type NAME = typeof NAME;
9
+ /** AST kind for document nodes. */
10
+ export declare const DOCUMENT = "Document";
11
+ /** Type of the `Kind.DOCUMENT` AST kind value. */
12
+ export type DOCUMENT = typeof DOCUMENT;
13
+ /** AST kind for operation definition nodes. */
14
+ export declare const OPERATION_DEFINITION = "OperationDefinition";
15
+ /** Type of the `Kind.OPERATION_DEFINITION` AST kind value. */
16
+ export type OPERATION_DEFINITION = typeof OPERATION_DEFINITION;
17
+ /** AST kind for variable definition nodes. */
18
+ export declare const VARIABLE_DEFINITION = "VariableDefinition";
19
+ /** Type of the `Kind.VARIABLE_DEFINITION` AST kind value. */
20
+ export type VARIABLE_DEFINITION = typeof VARIABLE_DEFINITION;
21
+ /** AST kind for selection set nodes. */
22
+ export declare const SELECTION_SET = "SelectionSet";
23
+ /** Type of the `Kind.SELECTION_SET` AST kind value. */
24
+ export type SELECTION_SET = typeof SELECTION_SET;
25
+ /** AST kind for field selection nodes. */
26
+ export declare const FIELD = "Field";
27
+ /** Type of the `Kind.FIELD` AST kind value. */
28
+ export type FIELD = typeof FIELD;
29
+ /** AST kind for argument nodes. */
30
+ export declare const ARGUMENT = "Argument";
31
+ /** Type of the `Kind.ARGUMENT` AST kind value. */
32
+ export type ARGUMENT = typeof ARGUMENT;
33
+ /** AST kind for fragment argument nodes. */
34
+ export declare const FRAGMENT_ARGUMENT = "FragmentArgument";
35
+ /** Type of the `Kind.FRAGMENT_ARGUMENT` AST kind value. */
36
+ export type FRAGMENT_ARGUMENT = typeof FRAGMENT_ARGUMENT;
37
+ /** AST kind for fragment spread nodes. */
38
+ export declare const FRAGMENT_SPREAD = "FragmentSpread";
39
+ /** Type of the `Kind.FRAGMENT_SPREAD` AST kind value. */
40
+ export type FRAGMENT_SPREAD = typeof FRAGMENT_SPREAD;
41
+ /** AST kind for inline fragment nodes. */
42
+ export declare const INLINE_FRAGMENT = "InlineFragment";
43
+ /** Type of the `Kind.INLINE_FRAGMENT` AST kind value. */
44
+ export type INLINE_FRAGMENT = typeof INLINE_FRAGMENT;
45
+ /** AST kind for fragment definition nodes. */
46
+ export declare const FRAGMENT_DEFINITION = "FragmentDefinition";
47
+ /** Type of the `Kind.FRAGMENT_DEFINITION` AST kind value. */
48
+ export type FRAGMENT_DEFINITION = typeof FRAGMENT_DEFINITION;
49
+ /** AST kind for variable reference nodes. */
50
+ export declare const VARIABLE = "Variable";
51
+ /** Type of the `Kind.VARIABLE` AST kind value. */
52
+ export type VARIABLE = typeof VARIABLE;
53
+ /** AST kind for integer value nodes. */
54
+ export declare const INT = "IntValue";
55
+ /** Type of the `Kind.INT` AST kind value. */
56
+ export type INT = typeof INT;
57
+ /** AST kind for floating-point value nodes. */
58
+ export declare const FLOAT = "FloatValue";
59
+ /** Type of the `Kind.FLOAT` AST kind value. */
60
+ export type FLOAT = typeof FLOAT;
61
+ /** AST kind for string value nodes. */
62
+ export declare const STRING = "StringValue";
63
+ /** Type of the `Kind.STRING` AST kind value. */
64
+ export type STRING = typeof STRING;
65
+ /** AST kind for boolean value nodes. */
66
+ export declare const BOOLEAN = "BooleanValue";
67
+ /** Type of the `Kind.BOOLEAN` AST kind value. */
68
+ export type BOOLEAN = typeof BOOLEAN;
69
+ /** AST kind for null value nodes. */
70
+ export declare const NULL = "NullValue";
71
+ /** Type of the `Kind.NULL` AST kind value. */
72
+ export type NULL = typeof NULL;
73
+ /** AST kind for enum value nodes. */
74
+ export declare const ENUM = "EnumValue";
75
+ /** Type of the `Kind.ENUM` AST kind value. */
76
+ export type ENUM = typeof ENUM;
77
+ /** AST kind for list value nodes. */
78
+ export declare const LIST = "ListValue";
79
+ /** Type of the `Kind.LIST` AST kind value. */
80
+ export type LIST = typeof LIST;
81
+ /** AST kind for object value nodes. */
82
+ export declare const OBJECT = "ObjectValue";
83
+ /** Type of the `Kind.OBJECT` AST kind value. */
84
+ export type OBJECT = typeof OBJECT;
85
+ /** AST kind for object field nodes. */
86
+ export declare const OBJECT_FIELD = "ObjectField";
87
+ /** Type of the `Kind.OBJECT_FIELD` AST kind value. */
88
+ export type OBJECT_FIELD = typeof OBJECT_FIELD;
89
+ /** AST kind for directive nodes. */
90
+ export declare const DIRECTIVE = "Directive";
91
+ /** Type of the `Kind.DIRECTIVE` AST kind value. */
92
+ export type DIRECTIVE = typeof DIRECTIVE;
93
+ /** AST kind for named type reference nodes. */
94
+ export declare const NAMED_TYPE = "NamedType";
95
+ /** Type of the `Kind.NAMED_TYPE` AST kind value. */
96
+ export type NAMED_TYPE = typeof NAMED_TYPE;
97
+ /** AST kind for list type reference nodes. */
98
+ export declare const LIST_TYPE = "ListType";
99
+ /** Type of the `Kind.LIST_TYPE` AST kind value. */
100
+ export type LIST_TYPE = typeof LIST_TYPE;
101
+ /** AST kind for non-null type reference nodes. */
102
+ export declare const NON_NULL_TYPE = "NonNullType";
103
+ /** Type of the `Kind.NON_NULL_TYPE` AST kind value. */
104
+ export type NON_NULL_TYPE = typeof NON_NULL_TYPE;
105
+ /** AST kind for schema definition nodes. */
106
+ export declare const SCHEMA_DEFINITION = "SchemaDefinition";
107
+ /** Type of the `Kind.SCHEMA_DEFINITION` AST kind value. */
108
+ export type SCHEMA_DEFINITION = typeof SCHEMA_DEFINITION;
109
+ /** AST kind for operation type definition nodes. */
110
+ export declare const OPERATION_TYPE_DEFINITION = "OperationTypeDefinition";
111
+ /** Type of the `Kind.OPERATION_TYPE_DEFINITION` AST kind value. */
112
+ export type OPERATION_TYPE_DEFINITION = typeof OPERATION_TYPE_DEFINITION;
113
+ /** AST kind for scalar type definition nodes. */
114
+ export declare const SCALAR_TYPE_DEFINITION = "ScalarTypeDefinition";
115
+ /** Type of the `Kind.SCALAR_TYPE_DEFINITION` AST kind value. */
116
+ export type SCALAR_TYPE_DEFINITION = typeof SCALAR_TYPE_DEFINITION;
117
+ /** AST kind for object type definition nodes. */
118
+ export declare const OBJECT_TYPE_DEFINITION = "ObjectTypeDefinition";
119
+ /** Type of the `Kind.OBJECT_TYPE_DEFINITION` AST kind value. */
120
+ export type OBJECT_TYPE_DEFINITION = typeof OBJECT_TYPE_DEFINITION;
121
+ /** AST kind for field definition nodes. */
122
+ export declare const FIELD_DEFINITION = "FieldDefinition";
123
+ /** Type of the `Kind.FIELD_DEFINITION` AST kind value. */
124
+ export type FIELD_DEFINITION = typeof FIELD_DEFINITION;
125
+ /** AST kind for input value definition nodes. */
126
+ export declare const INPUT_VALUE_DEFINITION = "InputValueDefinition";
127
+ /** Type of the `Kind.INPUT_VALUE_DEFINITION` AST kind value. */
128
+ export type INPUT_VALUE_DEFINITION = typeof INPUT_VALUE_DEFINITION;
129
+ /** AST kind for interface type definition nodes. */
130
+ export declare const INTERFACE_TYPE_DEFINITION = "InterfaceTypeDefinition";
131
+ /** Type of the `Kind.INTERFACE_TYPE_DEFINITION` AST kind value. */
132
+ export type INTERFACE_TYPE_DEFINITION = typeof INTERFACE_TYPE_DEFINITION;
133
+ /** AST kind for union type definition nodes. */
134
+ export declare const UNION_TYPE_DEFINITION = "UnionTypeDefinition";
135
+ /** Type of the `Kind.UNION_TYPE_DEFINITION` AST kind value. */
136
+ export type UNION_TYPE_DEFINITION = typeof UNION_TYPE_DEFINITION;
137
+ /** AST kind for enum type definition nodes. */
138
+ export declare const ENUM_TYPE_DEFINITION = "EnumTypeDefinition";
139
+ /** AST kind for enum value definition nodes. */
140
+ export declare const ENUM_VALUE_DEFINITION = "EnumValueDefinition";
141
+ /** Type of the `Kind.ENUM_VALUE_DEFINITION` AST kind value. */
142
+ export type ENUM_VALUE_DEFINITION = typeof ENUM_VALUE_DEFINITION;
143
+ /** AST kind for input object type definition nodes. */
144
+ export declare const INPUT_OBJECT_TYPE_DEFINITION = "InputObjectTypeDefinition";
145
+ /** Type of the `Kind.INPUT_OBJECT_TYPE_DEFINITION` AST kind value. */
146
+ export type INPUT_OBJECT_TYPE_DEFINITION = typeof INPUT_OBJECT_TYPE_DEFINITION;
147
+ /** AST kind for directive definition nodes. */
148
+ export declare const DIRECTIVE_DEFINITION = "DirectiveDefinition";
149
+ /** Type of the `Kind.DIRECTIVE_DEFINITION` AST kind value. */
150
+ export type DIRECTIVE_DEFINITION = typeof DIRECTIVE_DEFINITION;
151
+ /** AST kind for schema extension nodes. */
152
+ export declare const SCHEMA_EXTENSION = "SchemaExtension";
153
+ /** Type of the `Kind.SCHEMA_EXTENSION` AST kind value. */
154
+ export type SCHEMA_EXTENSION = typeof SCHEMA_EXTENSION;
155
+ /** AST kind for directive extension nodes. */
156
+ export declare const DIRECTIVE_EXTENSION = "DirectiveExtension";
157
+ /** Type of the `Kind.DIRECTIVE_EXTENSION` AST kind value. */
158
+ export type DIRECTIVE_EXTENSION = typeof DIRECTIVE_EXTENSION;
159
+ /** AST kind for scalar type extension nodes. */
160
+ export declare const SCALAR_TYPE_EXTENSION = "ScalarTypeExtension";
161
+ /** Type of the `Kind.SCALAR_TYPE_EXTENSION` AST kind value. */
162
+ export type SCALAR_TYPE_EXTENSION = typeof SCALAR_TYPE_EXTENSION;
163
+ /** AST kind for object type extension nodes. */
164
+ export declare const OBJECT_TYPE_EXTENSION = "ObjectTypeExtension";
165
+ /** Type of the `Kind.OBJECT_TYPE_EXTENSION` AST kind value. */
166
+ export type OBJECT_TYPE_EXTENSION = typeof OBJECT_TYPE_EXTENSION;
167
+ /** AST kind for interface type extension nodes. */
168
+ export declare const INTERFACE_TYPE_EXTENSION = "InterfaceTypeExtension";
169
+ /** Type of the `Kind.INTERFACE_TYPE_EXTENSION` AST kind value. */
170
+ export type INTERFACE_TYPE_EXTENSION = typeof INTERFACE_TYPE_EXTENSION;
171
+ /** AST kind for union type extension nodes. */
172
+ export declare const UNION_TYPE_EXTENSION = "UnionTypeExtension";
173
+ /** Type of the `Kind.UNION_TYPE_EXTENSION` AST kind value. */
174
+ export type UNION_TYPE_EXTENSION = typeof UNION_TYPE_EXTENSION;
175
+ /** AST kind for enum type extension nodes. */
176
+ export declare const ENUM_TYPE_EXTENSION = "EnumTypeExtension";
177
+ /** Type of the `Kind.ENUM_TYPE_EXTENSION` AST kind value. */
178
+ export type ENUM_TYPE_EXTENSION = typeof ENUM_TYPE_EXTENSION;
179
+ /** AST kind for input object type extension nodes. */
180
+ export declare const INPUT_OBJECT_TYPE_EXTENSION = "InputObjectTypeExtension";
181
+ /** Type of the `Kind.INPUT_OBJECT_TYPE_EXTENSION` AST kind value. */
182
+ export type INPUT_OBJECT_TYPE_EXTENSION = typeof INPUT_OBJECT_TYPE_EXTENSION;
183
+ /** AST kind for type coordinate nodes. */
184
+ export declare const TYPE_COORDINATE = "TypeCoordinate";
185
+ /** Type of the `Kind.TYPE_COORDINATE` AST kind value. */
186
+ export type TYPE_COORDINATE = typeof TYPE_COORDINATE;
187
+ /** AST kind for member coordinate nodes. */
188
+ export declare const MEMBER_COORDINATE = "MemberCoordinate";
189
+ /** Type of the `Kind.MEMBER_COORDINATE` AST kind value. */
190
+ export type MEMBER_COORDINATE = typeof MEMBER_COORDINATE;
191
+ /** AST kind for argument coordinate nodes. */
192
+ export declare const ARGUMENT_COORDINATE = "ArgumentCoordinate";
193
+ /** Type of the `Kind.ARGUMENT_COORDINATE` AST kind value. */
194
+ export type ARGUMENT_COORDINATE = typeof ARGUMENT_COORDINATE;
195
+ /** AST kind for directive coordinate nodes. */
196
+ export declare const DIRECTIVE_COORDINATE = "DirectiveCoordinate";
197
+ /** Type of the `Kind.DIRECTIVE_COORDINATE` AST kind value. */
198
+ export type DIRECTIVE_COORDINATE = typeof DIRECTIVE_COORDINATE;
199
+ /** AST kind for directive argument coordinate nodes. */
200
+ export declare const DIRECTIVE_ARGUMENT_COORDINATE = "DirectiveArgumentCoordinate";
201
+ /** Type of the `Kind.DIRECTIVE_ARGUMENT_COORDINATE` AST kind value. */
202
+ export type DIRECTIVE_ARGUMENT_COORDINATE = typeof DIRECTIVE_ARGUMENT_COORDINATE;
203
+ export { kinds__d_exports };
@@ -0,0 +1,46 @@
1
+ /** @category Source */
2
+ interface Location {
3
+ line: number;
4
+ column: number;
5
+ }
6
+ /**
7
+ * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are
8
+ * optional, but they are useful for clients who store GraphQL documents in source files.
9
+ * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might
10
+ * be useful for `name` to be `"Foo.graphql"` and location to be `{ line: 40, column: 1 }`.
11
+ * The `line` and `column` properties in `locationOffset` are 1-indexed.
12
+ */
13
+ export declare class Source {
14
+ /** The GraphQL source text. */
15
+ body: string;
16
+ /** Name used in diagnostics for this source, such as a file path or request name. */
17
+ name: string;
18
+ /** One-indexed line and column where this source begins. */
19
+ locationOffset: Location;
20
+ /**
21
+ * Creates a Source instance.
22
+ * @param body - The GraphQL source text.
23
+ * @param name - Name used in diagnostics for this source.
24
+ * @param locationOffset - One-indexed line and column where this source begins.
25
+ * @example
26
+ * ```ts
27
+ * import { Source } from 'graphql/language';
28
+ *
29
+ * const source = new Source('type Query { greeting: String }', 'schema.graphql', {
30
+ * line: 10,
31
+ * column: 1,
32
+ * });
33
+ *
34
+ * source.body; // => 'type Query { greeting: String }'
35
+ * source.name; // => 'schema.graphql'
36
+ * source.locationOffset; // => { line: 10, column: 1 }
37
+ * ```
38
+ */
39
+ constructor(body: string, name?: string, locationOffset?: Location);
40
+ /**
41
+ * Returns the value used by `Object.prototype.toString`.
42
+ * @returns The built-in string tag for this object.
43
+ */
44
+ get [Symbol.toStringTag](): string;
45
+ }
46
+ export {};
@@ -0,0 +1,35 @@
1
+ /** @category Lexing */
2
+ /**
3
+ * An exported enum describing the different kinds of tokens that the
4
+ * lexer emits.
5
+ */
6
+ export declare const TokenKind: {
7
+ readonly SOF: "<SOF>";
8
+ readonly EOF: "<EOF>";
9
+ readonly BANG: "!";
10
+ readonly DOLLAR: "$";
11
+ readonly AMP: "&";
12
+ readonly PAREN_L: "(";
13
+ readonly PAREN_R: ")";
14
+ readonly DOT: ".";
15
+ readonly SPREAD: "...";
16
+ readonly COLON: ":";
17
+ readonly EQUALS: "=";
18
+ readonly AT: "@";
19
+ readonly BRACKET_L: "[";
20
+ readonly BRACKET_R: "]";
21
+ readonly BRACE_L: "{";
22
+ readonly PIPE: "|";
23
+ readonly BRACE_R: "}";
24
+ readonly NAME: "Name";
25
+ readonly INT: "Int";
26
+ readonly FLOAT: "Float";
27
+ readonly STRING: "String";
28
+ readonly BLOCK_STRING: "BlockString";
29
+ readonly COMMENT: "Comment";
30
+ };
31
+ /**
32
+ * An exported enum describing the different kinds of tokens that the
33
+ * lexer emits.
34
+ */
35
+ export type TokenKind = (typeof TokenKind)[keyof typeof TokenKind];
@@ -1,2 +1,2 @@
1
- import{i as e,t}from"../registry-BijIDRVA.mjs";import{a as n,c as r,i,o as a,s as o,u as s}from"../wait-point-invoker-eiP-IIux.mjs";import{t as c}from"../assert-WeXvmG4j.mjs";import{n as l,r as u}from"../node-builtins-DYfhPBnz.mjs";import{n as d,r as f}from"../migration-steps-C6F3zNdQ.mjs";import{t as p}from"../platform-serialize-DkiTdHOt.mjs";import{a as m,i as h,n as g,o as _,r as v}from"../date-representation-Cr7W7Pn2.mjs";import*as y from"node:module";import{createRequire as b}from"node:module";import{isEqual as x}from"es-toolkit";import{existsSync as S}from"node:fs";import{fileURLToPath as C,pathToFileURL as w}from"node:url";import{ColumnNode as T,CompiledQuery as E,InsertQueryNode as D,Kysely as O,PGliteAdapter as ee,PostgresAdapter as te,PostgresIntrospector as k,PostgresQueryCompiler as A,PrimitiveValueListNode as j,ReferenceNode as M,UpdateQueryNode as ne,ValueListNode as re,ValueNode as ie,ValuesNode as N}from"kysely";import{dirname as P,isAbsolute as F,matchesGlob as ae,relative as I,resolve as L}from"node:path";import{vi as R}from"vitest";function isBlockedModule(e){return u(e)}function getBlockedMessage(e){return l(e)}function dateDefaultFromConfig(e){let t=e&&typeof e==`object`?e.default:void 0,n=t&&typeof t==`object`?t.defaultDateRepresentation:void 0;if(n===void 0)return`legacy`;if(n===`temporal`||n===`date`)return n;throw Error(`defaultDateRepresentation must be "temporal", "date", or omitted, but tailor.config.ts sets ${JSON.stringify(n)}.`)}let z=Promise.resolve();function serialize(e){let t=z.then(e,e);return z=t.catch(()=>void 0),t}async function importLikeCli(e){let t=w(e).href,n=f();try{if(`Bun`in globalThis||`Deno`in globalThis)return await import(t);let{resolveSync:e,loadSync:n}=await import(w(L(P(C(import.meta.url)),`../cli/ts-hook.mjs`)).href),r=y.registerHooks({resolve:e,load:n});try{return await import(t)}finally{r.deregister?.()}}finally{n()}}function isSourceParseError(e){return typeof e==`object`&&!!e&&e.code===`InvalidSyntax`}function describeError(e){return e instanceof Error?e.message:String(e)}async function loadDateDefaultFromConfig(e){if(!S(e))throw Error(`tailor-runtime: tailor.config.ts not found at ${e}. Check the \`config\` option of tailorRuntime().`);let t;try{t=await serialize(()=>importLikeCli(e))}catch(t){if(isSourceParseError(t))throw Error(`tailor-runtime could not parse ${e}: ${describeError(t)}`,{cause:t});return console.warn(`tailor-runtime could not load ${e} to read defaultDateRepresentation; t date fields use string values in this run. If the config sets "temporal" or "date", tests disagree with tailor.d.ts until the error is fixed: ${describeError(t)}`),`legacy`}return dateDefaultFromConfig(t)}const B=[`**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}`],V=/* @__PURE__ */ new Set([`ImportDeclaration`,`ExportNamedDeclaration`,`ExportAllDeclaration`]),H=/* @__PURE__ */ new Set(/* @__PURE__ */ `break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.export.extends.false.finally.for.function.if.import.in.instanceof.new.null.return.super.switch.this.throw.true.try.typeof.var.void.while.with.yield.let.static.implements.interface.package.private.protected.public.await.arguments.eval`.split(`.`)),U=/^[A-Za-z_$]/,W=/^[A-Za-z0-9_$]*$/;function isSafeBindingName(e){if(H.has(e)||e.length===0)return!1;let t=e[0];return t!==void 0&&U.test(t)&&W.test(e.slice(1))}function buildBlockedReplacement(e,t){let n=JSON.stringify(t),r=`throw new Error(${n});`,i=`(() => { throw new Error(${n}); })()`;if(e.type===`ExportNamedDeclaration`){let t=e.specifiers??[],n=[];for(let e of t){let t=e.exported?.name;if(typeof t==`string`){if(t==="default")n.push(`export default ${i};`);else{if(!isSafeBindingName(t))return r;n.push(`export const ${t} = ${i};`)}}}return n.length>0?n.join(` `):r}if(e.type===`ExportAllDeclaration`){let t=e.exported?.name;return typeof t==`string`&&isSafeBindingName(t)?`export const ${t} = ${i};`:r}return r}const toFileList=e=>Array.isArray(e)?e:e?[e]:[];let G;function supportsDefaultProjectInheritance(){if(G===void 0)try{let{version:e}=b(import.meta.url)(`vitest/package.json`);G=Number.parseInt(e,10)>=5}catch{G=!1}return G}function createBlockPlugin(){let isTestFile=()=>!1,isUserSourceFile=()=>!1;return{name:`tailor-runtime-block-node`,configResolved(e){let t=e.test,n=t?.root??e.root,toAbsolutePaths=(e,t)=>toFileList(e).map(e=>L(t,e)),r=/* @__PURE__ */ new Set([...toAbsolutePaths(t?.setupFiles,n),...toAbsolutePaths(t?.globalSetup,n)]),i=[{root:n,patterns:t?.include??B}];for(let e of t?.projects??[]){let t=e.test;if(!t)continue;let a=t.root??n;for(let e of toAbsolutePaths(t.setupFiles,a))r.add(e);for(let e of toAbsolutePaths(t.globalSetup,a))r.add(e);i.push({root:a,patterns:t.include??B})}isTestFile=e=>r.has(e)?!0:i.some(({root:t,patterns:n})=>{let r=F(e)?I(t,e):e;return n.some(e=>ae(r,e))}),isUserSourceFile=e=>{if(!F(e))return!1;let t=I(n,e);return t!==``&&!t.startsWith(`..`)&&!F(t)}},transform(e,t){let n=t.search(/[?#]/),r=n===-1?t:t.slice(0,n);if(isTestFile(r)||r.includes(`node_modules`)||!isUserSourceFile(r))return;let i;try{i=this.parse(e)}catch{return}let a=[];for(let e of i.body){if(!V.has(e.type))continue;let t=e.source?.value;typeof t==`string`&&isBlockedModule(t)&&a.push({start:e.start,end:e.end,replacement:buildBlockedReplacement(e,getBlockedMessage(t))})}if(a.length===0)return;let o=e;for(let e of a.toSorted((e,t)=>t.start-e.start))o=o.slice(0,e.start)+e.replacement+o.slice(e.end);return{code:o,map:null}}}}function setConfigEnv(e,t,n){e.env={...e.env,__TAILOR_RUNTIME_CONFIG:t,__TAILOR_RUNTIME_DATE_DEFAULT:n}}function createEnvironmentPlugin(e,t=loadDateDefaultFromConfig){let n=P(C(import.meta.url)),r=L(n,`environment.mjs`),i=L(n,`setup.mjs`),a=/* @__PURE__ */ new Map,dateDefaultOf=e=>{let n=a.get(e);return n||(n=t(e),a.set(e,n)),n},selectsTailorRuntime=e=>e===`tailor-runtime`||e===r;return{name:`tailor-runtime-environment`,async config(t){let n=t.test,a=!!n&&selectsTailorRuntime(n.environment);if(n&&a&&(n.environment=r),n?.projects)for(let o of n.projects){if(typeof o==`string`)continue;let n=o.test??={};if(!(n.environment===void 0&&a&&(o.extends===!0||o.extends===void 0&&supportsDefaultProjectInheritance()))&&!selectsTailorRuntime(n.environment)){e?.config&&setConfigEnv(n,``,``);continue}n.environment=r;let s=toFileList(n.setupFiles);if(s.includes(i)||(n.setupFiles=[...s,i]),e?.config){let r=o.root??n.root??t.root??process.cwd(),i=L(r,e.config);setConfigEnv(n,i,await dateDefaultOf(i))}}if(e?.config&&n){let r=n.root??t.root??process.cwd(),i=a?L(r,e.config):``;setConfigEnv(n,i,i?await dateDefaultOf(i):``)}let o=toFileList(n?.setupFiles);return n&&typeof n.setupFiles==`string`&&(n.setupFiles=o),!a||o.includes(i)?{}:{test:{setupFiles:[i]}}}}}function mockAigateway(e={}){let t=h(),n=t.aigateway,r={...e.urls};async function defaultGet(e){let t=r[e];if(t===void 0)throw Error(`No AI Gateway registered for "${e}". Acquire mockAigateway() and call setUrls(...).`);return{url:t}}let i=R.fn(defaultGet);return t.aigateway={get:i},_({get:i,setUrls(e){r=e},setUrl(e,t){r={...r,[e]:t}},get calls(){return i.mock.calls.map(([e])=>({name:e}))},clear(){i.mockClear()},reset(){r={},i.mockReset(),i.mockImplementation(defaultGet)}},()=>{t.aigateway=n})}function mockAuthconnection(e={}){let t=h(),n=t.authconnection,r={...e.tokens};async function defaultGetConnectionToken(t){let n=r[t];if(n)return n;if(e.onUnhandled===`error`)throw Error(`No AuthConnection token configured for "${t}"`);return{access_token:`mock-token`}}let i=R.fn(defaultGetConnectionToken);return t.authconnection={getConnectionToken:i},_({getConnectionToken:i,setTokens(e){r=e},setToken(e,t){r={...r,[e]:t}},get calls(){return i.mock.calls.map(([e])=>({connectionName:e}))},clear(){i.mockClear()},reset(){r={},i.mockReset(),i.mockImplementation(defaultGetConnectionToken)}},()=>{t.authconnection=n})}const K=[`upload`,`download`,`downloadAsBase64`,`delete`,`getMetadata`,`downloadStream`,`uploadStream`],q={upload:{metadata:{fileSize:0,sha256sum:``}},download:{data:/* @__PURE__ */ new Uint8Array,metadata:{contentType:``,fileSize:0,sha256sum:``,lastUploadedAt:``}},downloadAsBase64:{data:``,metadata:{contentType:``,fileSize:0,sha256sum:``,lastUploadedAt:``}},getMetadata:{contentType:``,fileSize:0,sha256sum:``,urlPath:``},downloadStream:null,uploadStream:{metadata:{fileSize:0,sha256sum:``}}};function mockFile(e={}){let t=m(),n=t.file,{onUnhandled:r=`fallback`}=e,i=[],a=[],resolver=()=>null;function handle(e,t,n,a,o){if(i.length>0)return i.shift();let s=resolver(e,{method:e,namespace:t,tableName:n,fieldName:a,recordId:o});if(s!=null)return s;if(r===`error`)throw Error(`No File mock configured for "${e}"`);let c=q[e];return c===void 0?void 0:structuredClone(c)}let o=R.fn(async(...e)=>{let[t,n,r,i]=e;return handle(`upload`,t,n,r,i)}),s=R.fn(async(...e)=>handle(`download`,...e)),c=R.fn(async(...e)=>handle(`downloadAsBase64`,...e)),l=R.fn(async(...e)=>{handle(`delete`,...e)}),u=R.fn(async(...e)=>handle(`getMetadata`,...e)),d=R.fn(async(...e)=>handle(`downloadStream`,...e)??{body:new ReadableStream({start(e){e.close()}}),metadata:{contentType:``,fileSize:0,sha256sum:``,lastUploadedAt:``}}),f=R.fn(async(...e)=>{let[t,n,r,i]=e;return handle(`uploadStream`,t,n,r,i)}),p={upload:o,download:s,downloadAsBase64:c,delete:l,getMetadata:u,downloadStream:d,uploadStream:f};function track(e,t){return function(...n){return a.push({method:e,namespace:n[0],tableName:n[1],fieldName:n[2],recordId:n[3]}),t.apply(this,n)}}t.file={upload:track(`upload`,o),download:track(`download`,s),downloadAsBase64:track(`downloadAsBase64`,c),delete:track(`delete`,l),getMetadata:track(`getMetadata`,u),downloadStream:track(`downloadStream`,d),uploadStream:track(`uploadStream`,f)};function allMocks(){return K.map(e=>p[e])}let h={...p,setResolver(e){resolver=e},enqueueResult(e){i.push(e)},enqueueResults(...e){i.push(...e)},get calls(){return a},clear(){a.length=0;for(let e of allMocks())e.mockClear()},reset(){i.length=0,a.length=0,resolver=()=>null;for(let e of allMocks())e.mockReset()}};return _(h,()=>{t.file=n})}function isUtf8(e){return e===`UTF8`||e===`UTF-8`}function defaultIconvResult(e,t){switch(e){case`convert`:case`convertBuffer`:return isUtf8(t[2])?``:/* @__PURE__ */ new Uint8Array;case`decode`:return``;case`encode`:return isUtf8(t[1])?``:/* @__PURE__ */ new Uint8Array;case`encodings`:return[]}}function mockIconv(e={}){let t=h(),n=t.iconv,r=null,i=[];function resolve(t,n){if(r){let e=r(t,n);if(e!=null)return e}if(e.onUnhandled===`error`)throw Error(`No Iconv mock behavior configured for "${t}"`);return defaultIconvResult(t,n)}function defaultConvert(e,t,n){return resolve(`convert`,[e,t,n])}function defaultConvertBuffer(e,t,n){return resolve(`convertBuffer`,[e,t,n])}function defaultDecode(e,t){return resolve(`decode`,[e,t])}function defaultEncode(e,t){return resolve(`encode`,[e,t])}function defaultEncodings(){return resolve(`encodings`,[])}let a=R.fn(defaultConvert),o=R.fn(defaultConvertBuffer),s=R.fn(defaultDecode),c=R.fn(defaultEncode),l=R.fn(defaultEncodings);function track(e,t){return function(...n){return i.push({method:e,args:[...n]}),t.apply(this,n)}}let u=track(`convert`,a),d=track(`convertBuffer`,o),f=track(`decode`,s),p=track(`encode`,c),m=track(`encodings`,l);class MockIconv{#e;#t;constructor(e,t){this.#e=e,this.#t=t}convert(e){return u.call(this,e,this.#e,this.#t)}}t.iconv={convert:u,convertBuffer:d,decode:f,encode:p,encodings:m,Iconv:MockIconv};function clear(){i.length=0,a.mockClear(),o.mockClear(),s.mockClear(),c.mockClear(),l.mockClear()}return _({convert:a,convertBuffer:o,decode:s,encode:c,encodings:l,setResolver(e){r=e},get calls(){return i},clear,reset(){r=null,i.length=0,a.mockReset(),a.mockImplementation(defaultConvert),o.mockReset(),o.mockImplementation(defaultConvertBuffer),s.mockReset(),s.mockImplementation(defaultDecode),c.mockReset(),c.mockImplementation(defaultEncode),l.mockReset(),l.mockImplementation(defaultEncodings)}},()=>{t.iconv=n})}const oe=[`users`,`user`,`userByName`,`createUser`,`updateUser`,`deleteUser`,`sendPasswordResetEmail`,`unenrollMfa`],J={id:`mock-id`,name:`mock-user`,disabled:!1,mfaEnrolled:!1,mfaFactorIds:[],passwordUpdatedAt:null},se={users:{users:[],nextPageToken:null,totalCount:0},user:J,userByName:J,createUser:J,updateUser:J,deleteUser:!0,sendPasswordResetEmail:!0,unenrollMfa:!0};function mockIdp(e={}){let t=h(),n=t.idp,{onUnhandled:r=`fallback`}=e,i=[],a=[],resolver=()=>null,o=/* @__PURE__ */ new Map;function compatibilityArgs(e,t){return e===`users`&&t.length===0?[void 0]:t}function handle(e,t,n){if(i.length>0)return i.shift();let a=resolver(e,compatibilityArgs(e,t),n);if(a!=null)return a;if(r===`error`)throw Error(`No IdP mock configured for "${n}.${e}"`);return structuredClone(se[e])}function createNamespaceMocks(e){return{users:R.fn(async(...t)=>handle(`users`,t,e)),user:R.fn(async(...t)=>handle(`user`,t,e)),userByName:R.fn(async(...t)=>handle(`userByName`,t,e)),createUser:R.fn(async(...t)=>handle(`createUser`,t,e)),updateUser:R.fn(async(...t)=>handle(`updateUser`,t,e)),deleteUser:R.fn(async(...t)=>handle(`deleteUser`,t,e)),sendPasswordResetEmail:R.fn(async(...t)=>handle(`sendPasswordResetEmail`,t,e)),unenrollMfa:R.fn(async(...t)=>handle(`unenrollMfa`,t,e))}}function namespace(e){let t=o.get(e);if(t)return t;let n=createNamespaceMocks(e);return o.set(e,n),n}function track(e,t,n){return function(...r){return a.push({method:e,args:[...compatibilityArgs(e,r)],namespace:n}),t.apply(this,r)}}let defaultClient=function(e){let t=namespace(e.namespace);this.users=track(`users`,t.users,e.namespace),this.user=track(`user`,t.user,e.namespace),this.userByName=track(`userByName`,t.userByName,e.namespace),this.createUser=track(`createUser`,t.createUser,e.namespace),this.updateUser=track(`updateUser`,t.updateUser,e.namespace),this.deleteUser=track(`deleteUser`,t.deleteUser,e.namespace),this.sendPasswordResetEmail=track(`sendPasswordResetEmail`,t.sendPasswordResetEmail,e.namespace),this.unenrollMfa=track(`unenrollMfa`,t.unenrollMfa,e.namespace)},s=R.fn(defaultClient);t.idp={Client:s};function allMocks(){return[...o.values()].flatMap(e=>oe.map(t=>e[t]))}return _({Client:s,namespace,setResolver(e){resolver=e},enqueueResult(e){i.push(e)},enqueueResults(...e){i.push(...e)},get calls(){return a},clear(){a.length=0,s.mockClear();for(let e of allMocks())e.mockClear()},reset(){i.length=0,a.length=0,resolver=()=>null,s.mockReset(),s.mockImplementation(defaultClient);for(let e of allMocks())e.mockReset()}},()=>{t.idp=n})}function mockLogger(e={}){let t=h(),n=t.logger,r=R.fn((e,t)=>{}),i=R.fn((e,t)=>{}),a=R.fn((e,t)=>{}),o=R.fn((e,t)=>{}),s=R.fn(e=>{});t.logger={debug:r,info:i,warn:a,error:o,setAttributes:s};let c={debug:r,info:i,warn:a,error:o};return _({debug:r,info:i,warn:a,error:o,setAttributes:s,get calls(){return Object.entries(c).flatMap(([e,t])=>t.mock.calls.map((n,r)=>({order:t.mock.invocationCallOrder[r]??0,call:{severity:e,message:n[0],attributes:n[1]}}))).toSorted((e,t)=>e.order-t.order).map(e=>e.call)},clear(){r.mockClear(),i.mockClear(),a.mockClear(),o.mockClear(),s.mockClear()},reset(){r.mockReset(),i.mockReset(),a.mockReset(),o.mockReset(),s.mockReset()}},()=>{t.logger=n})}function testRegex(e,t){let n=e.lastIndex;e.lastIndex=0;try{return e.test(t)}finally{e.lastIndex=n}}var MockQueryResult=class{command;rowCount;rows;constructor(e){this.command=``,this.rowCount=e.length,this.rows=e}};function mockTailordb(e={}){let t=m(),n=t.Client,r=[],i;function matchesQuery(e,t,n){if(typeof e==`function`)return e(t,n);if(typeof e==`string`)return t===e;if(e instanceof RegExp)return testRegex(e,t);let r;if(r=typeof e.sql==`string`?t===e.sql:testRegex(e.sql,t),!r||e.params===void 0)return r;if(typeof e.params==`function`)return e.params(n);let i=e.params;return n.length===i.length&&n.every((e,t)=>x(e,i[t]))}function queryResponse(e){if(e.type===`error`)throw e.error;return new MockQueryResult(e.rows)}async function defaultQuery(t,n=[]){for(let e=r.length-1;e>=0;--e){let i=r[e];if(!i||!matchesQuery(i.matcher,t,n))continue;let a=i.once.shift();if(a)return queryResponse(a);if(i.fallback)return queryResponse(i.fallback)}if(i)return new MockQueryResult(i(t,n)??[]);if(e.onUnhandled===`error`)throw Error(`No TailorDB query behavior matched: ${t}`);return new MockQueryResult([])}let a=R.fn(defaultQuery),defaultConnect=async()=>{},o=R.fn(defaultConnect),s=[];function enqueueRowsList(e){for(let t of e)a.mockImplementationOnce(async()=>new MockQueryResult(t))}let defaultClient=function(e){let t={namespace:e?.namespace,ended:!1};s.push(t),this.connect=o,this.end=R.fn(async()=>{t.ended=!0}),this.queryObject=a,this.createTransaction=e=>{if(!e)throw Error(`Transaction name must be a non-empty string`);return{begin:async()=>{},commit:async()=>{},rollback:async()=>{},queryObject:a}}},c=R.fn(defaultClient);return t.Client=c,_({Client:c,queryObject:a,setQueryResolver(e){i=e,a.mockImplementation(defaultQuery)},onQuery(e){let t={matcher:e,once:[]};r.push(t);let n={returnsRows(e){return t.fallback={type:`rows`,rows:e},n},returnsRowsOnce(e){return t.once.push({type:`rows`,rows:e}),n},rejects(e){return t.fallback={type:`error`,error:e},n},rejectsOnce(e){return t.once.push({type:`error`,error:e}),n}};return n},enqueueResult(...e){enqueueRowsList([e])},enqueueResults(...e){enqueueRowsList(e)},enqueueRows(...e){enqueueRowsList(e)},get executedQueries(){return a.mock.calls.map(([e,t])=>({query:e,params:t??[]}))},get createdClients(){return s},clear(){a.mockClear(),o.mockClear(),c.mockClear(),s.length=0},reset(){a.mockReset(),a.mockImplementation(defaultQuery),o.mockReset(),o.mockImplementation(defaultConnect),c.mockReset(),c.mockImplementation(defaultClient),s.length=0,r.length=0,i=void 0}},()=>{t.Client=n})}const Y=/* @__PURE__ */ new WeakMap,X=/* @__PURE__ */ new WeakMap,Z=/* @__PURE__ */ new WeakMap;function replaceProcedure(e,t,n){let r=Z.get(n)??n,i=R.fn(function(...e){return Reflect.apply(r,this,e)});Z.set(i,r);let a=e;return a[t]=i,{mock:i,scoped:{mockClear:()=>i.mockClear(),mockReset:()=>i.mockReset(),restore:()=>{a[t]===i&&(a[t]=n)}}}}function replaceStart(e){return replaceProcedure(e,`start`,e.start)}function mockWorkflow(){let e=h(),a=e.workflow,c=r(),l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ new Map,m=/* @__PURE__ */ new Set,installKeyDispatcher=e=>{let t=f.get(e);if(t)return t;let n=i(e);if(!n)throw Error(`waitPointWith expects a wait point definition created by createWaitPoint or createWaitPoints.`);let r=n,a=n.wait,o=n.resolve,s=Y.get(a)??a,c=X.get(o)??o,l={perKey:/* @__PURE__ */ new Map,originalWait:(e,t)=>s.call(n,e,t),originalResolve:(e,t,r)=>c.call(n,e,t,r)},dispatchWait=(e,t)=>{let n=l.perKey.get(e);return n?t===void 0?n.wait():n.wait(t):l.originalWait(e,t)},dispatchResolve=async(e,t,n)=>{let r=l.perKey.get(e);if(!r)return l.originalResolve(e,t,n);await r.resolve(t,n)};Y.set(dispatchWait,s),X.set(dispatchResolve,c),r.wait=dispatchWait,r.resolve=dispatchResolve;let eachSpy=e=>{for(let t of l.perKey.values()){let n=t;e(n.wait),e(n.resolve)}};return m.add({mockClear:()=>eachSpy(e=>e.mockClear()),mockReset:()=>eachSpy(e=>e.mockReset()),restore:()=>{r.wait=a,r.resolve=o,f.delete(e)}}),f.set(e,l),l},defaultExecJob=(e,t,n)=>{throw Error(`No workflow job mock for "${e}". Call mockWorkflow().setJobHandler(...) or enqueueResult(...), or use runWorkflowLocally() for local workflow execution.`)},defaultStartWorkflow=async(e,n,r)=>t,defaultResumeWorkflowExecution=async e=>e,g=R.fn(defaultExecJob),v=R.fn(defaultStartWorkflow),y=R.fn(defaultResumeWorkflowExecution),b=R.fn((e,t)=>null),x=R.fn(async(e,t,n)=>{});return e.workflow={execJobFunction:(...e)=>{let t=e.length>=3?g(e[0],p(e[1]),e[2]):g(e[0],p(e[1]));return t instanceof Promise?t.then(e=>p(e)):p(t)},startWorkflow:(...e)=>e.length>=3?v(e[0],p(e[1]),e[2]):v(e[0],p(e[1])),resumeWorkflowExecution:e=>y(e),wait:(e,t)=>b(e,p(t)),resolve:(e,t,n)=>x(e,t,e=>{let t=n(e);return t instanceof Promise?t.then(e=>p(e)):p(t)})},_({execJobFunction:g,startWorkflow:v,resumeWorkflowExecution:y,wait:b,resolve:x,job(e){let t=l.get(e);if(t)return t;let{mock:n,scoped:r}=replaceStart(e);return m.add(r),l.set(e,n),n},workflow(e){let t=u.get(e);if(t)return t;let{mock:n,scoped:r}=replaceStart(e);return u.set(e,n),m.add(r),n},waitPoint(e){let t=d.get(e);if(t)return t;let n=replaceProcedure(e,`wait`,e.wait),r=replaceProcedure(e,`resolve`,e.resolve),i=n.mock,a=r.mock;m.add(n.scoped),m.add(r.scoped);let o={wait:i,resolve:a,setResolvePayload(e){a.mockImplementation(async(t,n)=>{let r=await n(p(e));p(r)})}};return d.set(e,o),o},waitPointWith(e,t){let r=n(e.with(t));if(r===void 0)throw Error(`waitPointWith expects a wait point declared with $params. Use waitPoint() for a wait point with a fixed key.`);let i=installKeyDispatcher(e),a=i.perKey.get(r);if(a)return a;let o=R.fn(e=>Promise.resolve(i.originalWait(r,e))),s=R.fn((e,t)=>i.originalResolve(r,e,t)),c={wait:o,resolve:s,setResolvePayload(e){s.mockImplementation(async(t,n)=>{let r=await n(p(e));p(r)})}};return i.perKey.set(r,c),c},setJobHandler(e){g.mockImplementation((t,n,r)=>e(t,n,r))},enqueueResult(e){g.mockImplementationOnce(()=>e)},enqueueResults(...e){for(let t of e)g.mockImplementationOnce(()=>t)},get startedJobs(){return g.mock.calls.map(([e,t,n])=>({jobName:e,args:t,...n!==void 0&&{options:n}}))},setStartHandler(e){v.mockImplementation(typeof e==`function`?async(t,n,r)=>e(t,n,r):async()=>e)},setResumeHandler(e){y.mockImplementation(typeof e==`function`?async t=>e(t):async()=>e)},setWaitHandler:e=>{b.mockImplementation(typeof e==`function`?(t,n)=>e(t,n):()=>e)},setEnv(e){s({...e})},setResolveHandler(e){x.mockImplementation(async(t,n,r)=>{await e(t,n,r)})},get waitCalls(){return b.mock.calls.map(([e,t])=>({key:e,payload:t}))},get resolveCalls(){return x.mock.calls.map(([e,t])=>({executionId:e,key:t}))},clear(){g.mockClear(),v.mockClear(),y.mockClear(),b.mockClear(),x.mockClear();for(let e of m)e.mockClear()},reset(){g.mockReset(),g.mockImplementation(defaultExecJob),v.mockReset(),v.mockImplementation(defaultStartWorkflow),y.mockReset(),y.mockImplementation(defaultResumeWorkflowExecution),b.mockReset(),b.mockImplementation(()=>null),x.mockReset(),x.mockImplementation(async()=>{});for(let e of m)e.mockReset();o()}},()=>{for(let e of m)e.restore();e.workflow=a,c===void 0?o():s(c)})}const toPlainDate=(e,t)=>e instanceof Date?new t.PlainDate(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):typeof e==`string`?t.PlainDate.from(e):e,toInstant=(e,t)=>e instanceof Date?t.Instant.fromEpochMilliseconds(e.getTime()):typeof e==`string`?t.Instant.fromEpochMilliseconds(t.Instant.from(e).epochMilliseconds):e,toPlainTime=(e,t)=>typeof e==`string`?t.PlainTime.from(e).round({smallestUnit:`minute`,roundingMode:`trunc`}):e;function parseArrayLiteral(e){let t=e.slice(1,-1);return t===``?[]:t.split(`,`).map(e=>e===`NULL`?null:e.startsWith(`"`)?e.slice(1,-1):e)}const eachElement=e=>(t,n)=>{let r=typeof t==`string`&&t.startsWith(`{`)?parseArrayLiteral(t):t;return Array.isArray(r)?r.map(t=>t===null?null:e(t,n)):r},ce={1082:toPlainDate,1184:toInstant,1083:toPlainTime,1182:eachElement(toPlainDate),1185:eachElement(toInstant),1183:eachElement(toPlainTime)};function hostTemporal(){return globalThis.Temporal}function serializeValue(e,t){if(e instanceof t.PlainDate)return e.toString({calendarName:`never`});if(e instanceof t.PlainTime)return`${String(e.hour).padStart(2,`0`)}:${String(e.minute).padStart(2,`0`)}`;if(e instanceof t.Instant)return t.Instant.fromEpochMilliseconds(e.epochMilliseconds).toString();if(Array.isArray(e))return e.map(e=>serializeValue(e,t));if(typeof e==`object`&&e){let n=Object.getPrototypeOf(e);if(n===Object.prototype||n===null)return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,serializeValue(n,t)]))}return e}function serializeTemporalParams(e){let t=hostTemporal();return t?e.map(e=>serializeValue(e,t)):[...e]}function deserializeTemporalRows(e,t=[]){let n=t.flatMap(({name:e,dataTypeID:t})=>{let n=ce[t];return n?[{name:e,convert:n}]:[]});if(n.length===0)return e;let r=hostTemporal();if(!r)throw ReferenceError(`Temporal is unavailable. Use the SDK tailor-runtime Vitest environment to read Temporal values from PGlite.`);return e.map(e=>{let t={...e};for(let{name:e,convert:i}of n)t[e]=i(t[e],r);return t})}var TransactionLock=class{#e=null;#t=[];holds(e){return this.#e===e}async acquire(e){for(;this.#e!==null;)await new Promise(e=>this.#t.push(e));this.#e=e}release(e){this.#e===e&&(this.#e=null,this.#t.shift()?.())}};const le=/^\s*(?:begin|start\s+transaction)\b/i,ue=/^\s*(?:commit\b|rollback\b(?!(?:\s+(?:work|transaction))?\s+to\b))/i;function toQueryObjectResult(e,t){return{command:e.command??(e.affectedRows?`UPDATE`:`SELECT`),rowCount:e.rowCount??(e.affectedRows||e.rows.length),rows:t?deserializeTemporalRows(e.rows,e.fields):e.rows}}function mockTailordbWithPGlite(e){let t=m(),n=t.Client,r=[],i=[],a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set,assertNoOpenTransaction=e=>{if(o.size>0)throw Error(`mockTailordbWithPGlite: ${e}() cannot run while a transaction is open; commit, roll back, or end() its client first`)},defaultClient=function(t){let n=t?.namespace,s=t?.temporal??!1,c=n!==void 0&&Object.hasOwn(e.namespaces,n)?e.namespaces[n]:void 0;if(n===void 0||!c)throw Error(`mockTailordbWithPGlite: no PGlite instance registered for namespace "${n}"`);let l=a.get(c)??new TransactionLock;a.set(c,l);let u={namespace:n,ended:!1};i.push(u);let d=this,run=async(e,t)=>(r.push({namespace:n,query:e,params:t??[]}),toQueryObjectResult(await c.query(e,serializeTemporalParams(t??[])),s)),throwEnded=()=>{throw Error(`mockTailordbWithPGlite: query after end() on this client`)},acquire=async()=>{await l.acquire(d),u.ended&&(l.release(d),throwEnded())},queryObject=async(e,t)=>{if(u.ended&&throwEnded(),le.test(e)){if(l.holds(d))throw Error(`mockTailordbWithPGlite: transaction already open on this client — run nested statements on the transaction callback's trx`);await acquire();try{let n=await run(e,t);return o.add(u),n}catch(e){throw l.release(d),e}}if(ue.test(e)){if(l.holds(d))try{return await run(e,t)}finally{o.delete(u),l.release(d)}await acquire();try{return await run(e,t)}finally{l.release(d)}}if(l.holds(d))return await run(e,t);await acquire();try{return await run(e,t)}finally{l.release(d)}};this.connect=async()=>{},this.end=async()=>{if(u.ended=!0,l.holds(d))try{await run(`rollback`)}finally{o.delete(u),l.release(d)}},this.queryObject=queryObject,this.createTransaction=e=>{if(!e)throw Error(`Transaction name must be a non-empty string`);return{begin:()=>queryObject(`begin`),commit:()=>queryObject(`commit`),rollback:()=>queryObject(`rollback`),queryObject}}},s=R.fn(defaultClient);return t.Client=s,_({Client:s,get executedQueries(){return r},get createdClients(){return i},clear(){assertNoOpenTransaction(`clear`),s.mockClear(),r.length=0,i.length=0},reset(){assertNoOpenTransaction(`reset`),s.mockReset(),s.mockImplementation(defaultClient),r.length=0,i.length=0}},()=>{t.Client=n})}var PendingStart=class{jobName;args;constructor(e,t){this.jobName=e,this.args=t}};async function runWorkflowLocally(e,t,n){let i=globalThis,a=i.tailor,c=r(),l=c!==void 0,u=createLocalJobRunner();n?.env!==void 0&&s({...n.env}),i.tailor={...a,workflow:createLocalWorkflowRuntime(a?.workflow,u.execJobFunction)};try{return await u.runJob(e.mainJob.name,t)}finally{a?i.tailor=a:delete i.tailor,n?.env!==void 0&&(l?s(c):o())}}function createLocalJobRunner(){let t,execJobFunction=(e,n)=>{if(!t)throw Error(`Cannot start workflow job "${e}" outside runWorkflowLocally() job execution.`);if(t.pending)throw t.pending;let r=p(n),i=t.cursor;t.cursor+=1;let a=t.records[i];if(a){if(assertSameStart(a,e,r),a.status===`rejected`)throw a.error;return p(a.result)}let o=new PendingStart(e,r);throw t.pending=o,o},runJob=async(n,r)=>{let i=e(n);if(!i)return null;let o=[];for(;;){let e={records:o,cursor:0},s=t;t=e;try{let t=await i(p(r),a());if(e.pending){await settlePendingStart(o,e.pending,runJob);continue}if(e.cursor!==o.length)throw Error(`Workflow job start sequence changed while replaying "${n}". Expected ${o.length} start(s), but replay reached ${e.cursor}.`);return p(t)}catch(t){let n=t instanceof PendingStart?t:e.pending;if(n){await settlePendingStart(o,n,runJob);continue}throw t}finally{t=s}}};return{runJob,execJobFunction}}async function settlePendingStart(e,t,n){try{e.push({jobName:t.jobName,args:t.args,status:`fulfilled`,result:await n(t.jobName,t.args)})}catch(n){e.push({jobName:t.jobName,args:t.args,status:`rejected`,error:n})}}function assertSameStart(e,t,n){if(e.jobName!==t||JSON.stringify(e.args)!==JSON.stringify(n))throw Error(`Workflow job start sequence changed while replaying. Expected ${e.jobName}(${JSON.stringify(e.args)}), but got ${t}(${JSON.stringify(n)}).`)}function createLocalWorkflowRuntime(e,n){return{execJobFunction:n,startWorkflow:async(n,r,i)=>e?await e.startWorkflow(n,r,i):(p(r),t),resumeWorkflowExecution:async t=>e?await e.resumeWorkflowExecution(t):t,wait:(t,n)=>{if(e)return e.wait(t,n);throw Error(`No wait handler for "${t}". Acquire mockWorkflow() and call setWaitHandler(...).`)},resolve:async(t,n,r)=>{if(e)await e.resolve(t,n,r);else throw Error(`No resolve handler. Acquire mockWorkflow() and call setResolveHandler(...).`)}}}function unwrapValue(e){return ie.is(e)?e.value:e}function insertRows(e){if(!D.is(e))throw Error(`insertRows: expected InsertQueryNode, got ${e.kind}`);let t=e.columns,n=e.values;if(t===void 0||n===void 0||!N.is(n))throw Error(`insertRows: unsupported insert shape; inspect query.node instead`);return n.values.map(e=>{if(!j.is(e)&&!re.is(e))throw Error(`insertRows: unsupported insert shape; inspect query.node instead`);let n=j.is(e)?e.values:e.values.map(unwrapValue),r={};return t.forEach((e,t)=>{r[e.column.name]=n[t]}),r})}function insertValues(e){let t=insertRows(e);if(t.length!==1)throw Error(`insertValues: query inserts ${t.length} rows; use insertRows() for multi-row inserts`);return c(t[0],`insertValues: first row missing`)}function updateValues(e){if(!ne.is(e))throw Error(`updateValues: expected UpdateQueryNode, got ${e.kind}`);if(e.updates===void 0)throw Error(`updateValues: unsupported update shape; inspect query.node instead`);let t={};for(let n of e.updates){let e=n.column,r=T.is(e)?e.column.name:M.is(e)&&T.is(e.column)?e.column.column.name:void 0;if(r===void 0)throw Error(`updateValues: unsupported update shape; inspect query.node instead`);t[r]=unwrapValue(n.value)}return t}function toExecutedQuery(e){let t=e.query;return{kind:t.kind,sql:e.sql,parameters:e.parameters,node:t,insertRows:()=>insertRows(t),insertValues:()=>insertValues(t),updateValues:()=>updateValues(t)}}function toStagedResult(e){return Array.isArray(e)?{rows:e,numAffectedRows:void 0}:{rows:e.rows??[],numAffectedRows:e.numAffectedRows===void 0?void 0:BigInt(e.numAffectedRows)}}var MockState=class{executed=[];queue=[];resolver;enqueue(...e){this.queue.push(...e)}setResolver(e){this.resolver=e}next(e){let t=this.resolver?.(e);if(t!==void 0)return toStagedResult(t);let n=this.queue.shift();return n===void 0?{rows:[],numAffectedRows:void 0}:toStagedResult(n)}reset(){this.executed.length=0,this.queue.length=0,this.resolver=void 0}},MockConnection=class{state;constructor(e){this.state=e}async executeQuery(e){let t=toExecutedQuery(e);this.state.executed.push(t);let{rows:n,numAffectedRows:r}=this.state.next(t);return{rows:n,numAffectedRows:r??BigInt(n.length)}}streamQuery(){throw Error(`createKyselyMock: streaming is not supported`)}},MockDriver=class{state;constructor(e){this.state=e}async init(){}async acquireConnection(){return new MockConnection(this.state)}async beginTransaction(){}async commitTransaction(){}async rollbackTransaction(){}async releaseConnection(){}async destroy(){}};function byKind(e,t){return e.executed.filter(e=>e.kind===t)}function createKyselyMock(){let e=new MockState,t=new O({dialect:{createDriver:()=>new MockDriver(e),createQueryCompiler:()=>new A,createAdapter:()=>new te,createIntrospector:e=>new k(e)}});return{db:t,get executedQueries(){return e.executed},get selects(){return byKind(e,`SelectQueryNode`)},get inserts(){return byKind(e,`InsertQueryNode`)},get updates(){return byKind(e,`UpdateQueryNode`)},get deletes(){return byKind(e,`DeleteQueryNode`)},enqueueResult:t=>e.enqueue(t),enqueueResults:(...t)=>e.enqueue(...t),setQueryResolver:t=>e.setResolver(t),withTx:e=>t.transaction().execute(e),reset:()=>e.reset(),[Symbol.dispose]:()=>e.reset()}}var PGliteConnection=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t}async executeQuery(e){let t=await this.#e.query(e.sql,serializeTemporalParams(e.parameters));return{rows:this.#t?deserializeTemporalRows(t.rows,t.fields):t.rows,numAffectedRows:BigInt(t.affectedRows??0)}}streamQuery(){throw Error(`createKyselyPGlite: streaming is not supported`)}},PGliteDriver=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t}async init(){}async acquireConnection(){return new PGliteConnection(this.#e,this.#t)}async beginTransaction(e,t){let n=t.isolationLevel?[`start transaction`,`isolation level ${t.isolationLevel}`]:[`begin`];t.accessMode&&n.push(t.accessMode),await e.executeQuery(E.raw(n.join(` `)))}async commitTransaction(e){await e.executeQuery(E.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(E.raw(`rollback`))}async releaseConnection(){}async destroy(){await this.#e.close()}};function createKyselyPGlite(e,t={}){let n=t.temporal??!1;return new O({dialect:{createAdapter:()=>new ee,createDriver:()=>new PGliteDriver(e,n),createIntrospector:e=>new k(e),createQueryCompiler:()=>new A}})}const Q=`session_replication_role`,$=/* @__PURE__ */ new WeakMap;function setReplicationRole(e,t){return e.query(`SELECT set_config($1, $2, false)`,[Q,t])}async function uncheckRelations(e){let t=(await e.query(`SHOW ${Q}`)).rows[0]?.[Q];return await setReplicationRole(e,`replica`),typeof t==`string`?t:`origin`}async function prepareFixtures(e,t){let n=$.get(e)??{active:0,previous:uncheckRelations(e)};n.active+=1,$.set(e,n);let r;try{return r=await n.previous,await t()}finally{--n.active,n.active===0&&($.delete(e),r!==void 0&&await setReplicationRole(e,r))}}var MigrationStepError=class extends Error{step;completedSteps;constructor(e,t,n){super(`Migration step "${e}" failed: ${n instanceof Error?n.message:String(n)}`,{cause:n}),this.name=`MigrationStepError`,this.step=e,this.completedSteps=t}};async function runMigrationSteps(e,t){let n=d(Object.entries(e).map(([e,t])=>({name:e,dependsOn:t.dependsOn??[]}))),r=[];for(let i of n){let n=c(e[i],`Migration step "${i}" is not defined.`),a={env:structuredClone(t.env??{})};try{await t.transaction(e=>n.run(e,a))}catch(e){throw new MigrationStepError(i,[...r],e)}r.push(i)}return r}function tailorRuntime(e){return[createBlockPlugin(),createEnvironmentPlugin(e)]}export{MigrationStepError,g as applyDateRepresentation,createKyselyMock,createKyselyPGlite,mockAigateway,mockAuthconnection,mockFile,mockIconv,mockIdp,mockLogger,v as mockSecretmanager,mockTailordb,mockTailordbWithPGlite,mockWorkflow,prepareFixtures,runMigrationSteps,runWorkflowLocally,tailorRuntime};
1
+ import{i as e,t}from"../registry-BijIDRVA.mjs";import{a as n,c as r,i,o as a,s as o,u as s}from"../wait-point-invoker-eiP-IIux.mjs";import{t as c}from"../assert-WeXvmG4j.mjs";import{n as l,r as u}from"../node-builtins-DYfhPBnz.mjs";import{t as d}from"../syntax-diagnostic-BQgOV8Fz.mjs";import{n as f,r as p}from"../migration-steps-C6F3zNdQ.mjs";import{t as m}from"../platform-serialize-DkiTdHOt.mjs";import{a as h,i as g,n as _,o as v,r as y}from"../date-representation-Cr7W7Pn2.mjs";import*as b from"node:module";import{createRequire as x}from"node:module";import{isEqual as ee}from"es-toolkit";import{existsSync as te}from"node:fs";import{fileURLToPath as S,pathToFileURL as C}from"node:url";import{ColumnNode as w,CompiledQuery as T,InsertQueryNode as ne,Kysely as E,PGliteAdapter as re,PostgresAdapter as D,PostgresIntrospector as O,PostgresQueryCompiler as k,PrimitiveValueListNode as A,ReferenceNode as j,UpdateQueryNode as ie,ValueListNode as M,ValueNode as N,ValuesNode as P}from"kysely";import{dirname as F,isAbsolute as I,matchesGlob as ae,relative as L,resolve as R}from"node:path";import{vi as z}from"vitest";function isBlockedModule(e){return u(e)}function getBlockedMessage(e){return l(e)}function dateDefaultFromConfig(e){let t=e&&typeof e==`object`?e.default:void 0,n=t&&typeof t==`object`?t.defaultDateRepresentation:void 0;if(n===void 0)return`legacy`;if(n===`temporal`||n===`date`)return n;throw Error(`defaultDateRepresentation must be "temporal", "date", or omitted, but tailor.config.ts sets ${JSON.stringify(n)}.`)}let B=Promise.resolve();function serialize(e){let t=B.then(e,e);return B=t.catch(()=>void 0),t}async function importLikeCli(e){let t=C(e).href,n=p();try{if(`Bun`in globalThis||`Deno`in globalThis)return await import(t);let{resolveSync:e,loadSync:n}=await import(C(R(F(S(import.meta.url)),`../cli/ts-hook.mjs`)).href),r=b.registerHooks({resolve:e,load:n});try{return await import(t)}finally{r.deregister?.()}}finally{n()}}function isSourceParseError(e){return typeof e==`object`&&!!e&&e.code===`InvalidSyntax`}function describeError(e){return e instanceof Error?e.message:String(e)}function describeParseError(e,t){if(!d(e))return`${t}: ${describeError(e)}`;let{message:n,filename:r,startLine:i}=e;return`${r}${i===void 0?``:`:${i}`}: ${n}`}async function loadDateDefaultFromConfig(e){if(!te(e))throw Error(`tailor-runtime: tailor.config.ts not found at ${e}. Check the \`config\` option of tailorRuntime().`);let t;try{t=await serialize(()=>importLikeCli(e))}catch(t){if(isSourceParseError(t))throw Error(`tailor-runtime could not parse ${describeParseError(t,e)}`,{cause:t});return console.warn(`tailor-runtime could not load ${e} to read defaultDateRepresentation; t date fields use string values in this run. If the config sets "temporal" or "date", tests disagree with tailor.d.ts until the error is fixed: ${describeError(t)}`),`legacy`}return dateDefaultFromConfig(t)}const V=[`**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}`],H=/* @__PURE__ */ new Set([`ImportDeclaration`,`ExportNamedDeclaration`,`ExportAllDeclaration`]),U=/* @__PURE__ */ new Set(/* @__PURE__ */ `break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.export.extends.false.finally.for.function.if.import.in.instanceof.new.null.return.super.switch.this.throw.true.try.typeof.var.void.while.with.yield.let.static.implements.interface.package.private.protected.public.await.arguments.eval`.split(`.`)),W=/^[A-Za-z_$]/,G=/^[A-Za-z0-9_$]*$/;function isSafeBindingName(e){if(U.has(e)||e.length===0)return!1;let t=e[0];return t!==void 0&&W.test(t)&&G.test(e.slice(1))}function buildBlockedReplacement(e,t){let n=JSON.stringify(t),r=`throw new Error(${n});`,i=`(() => { throw new Error(${n}); })()`;if(e.type===`ExportNamedDeclaration`){let t=e.specifiers??[],n=[];for(let e of t){let t=e.exported?.name;if(typeof t==`string`){if(t==="default")n.push(`export default ${i};`);else{if(!isSafeBindingName(t))return r;n.push(`export const ${t} = ${i};`)}}}return n.length>0?n.join(` `):r}if(e.type===`ExportAllDeclaration`){let t=e.exported?.name;return typeof t==`string`&&isSafeBindingName(t)?`export const ${t} = ${i};`:r}return r}const toFileList=e=>Array.isArray(e)?e:e?[e]:[];let K;function supportsDefaultProjectInheritance(){if(K===void 0)try{let{version:e}=x(import.meta.url)(`vitest/package.json`);K=Number.parseInt(e,10)>=5}catch{K=!1}return K}function createBlockPlugin(){let isTestFile=()=>!1,isUserSourceFile=()=>!1;return{name:`tailor-runtime-block-node`,configResolved(e){let t=e.test,n=t?.root??e.root,toAbsolutePaths=(e,t)=>toFileList(e).map(e=>R(t,e)),r=/* @__PURE__ */ new Set([...toAbsolutePaths(t?.setupFiles,n),...toAbsolutePaths(t?.globalSetup,n)]),i=[{root:n,patterns:t?.include??V}];for(let e of t?.projects??[]){let t=e.test;if(!t)continue;let a=t.root??n;for(let e of toAbsolutePaths(t.setupFiles,a))r.add(e);for(let e of toAbsolutePaths(t.globalSetup,a))r.add(e);i.push({root:a,patterns:t.include??V})}isTestFile=e=>r.has(e)?!0:i.some(({root:t,patterns:n})=>{let r=I(e)?L(t,e):e;return n.some(e=>ae(r,e))}),isUserSourceFile=e=>{if(!I(e))return!1;let t=L(n,e);return t!==``&&!t.startsWith(`..`)&&!I(t)}},transform(e,t){let n=t.search(/[?#]/),r=n===-1?t:t.slice(0,n);if(isTestFile(r)||r.includes(`node_modules`)||!isUserSourceFile(r))return;let i;try{i=this.parse(e)}catch{return}let a=[];for(let e of i.body){if(!H.has(e.type))continue;let t=e.source?.value;typeof t==`string`&&isBlockedModule(t)&&a.push({start:e.start,end:e.end,replacement:buildBlockedReplacement(e,getBlockedMessage(t))})}if(a.length===0)return;let o=e;for(let e of a.toSorted((e,t)=>t.start-e.start))o=o.slice(0,e.start)+e.replacement+o.slice(e.end);return{code:o,map:null}}}}function setConfigEnv(e,t,n){e.env={...e.env,__TAILOR_RUNTIME_CONFIG:t,__TAILOR_RUNTIME_DATE_DEFAULT:n}}function createEnvironmentPlugin(e,t=loadDateDefaultFromConfig){let n=F(S(import.meta.url)),r=R(n,`environment.mjs`),i=R(n,`setup.mjs`),a=/* @__PURE__ */ new Map,dateDefaultOf=e=>{let n=a.get(e);return n||(n=t(e),a.set(e,n)),n},selectsTailorRuntime=e=>e===`tailor-runtime`||e===r;return{name:`tailor-runtime-environment`,async config(t){let n=t.test,a=!!n&&selectsTailorRuntime(n.environment);if(n&&a&&(n.environment=r),n?.projects)for(let o of n.projects){if(typeof o==`string`)continue;let n=o.test??={};if(!(n.environment===void 0&&a&&(o.extends===!0||o.extends===void 0&&supportsDefaultProjectInheritance()))&&!selectsTailorRuntime(n.environment)){e?.config&&setConfigEnv(n,``,``);continue}n.environment=r;let s=toFileList(n.setupFiles);if(s.includes(i)||(n.setupFiles=[...s,i]),e?.config){let r=o.root??n.root??t.root??process.cwd(),i=R(r,e.config);setConfigEnv(n,i,await dateDefaultOf(i))}}if(e?.config&&n){let r=n.root??t.root??process.cwd(),i=a?R(r,e.config):``;setConfigEnv(n,i,i?await dateDefaultOf(i):``)}let o=toFileList(n?.setupFiles);return n&&typeof n.setupFiles==`string`&&(n.setupFiles=o),!a||o.includes(i)?{}:{test:{setupFiles:[i]}}}}}function mockAigateway(e={}){let t=g(),n=t.aigateway,r={...e.urls};async function defaultGet(e){let t=r[e];if(t===void 0)throw Error(`No AI Gateway registered for "${e}". Acquire mockAigateway() and call setUrls(...).`);return{url:t}}let i=z.fn(defaultGet);return t.aigateway={get:i},v({get:i,setUrls(e){r=e},setUrl(e,t){r={...r,[e]:t}},get calls(){return i.mock.calls.map(([e])=>({name:e}))},clear(){i.mockClear()},reset(){r={},i.mockReset(),i.mockImplementation(defaultGet)}},()=>{t.aigateway=n})}function mockAuthconnection(e={}){let t=g(),n=t.authconnection,r={...e.tokens};async function defaultGetConnectionToken(t){let n=r[t];if(n)return n;if(e.onUnhandled===`error`)throw Error(`No AuthConnection token configured for "${t}"`);return{access_token:`mock-token`}}let i=z.fn(defaultGetConnectionToken);return t.authconnection={getConnectionToken:i},v({getConnectionToken:i,setTokens(e){r=e},setToken(e,t){r={...r,[e]:t}},get calls(){return i.mock.calls.map(([e])=>({connectionName:e}))},clear(){i.mockClear()},reset(){r={},i.mockReset(),i.mockImplementation(defaultGetConnectionToken)}},()=>{t.authconnection=n})}const q=[`upload`,`download`,`downloadAsBase64`,`delete`,`getMetadata`,`downloadStream`,`uploadStream`],oe={upload:{metadata:{fileSize:0,sha256sum:``}},download:{data:/* @__PURE__ */ new Uint8Array,metadata:{contentType:``,fileSize:0,sha256sum:``,lastUploadedAt:``}},downloadAsBase64:{data:``,metadata:{contentType:``,fileSize:0,sha256sum:``,lastUploadedAt:``}},getMetadata:{contentType:``,fileSize:0,sha256sum:``,urlPath:``},downloadStream:null,uploadStream:{metadata:{fileSize:0,sha256sum:``}}};function mockFile(e={}){let t=h(),n=t.file,{onUnhandled:r=`fallback`}=e,i=[],a=[],resolver=()=>null;function handle(e,t,n,a,o){if(i.length>0)return i.shift();let s=resolver(e,{method:e,namespace:t,tableName:n,fieldName:a,recordId:o});if(s!=null)return s;if(r===`error`)throw Error(`No File mock configured for "${e}"`);let c=oe[e];return c===void 0?void 0:structuredClone(c)}let o=z.fn(async(...e)=>{let[t,n,r,i]=e;return handle(`upload`,t,n,r,i)}),s=z.fn(async(...e)=>handle(`download`,...e)),c=z.fn(async(...e)=>handle(`downloadAsBase64`,...e)),l=z.fn(async(...e)=>{handle(`delete`,...e)}),u=z.fn(async(...e)=>handle(`getMetadata`,...e)),d=z.fn(async(...e)=>handle(`downloadStream`,...e)??{body:new ReadableStream({start(e){e.close()}}),metadata:{contentType:``,fileSize:0,sha256sum:``,lastUploadedAt:``}}),f=z.fn(async(...e)=>{let[t,n,r,i]=e;return handle(`uploadStream`,t,n,r,i)}),p={upload:o,download:s,downloadAsBase64:c,delete:l,getMetadata:u,downloadStream:d,uploadStream:f};function track(e,t){return function(...n){return a.push({method:e,namespace:n[0],tableName:n[1],fieldName:n[2],recordId:n[3]}),t.apply(this,n)}}t.file={upload:track(`upload`,o),download:track(`download`,s),downloadAsBase64:track(`downloadAsBase64`,c),delete:track(`delete`,l),getMetadata:track(`getMetadata`,u),downloadStream:track(`downloadStream`,d),uploadStream:track(`uploadStream`,f)};function allMocks(){return q.map(e=>p[e])}let m={...p,setResolver(e){resolver=e},enqueueResult(e){i.push(e)},enqueueResults(...e){i.push(...e)},get calls(){return a},clear(){a.length=0;for(let e of allMocks())e.mockClear()},reset(){i.length=0,a.length=0,resolver=()=>null;for(let e of allMocks())e.mockReset()}};return v(m,()=>{t.file=n})}function isUtf8(e){return e===`UTF8`||e===`UTF-8`}function defaultIconvResult(e,t){switch(e){case`convert`:case`convertBuffer`:return isUtf8(t[2])?``:/* @__PURE__ */ new Uint8Array;case`decode`:return``;case`encode`:return isUtf8(t[1])?``:/* @__PURE__ */ new Uint8Array;case`encodings`:return[]}}function mockIconv(e={}){let t=g(),n=t.iconv,r=null,i=[];function resolve(t,n){if(r){let e=r(t,n);if(e!=null)return e}if(e.onUnhandled===`error`)throw Error(`No Iconv mock behavior configured for "${t}"`);return defaultIconvResult(t,n)}function defaultConvert(e,t,n){return resolve(`convert`,[e,t,n])}function defaultConvertBuffer(e,t,n){return resolve(`convertBuffer`,[e,t,n])}function defaultDecode(e,t){return resolve(`decode`,[e,t])}function defaultEncode(e,t){return resolve(`encode`,[e,t])}function defaultEncodings(){return resolve(`encodings`,[])}let a=z.fn(defaultConvert),o=z.fn(defaultConvertBuffer),s=z.fn(defaultDecode),c=z.fn(defaultEncode),l=z.fn(defaultEncodings);function track(e,t){return function(...n){return i.push({method:e,args:[...n]}),t.apply(this,n)}}let u=track(`convert`,a),d=track(`convertBuffer`,o),f=track(`decode`,s),p=track(`encode`,c),m=track(`encodings`,l);class MockIconv{#e;#t;constructor(e,t){this.#e=e,this.#t=t}convert(e){return u.call(this,e,this.#e,this.#t)}}t.iconv={convert:u,convertBuffer:d,decode:f,encode:p,encodings:m,Iconv:MockIconv};function clear(){i.length=0,a.mockClear(),o.mockClear(),s.mockClear(),c.mockClear(),l.mockClear()}return v({convert:a,convertBuffer:o,decode:s,encode:c,encodings:l,setResolver(e){r=e},get calls(){return i},clear,reset(){r=null,i.length=0,a.mockReset(),a.mockImplementation(defaultConvert),o.mockReset(),o.mockImplementation(defaultConvertBuffer),s.mockReset(),s.mockImplementation(defaultDecode),c.mockReset(),c.mockImplementation(defaultEncode),l.mockReset(),l.mockImplementation(defaultEncodings)}},()=>{t.iconv=n})}const se=[`users`,`user`,`userByName`,`createUser`,`updateUser`,`deleteUser`,`sendPasswordResetEmail`,`unenrollMfa`],J={id:`mock-id`,name:`mock-user`,disabled:!1,mfaEnrolled:!1,mfaFactorIds:[],passwordUpdatedAt:null},ce={users:{users:[],nextPageToken:null,totalCount:0},user:J,userByName:J,createUser:J,updateUser:J,deleteUser:!0,sendPasswordResetEmail:!0,unenrollMfa:!0};function mockIdp(e={}){let t=g(),n=t.idp,{onUnhandled:r=`fallback`}=e,i=[],a=[],resolver=()=>null,o=/* @__PURE__ */ new Map;function compatibilityArgs(e,t){return e===`users`&&t.length===0?[void 0]:t}function handle(e,t,n){if(i.length>0)return i.shift();let a=resolver(e,compatibilityArgs(e,t),n);if(a!=null)return a;if(r===`error`)throw Error(`No IdP mock configured for "${n}.${e}"`);return structuredClone(ce[e])}function createNamespaceMocks(e){return{users:z.fn(async(...t)=>handle(`users`,t,e)),user:z.fn(async(...t)=>handle(`user`,t,e)),userByName:z.fn(async(...t)=>handle(`userByName`,t,e)),createUser:z.fn(async(...t)=>handle(`createUser`,t,e)),updateUser:z.fn(async(...t)=>handle(`updateUser`,t,e)),deleteUser:z.fn(async(...t)=>handle(`deleteUser`,t,e)),sendPasswordResetEmail:z.fn(async(...t)=>handle(`sendPasswordResetEmail`,t,e)),unenrollMfa:z.fn(async(...t)=>handle(`unenrollMfa`,t,e))}}function namespace(e){let t=o.get(e);if(t)return t;let n=createNamespaceMocks(e);return o.set(e,n),n}function track(e,t,n){return function(...r){return a.push({method:e,args:[...compatibilityArgs(e,r)],namespace:n}),t.apply(this,r)}}let defaultClient=function(e){let t=namespace(e.namespace);this.users=track(`users`,t.users,e.namespace),this.user=track(`user`,t.user,e.namespace),this.userByName=track(`userByName`,t.userByName,e.namespace),this.createUser=track(`createUser`,t.createUser,e.namespace),this.updateUser=track(`updateUser`,t.updateUser,e.namespace),this.deleteUser=track(`deleteUser`,t.deleteUser,e.namespace),this.sendPasswordResetEmail=track(`sendPasswordResetEmail`,t.sendPasswordResetEmail,e.namespace),this.unenrollMfa=track(`unenrollMfa`,t.unenrollMfa,e.namespace)},s=z.fn(defaultClient);t.idp={Client:s};function allMocks(){return[...o.values()].flatMap(e=>se.map(t=>e[t]))}return v({Client:s,namespace,setResolver(e){resolver=e},enqueueResult(e){i.push(e)},enqueueResults(...e){i.push(...e)},get calls(){return a},clear(){a.length=0,s.mockClear();for(let e of allMocks())e.mockClear()},reset(){i.length=0,a.length=0,resolver=()=>null,s.mockReset(),s.mockImplementation(defaultClient);for(let e of allMocks())e.mockReset()}},()=>{t.idp=n})}function mockLogger(e={}){let t=g(),n=t.logger,r=z.fn((e,t)=>{}),i=z.fn((e,t)=>{}),a=z.fn((e,t)=>{}),o=z.fn((e,t)=>{}),s=z.fn(e=>{});t.logger={debug:r,info:i,warn:a,error:o,setAttributes:s};let c={debug:r,info:i,warn:a,error:o};return v({debug:r,info:i,warn:a,error:o,setAttributes:s,get calls(){return Object.entries(c).flatMap(([e,t])=>t.mock.calls.map((n,r)=>({order:t.mock.invocationCallOrder[r]??0,call:{severity:e,message:n[0],attributes:n[1]}}))).toSorted((e,t)=>e.order-t.order).map(e=>e.call)},clear(){r.mockClear(),i.mockClear(),a.mockClear(),o.mockClear(),s.mockClear()},reset(){r.mockReset(),i.mockReset(),a.mockReset(),o.mockReset(),s.mockReset()}},()=>{t.logger=n})}function testRegex(e,t){let n=e.lastIndex;e.lastIndex=0;try{return e.test(t)}finally{e.lastIndex=n}}var MockQueryResult=class{command;rowCount;rows;constructor(e){this.command=``,this.rowCount=e.length,this.rows=e}};function mockTailordb(e={}){let t=h(),n=t.Client,r=[],i;function matchesQuery(e,t,n){if(typeof e==`function`)return e(t,n);if(typeof e==`string`)return t===e;if(e instanceof RegExp)return testRegex(e,t);let r;if(r=typeof e.sql==`string`?t===e.sql:testRegex(e.sql,t),!r||e.params===void 0)return r;if(typeof e.params==`function`)return e.params(n);let i=e.params;return n.length===i.length&&n.every((e,t)=>ee(e,i[t]))}function queryResponse(e){if(e.type===`error`)throw e.error;return new MockQueryResult(e.rows)}async function defaultQuery(t,n=[]){for(let e=r.length-1;e>=0;--e){let i=r[e];if(!i||!matchesQuery(i.matcher,t,n))continue;let a=i.once.shift();if(a)return queryResponse(a);if(i.fallback)return queryResponse(i.fallback)}if(i)return new MockQueryResult(i(t,n)??[]);if(e.onUnhandled===`error`)throw Error(`No TailorDB query behavior matched: ${t}`);return new MockQueryResult([])}let a=z.fn(defaultQuery),defaultConnect=async()=>{},o=z.fn(defaultConnect),s=[];function enqueueRowsList(e){for(let t of e)a.mockImplementationOnce(async()=>new MockQueryResult(t))}let defaultClient=function(e){let t={namespace:e?.namespace,ended:!1};s.push(t),this.connect=o,this.end=z.fn(async()=>{t.ended=!0}),this.queryObject=a,this.createTransaction=e=>{if(!e)throw Error(`Transaction name must be a non-empty string`);return{begin:async()=>{},commit:async()=>{},rollback:async()=>{},queryObject:a}}},c=z.fn(defaultClient);return t.Client=c,v({Client:c,queryObject:a,setQueryResolver(e){i=e,a.mockImplementation(defaultQuery)},onQuery(e){let t={matcher:e,once:[]};r.push(t);let n={returnsRows(e){return t.fallback={type:`rows`,rows:e},n},returnsRowsOnce(e){return t.once.push({type:`rows`,rows:e}),n},rejects(e){return t.fallback={type:`error`,error:e},n},rejectsOnce(e){return t.once.push({type:`error`,error:e}),n}};return n},enqueueResult(...e){enqueueRowsList([e])},enqueueResults(...e){enqueueRowsList(e)},enqueueRows(...e){enqueueRowsList(e)},get executedQueries(){return a.mock.calls.map(([e,t])=>({query:e,params:t??[]}))},get createdClients(){return s},clear(){a.mockClear(),o.mockClear(),c.mockClear(),s.length=0},reset(){a.mockReset(),a.mockImplementation(defaultQuery),o.mockReset(),o.mockImplementation(defaultConnect),c.mockReset(),c.mockImplementation(defaultClient),s.length=0,r.length=0,i=void 0}},()=>{t.Client=n})}const Y=/* @__PURE__ */ new WeakMap,X=/* @__PURE__ */ new WeakMap,Z=/* @__PURE__ */ new WeakMap;function replaceProcedure(e,t,n){let r=Z.get(n)??n,i=z.fn(function(...e){return Reflect.apply(r,this,e)});Z.set(i,r);let a=e;return a[t]=i,{mock:i,scoped:{mockClear:()=>i.mockClear(),mockReset:()=>i.mockReset(),restore:()=>{a[t]===i&&(a[t]=n)}}}}function replaceStart(e){return replaceProcedure(e,`start`,e.start)}function mockWorkflow(){let e=g(),a=e.workflow,c=r(),l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ new Map,p=/* @__PURE__ */ new Set,installKeyDispatcher=e=>{let t=f.get(e);if(t)return t;let n=i(e);if(!n)throw Error(`waitPointWith expects a wait point definition created by createWaitPoint or createWaitPoints.`);let r=n,a=n.wait,o=n.resolve,s=Y.get(a)??a,c=X.get(o)??o,l={perKey:/* @__PURE__ */ new Map,originalWait:(e,t)=>s.call(n,e,t),originalResolve:(e,t,r)=>c.call(n,e,t,r)},dispatchWait=(e,t)=>{let n=l.perKey.get(e);return n?t===void 0?n.wait():n.wait(t):l.originalWait(e,t)},dispatchResolve=async(e,t,n)=>{let r=l.perKey.get(e);if(!r)return l.originalResolve(e,t,n);await r.resolve(t,n)};Y.set(dispatchWait,s),X.set(dispatchResolve,c),r.wait=dispatchWait,r.resolve=dispatchResolve;let eachSpy=e=>{for(let t of l.perKey.values()){let n=t;e(n.wait),e(n.resolve)}};return p.add({mockClear:()=>eachSpy(e=>e.mockClear()),mockReset:()=>eachSpy(e=>e.mockReset()),restore:()=>{r.wait=a,r.resolve=o,f.delete(e)}}),f.set(e,l),l},defaultExecJob=(e,t,n)=>{throw Error(`No workflow job mock for "${e}". Call mockWorkflow().setJobHandler(...) or enqueueResult(...), or use runWorkflowLocally() for local workflow execution.`)},defaultStartWorkflow=async(e,n,r)=>t,defaultResumeWorkflowExecution=async e=>e,h=z.fn(defaultExecJob),_=z.fn(defaultStartWorkflow),y=z.fn(defaultResumeWorkflowExecution),b=z.fn((e,t)=>null),x=z.fn(async(e,t,n)=>{});return e.workflow={execJobFunction:(...e)=>{let t=e.length>=3?h(e[0],m(e[1]),e[2]):h(e[0],m(e[1]));return t instanceof Promise?t.then(e=>m(e)):m(t)},startWorkflow:(...e)=>e.length>=3?_(e[0],m(e[1]),e[2]):_(e[0],m(e[1])),resumeWorkflowExecution:e=>y(e),wait:(e,t)=>b(e,m(t)),resolve:(e,t,n)=>x(e,t,e=>{let t=n(e);return t instanceof Promise?t.then(e=>m(e)):m(t)})},v({execJobFunction:h,startWorkflow:_,resumeWorkflowExecution:y,wait:b,resolve:x,job(e){let t=l.get(e);if(t)return t;let{mock:n,scoped:r}=replaceStart(e);return p.add(r),l.set(e,n),n},workflow(e){let t=u.get(e);if(t)return t;let{mock:n,scoped:r}=replaceStart(e);return u.set(e,n),p.add(r),n},waitPoint(e){let t=d.get(e);if(t)return t;let n=replaceProcedure(e,`wait`,e.wait),r=replaceProcedure(e,`resolve`,e.resolve),i=n.mock,a=r.mock;p.add(n.scoped),p.add(r.scoped);let o={wait:i,resolve:a,setResolvePayload(e){a.mockImplementation(async(t,n)=>{let r=await n(m(e));m(r)})}};return d.set(e,o),o},waitPointWith(e,t){let r=n(e.with(t));if(r===void 0)throw Error(`waitPointWith expects a wait point declared with $params. Use waitPoint() for a wait point with a fixed key.`);let i=installKeyDispatcher(e),a=i.perKey.get(r);if(a)return a;let o=z.fn(e=>Promise.resolve(i.originalWait(r,e))),s=z.fn((e,t)=>i.originalResolve(r,e,t)),c={wait:o,resolve:s,setResolvePayload(e){s.mockImplementation(async(t,n)=>{let r=await n(m(e));m(r)})}};return i.perKey.set(r,c),c},setJobHandler(e){h.mockImplementation((t,n,r)=>e(t,n,r))},enqueueResult(e){h.mockImplementationOnce(()=>e)},enqueueResults(...e){for(let t of e)h.mockImplementationOnce(()=>t)},get startedJobs(){return h.mock.calls.map(([e,t,n])=>({jobName:e,args:t,...n!==void 0&&{options:n}}))},setStartHandler(e){_.mockImplementation(typeof e==`function`?async(t,n,r)=>e(t,n,r):async()=>e)},setResumeHandler(e){y.mockImplementation(typeof e==`function`?async t=>e(t):async()=>e)},setWaitHandler:e=>{b.mockImplementation(typeof e==`function`?(t,n)=>e(t,n):()=>e)},setEnv(e){s({...e})},setResolveHandler(e){x.mockImplementation(async(t,n,r)=>{await e(t,n,r)})},get waitCalls(){return b.mock.calls.map(([e,t])=>({key:e,payload:t}))},get resolveCalls(){return x.mock.calls.map(([e,t])=>({executionId:e,key:t}))},clear(){h.mockClear(),_.mockClear(),y.mockClear(),b.mockClear(),x.mockClear();for(let e of p)e.mockClear()},reset(){h.mockReset(),h.mockImplementation(defaultExecJob),_.mockReset(),_.mockImplementation(defaultStartWorkflow),y.mockReset(),y.mockImplementation(defaultResumeWorkflowExecution),b.mockReset(),b.mockImplementation(()=>null),x.mockReset(),x.mockImplementation(async()=>{});for(let e of p)e.mockReset();o()}},()=>{for(let e of p)e.restore();e.workflow=a,c===void 0?o():s(c)})}const toPlainDate=(e,t)=>e instanceof Date?new t.PlainDate(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):typeof e==`string`?t.PlainDate.from(e):e,toInstant=(e,t)=>e instanceof Date?t.Instant.fromEpochMilliseconds(e.getTime()):typeof e==`string`?t.Instant.fromEpochMilliseconds(t.Instant.from(e).epochMilliseconds):e,toPlainTime=(e,t)=>typeof e==`string`?t.PlainTime.from(e).round({smallestUnit:`minute`,roundingMode:`trunc`}):e;function parseArrayLiteral(e){let t=e.slice(1,-1);return t===``?[]:t.split(`,`).map(e=>e===`NULL`?null:e.startsWith(`"`)?e.slice(1,-1):e)}const eachElement=e=>(t,n)=>{let r=typeof t==`string`&&t.startsWith(`{`)?parseArrayLiteral(t):t;return Array.isArray(r)?r.map(t=>t===null?null:e(t,n)):r},le={1082:toPlainDate,1184:toInstant,1083:toPlainTime,1182:eachElement(toPlainDate),1185:eachElement(toInstant),1183:eachElement(toPlainTime)};function hostTemporal(){return globalThis.Temporal}function serializeValue(e,t){if(e instanceof t.PlainDate)return e.toString({calendarName:`never`});if(e instanceof t.PlainTime)return`${String(e.hour).padStart(2,`0`)}:${String(e.minute).padStart(2,`0`)}`;if(e instanceof t.Instant)return t.Instant.fromEpochMilliseconds(e.epochMilliseconds).toString();if(Array.isArray(e))return e.map(e=>serializeValue(e,t));if(typeof e==`object`&&e){let n=Object.getPrototypeOf(e);if(n===Object.prototype||n===null)return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,serializeValue(n,t)]))}return e}function serializeTemporalParams(e){let t=hostTemporal();return t?e.map(e=>serializeValue(e,t)):[...e]}function deserializeTemporalRows(e,t=[]){let n=t.flatMap(({name:e,dataTypeID:t})=>{let n=le[t];return n?[{name:e,convert:n}]:[]});if(n.length===0)return e;let r=hostTemporal();if(!r)throw ReferenceError(`Temporal is unavailable. Use the SDK tailor-runtime Vitest environment to read Temporal values from PGlite.`);return e.map(e=>{let t={...e};for(let{name:e,convert:i}of n)t[e]=i(t[e],r);return t})}var TransactionLock=class{#e=null;#t=[];holds(e){return this.#e===e}async acquire(e){for(;this.#e!==null;)await new Promise(e=>this.#t.push(e));this.#e=e}release(e){this.#e===e&&(this.#e=null,this.#t.shift()?.())}};const ue=/^\s*(?:begin|start\s+transaction)\b/i,de=/^\s*(?:commit\b|rollback\b(?!(?:\s+(?:work|transaction))?\s+to\b))/i;function toQueryObjectResult(e,t){return{command:e.command??(e.affectedRows?`UPDATE`:`SELECT`),rowCount:e.rowCount??(e.affectedRows||e.rows.length),rows:t?deserializeTemporalRows(e.rows,e.fields):e.rows}}function mockTailordbWithPGlite(e){let t=h(),n=t.Client,r=[],i=[],a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set,assertNoOpenTransaction=e=>{if(o.size>0)throw Error(`mockTailordbWithPGlite: ${e}() cannot run while a transaction is open; commit, roll back, or end() its client first`)},defaultClient=function(t){let n=t?.namespace,s=t?.temporal??!1,c=n!==void 0&&Object.hasOwn(e.namespaces,n)?e.namespaces[n]:void 0;if(n===void 0||!c)throw Error(`mockTailordbWithPGlite: no PGlite instance registered for namespace "${n}"`);let l=a.get(c)??new TransactionLock;a.set(c,l);let u={namespace:n,ended:!1};i.push(u);let d=this,run=async(e,t)=>(r.push({namespace:n,query:e,params:t??[]}),toQueryObjectResult(await c.query(e,serializeTemporalParams(t??[])),s)),throwEnded=()=>{throw Error(`mockTailordbWithPGlite: query after end() on this client`)},acquire=async()=>{await l.acquire(d),u.ended&&(l.release(d),throwEnded())},queryObject=async(e,t)=>{if(u.ended&&throwEnded(),ue.test(e)){if(l.holds(d))throw Error(`mockTailordbWithPGlite: transaction already open on this client — run nested statements on the transaction callback's trx`);await acquire();try{let n=await run(e,t);return o.add(u),n}catch(e){throw l.release(d),e}}if(de.test(e)){if(l.holds(d))try{return await run(e,t)}finally{o.delete(u),l.release(d)}await acquire();try{return await run(e,t)}finally{l.release(d)}}if(l.holds(d))return await run(e,t);await acquire();try{return await run(e,t)}finally{l.release(d)}};this.connect=async()=>{},this.end=async()=>{if(u.ended=!0,l.holds(d))try{await run(`rollback`)}finally{o.delete(u),l.release(d)}},this.queryObject=queryObject,this.createTransaction=e=>{if(!e)throw Error(`Transaction name must be a non-empty string`);return{begin:()=>queryObject(`begin`),commit:()=>queryObject(`commit`),rollback:()=>queryObject(`rollback`),queryObject}}},s=z.fn(defaultClient);return t.Client=s,v({Client:s,get executedQueries(){return r},get createdClients(){return i},clear(){assertNoOpenTransaction(`clear`),s.mockClear(),r.length=0,i.length=0},reset(){assertNoOpenTransaction(`reset`),s.mockReset(),s.mockImplementation(defaultClient),r.length=0,i.length=0}},()=>{t.Client=n})}var PendingStart=class{jobName;args;constructor(e,t){this.jobName=e,this.args=t}};async function runWorkflowLocally(e,t,n){let i=globalThis,a=i.tailor,c=r(),l=c!==void 0,u=createLocalJobRunner();n?.env!==void 0&&s({...n.env}),i.tailor={...a,workflow:createLocalWorkflowRuntime(a?.workflow,u.execJobFunction)};try{return await u.runJob(e.mainJob.name,t)}finally{a?i.tailor=a:delete i.tailor,n?.env!==void 0&&(l?s(c):o())}}function createLocalJobRunner(){let t,execJobFunction=(e,n)=>{if(!t)throw Error(`Cannot start workflow job "${e}" outside runWorkflowLocally() job execution.`);if(t.pending)throw t.pending;let r=m(n),i=t.cursor;t.cursor+=1;let a=t.records[i];if(a){if(assertSameStart(a,e,r),a.status===`rejected`)throw a.error;return m(a.result)}let o=new PendingStart(e,r);throw t.pending=o,o},runJob=async(n,r)=>{let i=e(n);if(!i)return null;let o=[];for(;;){let e={records:o,cursor:0},s=t;t=e;try{let t=await i(m(r),a());if(e.pending){await settlePendingStart(o,e.pending,runJob);continue}if(e.cursor!==o.length)throw Error(`Workflow job start sequence changed while replaying "${n}". Expected ${o.length} start(s), but replay reached ${e.cursor}.`);return m(t)}catch(t){let n=t instanceof PendingStart?t:e.pending;if(n){await settlePendingStart(o,n,runJob);continue}throw t}finally{t=s}}};return{runJob,execJobFunction}}async function settlePendingStart(e,t,n){try{e.push({jobName:t.jobName,args:t.args,status:`fulfilled`,result:await n(t.jobName,t.args)})}catch(n){e.push({jobName:t.jobName,args:t.args,status:`rejected`,error:n})}}function assertSameStart(e,t,n){if(e.jobName!==t||JSON.stringify(e.args)!==JSON.stringify(n))throw Error(`Workflow job start sequence changed while replaying. Expected ${e.jobName}(${JSON.stringify(e.args)}), but got ${t}(${JSON.stringify(n)}).`)}function createLocalWorkflowRuntime(e,n){return{execJobFunction:n,startWorkflow:async(n,r,i)=>e?await e.startWorkflow(n,r,i):(m(r),t),resumeWorkflowExecution:async t=>e?await e.resumeWorkflowExecution(t):t,wait:(t,n)=>{if(e)return e.wait(t,n);throw Error(`No wait handler for "${t}". Acquire mockWorkflow() and call setWaitHandler(...).`)},resolve:async(t,n,r)=>{if(e)await e.resolve(t,n,r);else throw Error(`No resolve handler. Acquire mockWorkflow() and call setResolveHandler(...).`)}}}function unwrapValue(e){return N.is(e)?e.value:e}function insertRows(e){if(!ne.is(e))throw Error(`insertRows: expected InsertQueryNode, got ${e.kind}`);let t=e.columns,n=e.values;if(t===void 0||n===void 0||!P.is(n))throw Error(`insertRows: unsupported insert shape; inspect query.node instead`);return n.values.map(e=>{if(!A.is(e)&&!M.is(e))throw Error(`insertRows: unsupported insert shape; inspect query.node instead`);let n=A.is(e)?e.values:e.values.map(unwrapValue),r={};return t.forEach((e,t)=>{r[e.column.name]=n[t]}),r})}function insertValues(e){let t=insertRows(e);if(t.length!==1)throw Error(`insertValues: query inserts ${t.length} rows; use insertRows() for multi-row inserts`);return c(t[0],`insertValues: first row missing`)}function updateValues(e){if(!ie.is(e))throw Error(`updateValues: expected UpdateQueryNode, got ${e.kind}`);if(e.updates===void 0)throw Error(`updateValues: unsupported update shape; inspect query.node instead`);let t={};for(let n of e.updates){let e=n.column,r=w.is(e)?e.column.name:j.is(e)&&w.is(e.column)?e.column.column.name:void 0;if(r===void 0)throw Error(`updateValues: unsupported update shape; inspect query.node instead`);t[r]=unwrapValue(n.value)}return t}function toExecutedQuery(e){let t=e.query;return{kind:t.kind,sql:e.sql,parameters:e.parameters,node:t,insertRows:()=>insertRows(t),insertValues:()=>insertValues(t),updateValues:()=>updateValues(t)}}function toStagedResult(e){return Array.isArray(e)?{rows:e,numAffectedRows:void 0}:{rows:e.rows??[],numAffectedRows:e.numAffectedRows===void 0?void 0:BigInt(e.numAffectedRows)}}var MockState=class{executed=[];queue=[];resolver;enqueue(...e){this.queue.push(...e)}setResolver(e){this.resolver=e}next(e){let t=this.resolver?.(e);if(t!==void 0)return toStagedResult(t);let n=this.queue.shift();return n===void 0?{rows:[],numAffectedRows:void 0}:toStagedResult(n)}reset(){this.executed.length=0,this.queue.length=0,this.resolver=void 0}},MockConnection=class{state;constructor(e){this.state=e}async executeQuery(e){let t=toExecutedQuery(e);this.state.executed.push(t);let{rows:n,numAffectedRows:r}=this.state.next(t);return{rows:n,numAffectedRows:r??BigInt(n.length)}}streamQuery(){throw Error(`createKyselyMock: streaming is not supported`)}},MockDriver=class{state;constructor(e){this.state=e}async init(){}async acquireConnection(){return new MockConnection(this.state)}async beginTransaction(){}async commitTransaction(){}async rollbackTransaction(){}async releaseConnection(){}async destroy(){}};function byKind(e,t){return e.executed.filter(e=>e.kind===t)}function createKyselyMock(){let e=new MockState,t=new E({dialect:{createDriver:()=>new MockDriver(e),createQueryCompiler:()=>new k,createAdapter:()=>new D,createIntrospector:e=>new O(e)}});return{db:t,get executedQueries(){return e.executed},get selects(){return byKind(e,`SelectQueryNode`)},get inserts(){return byKind(e,`InsertQueryNode`)},get updates(){return byKind(e,`UpdateQueryNode`)},get deletes(){return byKind(e,`DeleteQueryNode`)},enqueueResult:t=>e.enqueue(t),enqueueResults:(...t)=>e.enqueue(...t),setQueryResolver:t=>e.setResolver(t),withTx:e=>t.transaction().execute(e),reset:()=>e.reset(),[Symbol.dispose]:()=>e.reset()}}var PGliteConnection=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t}async executeQuery(e){let t=await this.#e.query(e.sql,serializeTemporalParams(e.parameters));return{rows:this.#t?deserializeTemporalRows(t.rows,t.fields):t.rows,numAffectedRows:BigInt(t.affectedRows??0)}}streamQuery(){throw Error(`createKyselyPGlite: streaming is not supported`)}},PGliteDriver=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t}async init(){}async acquireConnection(){return new PGliteConnection(this.#e,this.#t)}async beginTransaction(e,t){let n=t.isolationLevel?[`start transaction`,`isolation level ${t.isolationLevel}`]:[`begin`];t.accessMode&&n.push(t.accessMode),await e.executeQuery(T.raw(n.join(` `)))}async commitTransaction(e){await e.executeQuery(T.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(T.raw(`rollback`))}async releaseConnection(){}async destroy(){await this.#e.close()}};function createKyselyPGlite(e,t={}){let n=t.temporal??!1;return new E({dialect:{createAdapter:()=>new re,createDriver:()=>new PGliteDriver(e,n),createIntrospector:e=>new O(e),createQueryCompiler:()=>new k}})}const Q=`session_replication_role`,$=/* @__PURE__ */ new WeakMap;function setReplicationRole(e,t){return e.query(`SELECT set_config($1, $2, false)`,[Q,t])}async function uncheckRelations(e){let t=(await e.query(`SHOW ${Q}`)).rows[0]?.[Q];return await setReplicationRole(e,`replica`),typeof t==`string`?t:`origin`}async function prepareFixtures(e,t){let n=$.get(e)??{active:0,previous:uncheckRelations(e)};n.active+=1,$.set(e,n);let r;try{return r=await n.previous,await t()}finally{--n.active,n.active===0&&($.delete(e),r!==void 0&&await setReplicationRole(e,r))}}var MigrationStepError=class extends Error{step;completedSteps;constructor(e,t,n){super(`Migration step "${e}" failed: ${n instanceof Error?n.message:String(n)}`,{cause:n}),this.name=`MigrationStepError`,this.step=e,this.completedSteps=t}};async function runMigrationSteps(e,t){let n=f(Object.entries(e).map(([e,t])=>({name:e,dependsOn:t.dependsOn??[]}))),r=[];for(let i of n){let n=c(e[i],`Migration step "${i}" is not defined.`),a={env:structuredClone(t.env??{})};try{await t.transaction(e=>n.run(e,a))}catch(e){throw new MigrationStepError(i,[...r],e)}r.push(i)}return r}function tailorRuntime(e){return[createBlockPlugin(),createEnvironmentPlugin(e)]}export{MigrationStepError,_ as applyDateRepresentation,createKyselyMock,createKyselyPGlite,mockAigateway,mockAuthconnection,mockFile,mockIconv,mockIdp,mockLogger,y as mockSecretmanager,mockTailordb,mockTailordbWithPGlite,mockWorkflow,prepareFixtures,runMigrationSteps,runWorkflowLocally,tailorRuntime};
2
2
  //# sourceMappingURL=index.mjs.map