terse-cli 0.1.76 → 0.2.1

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 (184) hide show
  1. package/dist/_tmp_create_project.d.ts +2 -0
  2. package/dist/_tmp_create_project.d.ts.map +1 -0
  3. package/dist/_tmp_create_project.js +17 -0
  4. package/dist/_tmp_create_project.js.map +1 -0
  5. package/dist/_tmp_delete_agent.d.ts +2 -0
  6. package/dist/_tmp_delete_agent.d.ts.map +1 -0
  7. package/dist/_tmp_delete_agent.js +14 -0
  8. package/dist/_tmp_delete_agent.js.map +1 -0
  9. package/dist/_tmp_manual_trigger.d.ts +2 -0
  10. package/dist/_tmp_manual_trigger.d.ts.map +1 -0
  11. package/dist/_tmp_manual_trigger.js +17 -0
  12. package/dist/_tmp_manual_trigger.js.map +1 -0
  13. package/dist/_tmp_patch_active.d.ts +2 -0
  14. package/dist/_tmp_patch_active.d.ts.map +1 -0
  15. package/dist/_tmp_patch_active.js +21 -0
  16. package/dist/_tmp_patch_active.js.map +1 -0
  17. package/dist/codegen.d.ts +15 -0
  18. package/dist/codegen.d.ts.map +1 -1
  19. package/dist/codegen.js +466 -81
  20. package/dist/codegen.js.map +1 -1
  21. package/dist/commands/deployTheme.d.ts +28 -0
  22. package/dist/commands/deployTheme.d.ts.map +1 -0
  23. package/dist/commands/deployTheme.js +68 -0
  24. package/dist/commands/deployTheme.js.map +1 -0
  25. package/dist/commands/dev.d.ts +3 -0
  26. package/dist/commands/dev.d.ts.map +1 -0
  27. package/dist/commands/dev.js +47 -0
  28. package/dist/commands/dev.js.map +1 -0
  29. package/dist/commands/fsExec.d.ts +8 -0
  30. package/dist/commands/fsExec.d.ts.map +1 -0
  31. package/dist/commands/fsExec.js +46 -0
  32. package/dist/commands/fsExec.js.map +1 -0
  33. package/dist/commands/generate.d.ts.map +1 -1
  34. package/dist/commands/generate.js +11 -0
  35. package/dist/commands/generate.js.map +1 -1
  36. package/dist/commands/integrate.d.ts +6 -0
  37. package/dist/commands/integrate.d.ts.map +1 -1
  38. package/dist/commands/integrate.js +79 -2
  39. package/dist/commands/integrate.js.map +1 -1
  40. package/dist/commands/run.d.ts.map +1 -1
  41. package/dist/commands/run.js +2 -23
  42. package/dist/commands/run.js.map +1 -1
  43. package/dist/commands/serve.d.ts +1 -0
  44. package/dist/commands/serve.d.ts.map +1 -0
  45. package/dist/commands/serve.js +2 -0
  46. package/dist/commands/serve.js.map +1 -0
  47. package/dist/commands/terseCliTheme.d.ts +28 -0
  48. package/dist/commands/terseCliTheme.d.ts.map +1 -0
  49. package/dist/commands/terseCliTheme.js +68 -0
  50. package/dist/commands/terseCliTheme.js.map +1 -0
  51. package/dist/commands/test.d.ts.map +1 -1
  52. package/dist/commands/test.js +3 -21
  53. package/dist/commands/test.js.map +1 -1
  54. package/dist/commands/tool.d.ts +6 -0
  55. package/dist/commands/tool.d.ts.map +1 -0
  56. package/dist/commands/tool.js +34 -0
  57. package/dist/commands/tool.js.map +1 -0
  58. package/dist/data/standardSlackEmoji.d.ts +2 -0
  59. package/dist/data/standardSlackEmoji.d.ts.map +1 -0
  60. package/dist/data/standardSlackEmoji.js +1978 -0
  61. package/dist/data/standardSlackEmoji.js.map +1 -0
  62. package/dist/data/standardSlackEmoji.json +1974 -0
  63. package/dist/deploy.d.ts +2 -1
  64. package/dist/deploy.d.ts.map +1 -1
  65. package/dist/deploy.js +61 -38
  66. package/dist/deploy.js.map +1 -1
  67. package/dist/generate.d.ts +2 -1
  68. package/dist/generate.d.ts.map +1 -1
  69. package/dist/generate.js +67 -69
  70. package/dist/generate.js.map +1 -1
  71. package/dist/index.js +18 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/init.d.ts +2 -1
  74. package/dist/init.d.ts.map +1 -1
  75. package/dist/init.js +45 -96
  76. package/dist/init.js.map +1 -1
  77. package/dist/integrate.d.ts +1 -0
  78. package/dist/integrate.d.ts.map +1 -1
  79. package/dist/integrate.js +191 -11
  80. package/dist/integrate.js.map +1 -1
  81. package/dist/nonInteractive.d.ts +4 -2
  82. package/dist/nonInteractive.d.ts.map +1 -1
  83. package/dist/nonInteractive.js +5 -2
  84. package/dist/nonInteractive.js.map +1 -1
  85. package/dist/perf.d.ts +9 -0
  86. package/dist/perf.d.ts.map +1 -0
  87. package/dist/perf.js +59 -0
  88. package/dist/perf.js.map +1 -0
  89. package/dist/providers/codegen.test.d.ts +2 -0
  90. package/dist/providers/codegen.test.d.ts.map +1 -0
  91. package/dist/providers/codegen.test.js +45 -0
  92. package/dist/providers/codegen.test.js.map +1 -0
  93. package/dist/providers/codegenTypes.d.ts +1 -0
  94. package/dist/providers/codegenTypes.d.ts.map +1 -1
  95. package/dist/providers/python/PythonProvider.js +1 -0
  96. package/dist/providers/python/PythonProvider.js.map +1 -1
  97. package/dist/providers/python/PythonProvider.test.d.ts +2 -0
  98. package/dist/providers/python/PythonProvider.test.d.ts.map +1 -0
  99. package/dist/providers/python/PythonProvider.test.js +169 -0
  100. package/dist/providers/python/PythonProvider.test.js.map +1 -0
  101. package/dist/providers/typescript/prepareCodegenData.d.ts +1 -0
  102. package/dist/providers/typescript/prepareCodegenData.d.ts.map +1 -1
  103. package/dist/providers/typescript/prepareCodegenData.js +1 -0
  104. package/dist/providers/typescript/prepareCodegenData.js.map +1 -1
  105. package/dist/providers/typescript/prepareCodegenData.test.d.ts +2 -0
  106. package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +1 -0
  107. package/dist/providers/typescript/prepareCodegenData.test.js +54 -0
  108. package/dist/providers/typescript/prepareCodegenData.test.js.map +1 -0
  109. package/dist/providers/typescript/projectedTypes.d.ts +11 -0
  110. package/dist/providers/typescript/projectedTypes.d.ts.map +1 -0
  111. package/dist/providers/typescript/projectedTypes.js +53 -0
  112. package/dist/providers/typescript/projectedTypes.js.map +1 -0
  113. package/dist/providers/typescript/triggerPayloads.d.ts +7 -0
  114. package/dist/providers/typescript/triggerPayloads.d.ts.map +1 -0
  115. package/dist/providers/typescript/triggerPayloads.js +60 -0
  116. package/dist/providers/typescript/triggerPayloads.js.map +1 -0
  117. package/dist/run.d.ts +2 -11
  118. package/dist/run.d.ts.map +1 -1
  119. package/dist/run.js +42 -153
  120. package/dist/run.js.map +1 -1
  121. package/dist/sampleEventId.d.ts +0 -4
  122. package/dist/sampleEventId.d.ts.map +1 -1
  123. package/dist/sampleEventId.js +0 -4
  124. package/dist/sampleEventId.js.map +1 -1
  125. package/dist/serializedEvent.d.ts +3 -0
  126. package/dist/serializedEvent.d.ts.map +1 -0
  127. package/dist/serializedEvent.js +40 -0
  128. package/dist/serializedEvent.js.map +1 -0
  129. package/dist/shared/ApiRoutes.d.ts +19 -0
  130. package/dist/shared/ApiRoutes.d.ts.map +1 -1
  131. package/dist/shared/ApiRoutes.js +17 -1
  132. package/dist/shared/ApiRoutes.js.map +1 -1
  133. package/dist/shared/Configs.d.ts +24 -2
  134. package/dist/shared/Configs.d.ts.map +1 -1
  135. package/dist/shared/Configs.js +32 -2
  136. package/dist/shared/Configs.js.map +1 -1
  137. package/dist/shared/Integrations.d.ts +18 -1
  138. package/dist/shared/Integrations.d.ts.map +1 -1
  139. package/dist/shared/Integrations.js +10 -1
  140. package/dist/shared/Integrations.js.map +1 -1
  141. package/dist/shared/InvalidationKeys.d.ts +1 -0
  142. package/dist/shared/InvalidationKeys.d.ts.map +1 -1
  143. package/dist/shared/InvalidationKeys.js +3 -0
  144. package/dist/shared/InvalidationKeys.js.map +1 -1
  145. package/dist/shared/ModelEvents.d.ts +9 -0
  146. package/dist/shared/ModelEvents.d.ts.map +1 -1
  147. package/dist/shared/ModelEvents.js +15 -0
  148. package/dist/shared/ModelEvents.js.map +1 -1
  149. package/dist/shared/ToolDisplayUtils.d.ts.map +1 -1
  150. package/dist/shared/ToolDisplayUtils.js +107 -11
  151. package/dist/shared/ToolDisplayUtils.js.map +1 -1
  152. package/dist/shared/types.d.ts +1013 -108
  153. package/dist/shared/types.d.ts.map +1 -1
  154. package/dist/shared/types.js.map +1 -1
  155. package/dist/test.d.ts +2 -1
  156. package/dist/test.d.ts.map +1 -1
  157. package/dist/test.js +43 -23
  158. package/dist/test.js.map +1 -1
  159. package/dist/toolCatalog.d.ts +12 -0
  160. package/dist/toolCatalog.d.ts.map +1 -0
  161. package/dist/toolCatalog.js +33 -0
  162. package/dist/toolCatalog.js.map +1 -0
  163. package/dist/util.d.ts +2 -3
  164. package/dist/util.d.ts.map +1 -1
  165. package/dist/util.js +3 -3
  166. package/dist/util.js.map +1 -1
  167. package/package.json +3 -3
  168. package/templates/typescript/codegen/partials/header.hbs +5 -0
  169. package/dist/jsonOutput.d.ts +0 -19
  170. package/dist/jsonOutput.d.ts.map +0 -1
  171. package/dist/jsonOutput.js +0 -25
  172. package/dist/jsonOutput.js.map +0 -1
  173. package/dist/providers/typescript/parkSignals.d.ts +0 -7
  174. package/dist/providers/typescript/parkSignals.d.ts.map +0 -1
  175. package/dist/providers/typescript/parkSignals.js +0 -45
  176. package/dist/providers/typescript/parkSignals.js.map +0 -1
  177. package/dist/replay.d.ts +0 -3
  178. package/dist/replay.d.ts.map +0 -1
  179. package/dist/replay.js +0 -20
  180. package/dist/replay.js.map +0 -1
  181. package/dist/urls.d.ts +0 -3
  182. package/dist/urls.d.ts.map +0 -1
  183. package/dist/urls.js +0 -27
  184. package/dist/urls.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareCodegenData.test.d.ts","sourceRoot":"","sources":["../../../src/providers/typescript/prepareCodegenData.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { jsonSchemaToTs } from "./prepareCodegenData.js";
