@tailor-platform/sdk 2.4.0 → 2.5.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 (234) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/dist/aigateway-DsWDjzk4.mjs +2 -0
  3. package/dist/{aigateway-DR4Kwuik.mjs.map → aigateway-DsWDjzk4.mjs.map} +1 -1
  4. package/dist/application-DFOUovmN.mjs +1 -0
  5. package/dist/application-D_4vg1KR.mjs +192 -0
  6. package/dist/application-D_4vg1KR.mjs.map +1 -0
  7. package/dist/assert-WeXvmG4j.mjs +2 -0
  8. package/dist/{assert-DBxo8jPo.mjs.map → assert-WeXvmG4j.mjs.map} +1 -1
  9. package/dist/authconnection-CynFBIv8.mjs +2 -0
  10. package/dist/{authconnection-CZvi9ANm.mjs.map → authconnection-CynFBIv8.mjs.map} +1 -1
  11. package/dist/brand-C8nMKhJC.mjs +2 -0
  12. package/dist/{brand-Eo4pLXPJ.mjs.map → brand-C8nMKhJC.mjs.map} +1 -1
  13. package/dist/cli/commands/deploy/deploy.d.mts +2 -2
  14. package/dist/cli/commands/deploy/deployment-target.d.mts +2 -0
  15. package/dist/cli/commands/deploy/event-subscriptions.d.mts +3 -0
  16. package/dist/cli/commands/deploy/tailordb/apply.d.mts +3 -0
  17. package/dist/cli/commands/deploy/tailordb/index.d.mts +3 -10
  18. package/dist/cli/commands/deploy/tailordb/migration-validation.d.mts +5 -0
  19. package/dist/cli/commands/deploy/tailordb/plan.d.mts +8 -0
  20. package/dist/cli/commands/executor/jobs.d.mts +1 -1
  21. package/dist/cli/commands/generate/seed/bundler.d.mts +2 -2
  22. package/dist/cli/commands/show.d.mts +1 -1
  23. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +11 -11
  24. package/dist/cli/commands/tailordb/migrate/generate.d.mts +4 -0
  25. package/dist/cli/commands/tailordb/migrate/rename-detection.d.mts +1 -1
  26. package/dist/cli/commands/tailordb/migrate/snapshot-comparison.d.mts +43 -0
  27. package/dist/cli/commands/tailordb/migrate/snapshot-files.d.mts +62 -0
  28. package/dist/cli/commands/tailordb/migrate/snapshot-local.d.mts +12 -0
  29. package/dist/cli/commands/tailordb/migrate/snapshot-migrations.d.mts +12 -0
  30. package/dist/cli/commands/tailordb/migrate/snapshot-remote.d.mts +1 -0
  31. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +3 -1
  32. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +5 -117
  33. package/dist/cli/lib.d.mts +8 -4
  34. package/dist/cli/lib.mjs +1 -9
  35. package/dist/cli/lib.mjs.map +1 -1
  36. package/dist/cli/main.mjs +1170 -7754
  37. package/dist/cli/main.mjs.map +1 -1
  38. package/dist/cli/shared/seed-chunker.d.mts +5 -5
  39. package/dist/completion/zsh-worker.zsh +82 -9
  40. package/dist/configure/config/index.d.mts +1 -1
  41. package/dist/configure/config/types.d.mts +2 -2
  42. package/dist/configure/index.d.mts +48 -12
  43. package/dist/configure/index.mjs +1 -1267
  44. package/dist/configure/index.mjs.map +1 -1
  45. package/dist/configure/services/auth/types.d.mts +1 -1
  46. package/dist/configure/services/idp/types.d.mts +1 -1
  47. package/dist/configure/services/tailordb/schema.d.mts +4 -8
  48. package/dist/configure/services/tailordb/types.d.mts +1 -1
  49. package/dist/configure/services/workflow/execution-policy.d.mts +3 -3
  50. package/dist/configure/services/workflow/job.d.mts +12 -2
  51. package/dist/configure/types/field.types.d.mts +1 -1
  52. package/dist/configure/types/permission-operand.types.d.mts +1 -1
  53. package/dist/context-D0QjfxzD.mjs +2 -0
  54. package/dist/{context-DYQVYWqZ.mjs.map → context-D0QjfxzD.mjs.map} +1 -1
  55. package/dist/crashreport-B-_HTKLr.mjs +42 -0
  56. package/dist/{crashreport-Q0pDAlrj.mjs.map → crashreport-B-_HTKLr.mjs.map} +1 -1
  57. package/dist/crashreport-BmsRIdpy.mjs +1 -0
  58. package/dist/errors-DSEXKRVD.mjs +2 -0
  59. package/dist/errors-DSEXKRVD.mjs.map +1 -0
  60. package/dist/file-COPYfju_.mjs +2 -0
  61. package/dist/file-COPYfju_.mjs.map +1 -0
  62. package/dist/globals-CMHSnj4w.mjs +2 -0
  63. package/dist/{globals-B2nlxBrz.mjs.map → globals-CMHSnj4w.mjs.map} +1 -1
  64. package/dist/iconv-DlFMt2gW.mjs +2 -0
  65. package/dist/{iconv-QWaZh0TT.mjs.map → iconv-DlFMt2gW.mjs.map} +1 -1
  66. package/dist/idp-G_ojPBB5.mjs +2 -0
  67. package/dist/{idp-RA_swu-h.mjs.map → idp-G_ojPBB5.mjs.map} +1 -1
  68. package/dist/interceptor-DQg3cR_9.mjs +2 -0
  69. package/dist/{interceptor-e33JtsC-.mjs.map → interceptor-DQg3cR_9.mjs.map} +1 -1
  70. package/dist/kysely/index.mjs +1 -32
  71. package/dist/kysely/index.mjs.map +1 -1
  72. package/dist/kysely-type-BTi3BMtL.mjs +43 -0
  73. package/dist/kysely-type-BTi3BMtL.mjs.map +1 -0
  74. package/dist/logger-BcGy-u7G.mjs +9 -0
  75. package/dist/{logger-D0bEznPv.mjs.map → logger-BcGy-u7G.mjs.map} +1 -1
  76. package/dist/logger-DP2BjQ93.mjs +2 -0
  77. package/dist/{logger-BtX0suGY.mjs.map → logger-DP2BjQ93.mjs.map} +1 -1
  78. package/dist/multiline-EyzjEwn9.mjs +3 -0
  79. package/dist/{multiline-sfHpTZZK.mjs.map → multiline-EyzjEwn9.mjs.map} +1 -1
  80. package/dist/node-builtins-oBl7EbyV.mjs +2 -0
  81. package/dist/{node-builtins-CmaL2Cbq.mjs.map → node-builtins-oBl7EbyV.mjs.map} +1 -1
  82. package/dist/package-json-C690ceex.mjs +2 -0
  83. package/dist/{package-json-8b0O9TlX.mjs.map → package-json-C690ceex.mjs.map} +1 -1
  84. package/dist/package-json-CmqhDJ__.mjs +1 -0
  85. package/dist/parser/service/tailordb/type-source.d.mts +5 -5
  86. package/dist/parser/service/tailordb/types.d.mts +4 -4
  87. package/dist/platform-serialize-DkiTdHOt.mjs +2 -0
  88. package/dist/{platform-serialize-RoRtBS0v.mjs.map → platform-serialize-DkiTdHOt.mjs.map} +1 -1
  89. package/dist/plugin/builtin/enum-constants/index.mjs +5 -114
  90. package/dist/plugin/builtin/enum-constants/index.mjs.map +1 -1
  91. package/dist/plugin/builtin/file-utils/index.mjs +22 -104
  92. package/dist/plugin/builtin/file-utils/index.mjs.map +1 -1
  93. package/dist/plugin/builtin/kysely-type/index.d.mts +8 -1
  94. package/dist/plugin/builtin/kysely-type/index.mjs +1 -275
  95. package/dist/plugin/builtin/seed/index.d.mts +5 -0
  96. package/dist/plugin/builtin/seed/index.mjs +1 -3
  97. package/dist/plugin/builtin/seed/seed-type-processor.d.mts +0 -2
  98. package/dist/plugin/{get-generated-type.d.mts → get-generated-table.d.mts} +5 -5
  99. package/dist/plugin/index.d.mts +3 -2
  100. package/dist/plugin/index.mjs +1 -251
  101. package/dist/plugin/index.mjs.map +1 -1
  102. package/dist/plugin/types.d.mts +30 -23
  103. package/dist/plugin/with-context.d.mts +3 -3
  104. package/dist/register-ts-hook-Drnaproy.mjs +640 -0
  105. package/dist/register-ts-hook-Drnaproy.mjs.map +1 -0
  106. package/dist/registry-HlEaGvl5.mjs +2 -0
  107. package/dist/{registry-BIGVUrMB.mjs.map → registry-HlEaGvl5.mjs.map} +1 -1
  108. package/dist/repl-editor-BG1aDOfH.mjs +2 -0
  109. package/dist/{repl-editor-F9LotMNx.mjs.map → repl-editor-BG1aDOfH.mjs.map} +1 -1
  110. package/dist/runtime/aigateway.mjs +1 -3
  111. package/dist/runtime/authconnection.mjs +1 -3
  112. package/dist/runtime/context.mjs +1 -3
  113. package/dist/runtime/file.d.mts +21 -21
  114. package/dist/runtime/file.mjs +1 -3
  115. package/dist/runtime/globals.mjs +1 -1
  116. package/dist/runtime/iconv.mjs +1 -3
  117. package/dist/runtime/idp.mjs +1 -3
  118. package/dist/runtime/index.mjs +1 -11
  119. package/dist/runtime/logger.mjs +1 -3
  120. package/dist/runtime/secretmanager.mjs +1 -3
  121. package/dist/runtime/types.d.mts +1 -1
  122. package/dist/runtime/workflow.mjs +1 -3
  123. package/dist/schema-Ze_dI5VX.mjs +2 -0
  124. package/dist/schema-Ze_dI5VX.mjs.map +1 -0
  125. package/dist/secret-file-C9wp_FCX.mjs +2 -0
  126. package/dist/{secret-file-C3J4Gy8r.mjs.map → secret-file-C9wp_FCX.mjs.map} +1 -1
  127. package/dist/secretmanager-5olfnI1b.mjs +2 -0
  128. package/dist/{secretmanager-IY4UvinW.mjs.map → secretmanager-5olfnI1b.mjs.map} +1 -1
  129. package/dist/secretmanager-vHQoXdQz.mjs +2 -0
  130. package/dist/{secretmanager-CYlpffsz.mjs.map → secretmanager-vHQoXdQz.mjs.map} +1 -1
  131. package/dist/seed/index.mjs +8 -244
  132. package/dist/seed/index.mjs.map +1 -1
  133. package/dist/seed-DwqRFdqP.mjs +207 -0
  134. package/dist/seed-DwqRFdqP.mjs.map +1 -0
  135. package/dist/service-BVe9u2Rt.mjs +7 -0
  136. package/dist/service-BVe9u2Rt.mjs.map +1 -0
  137. package/dist/service-CpZELSBa.mjs +1 -0
  138. package/dist/service-DlgaUO4V.mjs +2 -0
  139. package/dist/{service-LTfp03ZZ.mjs.map → service-DlgaUO4V.mjs.map} +1 -1
  140. package/dist/service_pb-DGKCLuAs.mjs +2 -0
  141. package/dist/{service_pb-BEWj1pOV.mjs.map → service_pb-DGKCLuAs.mjs.map} +1 -1
  142. package/dist/service_pb-_aeFE-Nv.mjs +1 -0
  143. package/dist/telemetry-Bklv9kQY.mjs +2 -0
  144. package/dist/{telemetry-BRVdwh14.mjs.map → telemetry-Bklv9kQY.mjs.map} +1 -1
  145. package/dist/telemetry-DXHP3VVi.mjs +1 -0
  146. package/dist/type-source--ZNcV8RJ.mjs +2 -0
  147. package/dist/type-source--ZNcV8RJ.mjs.map +1 -0
  148. package/dist/types/executor.generated.d.mts +1 -1
  149. package/dist/user-agent-vdHYF3QL.mjs +2 -0
  150. package/dist/{user-agent-Bgsszb5I.mjs.map → user-agent-vdHYF3QL.mjs.map} +1 -1
  151. package/dist/utils/test/index.mjs +1 -109
  152. package/dist/utils/test/index.mjs.map +1 -1
  153. package/dist/vitest/environment.mjs +1 -41
  154. package/dist/vitest/environment.mjs.map +1 -1
  155. package/dist/vitest/index.mjs +1 -1986
  156. package/dist/vitest/index.mjs.map +1 -1
  157. package/dist/vitest/mocks/file.d.mts +8 -8
  158. package/dist/vitest/setup.mjs +1 -140
  159. package/dist/vitest/setup.mjs.map +1 -1
  160. package/dist/wait-point-invoker-eiP-IIux.mjs +2 -0
  161. package/dist/wait-point-invoker-eiP-IIux.mjs.map +1 -0
  162. package/dist/wait-point-registry-BrkwfyjS.mjs +2 -0
  163. package/dist/{wait-point-registry-TL99zotw.mjs.map → wait-point-registry-BrkwfyjS.mjs.map} +1 -1
  164. package/dist/workflow-Cs9ISw6j.mjs +2 -0
  165. package/dist/{workflow-Bamae_Yc.mjs.map → workflow-Cs9ISw6j.mjs.map} +1 -1
  166. package/dist/workspace_resource_pb--GeYQPXu.mjs +2 -0
  167. package/dist/{workspace_resource_pb-HNIL_Vfj.mjs.map → workspace_resource_pb--GeYQPXu.mjs.map} +1 -1
  168. package/docs/cli/function.md +66 -6
  169. package/docs/cli/setup.md +24 -14
  170. package/docs/cli/tailordb.md +2 -0
  171. package/docs/cli-reference.md +9 -8
  172. package/docs/github-actions.md +10 -9
  173. package/docs/migration/v2.md +13 -1
  174. package/docs/migration/v3.md +82 -0
  175. package/docs/plugin/custom.md +130 -85
  176. package/docs/plugin/index.md +3 -3
  177. package/docs/services/tailordb-migration.md +21 -7
  178. package/docs/services/workflow.md +10 -9
  179. package/package.json +11 -11
  180. package/postinstall.mjs +1 -1
  181. package/dist/aigateway-DR4Kwuik.mjs +0 -9
  182. package/dist/application-C8a0UJ-z.mjs +0 -6071
  183. package/dist/application-C8a0UJ-z.mjs.map +0 -1
  184. package/dist/application-D4zOiLLa.mjs +0 -3
  185. package/dist/assert-DBxo8jPo.mjs +0 -9
  186. package/dist/authconnection-CZvi9ANm.mjs +0 -9
  187. package/dist/brand-Eo4pLXPJ.mjs +0 -36
  188. package/dist/context-DYQVYWqZ.mjs +0 -23
  189. package/dist/crashreport-Cd4TqfZq.mjs +0 -3
  190. package/dist/crashreport-Q0pDAlrj.mjs +0 -427
  191. package/dist/errors-Bxut5_Sy.mjs +0 -89
  192. package/dist/errors-Bxut5_Sy.mjs.map +0 -1
  193. package/dist/file-BUcmVIH2.mjs +0 -58
  194. package/dist/file-BUcmVIH2.mjs.map +0 -1
  195. package/dist/globals-B2nlxBrz.mjs +0 -126
  196. package/dist/iconv-QWaZh0TT.mjs +0 -38
  197. package/dist/idp-RA_swu-h.mjs +0 -82
  198. package/dist/interceptor-e33JtsC-.mjs +0 -33
  199. package/dist/logger-BtX0suGY.mjs +0 -48
  200. package/dist/logger-D0bEznPv.mjs +0 -362
  201. package/dist/multiline-sfHpTZZK.mjs +0 -38
  202. package/dist/node-builtins-CmaL2Cbq.mjs +0 -36
  203. package/dist/package-json-8b0O9TlX.mjs +0 -17
  204. package/dist/package-json-Cv2Z-TqQ.mjs +0 -3
  205. package/dist/platform-serialize-RoRtBS0v.mjs +0 -46
  206. package/dist/plugin/builtin/kysely-type/index.mjs.map +0 -1
  207. package/dist/plugin/builtin/seed/types.d.mts +0 -2
  208. package/dist/register-ts-hook-Vqjza10T.mjs +0 -25679
  209. package/dist/register-ts-hook-Vqjza10T.mjs.map +0 -1
  210. package/dist/registry-BIGVUrMB.mjs +0 -54
  211. package/dist/repl-editor-F9LotMNx.mjs +0 -252
  212. package/dist/schema-D4TC4BC3.mjs +0 -640
  213. package/dist/schema-D4TC4BC3.mjs.map +0 -1
  214. package/dist/secret-file-C3J4Gy8r.mjs +0 -64
  215. package/dist/secretmanager-CYlpffsz.mjs +0 -13
  216. package/dist/secretmanager-IY4UvinW.mjs +0 -131
  217. package/dist/seed-Cibjmtry.mjs +0 -489
  218. package/dist/seed-Cibjmtry.mjs.map +0 -1
  219. package/dist/service-2grcAOCJ.mjs +0 -898
  220. package/dist/service-2grcAOCJ.mjs.map +0 -1
  221. package/dist/service-CaBPNDIZ.mjs +0 -3
  222. package/dist/service-LTfp03ZZ.mjs +0 -133
  223. package/dist/service_pb-BEWj1pOV.mjs +0 -167
  224. package/dist/service_pb-BjlhvK9E.mjs +0 -3
  225. package/dist/telemetry-BRVdwh14.mjs +0 -84
  226. package/dist/telemetry-CkbkeJxl.mjs +0 -3
  227. package/dist/type-source-DH_LH20p.mjs +0 -13
  228. package/dist/type-source-DH_LH20p.mjs.map +0 -1
  229. package/dist/user-agent-Bgsszb5I.mjs +0 -28
  230. package/dist/wait-point-invoker-__oE88_P.mjs +0 -148
  231. package/dist/wait-point-invoker-__oE88_P.mjs.map +0 -1
  232. package/dist/wait-point-registry-TL99zotw.mjs +0 -47
  233. package/dist/workflow-Bamae_Yc.mjs +0 -34
  234. package/dist/workspace_resource_pb-HNIL_Vfj.mjs +0 -860
