gateproof 0.2.4 → 0.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 (122) hide show
  1. package/README.md +1447 -153
  2. package/dist/cloudflare/index.d.ts +4 -6
  3. package/dist/cloudflare/index.d.ts.map +1 -1
  4. package/dist/cloudflare/index.js +9 -43
  5. package/dist/cloudflare/index.js.map +1 -1
  6. package/dist/index.d.ts +263 -75
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1327 -212
  9. package/dist/index.js.map +1 -1
  10. package/package.json +18 -48
  11. package/dist/act.d.ts +0 -78
  12. package/dist/act.d.ts.map +0 -1
  13. package/dist/act.js +0 -47
  14. package/dist/act.js.map +0 -1
  15. package/dist/action-executors.d.ts +0 -39
  16. package/dist/action-executors.d.ts.map +0 -1
  17. package/dist/action-executors.js +0 -195
  18. package/dist/action-executors.js.map +0 -1
  19. package/dist/assert.d.ts +0 -59
  20. package/dist/assert.d.ts.map +0 -1
  21. package/dist/assert.js +0 -120
  22. package/dist/assert.js.map +0 -1
  23. package/dist/authority.d.ts +0 -34
  24. package/dist/authority.d.ts.map +0 -1
  25. package/dist/authority.js +0 -141
  26. package/dist/authority.js.map +0 -1
  27. package/dist/cli/gateproof.d.ts +0 -3
  28. package/dist/cli/gateproof.d.ts.map +0 -1
  29. package/dist/cli/gateproof.js +0 -548
  30. package/dist/cli/gateproof.js.map +0 -1
  31. package/dist/cloudflare/analytics.d.ts +0 -9
  32. package/dist/cloudflare/analytics.d.ts.map +0 -1
  33. package/dist/cloudflare/analytics.js +0 -98
  34. package/dist/cloudflare/analytics.js.map +0 -1
  35. package/dist/cloudflare/cli-stream.d.ts +0 -7
  36. package/dist/cloudflare/cli-stream.d.ts.map +0 -1
  37. package/dist/cloudflare/cli-stream.js +0 -85
  38. package/dist/cloudflare/cli-stream.js.map +0 -1
  39. package/dist/cloudflare/polling-backend.d.ts +0 -18
  40. package/dist/cloudflare/polling-backend.d.ts.map +0 -1
  41. package/dist/cloudflare/polling-backend.js +0 -53
  42. package/dist/cloudflare/polling-backend.js.map +0 -1
  43. package/dist/cloudflare/workers-logs.d.ts +0 -9
  44. package/dist/cloudflare/workers-logs.d.ts.map +0 -1
  45. package/dist/cloudflare/workers-logs.js +0 -51
  46. package/dist/cloudflare/workers-logs.js.map +0 -1
  47. package/dist/constants.d.ts +0 -11
  48. package/dist/constants.d.ts.map +0 -1
  49. package/dist/constants.js +0 -11
  50. package/dist/constants.js.map +0 -1
  51. package/dist/filepath-backend.d.ts +0 -64
  52. package/dist/filepath-backend.d.ts.map +0 -1
  53. package/dist/filepath-backend.js +0 -126
  54. package/dist/filepath-backend.js.map +0 -1
  55. package/dist/filepath-protocol.d.ts +0 -214
  56. package/dist/filepath-protocol.d.ts.map +0 -1
  57. package/dist/filepath-protocol.js +0 -239
  58. package/dist/filepath-protocol.js.map +0 -1
  59. package/dist/filepath-runtime.d.ts +0 -100
  60. package/dist/filepath-runtime.d.ts.map +0 -1
  61. package/dist/filepath-runtime.js +0 -190
  62. package/dist/filepath-runtime.js.map +0 -1
  63. package/dist/http-backend.d.ts +0 -32
  64. package/dist/http-backend.d.ts.map +0 -1
  65. package/dist/http-backend.js +0 -166
  66. package/dist/http-backend.js.map +0 -1
  67. package/dist/observe.d.ts +0 -26
  68. package/dist/observe.d.ts.map +0 -1
  69. package/dist/observe.js +0 -84
  70. package/dist/observe.js.map +0 -1
  71. package/dist/prd/define-prd.d.ts +0 -7
  72. package/dist/prd/define-prd.d.ts.map +0 -1
  73. package/dist/prd/define-prd.js +0 -8
  74. package/dist/prd/define-prd.js.map +0 -1
  75. package/dist/prd/index.d.ts +0 -7
  76. package/dist/prd/index.d.ts.map +0 -1
  77. package/dist/prd/index.js +0 -8
  78. package/dist/prd/index.js.map +0 -1
  79. package/dist/prd/loop.d.ts +0 -160
  80. package/dist/prd/loop.d.ts.map +0 -1
  81. package/dist/prd/loop.js +0 -462
  82. package/dist/prd/loop.js.map +0 -1
  83. package/dist/prd/runner.d.ts +0 -19
  84. package/dist/prd/runner.d.ts.map +0 -1
  85. package/dist/prd/runner.js +0 -253
  86. package/dist/prd/runner.js.map +0 -1
  87. package/dist/prd/scope-check.d.ts +0 -28
  88. package/dist/prd/scope-check.d.ts.map +0 -1
  89. package/dist/prd/scope-check.js +0 -135
  90. package/dist/prd/scope-check.js.map +0 -1
  91. package/dist/prd/scope-defaults.d.ts +0 -75
  92. package/dist/prd/scope-defaults.d.ts.map +0 -1
  93. package/dist/prd/scope-defaults.js +0 -235
  94. package/dist/prd/scope-defaults.js.map +0 -1
  95. package/dist/prd/types.d.ts +0 -101
  96. package/dist/prd/types.d.ts.map +0 -1
  97. package/dist/prd/types.js +0 -2
  98. package/dist/prd/types.js.map +0 -1
  99. package/dist/provider.d.ts +0 -6
  100. package/dist/provider.d.ts.map +0 -1
  101. package/dist/provider.js +0 -2
  102. package/dist/provider.js.map +0 -1
  103. package/dist/report.d.ts +0 -137
  104. package/dist/report.d.ts.map +0 -1
  105. package/dist/report.js +0 -234
  106. package/dist/report.js.map +0 -1
  107. package/dist/test-helpers.d.ts +0 -12
  108. package/dist/test-helpers.d.ts.map +0 -1
  109. package/dist/test-helpers.js +0 -33
  110. package/dist/test-helpers.js.map +0 -1
  111. package/dist/types.d.ts +0 -41
  112. package/dist/types.d.ts.map +0 -1
  113. package/dist/types.js +0 -2
  114. package/dist/types.js.map +0 -1
  115. package/dist/utils.d.ts +0 -22
  116. package/dist/utils.d.ts.map +0 -1
  117. package/dist/utils.js +0 -49
  118. package/dist/utils.js.map +0 -1
  119. package/dist/validation.d.ts +0 -6
  120. package/dist/validation.d.ts.map +0 -1
  121. package/dist/validation.js +0 -38
  122. package/dist/validation.js.map +0 -1