4
+ test("required nullable properties render as optional while preserving null", () => {
5
+ const schema = {
6
+ type: "object",
7
+ properties: {
8
+ thread_ts: {
9
+ anyOf: [{ type: "string" }, { type: "null" }],
10
+ },
11
+ blocks: {
12
+ anyOf: [{ type: "string" }, { type: "null" }],
13
+ },
14
+ message: {
15
+ type: "string",
16
+ },
17
+ },
18
+ required: ["thread_ts", "blocks", "message"],
19
+ };
20
+ assert.equal(jsonSchemaToTs(schema, 0), `{
21
+ thread_ts?: string | null
22
+ blocks?: string | null
23
+ message: string
24
+ }`);
25
+ });
26
+ test("optional nullable properties stay optional", () => {
27
+ const schema = {
28
+ type: "object",
29
+ properties: {
30
+ cursor: {
31
+ anyOf: [{ type: "string" }, { type: "null" }],
32
+ },
33
+ },
34
+ required: [],
35
+ };
36
+ assert.equal(jsonSchemaToTs(schema, 0), `{
37
+ cursor?: string | null
38
+ }`);
39
+ });
40
+ test("required non-nullable properties stay required", () => {
41
+ const schema = {
42
+ type: "object",
43
+ properties: {
44
+ channelId: {
45
+ type: "string",
46
+ },
47
+ },
48
+ required: ["channelId"],
49
+ };
50
+ assert.equal(jsonSchemaToTs(schema, 0), `{
51
+ channelId: string
52
+ }`);
53
+ });
54
+ //# sourceMappingURL=prepareCodegenData.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareCodegenData.test.js","sourceRoot":"","sources":["../../../src/providers/typescript/prepareCodegenData.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;IAC/E,MAAM,MAAM,GAAe;QACvB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,SAAS,EAAE;gBACP,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAChD;YACD,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAChD;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;KAC/C,CAAA;IAED,MAAM,CAAC,KAAK,CACR,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB;;;;EAIN,CACG,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACpD,MAAM,MAAM,GAAe;QACvB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAChD;SACJ;QACD,QAAQ,EAAE,EAAE;KACf,CAAA;IAED,MAAM,CAAC,KAAK,CACR,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB;;EAEN,CACG,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IACxD,MAAM,MAAM,GAAe;QACvB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,SAAS,EAAE;gBACP,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KAC1B,CAAA;IAED,MAAM,CAAC,KAAK,CACR,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB;;EAEN,CACG,CAAA;AACL,CAAC,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ export declare function projectSchemaToTsDeclaration(options: ProjectSchemaOptions): Promise<string>;
3
+ export interface ProjectSchemaOptions {
4
+ typeName: string;
5
+ schema: z.core.$ZodType;
6
+ io: "input" | "output";
7
+ omitProperties?: readonly string[];
8
+ fieldTypeOverrides?: ReadonlyMap<z.core.$ZodType, string>;
9
+ propertyTypeOverrides?: Readonly<Record<string, string>>;
10
+ }
11
+ //# sourceMappingURL=projectedTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectedTypes.d.ts","sourceRoot":"","sources":["../../../src/providers/typescript/projectedTypes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjG;AA8CD,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;IACvB,EAAE,EAAE,OAAO,GAAG,QAAQ,CAAA;IACtB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,kBAAkB,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACzD,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC3D"}
@@ -0,0 +1,53 @@
1
+ import { compile } from "json-schema-to-typescript";
2
+ import { z } from "zod";
3
+ export async function projectSchemaToTsDeclaration(options) {
4
+ const jsonSchema = toCompilableJsonSchema(options);
5
+ const declaration = await compile(jsonSchema, options.typeName, {
6
+ bannerComment: "",
7
+ additionalProperties: false,
8
+ style: { tabWidth: 4, semi: false, printWidth: 120 }
9
+ });
10
+ return declaration.trimEnd();
11
+ }
12
+ function toCompilableJsonSchema(options) {
13
+ const rawSchema = z.toJSONSchema(options.schema, {
14
+ io: options.io,
15
+ unrepresentable: "any",
16
+ reused: "inline",
17
+ override: ctx => {
18
+ const tsType = options.fieldTypeOverrides?.get(ctx.zodSchema) ?? dateTsType(ctx.zodSchema);
19
+ if (tsType !== undefined) {
20
+ const jsonSchema = ctx.jsonSchema;
21
+ jsonSchema.tsType = tsType;
22
+ }
23
+ }
24
+ });
25
+ // JSON roundtrip converts zod's JSON Schema type to json-schema-to-typescript's without a cast
26
+ const jsonSchema = JSON.parse(JSON.stringify(rawSchema));
27
+ for (const property of options.omitProperties ?? []) {
28
+ omitProperty(jsonSchema, property);
29
+ }
30
+ for (const [property, tsType] of Object.entries(options.propertyTypeOverrides ?? {})) {
31
+ overridePropertyType(jsonSchema, property, tsType);
32
+ }
33
+ return jsonSchema;
34
+ }
35
+ // z.date() is unrepresentable in JSON Schema; the nonstandard tsType keyword tells the compiler to print Date
36
+ function dateTsType(schema) {
37
+ return schema._zod.def.type === "date" ? "Date" : undefined;
38
+ }
39
+ function omitProperty(jsonSchema, property) {
40
+ if (jsonSchema.properties) {
41
+ delete jsonSchema.properties[property];
42
+ }
43
+ if (Array.isArray(jsonSchema.required)) {
44
+ jsonSchema.required = jsonSchema.required.filter(name => name !== property);
45
+ }
46
+ }
47
+ function overridePropertyType(jsonSchema, property, tsType) {
48
+ const existing = jsonSchema.properties?.[property];
49
+ if (!jsonSchema.properties || existing === undefined)
50
+ return;
51
+ jsonSchema.properties[property] = typeof existing === "object" && existing.description ? { description: existing.description, tsType } : { tsType };
52
+ }
53
+ //# sourceMappingURL=projectedTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectedTypes.js","sourceRoot":"","sources":["../../../src/providers/typescript/projectedTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function buildTriggerPayloadSection(importedNames: ReadonlySet<string>): Promise<TriggerPayloadSection>;
2
+ export interface TriggerPayloadSection {
3
+ declarations: string[];
4
+ projectedNames: ReadonlySet<string>;
5
+ extraImports: ReadonlySet<string>;
6
+ }
7
+ //# sourceMappingURL=triggerPayloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggerPayloads.d.ts","sourceRoot":"","sources":["../../../src/providers/typescript/triggerPayloads.ts"],"names":[],"mappings":"AAMA,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CASnH;AAqDD,MAAM,WAAW,qBAAqB;IAClC,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACpC"}
@@ -0,0 +1,60 @@
1
+ import { triggerPayloadProjections } from "terse-types";
2
+ import { CliError } from "../../cliError.js";
3
+ import { projectSchemaToTsDeclaration } from "./projectedTypes.js";
4
+ export async function buildTriggerPayloadSection(importedNames) {
5
+ const projectedNames = collectProjectedNames(importedNames);
6
+ const orderedNames = Object.keys(triggerPayloadProjections).filter(name => projectedNames.has(name));
7
+ const declarations = await Promise.all(orderedNames.map(name => buildDeclaration(name, triggerPayloadProjections[name])));
8
+ return {
9
+ declarations,
10
+ projectedNames,
11
+ extraImports: collectExtraImports(orderedNames)
12
+ };
13
+ }
14
+ function collectProjectedNames(importedNames) {
15
+ const projected = new Set();
16
+ const visit = (name) => {
17
+ const projection = triggerPayloadProjections[name];
18
+ if (!projection || projected.has(name))
19
+ return;
20
+ projected.add(name);
21
+ if (projection.kind === "union")
22
+ projection.members.forEach(visit);
23
+ };
24
+ importedNames.forEach(visit);
25
+ return projected;
26
+ }
27
+ async function buildDeclaration(name, projection) {
28
+ switch (projection.kind) {
29
+ case "union":
30
+ return `export type ${name} = ${projection.members.join(" | ")}`;
31
+ case "schema":
32
+ return wrapInSdkTrigger(name, projection.typeParams ?? "", await projectSchemaToTsDeclaration({
33
+ typeName: name,
34
+ schema: projection.schema,
35
+ io: "output",
36
+ propertyTypeOverrides: projection.fieldTypes
37
+ }));
38
+ default:
39
+ throw projection;
40
+ }
41
+ }
42
+ function wrapInSdkTrigger(name, typeParams, declaration) {
43
+ const interfacePrefix = `export interface ${name} `;
44
+ if (!declaration.startsWith(interfacePrefix)) {
45
+ throw new CliError("trigger_projection_shape", `Projected trigger payload ${name} did not compile to an interface declaration.`);
46
+ }
47
+ return `export type ${name}${typeParams} = SDKTrigger<${declaration.slice(interfacePrefix.length)}>`;
48
+ }
49
+ function collectExtraImports(projectedNames) {
50
+ const extraImports = new Set();
51
+ for (const name of projectedNames) {
52
+ const projection = triggerPayloadProjections[name];
53
+ if (projection.kind !== "schema")
54
+ continue;
55
+ extraImports.add("SDKTrigger");
56
+ projection.importTypes?.forEach(importType => extraImports.add(importType));
57
+ }
58
+ return extraImports;
59
+ }
60
+ //# sourceMappingURL=triggerPayloads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggerPayloads.js","sourceRoot":"","sources":["../../../src/providers/typescript/triggerPayloads.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -1,12 +1,3 @@
1
- import { CreateJobParameters } from "terse-sdk";
2
- import type { SerializedEvent } from "./shared/types.js";
3
- /**
4
- * Create a TerseAgent scoped to a job's skills and execute onTrigger.
5
- * Tools are registered from the codegen factory on globalThis (needed because
6
- * tsx may load a separate module instance of terse-sdk).
7
- */
8
- export declare function executeJob(job: CreateJobParameters, event: SerializedEvent, options?: {
9
- verbose?: boolean;
10
- }): Promise<void>;
11
- export declare function run(jobName?: string, eventJson?: string, eventFile?: string): Promise<void>;
1
+ import type { LanguageProvider } from "./providers/LanguageProvider.js";
2
+ export declare function run(jobName?: string, eventJson?: string, eventFile?: string, provider?: LanguageProvider, entryFile?: string): Promise<void>;
12
3
  //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAc,MAAM,WAAW,CAAA;AAK3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAIxD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCjI;AAED,wBAAsB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCjG"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGvE,wBAAsB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAAoC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CrK"}