@@ -1,54 +0,0 @@
1
- //#region src/configure/services/workflow/registry.ts
2
- const JOB_REGISTRY_KEY = Symbol.for("tailor-platform/sdk:job-registry");
3
- function jobs() {
4
- const g = globalThis;
5
- let map = g[JOB_REGISTRY_KEY];
6
- if (!map) {
7
- map = /* @__PURE__ */ new Map();
8
- g[JOB_REGISTRY_KEY] = map;
9
- }
10
- return map;
11
- }
12
- /**
13
- * Register a job body keyed by job name. Called as a side effect by
14
- * `createWorkflowJob` so `runWorkflowLocally()` can execute dependent job
15
- * bodies when `globalThis.tailor.workflow.execJobFunction(name, args)` is invoked.
16
- *
17
- * In production builds the bundler rewrites `.start()` calls so this registry
18
- * is never read; the gated write is dropped as dead code.
19
- * @param name - Job name
20
- * @param body - Job body function
21
- */
22
- function registerJob(name, body) {
23
- jobs().set(name, body);
24
- }
25
- /**
26
- * Look up a registered job body by name.
27
- * @param name - Job name
28
- * @returns The registered body, or undefined when no job is registered
29
- */
30
- function getRegisteredJob(name) {
31
- return jobs().get(name);
32
- }
33
- function currentPlatformWorkflow() {
34
- return globalThis.tailor?.workflow;
35
- }
36
- function requirePlatformWorkflow() {
37
- const workflow = currentPlatformWorkflow();
38
- if (!workflow) throw new Error("tailor.workflow is not available. Run tests in the `tailor-runtime` Vitest environment and use mockWorkflow(), or use runWorkflowLocally() from @tailor-platform/sdk/vitest for local workflow execution.");
39
- return workflow;
40
- }
41
- const START_DEFAULT = "00000000-0000-4000-8000-000000000000";
42
- function dispatchStartJob(name, args, options) {
43
- const workflow = requirePlatformWorkflow();
44
- return arguments.length >= 3 ? workflow.execJobFunction(name, args, options) : workflow.execJobFunction(name, args);
45
- }
46
- function dispatchStartWorkflow(name, args, options) {
47
- const workflow = requirePlatformWorkflow();
48
- if (arguments.length < 3) return workflow.startWorkflow(name, args);
49
- return workflow.startWorkflow(name, args, options?.invoker === void 0 ? options : { authInvoker: options.invoker });
50
- }
51
-
52
- //#endregion
53
- export { registerJob as a, getRegisteredJob as i, dispatchStartJob as n, dispatchStartWorkflow as r, START_DEFAULT as t };
54
- //# sourceMappingURL=registry-BIGVUrMB.mjs.map
@@ -1,252 +0,0 @@
1
- import { t as assertDefined } from "./assert-DBxo8jPo.mjs";
2
- import { GraphQLError, Lexer, Source, TokenKind } from "graphql";
3
- import { getSegments } from "sql-highlight";
4
-
5
- //#region src/cli/query/repl-editor.ts
6
- const RESET = "\x1B[0m";
7
- const BLUE = "\x1B[34m";
8
- const MAGENTA = "\x1B[35m";
9
- const YELLOW = "\x1B[33m";
10
- const BRIGHT_GREEN = "\x1B[92m";
11
- const CYAN = "\x1B[36m";
12
- const BRIGHT_BLUE = "\x1B[94m";
13
- const BOLD_CYAN = "\x1B[1;36m";
14
- const BOLD_MAGENTA = "\x1B[1;35m";
15
- const ITALIC_YELLOW = "\x1B[3;33m";
16
- const GREEN = "\x1B[32m";
17
- const DIM = "\x1B[90m";
18
- const DIM_YELLOW = "\x1B[2;33m";
19
- const SQL_STYLE_MAP = {
20
- keyword: BLUE,
21
- function: MAGENTA,
22
- identifier: YELLOW,
23
- string: BRIGHT_GREEN,
24
- number: CYAN,
25
- bracket: DIM_YELLOW,
26
- special: DIM
27
- };
28
- /**
29
- * Highlight a single SQL line using the `sql-highlight` tokenizer.
30
- * @param line - SQL text for a single editor line
31
- * @returns ANSI-decorated line safe for terminal output
32
- */
33
- function highlightSqlLine(line) {
34
- const segments = getSegments(line);
35
- let result = "";
36
- for (const seg of segments) {
37
- const style = SQL_STYLE_MAP[seg.name];
38
- result += style ? style + seg.content + RESET : seg.content;
39
- }
40
- return result;
41
- }
42
- const GQL_KEYWORDS = /* @__PURE__ */ new Set([
43
- "query",
44
- "mutation",
45
- "subscription",
46
- "fragment",
47
- "on",
48
- "type",
49
- "input",
50
- "enum",
51
- "interface",
52
- "union",
53
- "scalar",
54
- "extend",
55
- "schema",
56
- "directive",
57
- "implements"
58
- ]);
59
- const GQL_DEF_KEYWORDS = /* @__PURE__ */ new Set([
60
- "query",
61
- "mutation",
62
- "subscription",
63
- "fragment"
64
- ]);
65
- const GQL_BUILTINS = /* @__PURE__ */ new Set([
66
- "true",
67
- "false",
68
- "null"
69
- ]);
70
- /**
71
- * Highlight a single GraphQL line using the official `graphql` Lexer. Tracks
72
- * paren depth and the previous token to provide semantic-level colouring
73
- * (field names vs argument names vs types).
74
- * @param line - GraphQL text for a single editor line
75
- * @returns ANSI-decorated line, or the input unchanged when the lexer rejects it
76
- */
77
- function highlightGraphqlLine(line) {
78
- if (line.trimStart().startsWith("#")) return `${DIM}${line}${RESET}`;
79
- try {
80
- const source = new Source(line);
81
- const lexer = new Lexer(source);
82
- let result = "";
83
- let pos = 0;
84
- let parenDepth = 0;
85
- let prevKind = "";
86
- let prevText = "";
87
- let afterColon = false;
88
- let token = lexer.advance();
89
- while (token.kind !== TokenKind.EOF) {
90
- if (token.start > pos) result += line.slice(pos, token.start);
91
- const text = line.slice(token.start, token.end);
92
- switch (token.kind) {
93
- case TokenKind.NAME:
94
- if (prevKind === TokenKind.DOLLAR) result += `${MAGENTA}${text}${RESET}`;
95
- else if (prevKind === TokenKind.AT) result += `${BOLD_MAGENTA}${text}${RESET}`;
96
- else if (GQL_BUILTINS.has(text) || GQL_KEYWORDS.has(text)) result += `${BLUE}${text}${RESET}`;
97
- else if (GQL_DEF_KEYWORDS.has(prevText)) result += `${BOLD_CYAN}${text}${RESET}`;
98
- else if (afterColon) result += `${CYAN}${text}${RESET}`;
99
- else if (parenDepth > 0) result += `${ITALIC_YELLOW}${text}${RESET}`;
100
- else result += `${BRIGHT_BLUE}${text}${RESET}`;
101
- afterColon = false;
102
- break;
103
- case TokenKind.INT:
104
- case TokenKind.FLOAT:
105
- result += `${BLUE}${text}${RESET}`;
106
- afterColon = false;
107
- break;
108
- case TokenKind.STRING:
109
- case TokenKind.BLOCK_STRING:
110
- result += `${GREEN}${text}${RESET}`;
111
- afterColon = false;
112
- break;
113
- case TokenKind.DOLLAR:
114
- result += `${MAGENTA}${text}${RESET}`;
115
- afterColon = false;
116
- break;
117
- case TokenKind.AT:
118
- result += `${BOLD_MAGENTA}${text}${RESET}`;
119
- afterColon = false;
120
- break;
121
- case TokenKind.BRACE_L:
122
- case TokenKind.BRACE_R:
123
- result += `${YELLOW}${text}${RESET}`;
124
- afterColon = false;
125
- break;
126
- case TokenKind.PAREN_L:
127
- parenDepth += 1;
128
- result += `${DIM_YELLOW}${text}${RESET}`;
129
- afterColon = false;
130
- break;
131
- case TokenKind.PAREN_R:
132
- parenDepth = Math.max(0, parenDepth - 1);
133
- result += `${DIM_YELLOW}${text}${RESET}`;
134
- afterColon = false;
135
- break;
136
- case TokenKind.BRACKET_L:
137
- case TokenKind.BRACKET_R:
138
- result += `${DIM_YELLOW}${text}${RESET}`;
139
- afterColon = false;
140
- break;
141
- case TokenKind.COLON:
142
- result += `${DIM}${text}${RESET}`;
143
- afterColon = true;
144
- break;
145
- case TokenKind.BANG:
146
- case TokenKind.EQUALS:
147
- case TokenKind.PIPE:
148
- case TokenKind.AMP:
149
- case TokenKind.SPREAD:
150
- result += `${DIM}${text}${RESET}`;
151
- afterColon = false;
152
- break;
153
- default:
154
- result += text;
155
- afterColon = false;
156
- }
157
- prevKind = token.kind;
158
- prevText = text;
159
- pos = token.end;
160
- token = lexer.advance();
161
- }
162
- if (pos < line.length) result += line.slice(pos);
163
- return result;
164
- } catch (error) {
165
- if (error instanceof GraphQLError) return line;
166
- throw error;
167
- }
168
- }
169
- const BRACKET_PAIRS = {
170
- "(": ")",
171
- "[": "]",
172
- "{": "}"
173
- };
174
- const CLOSE_BRACKETS = new Set(Object.values(BRACKET_PAIRS));
175
- /**
176
- * Apply auto-close brackets and auto-indent on newline. Works for both SQL
177
- * and GraphQL because both languages share the `()`, `[]`, `{}` bracket set.
178
- * @param state - Editor state after the last edit
179
- * @param event - Event describing the edit that just occurred
180
- * @returns A new editor state to apply, or `undefined` to leave the state unchanged
181
- */
182
- function replTransform(state, event) {
183
- const { lines, row, col } = state;
184
- if (event.type === "insert" && event.char in BRACKET_PAIRS) {
185
- const close = BRACKET_PAIRS[event.char];
186
- const line = assertDefined(lines[row], `line at row ${row} missing`);
187
- const newLine = line.slice(0, col) + close + line.slice(col);
188
- return {
189
- lines: lines.with(row, newLine),
190
- row,
191
- col
192
- };
193
- }
194
- if (event.type === "insert" && CLOSE_BRACKETS.has(event.char)) {
195
- const line = assertDefined(lines[row], `line at row ${row} missing`);
196
- if (line[col] === event.char) {
197
- const newLine = line.slice(0, col) + line.slice(col + 1);
198
- return {
199
- lines: lines.with(row, newLine),
200
- row,
201
- col
202
- };
203
- }
204
- }
205
- if (event.type === "backspace") {
206
- const line = assertDefined(lines[row], `line at row ${row} missing`);
207
- const beforeCursor = line.slice(0, col);
208
- if (beforeCursor.length >= 1 && /^ +$/.test(beforeCursor)) {
209
- const newIndent = beforeCursor.slice(0, -1);
210
- const newLine = newIndent + line.slice(col);
211
- return {
212
- lines: lines.with(row, newLine),
213
- row,
214
- col: newIndent.length
215
- };
216
- }
217
- }
218
- if (event.type === "newline" && row > 0) {
219
- const prevLine = assertDefined(lines[row - 1], `line at row ${row - 1} missing`);
220
- const baseIndent = prevLine.match(/^(\s*)/)?.[1] ?? "";
221
- const endsWithOpen = /[{([]$/.test(prevLine.trimEnd());
222
- const currentLine = assertDefined(lines[row], `line at row ${row} missing`);
223
- const startsWithClose = /^[}\])]/.test(currentLine.trimStart());
224
- if (endsWithOpen && startsWithClose) {
225
- const innerIndent = baseIndent + " ";
226
- return {
227
- lines: lines.with(row, innerIndent).toSpliced(row + 1, 0, baseIndent + currentLine.trimStart()),
228
- row,
229
- col: innerIndent.length
230
- };
231
- }
232
- if (endsWithOpen) {
233
- const openChar = prevLine.trimEnd().slice(-1);
234
- const closeChar = BRACKET_PAIRS[openChar] ?? "}";
235
- const indent = baseIndent + " ";
236
- return {
237
- lines: lines.with(row, indent + currentLine).toSpliced(row + 1, 0, baseIndent + closeChar),
238
- row,
239
- col: indent.length
240
- };
241
- }
242
- if (baseIndent && col === 0) return {
243
- lines: lines.with(row, baseIndent + currentLine),
244
- row,
245
- col: baseIndent.length
246
- };
247
- }
248
- }
249
-
250
- //#endregion
251
- export { highlightGraphqlLine, highlightSqlLine, replTransform };
252
- //# sourceMappingURL=repl-editor-F9LotMNx.mjs.map