package/dist/assert.d.ts DELETED
@@ -1,59 +0,0 @@
1
- import { Effect, Schema } from "effect";
2
- import type { Log } from "./types";
3
- import type { StoryAuthority } from "./prd/types";
4
- declare const AssertionFailed_base: Schema.TaggedErrorClass<AssertionFailed, "AssertionFailed", {
5
- readonly _tag: Schema.tag<"AssertionFailed">;
6
- } & {
7
- assertion: typeof Schema.String;
8
- details: typeof Schema.Unknown;
9
- }>;
10
- export declare class AssertionFailed extends AssertionFailed_base {
11
- }
12
- declare const AssertionAggregateFailed_base: Schema.TaggedErrorClass<AssertionAggregateFailed, "AssertionAggregateFailed", {
13
- readonly _tag: Schema.tag<"AssertionAggregateFailed">;
14
- } & {
15
- failures: Schema.Array$<Schema.instanceOf<AssertionFailed>>;
16
- }>;
17
- export declare class AssertionAggregateFailed extends AssertionAggregateFailed_base {
18
- }
19
- export type Assertion = {
20
- _tag: "NoErrors";
21
- } | {
22
- _tag: "HasAction";
23
- action: string;
24
- } | {
25
- _tag: "HasStage";
26
- stage: string;
27
- } | {
28
- _tag: "Custom";
29
- fn: (logs: Log[]) => boolean | Promise<boolean>;
30
- name: string;
31
- };
32
- export declare namespace Assert {
33
- function noErrors(): Assertion;
34
- function hasAction(action: string): Assertion;
35
- function hasStage(stage: string): Assertion;
36
- function custom(name: string, fn: (logs: Log[]) => boolean | Promise<boolean>): Assertion;
37
- /**
38
- * Assert that agent behavior complied with an authority policy.
39
- *
40
- * Checks collected logs against governance rules: tool restrictions,
41
- * spawn limits, commit permissions, agent/model constraints.
42
- *
43
- * @example
44
- * ```ts
45
- * assert: [
46
- * Assert.authority({
47
- * canSpawn: false,
48
- * canCommit: true,
49
- * forbiddenTools: ["delete_file"],
50
- * }),
51
- * Assert.hasAction("done"),
52
- * ]
53
- * ```
54
- */
55
- function authority(policy: StoryAuthority): Assertion;
56
- function run(assertions: Assertion[], logs: Log[]): Effect.Effect<void, AssertionFailed | AssertionAggregateFailed>;
57
- }
58
- export {};
59
- //# sourceMappingURL=assert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;;;;;;;AAGlD,qBAAa,eAAgB,SAAQ,oBAMpC;CAAG;;;;;;AAEJ,qBAAa,wBAAyB,SAAQ,6BAK7C;CAAG;AAEJ,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,yBAAiB,MAAM,CAAC;IACtB,SAAgB,QAAQ,IAAI,SAAS,CAEpC;IAED,SAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAEnD;IAED,SAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEjD;IAED,SAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC9C,SAAS,CAEX;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAW3D;IAED,SAAgB,GAAG,CACjB,UAAU,EAAE,SAAS,EAAE,EACvB,IAAI,EAAE,GAAG,EAAE,GACV,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,wBAAwB,CAAC,CA8DjE;CACF"}
package/dist/assert.js DELETED
@@ -1,120 +0,0 @@
1
- import { Effect, Schema } from "effect";
2
- import { validateAuthority } from "./authority";
3
- export class AssertionFailed extends Schema.TaggedError()("AssertionFailed", {
4
- assertion: Schema.String,
5
- details: Schema.Unknown
6
- }) {
7
- }
8
- export class AssertionAggregateFailed extends Schema.TaggedError()("AssertionAggregateFailed", {
9
- failures: Schema.Array(Schema.instanceOf(AssertionFailed))
10
- }) {
11
- }
12
- export var Assert;
13
- (function (Assert) {
14
- function noErrors() {
15
- return { _tag: "NoErrors" };
16
- }
17
- Assert.noErrors = noErrors;
18
- function hasAction(action) {
19
- return { _tag: "HasAction", action };
20
- }
21
- Assert.hasAction = hasAction;
22
- function hasStage(stage) {
23
- return { _tag: "HasStage", stage };
24
- }
25
- Assert.hasStage = hasStage;
26
- function custom(name, fn) {
27
- return { _tag: "Custom", fn, name };
28
- }
29
- Assert.custom = custom;
30
- /**
31
- * Assert that agent behavior complied with an authority policy.
32
- *
33
- * Checks collected logs against governance rules: tool restrictions,
34
- * spawn limits, commit permissions, agent/model constraints.
35
- *
36
- * @example
37
- * ```ts
38
- * assert: [
39
- * Assert.authority({
40
- * canSpawn: false,
41
- * canCommit: true,
42
- * forbiddenTools: ["delete_file"],
43
- * }),
44
- * Assert.hasAction("done"),
45
- * ]
46
- * ```
47
- */
48
- function authority(policy) {
49
- return custom("Authority", (logs) => {
50
- const violations = validateAuthority(logs, policy);
51
- if (violations.length > 0) {
52
- for (const v of violations) {
53
- console.warn(`[Authority] ${v.rule}: ${v.message}`);
54
- }
55
- return false;
56
- }
57
- return true;
58
- });
59
- }
60
- Assert.authority = authority;
61
- function run(assertions, logs) {
62
- return Effect.gen(function* () {
63
- const failures = [];
64
- for (const assertion of assertions) {
65
- if (assertion._tag === "NoErrors") {
66
- const errorLog = logs.find((l) => l.status === "error" || l.error);
67
- if (errorLog) {
68
- failures.push(new AssertionFailed({
69
- assertion: "NoErrors",
70
- details: { found: errorLog }
71
- }));
72
- }
73
- }
74
- else if (assertion._tag === "HasAction") {
75
- const found = logs.some((l) => l.action === assertion.action);
76
- if (!found) {
77
- failures.push(new AssertionFailed({
78
- assertion: "HasAction",
79
- details: {
80
- missing: assertion.action,
81
- seen: logs.map((l) => l.action).filter(Boolean)
82
- }
83
- }));
84
- }
85
- }
86
- else if (assertion._tag === "HasStage") {
87
- const found = logs.some((l) => l.stage === assertion.stage);
88
- if (!found) {
89
- failures.push(new AssertionFailed({
90
- assertion: "HasStage",
91
- details: {
92
- missing: assertion.stage,
93
- seen: logs.map((l) => l.stage).filter(Boolean)
94
- }
95
- }));
96
- }
97
- }
98
- else if (assertion._tag === "Custom") {
99
- const passed = yield* Effect.promise(() => Promise.resolve(assertion.fn(logs)));
100
- if (!passed) {
101
- failures.push(new AssertionFailed({
102
- assertion: assertion.name,
103
- details: { custom: true }
104
- }));
105
- }
106
- }
107
- }
108
- if (failures.length > 0) {
109
- if (failures.length === 1) {
110
- yield* Effect.fail(failures[0]);
111
- }
112
- else {
113
- yield* Effect.fail(new AssertionAggregateFailed({ failures }));
114
- }
115
- }
116
- });
117
- }
118
- Assert.run = run;
119
- })(Assert || (Assert = {}));
120
- //# sourceMappingURL=assert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Authority — Governance validation for agent-executed gates.
3
- *
4
- * Validates that agent events (tools used, spawns requested, commits made)
5
- * comply with the StoryAuthority policy defined on the story.
6
- *
7
- * This is the enforcement layer: StoryAuthority defines what's allowed,
8
- * this module checks whether agent behavior stayed within bounds.
9
- */
10
- import type { Log } from "./types";
11
- import type { StoryAuthority } from "./prd/types";
12
- import type { AgentEvent } from "./filepath-protocol";
13
- export interface AuthorityViolation {
14
- rule: string;
15
- message: string;
16
- event?: AgentEvent;
17
- log?: Log;
18
- }
19
- /**
20
- * Validates a stream of logs against a StoryAuthority policy.
21
- * Returns an array of violations (empty = compliant).
22
- */
23
- export declare function validateAuthority(logs: Log[], authority: StoryAuthority): AuthorityViolation[];
24
- /**
25
- * Merges a story's authority with PRD-level defaults.
26
- * Story-level settings take precedence.
27
- */
28
- export declare function mergeAuthority(storyAuthority?: StoryAuthority, defaultAuthority?: StoryAuthority): StoryAuthority | undefined;
29
- /**
30
- * Flattens a tree of stories (with children) into a flat array.
31
- * Assigns parentId to children automatically.
32
- */
33
- export declare function flattenStoryTree<TId extends string>(stories: readonly import("./prd/types").Story<TId>[]): import("./prd/types").Story<TId>[];
34
- //# sourceMappingURL=authority.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../src/authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,GAAG,EAAE,EACX,SAAS,EAAE,cAAc,GACxB,kBAAkB,EAAE,CAgGtB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,CAAC,EAAE,cAAc,GAChC,cAAc,GAAG,SAAS,CAc5B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,EACjD,OAAO,EAAE,SAAS,OAAO,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GACnD,OAAO,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAqBpC"}
package/dist/authority.js DELETED
@@ -1,141 +0,0 @@
1
- /**
2
- * Authority — Governance validation for agent-executed gates.
3
- *
4
- * Validates that agent events (tools used, spawns requested, commits made)
5
- * comply with the StoryAuthority policy defined on the story.
6
- *
7
- * This is the enforcement layer: StoryAuthority defines what's allowed,
8
- * this module checks whether agent behavior stayed within bounds.
9
- */
10
- /**
11
- * Validates a stream of logs against a StoryAuthority policy.
12
- * Returns an array of violations (empty = compliant).
13
- */
14
- export function validateAuthority(logs, authority) {
15
- const violations = [];
16
- // Count spawns
17
- if (authority.canSpawn === false) {
18
- const spawnLogs = logs.filter((l) => l.action === "spawn");
19
- if (spawnLogs.length > 0) {
20
- violations.push({
21
- rule: "canSpawn",
22
- message: `Agent spawned ${spawnLogs.length} child agent(s) but canSpawn is false`,
23
- log: spawnLogs[0],
24
- });
25
- }
26
- }
27
- if (authority.maxChildAgents !== undefined) {
28
- const spawnCount = logs.filter((l) => l.action === "spawn").length;
29
- if (spawnCount > authority.maxChildAgents) {
30
- violations.push({
31
- rule: "maxChildAgents",
32
- message: `Agent spawned ${spawnCount} children, exceeding limit of ${authority.maxChildAgents}`,
33
- });
34
- }
35
- }
36
- // Check commits
37
- if (authority.canCommit === false) {
38
- const commitLogs = logs.filter((l) => l.action === "commit");
39
- if (commitLogs.length > 0) {
40
- violations.push({
41
- rule: "canCommit",
42
- message: `Agent made ${commitLogs.length} commit(s) but canCommit is false`,
43
- log: commitLogs[0],
44
- });
45
- }
46
- }
47
- // Check tool restrictions
48
- if (authority.allowedTools || authority.forbiddenTools) {
49
- const toolLogs = logs.filter((l) => l.action?.startsWith("tool:"));
50
- for (const log of toolLogs) {
51
- const toolName = log.action.replace("tool:", "");
52
- if (authority.forbiddenTools?.includes(toolName)) {
53
- violations.push({
54
- rule: "forbiddenTools",
55
- message: `Agent used forbidden tool "${toolName}"`,
56
- log,
57
- });
58
- }
59
- if (authority.allowedTools &&
60
- authority.allowedTools.length > 0 &&
61
- !authority.allowedTools.includes(toolName)) {
62
- violations.push({
63
- rule: "allowedTools",
64
- message: `Agent used tool "${toolName}" which is not in allowedTools`,
65
- log,
66
- });
67
- }
68
- }
69
- }
70
- // Check agent runtime restrictions
71
- if (authority.allowedAgents && authority.allowedAgents.length > 0) {
72
- const spawnLogs = logs.filter((l) => l.action === "spawn");
73
- for (const log of spawnLogs) {
74
- const agentType = log.data?.agent;
75
- if (agentType && !authority.allowedAgents.includes(agentType)) {
76
- violations.push({
77
- rule: "allowedAgents",
78
- message: `Agent spawned child with runtime "${agentType}" which is not in allowedAgents`,
79
- log,
80
- });
81
- }
82
- }
83
- }
84
- // Check model restrictions
85
- if (authority.allowedModels && authority.allowedModels.length > 0) {
86
- const spawnLogs = logs.filter((l) => l.action === "spawn");
87
- for (const log of spawnLogs) {
88
- const model = log.data?.model;
89
- if (model && !authority.allowedModels.includes(model)) {
90
- violations.push({
91
- rule: "allowedModels",
92
- message: `Agent spawned child with model "${model}" which is not in allowedModels`,
93
- log,
94
- });
95
- }
96
- }
97
- }
98
- return violations;
99
- }
100
- /**
101
- * Merges a story's authority with PRD-level defaults.
102
- * Story-level settings take precedence.
103
- */
104
- export function mergeAuthority(storyAuthority, defaultAuthority) {
105
- if (!storyAuthority && !defaultAuthority)
106
- return undefined;
107
- if (!defaultAuthority)
108
- return storyAuthority;
109
- if (!storyAuthority)
110
- return defaultAuthority;
111
- return {
112
- ...defaultAuthority,
113
- ...storyAuthority,
114
- // Array fields: story overrides completely (not merged)
115
- allowedAgents: storyAuthority.allowedAgents ?? defaultAuthority.allowedAgents,
116
- allowedModels: storyAuthority.allowedModels ?? defaultAuthority.allowedModels,
117
- allowedTools: storyAuthority.allowedTools ?? defaultAuthority.allowedTools,
118
- forbiddenTools: storyAuthority.forbiddenTools ?? defaultAuthority.forbiddenTools,
119
- };
120
- }
121
- /**
122
- * Flattens a tree of stories (with children) into a flat array.
123
- * Assigns parentId to children automatically.
124
- */
125
- export function flattenStoryTree(stories) {
126
- const result = [];
127
- function walk(storyList, parentId) {
128
- for (const story of storyList) {
129
- const flat = { ...story, parentId: story.parentId ?? parentId };
130
- // Remove children from the flat version
131
- const { children, ...rest } = flat;
132
- result.push(rest);
133
- if (children && children.length > 0) {
134
- walk(children, story.id);
135
- }
136
- }
137
- }
138
- walk(stories);
139
- return result;
140
- }
141
- //# sourceMappingURL=authority.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authority.js","sourceRoot":"","sources":["../src/authority.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=gateproof.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateproof.d.ts","sourceRoot":"","sources":["../../src/cli/gateproof.ts"],"names":[],"mappings":""}