package/dist/run.js CHANGED
@@ -1,58 +1,10 @@
1
- import fs from "fs";
2
1
  import chalk from "chalk";
3
- import { TerseAgent } from "terse-sdk";
4
- import { readApiKey } from "./api.js";
5
- import { assertProjectRoot } from "./assertProjectRoot.js";
2
+ import fs from "fs";
3
+ import { ApiRoutes, buildRoute, sdkRunTriggerEventResponseSchema, serializedEventSchema } from "terse-types";
4
+ import { fetchWithAuth, readApiKey } from "./api.js";
6
5
  import { loadJob } from "./loadJob.js";
7
- import { ApiRoutes } from "./shared/ApiRoutes.js";
8
- import { convertSerializedEventToInputEvent } from "./util.js";
9
- import { BACKEND_URL } from "./config.js";
10
- /**
11
- * Create a TerseAgent scoped to a job's skills and execute onTrigger.
12
- * Tools are registered from the codegen factory on globalThis (needed because
13
- * tsx may load a separate module instance of terse-sdk).
14
- */
15
- export async function executeJob(job, event, options) {
16
- const inputEvent = convertSerializedEventToInputEvent(event);
17
- const isVerbose = options?.verbose ?? false;
18
- const apiKey = process.env.TERSE_API_KEY ?? null;
19
- let sessionId;
20
- let closeSession;
21
- if (isVerbose && apiKey) {
22
- const session = await openSessionStream(apiKey);
23
- sessionId = session.sessionId;
24
- closeSession = session.close;
25
- }
26
- const agent = new TerseAgent(job.skills, BACKEND_URL, sessionId);
27
- const createTools = globalThis.__terse_createTools;
28
- if (createTools) {
29
- Object.defineProperty(agent, "tools", { value: createTools(agent) });
30
- }
31
- try {
32
- if (job.filter) {
33
- const shouldRun = await job.filter(inputEvent);
34
- if (!shouldRun) {
35
- console.log(chalk.dim(`\n Job "${job.name}" skipped (filter returned false).\n`));
36
- return;
37
- }
38
- }
39
- if (isVerbose) {
40
- console.log(chalk.cyan(` Job "${job.name}" started`));
41
- }
42
- await job.onTrigger(inputEvent, agent);
43
- console.log(chalk.green(`\n Job "${job.name}" completed successfully.\n`));
44
- }
45
- catch (err) {
46
- console.error(chalk.red(`\n Job "${job.name}" threw an error:\n`));
47
- console.error(err);
48
- process.exit(1);
49
- }
50
- finally {
51
- closeSession?.();
52
- }
53
- }
54
- export async function run(jobName, eventJson, eventFile) {
55
- assertProjectRoot();
6
+ import { resolveProvider } from "./providers/resolveProvider.js";
7
+ export async function run(jobName, eventJson, eventFile, provider = resolveProvider(), entryFile) {
56
8
  if (eventFile && !eventJson) {
57
9
  try {
58
10
  eventJson = fs.readFileSync(eventFile, "utf-8");
@@ -63,121 +15,58 @@ export async function run(jobName, eventJson, eventFile) {
63
15
  process.exit(1);
64
16
  }
65
17
  }
66
- if (!eventJson) {
18
+ readApiKey();
19
+ let rawEvent;
20
+ if (eventJson) {
21
+ try {
22
+ rawEvent = JSON.parse(eventJson);
23
+ }
24
+ catch (error) {
25
+ console.error(chalk.red("Error: --event must be valid JSON."));
26
+ console.error(chalk.dim(error instanceof Error ? error.message : String(error)));
27
+ process.exit(1);
28
+ }
29
+ }
30
+ else {
31
+ rawEvent = await resolveEventFromRunId();
32
+ }
33
+ if (!rawEvent) {
67
34
  console.error(chalk.red("Error: --event <json> or --event-file <path> is required.\n"));
68
- console.error(chalk.dim(" Usage: terse run --event '{\"integrationType\":\"...\",\"formattedContent\":\"...\",\"debugLog\":\"...\"}'"));
35
+ console.error(chalk.dim(' Usage: terse run --event \'{"integrationType":"...","eventType":"...","formattedContent":"...","debugLog":"...","data":{...}}\''));
69
36
  console.error(chalk.dim(" terse run --event-file ./event.json"));
70
37
  console.error(chalk.dim(" Tip: Use `terse test` to interactively pick a sample event.\n"));
71
38
  process.exit(1);
72
39
  }
73
- readApiKey();
74
- const { job } = await loadJob(jobName);
75
- console.log(chalk.cyan(`\n Running job: ${job.name}\n`));
40
+ const { job } = await loadJob(provider, jobName, entryFile);
76
41
  let parsed;
77
42
  try {
78
- parsed = JSON.parse(eventJson);
43
+ parsed = serializedEventSchema.parse(rawEvent);
79
44
  }
80
- catch {
81
- console.error(chalk.red("Error: --event value is not valid JSON."));
45
+ catch (error) {
46
+ console.error(chalk.red("Error: --event does not match the canonical Trigger schema."));
47
+ console.error(chalk.dim(error instanceof Error ? error.message : String(error)));
82
48
  process.exit(1);
83
49
  }
84
- await executeJob(job, parsed);
50
+ await provider.executeJob(job, parsed, { entryFile });
85
51
  }
86
- async function openSessionStream(apiKey) {
87
- const res = await fetch(`${BACKEND_URL}${ApiRoutes.SDK.SESSION_EVENTS}`, {
88
- headers: { Authorization: `Bearer ${apiKey}`, Accept: "text/event-stream" }
89
- });
90
- if (!res.ok || !res.body) {
91
- throw new Error(`Failed to open session event stream (HTTP ${res.status})`);
52
+ async function resolveEventFromRunId() {
53
+ const runId = process.env.TERSE_RUN_ID?.trim();
54
+ if (!runId) {
55
+ return undefined;
92
56
  }
93
- const reader = res.body.getReader();
94
- const decoder = new TextDecoder();
95
- let buffer = "";
96
- const sessionId = await readSessionId(reader, decoder, buffer);
97
- buffer = sessionId._remainingBuffer;
98
- startEventConsumer(reader, decoder, buffer);
99
- return {
100
- sessionId: sessionId.value,
101
- close: () => reader.cancel().catch(() => { })
102
- };
103
- }
104
- async function readSessionId(reader, decoder, buffer) {
105
- while (true) {
106
- const { done, value } = await reader.read();
107
- if (done)
108
- throw new Error("Session stream ended before sending sessionId");
109
- buffer += decoder.decode(value, { stream: true });
110
- const lines = buffer.split("\n");
111
- buffer = lines.pop() ?? "";
112
- for (const line of lines) {
113
- if (!line.startsWith("data: "))
114
- continue;
115
- const event = safeParseJson(line.slice(6));
116
- if (event?.type === "session_started" && typeof event.sessionId === "string") {
117
- return { value: event.sessionId, _remainingBuffer: buffer };
118
- }
119
- }
120
- }
121
- }
122
- function startEventConsumer(reader, decoder, initialBuffer) {
123
- let buffer = initialBuffer;
124
- (async () => {
125
- try {
126
- while (true) {
127
- const { done, value } = await reader.read();
128
- if (done)
129
- break;
130
- buffer += decoder.decode(value, { stream: true });
131
- const lines = buffer.split("\n");
132
- buffer = lines.pop() ?? "";
133
- for (const line of lines) {
134
- if (!line.startsWith("data: "))
135
- continue;
136
- const event = safeParseJson(line.slice(6));
137
- if (event)
138
- logSessionEvent(event);
139
- }
140
- }
141
- }
142
- catch {
143
- // Stream cancelled by close() — expected
144
- }
145
- })();
146
- }
147
- function logSessionEvent(event) {
148
- switch (event.type) {
149
- case "tool_call_started":
150
- console.log(chalk.blue(` [tool:start] ${event.toolCallStarted}`));
151
- break;
152
- case "tool_call_completed": {
153
- const parsed = safeParseJson(event.toolCallCompleted);
154
- const toolName = parsed?.tool || "unknown_tool";
155
- const status = parsed?.status || "unknown";
156
- const symbol = status === "completed" ? chalk.green("ok") : chalk.red("failed");
157
- console.log(` [tool:done] ${toolName} (${symbol})`);
158
- break;
159
- }
160
- case "action": {
161
- const action = event.action;
162
- const actionName = action?.action || "action";
163
- const target = action?.target ? ` -> ${action.target}` : "";
164
- console.log(chalk.magenta(` [action] ${actionName}${target}`));
165
- break;
166
- }
167
- case "final_output":
168
- console.log(chalk.green(`\n [final_output] ${event.finalOutput}\n`));
169
- break;
170
- case "error":
171
- console.log(chalk.red(` [error] ${event.message}`));
172
- break;
57
+ const apiKey = process.env.TERSE_API_KEY ?? null;
58
+ if (!apiKey) {
59
+ console.error(chalk.red(`Error: TERSE_RUN_ID is set but TERSE_API_KEY is missing, so the trigger event for run ${runId} cannot be fetched.`));
60
+ process.exit(1);
173
61
  }
174
- }
175
- function safeParseJson(value) {
176
62
  try {
177
- return JSON.parse(value);
63
+ const response = await fetchWithAuth(buildRoute(ApiRoutes.SDK.RUN_TRIGGER_EVENT, { runId }), apiKey);
64
+ return sdkRunTriggerEventResponseSchema.parse(response).event;
178
65
  }
179
- catch {
180
- return null;
66
+ catch (error) {
67
+ console.error(chalk.red(`Error: Could not fetch the trigger event for run ${runId}.`));
68
+ console.error(chalk.dim(error instanceof Error ? error.message : String(error)));
69
+ process.exit(1);
181
70
  }
182
71
  }
183
72
  //# sourceMappingURL=run.js.map
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,6 @@ import type { SerializedEvent } from "terse-types";
4
4
  * the underlying Trigger payload (`event.data`) is identical — we deliberately
5
5
  * avoid hashing display strings like `formattedContent` because the server
6
6
  * renders relative timestamps that drift between calls.
7
- *
8
- * For synthetic cron/webhook events the CLI builds in test.ts, the caller is
9
- * responsible for ensuring each trigger produces a distinct `data` (e.g. by
10
- * stamping a `_syntheticTriggerIndex`).
11
7
  */
12
8
  export declare function hashEventKey(event: SerializedEvent): string;
13
9
  //# sourceMappingURL=sampleEventId.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sampleEventId.d.ts","sourceRoot":"","sources":["../src/sampleEventId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAO3D"}
1
+ {"version":3,"file":"sampleEventId.d.ts","sourceRoot":"","sources":["../src/sampleEventId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAO3D"}
@@ -4,10 +4,6 @@ import { createHash } from "node:crypto";
4
4
  * the underlying Trigger payload (`event.data`) is identical — we deliberately
5
5
  * avoid hashing display strings like `formattedContent` because the server
6
6
  * renders relative timestamps that drift between calls.
7
- *
8
- * For synthetic cron/webhook events the CLI builds in test.ts, the caller is
9
- * responsible for ensuring each trigger produces a distinct `data` (e.g. by
10
- * stamping a `_syntheticTriggerIndex`).
11
7
  */
12
8
  export function hashEventKey(event) {
13
9
  const material = JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"sampleEventId.js","sourceRoot":"","sources":["../src/sampleEventId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAsB;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC,CAAA;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC"}
1
+ {"version":3,"file":"sampleEventId.js","sourceRoot":"","sources":["../src/sampleEventId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAsB;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC,CAAA;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SerializedEvent } from "terse-types";
2
+ export declare function parseSerializedEventJson(raw: string, flagLabel: string): SerializedEvent;
3
+ //# sourceMappingURL=serializedEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializedEvent.d.ts","sourceRoot":"","sources":["../src/serializedEvent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAKlD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAExF"}
@@ -0,0 +1,40 @@
1
+ import { serializedEventSchema } from "terse-types";
2
+ import { z } from "zod";
3
+ import { CliError } from "./cliError.js";
4
+ export function parseSerializedEventJson(raw, flagLabel) {
5
+ return validateSerializedEvent(parseJson(raw, flagLabel));
6
+ }
7
+ function parseJson(raw, flagLabel) {
8
+ try {
9
+ return JSON.parse(raw);
10
+ }
11
+ catch (err) {
12
+ throw new CliError("invalid_event_json", `${flagLabel} must be valid JSON.`, {
13
+ detail: err instanceof Error ? err.message : String(err)
14
+ });
15
+ }
16
+ }
17
+ function validateSerializedEvent(parsed) {
18
+ const result = serializedEventSchema.safeParse(parsed);
19
+ if (result.success)
20
+ return result.data;
21
+ throw new CliError("invalid_event_shape", "Event JSON does not match the canonical Trigger schema.", {
22
+ detail: `${EXPECTED_ENVELOPE_HINT}\n\nValidation issues:\n${z.prettifyError(result.error)}`
23
+ });
24
+ }
25
+ const EXPECTED_ENVELOPE_HINT = `Expected envelope (webhook example):
26
+ {
27
+ "integrationType": "webhook",
28
+ "eventType": "webhook",
29
+ "formattedContent": "<any string>",
30
+ "debugLog": "<any string>",
31
+ "data": {
32
+ "integrationType": "webhook",
33
+ "eventType": "webhook",
34
+ "body": <your provider payload>,
35
+ "headers": { "content-type": "application/json" },
36
+ "method": "POST"
37
+ }
38
+ }
39
+ Tip: \`terse test show <id> --json\` prints a valid event.`;
40
+ //# sourceMappingURL=serializedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializedEvent.js","sourceRoot":"","sources":["../src/serializedEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,SAAiB;IACnE,OAAO,uBAAuB,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,SAAiB;IAC7C,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,GAAG,SAAS,sBAAsB,EAAE;YACzE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC3D,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAe;IAC5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACtD,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAA;IACtC,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,yDAAyD,EAAE;QACjG,MAAM,EAAE,GAAG,sBAAsB,2BAA2B,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KAC9F,CAAC,CAAA;AACN,CAAC;AAED,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;2DAc4B,CAAA"}
@@ -139,6 +139,9 @@ export declare const ApiRoutes: {
139
139
  readonly INTEGRATIONS: "/workos-integration/integrations";
140
140
  readonly WEBHOOK_SECRET: "/workos-integration/webhook-secret";
141
141
  };
142
+ readonly SNOWFLAKE: {
143
+ readonly INTEGRATIONS: "/snowflake/integrations";
144
+ };
142
145
  readonly ATTIO: {
143
146
  readonly INTEGRATIONS: "/attio/integrations";
144
147
  readonly OAUTH_CALLBACK: "/attio/oauth/callback";
@@ -245,8 +248,24 @@ export declare const ApiRoutes: {
245
248
  readonly TOOL_EXECUTE: "/sdk/tool-execute";
246
249
  readonly TOOL_DEFINITIONS: "/sdk/tool-definitions";
247
250
  readonly AGENT_RUN: "/sdk/agent-run";
251
+ readonly APPROVAL_DECISION: "/sdk/approval-decision";
248
252
  readonly SESSION_EVENTS: "/sdk/session-events";
249
253
  readonly DEPLOY: "/sdk/deploy";
254
+ readonly DEVICE_TOKEN_EXCHANGE: "/sdk/auth/device-token-exchange";
255
+ readonly INTEGRATION_FIELDS: {
256
+ readonly pattern: "/sdk/integrations/:integrationType/fields";
257
+ readonly build: (integrationType: string) => string;
258
+ readonly params: {
259
+ readonly integrationType: "string";
260
+ };
261
+ };
262
+ readonly INTEGRATION_FORM_SUBMIT: {
263
+ readonly pattern: "/sdk/integrations/:integrationType/form-submit";
264
+ readonly build: (integrationType: string) => string;
265
+ readonly params: {
266
+ readonly integrationType: "string";
267
+ };
268
+ };
250
269
  };
251
270
  readonly NOTIFICATION_SETTINGS: "/notification-settings";
252
271
  readonly SENT_NOTIFICATIONS: {
@@ -1 +1 @@
1
- {"version":3,"file":"ApiRoutes.d.ts","sourceRoot":"","sources":["../../src/shared/ApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;6CAyBc,MAAM;;;;;;;;;;;;sCAcb,MAAM;;;;;;;oCAKR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA0FE,MAAM;;;;;;;4CAKN,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;;;;4CAuB1B,MAAM;;;;;;;;;;;iCAWjB,MAAM;;;;;;;;;sCAQD,MAAM;;;;;;;sCAKN,MAAM,MAAM,MAAM;;;;;;;;sCAKlB,MAAM,MAAM,MAAM;;;;;;;;sCAKlB,MAAM,MAAM,MAAM;;;;;;;;sCAKlB,MAAM;;;;;;;;;;;;;;;;8CAoBE,MAAM;;;;;;;;;;;;iCAYnB,MAAM;;;;;;;;;;iCAUN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAiCC,MAAM;;;;;;;qCAKT,MAAM;;;;;;;sCAKL,MAAM;;;;;;;4CAKA,MAAM;;;;;;;;;sCASZ,MAAM;;;;;;;2CAKD,MAAM;;;;;;;;;;;;iCAchB,MAAM;;;;;;;;;wCASC,MAAM;;;;;;CAI3B,CAAA"}
1
+ {"version":3,"file":"ApiRoutes.d.ts","sourceRoot":"","sources":["../../src/shared/ApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;6CAyBc,MAAM;;;;;;;;;;;;sCAcb,MAAM;;;;;;;oCAKR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA0FE,MAAM;;;;;;;4CAKN,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;4CA4B1B,MAAM;;;;;;;;;;;iCAWjB,MAAM;;;;;;;;;sCAQD,MAAM;;;;;;;sCAKN,MAAM,MAAM,MAAM;;;;;;;;sCAKlB,MAAM,MAAM,MAAM;;;;;;;;sCAKlB,MAAM,MAAM,MAAM;;;;;;;;sCAKlB,MAAM;;;;;;;;;;;;;;;;8CAoBE,MAAM;;;;;;;;;;;;iCAYnB,MAAM;;;;;;;;;;iCAUN,MAAM;;;;;;;;;;;;;;;;;;8CAkBO,MAAM;;;;;;;8CAKN,MAAM;;;;;;;;;;;;;;;;;;;wCAsBZ,MAAM;;;;;;;qCAKT,MAAM;;;;;;;sCAKL,MAAM;;;;;;;4CAKA,MAAM;;;;;;;;;sCASZ,MAAM;;;;;;;2CAKD,MAAM;;;;;;;;;;;;iCAchB,MAAM;;;;;;;;;wCASC,MAAM;;;;;;CAI3B,CAAA"}