@haibun/core 4.0.0-alpha.2 → 4.0.0-alpha.3

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 (297) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +1 -1
  3. package/build/index.d.ts +1 -1
  4. package/build/index.d.ts.map +1 -1
  5. package/build/index.js +1 -1
  6. package/build/index.js.map +1 -1
  7. package/build/kireji/converter.d.ts +2 -2
  8. package/build/kireji/converter.d.ts.map +1 -1
  9. package/build/kireji/converter.js +12 -9
  10. package/build/kireji/converter.js.map +1 -1
  11. package/build/kireji/withAction.d.ts +16 -4
  12. package/build/kireji/withAction.d.ts.map +1 -1
  13. package/build/kireji/withAction.js +40 -11
  14. package/build/kireji/withAction.js.map +1 -1
  15. package/build/lib/EventLogger.d.ts +5 -5
  16. package/build/lib/EventLogger.d.ts.map +1 -1
  17. package/build/lib/EventLogger.js +39 -37
  18. package/build/lib/EventLogger.js.map +1 -1
  19. package/build/lib/PhaseRunner.d.ts +3 -3
  20. package/build/lib/PhaseRunner.d.ts.map +1 -1
  21. package/build/lib/PhaseRunner.js +7 -5
  22. package/build/lib/PhaseRunner.js.map +1 -1
  23. package/build/lib/astepper.d.ts +90 -13
  24. package/build/lib/astepper.d.ts.map +1 -1
  25. package/build/lib/astepper.js +35 -6
  26. package/build/lib/astepper.js.map +1 -1
  27. package/build/lib/base-prompt-manager.d.ts +1 -1
  28. package/build/lib/base-prompt-manager.d.ts.map +1 -1
  29. package/build/lib/base-prompt-manager.js.map +1 -1
  30. package/build/lib/capture-locator.d.ts +1 -1
  31. package/build/lib/capture-locator.d.ts.map +1 -1
  32. package/build/lib/capture-locator.js +5 -5
  33. package/build/lib/capture-locator.js.map +1 -1
  34. package/build/lib/core/flow-runner.d.ts +8 -7
  35. package/build/lib/core/flow-runner.d.ts.map +1 -1
  36. package/build/lib/core/flow-runner.js +42 -71
  37. package/build/lib/core/flow-runner.js.map +1 -1
  38. package/build/lib/core-domains.d.ts +2 -2
  39. package/build/lib/core-domains.d.ts.map +1 -1
  40. package/build/lib/core-domains.js +17 -18
  41. package/build/lib/core-domains.js.map +1 -1
  42. package/build/lib/defs.d.ts +2 -13
  43. package/build/lib/defs.d.ts.map +1 -1
  44. package/build/lib/defs.js.map +1 -1
  45. package/build/lib/document-content.d.ts +18 -0
  46. package/build/lib/document-content.d.ts.map +1 -0
  47. package/build/lib/document-content.js +158 -0
  48. package/build/lib/document-content.js.map +1 -0
  49. package/build/lib/domains.d.ts +31 -0
  50. package/build/lib/domains.d.ts.map +1 -0
  51. package/build/lib/domains.js +105 -0
  52. package/build/lib/domains.js.map +1 -0
  53. package/build/lib/execution.d.ts +304 -0
  54. package/build/lib/execution.d.ts.map +1 -0
  55. package/build/lib/execution.js +23 -0
  56. package/build/lib/execution.js.map +1 -0
  57. package/build/lib/feature-variables.d.ts +21 -50
  58. package/build/lib/feature-variables.d.ts.map +1 -1
  59. package/build/lib/feature-variables.js +122 -232
  60. package/build/lib/feature-variables.js.map +1 -1
  61. package/build/lib/features.d.ts +2 -2
  62. package/build/lib/features.d.ts.map +1 -1
  63. package/build/lib/features.js +13 -17
  64. package/build/lib/features.js.map +1 -1
  65. package/build/lib/fixme.d.ts.map +1 -1
  66. package/build/lib/host-id.d.ts +44 -0
  67. package/build/lib/host-id.d.ts.map +1 -0
  68. package/build/lib/host-id.js +51 -0
  69. package/build/lib/host-id.js.map +1 -0
  70. package/build/lib/http-observations.d.ts +15 -2
  71. package/build/lib/http-observations.d.ts.map +1 -1
  72. package/build/lib/http-observations.js +40 -23
  73. package/build/lib/http-observations.js.map +1 -1
  74. package/build/lib/hypermedia.d.ts +62 -0
  75. package/build/lib/hypermedia.d.ts.map +1 -0
  76. package/build/lib/hypermedia.js +228 -0
  77. package/build/lib/hypermedia.js.map +1 -0
  78. package/build/lib/namedVars.d.ts +2 -2
  79. package/build/lib/namedVars.d.ts.map +1 -1
  80. package/build/lib/namedVars.js +25 -30
  81. package/build/lib/namedVars.js.map +1 -1
  82. package/build/lib/node-http-events.d.ts +3 -3
  83. package/build/lib/node-http-events.d.ts.map +1 -1
  84. package/build/lib/node-http-events.js +26 -26
  85. package/build/lib/node-http-events.js.map +1 -1
  86. package/build/lib/populateActionArgs.d.ts +4 -4
  87. package/build/lib/populateActionArgs.d.ts.map +1 -1
  88. package/build/lib/populateActionArgs.js +4 -6
  89. package/build/lib/populateActionArgs.js.map +1 -1
  90. package/build/lib/prompter.d.ts.map +1 -1
  91. package/build/lib/prompter.js +10 -7
  92. package/build/lib/prompter.js.map +1 -1
  93. package/build/lib/quad-store.d.ts +34 -10
  94. package/build/lib/quad-store.d.ts.map +1 -1
  95. package/build/lib/quad-store.js +169 -21
  96. package/build/lib/quad-store.js.map +1 -1
  97. package/build/lib/quad-types.d.ts +80 -9
  98. package/build/lib/quad-types.d.ts.map +1 -1
  99. package/build/lib/quad-types.js +46 -2
  100. package/build/lib/quad-types.js.map +1 -1
  101. package/build/lib/readline-prompter.d.ts +1 -1
  102. package/build/lib/readline-prompter.js +4 -4
  103. package/build/lib/remote-stepper-proxy.d.ts +56 -0
  104. package/build/lib/remote-stepper-proxy.d.ts.map +1 -0
  105. package/build/lib/remote-stepper-proxy.js +123 -0
  106. package/build/lib/remote-stepper-proxy.js.map +1 -0
  107. package/build/lib/resolver-features.d.ts +1 -1
  108. package/build/lib/resolver-features.d.ts.map +1 -1
  109. package/build/lib/resolver-features.js +2 -2
  110. package/build/lib/resolver-features.js.map +1 -1
  111. package/build/lib/resources.d.ts +461 -0
  112. package/build/lib/resources.d.ts.map +1 -0
  113. package/build/lib/resources.js +249 -0
  114. package/build/lib/resources.js.map +1 -0
  115. package/build/lib/rpc-client.d.ts +68 -0
  116. package/build/lib/rpc-client.d.ts.map +1 -0
  117. package/build/lib/rpc-client.js +186 -0
  118. package/build/lib/rpc-client.js.map +1 -0
  119. package/build/lib/sse-subscriber.d.ts +57 -0
  120. package/build/lib/sse-subscriber.d.ts.map +1 -0
  121. package/build/lib/sse-subscriber.js +110 -0
  122. package/build/lib/sse-subscriber.js.map +1 -0
  123. package/build/lib/step-dispatch.d.ts +92 -28
  124. package/build/lib/step-dispatch.d.ts.map +1 -1
  125. package/build/lib/step-dispatch.js +331 -75
  126. package/build/lib/step-dispatch.js.map +1 -1
  127. package/build/lib/step-validation.d.ts +3 -3
  128. package/build/lib/step-validation.d.ts.map +1 -1
  129. package/build/lib/step-validation.js +2 -2
  130. package/build/lib/step-validation.js.map +1 -1
  131. package/build/lib/stepper-cycles.d.ts +5 -0
  132. package/build/lib/stepper-cycles.d.ts.map +1 -0
  133. package/build/lib/stepper-cycles.js +31 -0
  134. package/build/lib/stepper-cycles.js.map +1 -0
  135. package/build/lib/stepper-registry.d.ts +6 -3
  136. package/build/lib/stepper-registry.d.ts.map +1 -1
  137. package/build/lib/stepper-registry.js +9 -8
  138. package/build/lib/stepper-registry.js.map +1 -1
  139. package/build/lib/subprocess-runner.d.ts +35 -0
  140. package/build/lib/subprocess-runner.d.ts.map +1 -0
  141. package/build/lib/subprocess-runner.js +60 -0
  142. package/build/lib/subprocess-runner.js.map +1 -0
  143. package/build/lib/subprocess-transport.d.ts +37 -0
  144. package/build/lib/subprocess-transport.d.ts.map +1 -0
  145. package/build/lib/subprocess-transport.js +113 -0
  146. package/build/lib/subprocess-transport.js.map +1 -0
  147. package/build/lib/test/EventCollectorStepper.d.ts +3 -3
  148. package/build/lib/test/EventCollectorStepper.d.ts.map +1 -1
  149. package/build/lib/test/EventCollectorStepper.js +3 -3
  150. package/build/lib/test/EventCollectorStepper.js.map +1 -1
  151. package/build/lib/test/SetTimeStepper.d.ts +3 -3
  152. package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
  153. package/build/lib/test/SetTimeStepper.js +7 -7
  154. package/build/lib/test/SetTimeStepper.js.map +1 -1
  155. package/build/lib/test/TestSteps.d.ts +7 -7
  156. package/build/lib/test/TestSteps.d.ts.map +1 -1
  157. package/build/lib/test/TestSteps.js +7 -7
  158. package/build/lib/test/TestSteps.js.map +1 -1
  159. package/build/lib/test/TestStepsWithOptions.d.ts +6 -6
  160. package/build/lib/test/TestStepsWithOptions.js +7 -7
  161. package/build/lib/test/lib.d.ts +3 -3
  162. package/build/lib/test/lib.d.ts.map +1 -1
  163. package/build/lib/test/lib.js +27 -21
  164. package/build/lib/test/lib.js.map +1 -1
  165. package/build/lib/test/resolvedTestFeatures.d.ts +6 -6
  166. package/build/lib/test/resolvedTestFeatures.d.ts.map +1 -1
  167. package/build/lib/test/resolvedTestFeatures.js +5 -5
  168. package/build/lib/test/subprocess-fixture.d.ts +8 -0
  169. package/build/lib/test/subprocess-fixture.d.ts.map +1 -0
  170. package/build/lib/test/subprocess-fixture.js +27 -0
  171. package/build/lib/test/subprocess-fixture.js.map +1 -0
  172. package/build/lib/ttag.d.ts +7 -1
  173. package/build/lib/ttag.d.ts.map +1 -1
  174. package/build/lib/ttag.js +5 -4
  175. package/build/lib/ttag.js.map +1 -1
  176. package/build/lib/util/dot-path.d.ts +2 -2
  177. package/build/lib/util/dot-path.d.ts.map +1 -1
  178. package/build/lib/util/dot-path.js +8 -7
  179. package/build/lib/util/dot-path.js.map +1 -1
  180. package/build/lib/util/index.d.ts +10 -24
  181. package/build/lib/util/index.d.ts.map +1 -1
  182. package/build/lib/util/index.js +43 -93
  183. package/build/lib/util/index.js.map +1 -1
  184. package/build/lib/util/node/actualURI.d.ts +4 -0
  185. package/build/lib/util/node/actualURI.d.ts.map +1 -0
  186. package/build/lib/util/node/actualURI.js +10 -0
  187. package/build/lib/util/node/actualURI.js.map +1 -0
  188. package/build/lib/util/node/module-loader.d.ts +14 -0
  189. package/build/lib/util/node/module-loader.d.ts.map +1 -0
  190. package/build/lib/util/node/module-loader.js +51 -0
  191. package/build/lib/util/node/module-loader.js.map +1 -0
  192. package/build/lib/util/node/workspace-lib.d.ts +15 -0
  193. package/build/lib/util/node/workspace-lib.d.ts.map +1 -0
  194. package/build/lib/util/node/workspace-lib.js +119 -0
  195. package/build/lib/util/node/workspace-lib.js.map +1 -0
  196. package/build/lib/util/secret-utils.d.ts.map +1 -1
  197. package/build/lib/util/secret-utils.js +2 -2
  198. package/build/lib/util/secret-utils.js.map +1 -1
  199. package/build/lib/vertex-crud.d.ts +22 -0
  200. package/build/lib/vertex-crud.d.ts.map +1 -0
  201. package/build/lib/vertex-crud.js +73 -0
  202. package/build/lib/vertex-crud.js.map +1 -0
  203. package/build/lib/workspace-discovery.d.ts +1 -1
  204. package/build/lib/workspace-discovery.d.ts.map +1 -1
  205. package/build/lib/workspace-discovery.js +10 -10
  206. package/build/lib/workspace-discovery.js.map +1 -1
  207. package/build/lib/zcap-like-authority.d.ts +38 -0
  208. package/build/lib/zcap-like-authority.d.ts.map +1 -0
  209. package/build/lib/zcap-like-authority.js +56 -0
  210. package/build/lib/zcap-like-authority.js.map +1 -0
  211. package/build/monitor/index.d.ts +1 -1
  212. package/build/monitor/index.d.ts.map +1 -1
  213. package/build/monitor/index.js +1 -1
  214. package/build/monitor/index.js.map +1 -1
  215. package/build/phases/Executor.d.ts +31 -7
  216. package/build/phases/Executor.d.ts.map +1 -1
  217. package/build/phases/Executor.js +201 -219
  218. package/build/phases/Executor.js.map +1 -1
  219. package/build/phases/Resolver.d.ts +2 -2
  220. package/build/phases/Resolver.d.ts.map +1 -1
  221. package/build/phases/Resolver.js +35 -30
  222. package/build/phases/Resolver.js.map +1 -1
  223. package/build/phases/collector.d.ts +3 -3
  224. package/build/phases/collector.d.ts.map +1 -1
  225. package/build/phases/collector.js +19 -17
  226. package/build/phases/collector.js.map +1 -1
  227. package/build/run-policy/run-policy-schema.d.ts +3 -5
  228. package/build/run-policy/run-policy-schema.d.ts.map +1 -1
  229. package/build/run-policy/run-policy-schema.js +41 -37
  230. package/build/run-policy/run-policy-schema.js.map +1 -1
  231. package/build/run-policy/run-policy-types.d.ts +1 -1
  232. package/build/run-policy/run-policy-types.d.ts.map +1 -1
  233. package/build/run-policy/run-policy-types.js +19 -16
  234. package/build/run-policy/run-policy-types.js.map +1 -1
  235. package/build/runner.d.ts +4 -4
  236. package/build/runner.d.ts.map +1 -1
  237. package/build/runner.js +15 -13
  238. package/build/runner.js.map +1 -1
  239. package/build/schema/protocol.d.ts +153 -61
  240. package/build/schema/protocol.d.ts.map +1 -1
  241. package/build/schema/protocol.js +177 -148
  242. package/build/schema/protocol.js.map +1 -1
  243. package/build/steps/activities-stepper.d.ts +13 -13
  244. package/build/steps/activities-stepper.d.ts.map +1 -1
  245. package/build/steps/activities-stepper.js +105 -79
  246. package/build/steps/activities-stepper.js.map +1 -1
  247. package/build/steps/conformance.d.ts +5 -5
  248. package/build/steps/conformance.js +4 -4
  249. package/build/steps/console-monitor-stepper.d.ts +2 -2
  250. package/build/steps/console-monitor-stepper.d.ts.map +1 -1
  251. package/build/steps/console-monitor-stepper.js +22 -22
  252. package/build/steps/console-monitor-stepper.js.map +1 -1
  253. package/build/steps/debugger-stepper.d.ts +11 -11
  254. package/build/steps/debugger-stepper.d.ts.map +1 -1
  255. package/build/steps/debugger-stepper.js +65 -64
  256. package/build/steps/debugger-stepper.js.map +1 -1
  257. package/build/steps/finalizer-stepper.d.ts +3 -4
  258. package/build/steps/finalizer-stepper.d.ts.map +1 -1
  259. package/build/steps/finalizer-stepper.js +16 -19
  260. package/build/steps/finalizer-stepper.js.map +1 -1
  261. package/build/steps/haibun.d.ts +27 -20
  262. package/build/steps/haibun.d.ts.map +1 -1
  263. package/build/steps/haibun.js +76 -67
  264. package/build/steps/haibun.js.map +1 -1
  265. package/build/steps/lib/tts.d.ts +1 -1
  266. package/build/steps/lib/tts.d.ts.map +1 -1
  267. package/build/steps/lib/tts.js +28 -28
  268. package/build/steps/lib/tts.js.map +1 -1
  269. package/build/steps/logic-stepper.d.ts +5 -5
  270. package/build/steps/logic-stepper.d.ts.map +1 -1
  271. package/build/steps/logic-stepper.js +76 -76
  272. package/build/steps/logic-stepper.js.map +1 -1
  273. package/build/steps/narrator.d.ts +9 -9
  274. package/build/steps/narrator.d.ts.map +1 -1
  275. package/build/steps/narrator.js +32 -28
  276. package/build/steps/narrator.js.map +1 -1
  277. package/build/steps/resources-stepper.d.ts +47 -0
  278. package/build/steps/resources-stepper.d.ts.map +1 -0
  279. package/build/steps/resources-stepper.js +100 -0
  280. package/build/steps/resources-stepper.js.map +1 -0
  281. package/build/steps/variables-stepper.d.ts +57 -57
  282. package/build/steps/variables-stepper.d.ts.map +1 -1
  283. package/build/steps/variables-stepper.js +252 -224
  284. package/build/steps/variables-stepper.js.map +1 -1
  285. package/build/steps/zcap-like-stepper.d.ts +50 -0
  286. package/build/steps/zcap-like-stepper.d.ts.map +1 -0
  287. package/build/steps/zcap-like-stepper.js +113 -0
  288. package/build/steps/zcap-like-stepper.js.map +1 -0
  289. package/package.json +1 -1
  290. package/build/lib/consts.d.ts +0 -5
  291. package/build/lib/consts.d.ts.map +0 -1
  292. package/build/lib/consts.js +0 -5
  293. package/build/lib/consts.js.map +0 -1
  294. package/build/lib/step-helpers.d.ts +0 -10
  295. package/build/lib/step-helpers.d.ts.map +0 -1
  296. package/build/lib/step-helpers.js +0 -16
  297. package/build/lib/step-helpers.js.map +0 -1
@@ -1,129 +1,96 @@
1
1
  import { isLiteralValue } from "./util/index.js";
2
2
  import { parseDotPath, navigateValue } from "./util/dot-path.js";
3
- import { Origin } from '../schema/protocol.js';
4
- import { DOMAIN_JSON, DOMAIN_STRING, normalizeDomainKey } from "./domain-types.js";
3
+ import { Origin } from "../schema/protocol.js";
4
+ import { DOMAIN_JSON, DOMAIN_STRING, normalizeDomainKey } from "./domains.js";
5
5
  import { QuadStore } from "./quad-store.js";
6
- export const SHARED_GRAPH = 'variables';
7
- export const META_GRAPH = 'meta';
8
- export const OBSERVATION_GRAPH = 'observation';
9
- export const OBSCURED_VALUE = '[o̴b̵s̵c̷u̶r̸e̵d̵]';
6
+ import { emitQuadObservation } from "./quad-types.js";
7
+ export const SHARED_GRAPH = "variables";
8
+ export const OBSERVATION_GRAPH = "observation";
9
+ export const OBSCURED_VALUE = "[o̴b̵s̵c̷u̶r̸e̵d̵]";
10
10
  export class FeatureVariables {
11
11
  world;
12
12
  store;
13
- // Keep the in-memory values map for backward compatibility
14
- values;
15
13
  constructor(world, initial) {
16
14
  this.world = world;
17
15
  this.store = new QuadStore();
18
- this.values = initial ? { ...initial } : {};
19
- // Also store initial values as quads
16
+ if (world.shared) {
17
+ const prev = world.shared.getStore();
18
+ if (prev instanceof QuadStore)
19
+ prev.inheritBackingStores(this.store);
20
+ }
20
21
  if (initial) {
21
22
  for (const [name, sv] of Object.entries(initial)) {
22
- this.storeAsQuad(name, sv);
23
+ void this.writeQuads(name, sv);
23
24
  }
24
25
  }
25
26
  }
26
27
  getStore() {
27
28
  return this.store;
28
29
  }
29
- clear() {
30
- this.values = {};
31
- this.store.clear(SHARED_GRAPH);
32
- }
33
- all() {
34
- return { ...this.values };
30
+ async all() {
31
+ const quads = await this.store.query({ namedGraph: SHARED_GRAPH });
32
+ const result = {};
33
+ for (const q of quads) {
34
+ const isSecretVar = q.properties?.secret === true || this.isSecret(q.subject);
35
+ result[q.subject] = {
36
+ term: q.subject,
37
+ domain: q.predicate,
38
+ value: isSecretVar ? OBSCURED_VALUE : q.object,
39
+ origin: q.properties?.origin ?? Origin.var,
40
+ };
41
+ }
42
+ return result;
35
43
  }
36
44
  toString() {
37
- return `tag ${this.world.tag} values ${Object.keys(this.values).length}`;
45
+ return `tag ${this.world.tag}`;
38
46
  }
39
- setJSON(label, value, origin, source) {
40
- this.set({ term: label, value: JSON.stringify(value), domain: DOMAIN_JSON, origin }, { in: source.in, seq: source.seqPath, when: `${source.action.stepperName}.${source.action.actionName}` });
47
+ async setJSON(label, value, origin, source) {
48
+ await this.set({ term: label, value: JSON.stringify(value), domain: DOMAIN_JSON, origin }, { in: source.in, seq: source.seqPath, when: `${source.action.stepperName}.${source.action.actionName}` });
41
49
  }
42
- setForStepper(stepper, sv, provenance, namedGraph) {
43
- return this._set({ ...sv, term: `${stepper}.${sv.term}` }, provenance, namedGraph);
50
+ async setForStepper(stepper, sv, provenance, namedGraph) {
51
+ return await this._set({ ...sv, term: `${stepper}.${sv.term}` }, provenance, namedGraph);
44
52
  }
45
- unset(name) {
46
- delete this.values[name];
53
+ async unset(name) {
54
+ await this.store.remove({ subject: name, namedGraph: SHARED_GRAPH });
47
55
  }
48
- set(sv, provenance, namedGraph) {
49
- if (sv.term.match(/.*\..*/)) {
50
- throw Error('non-stepper variables cannot use dots');
51
- }
52
- if (this.world.options.envVariables[sv.term]) {
56
+ async set(sv, provenance, namedGraph) {
57
+ if (sv.term.match(/.*\..*/))
58
+ throw Error("non-stepper variables cannot use dots");
59
+ if (this.world.options.envVariables[sv.term])
53
60
  throw Error(`Cannot overwrite environment variable "${sv.term}"`);
54
- }
55
- if (this.values[sv.term]?.readonly) {
61
+ const existing = await this.getStoredEntry(sv.term);
62
+ if (existing?.readonly)
56
63
  throw Error(`Cannot overwrite read-only variable "${sv.term}"`);
57
- }
58
64
  return this._set(sv, provenance, namedGraph);
59
65
  }
60
- _set(sv, provenance, namedGraph = SHARED_GRAPH) {
66
+ async _set(sv, provenance, namedGraph = SHARED_GRAPH) {
61
67
  const domainKey = normalizeDomainKey(sv.domain);
62
68
  const domain = this.world.domains[domainKey];
63
- if (domain === undefined) {
69
+ if (domain === undefined)
64
70
  throw Error(`Cannot set variable "${sv.term}": unknown domain "${sv.domain}"`);
65
- }
66
71
  const normalized = { ...sv, domain: domainKey };
67
72
  domain.coerce(normalized);
68
- const existingProvenance = this.values[sv.term]?.provenance;
69
- const provenances = existingProvenance ? [...existingProvenance, provenance] : [provenance];
70
- this.values[sv.term] = {
71
- ...normalized,
72
- provenance: provenances
73
- };
74
- this.storeAsQuad(sv.term, { ...normalized, provenance: provenances }, namedGraph);
73
+ await this.writeQuads(sv.term, normalized, namedGraph, provenance);
75
74
  const timestamp = Date.now();
76
- this.world.eventLogger?.emit({
77
- id: `quad-${timestamp}`,
78
- timestamp,
79
- source: 'haibun',
80
- level: 'debug',
81
- kind: 'artifact',
82
- artifactType: 'json',
83
- mimetype: 'application/json',
84
- json: {
85
- quadObservation: {
86
- subject: sv.term,
87
- predicate: domainKey,
88
- object: this.isSecret(sv.term) ? OBSCURED_VALUE : normalized.value,
89
- namedGraph,
90
- }
91
- },
92
- });
93
- if (sv.origin) {
94
- this.world.eventLogger?.emit({
95
- id: `quad-meta-origin-${timestamp}`,
96
- timestamp,
97
- source: 'haibun',
98
- level: 'debug',
99
- kind: 'artifact',
100
- artifactType: 'json',
101
- mimetype: 'application/json',
102
- json: {
103
- quadObservation: {
104
- subject: sv.term,
105
- predicate: 'origin',
106
- object: sv.origin,
107
- namedGraph: META_GRAPH,
108
- }
109
- },
110
- });
75
+ emitQuadObservation(this.world.eventLogger, `quad-${timestamp}`, { subject: sv.term, predicate: domainKey, object: this.isSecret(sv.term) ? OBSCURED_VALUE : normalized.value, namedGraph, timestamp });
76
+ }
77
+ /** Look up a variable from store or dot-path. Shared by Origin.var, Origin.defined, Origin.quoted. */
78
+ async lookupVariable(term) {
79
+ const entry = await this.getStoredEntry(term);
80
+ if (entry)
81
+ return { value: entry.value, domain: entry.domain, origin: Origin.var, secret: entry.secret ?? this.isSecret(term) };
82
+ if (term.includes(".")) {
83
+ const dot = await this.resolveDotPath(term);
84
+ if (dot.found)
85
+ return { value: dot.value, domain: DOMAIN_STRING, origin: Origin.var };
111
86
  }
87
+ return undefined;
112
88
  }
113
- /**
114
- * Resolves a variable and its domain based on its actual origin.
115
- * Requires explicit options.secure to return the real value of a secret.
116
- */
117
- resolveVariable(input, featureStep, steppers, options = { secure: false }) {
118
- const resolved = {
119
- term: input.term,
120
- value: undefined,
121
- };
89
+ async resolveVariable(input, featureStep, steppers, options = { secure: false }) {
90
+ const resolved = { term: input.term, value: undefined };
122
91
  let lookupTerm = input.term;
123
- if (lookupTerm.startsWith('{') && lookupTerm.endsWith('}')) {
92
+ if (lookupTerm.startsWith("{") && lookupTerm.endsWith("}"))
124
93
  lookupTerm = lookupTerm.slice(1, -1);
125
- }
126
- const storedEntry = this.values[lookupTerm];
127
94
  if (!input.origin || input.origin === Origin.statement) {
128
95
  resolved.value = input.term;
129
96
  resolved.domain = input.domain;
@@ -135,25 +102,7 @@ export class FeatureVariables {
135
102
  resolved.secret = this.isSecret(lookupTerm);
136
103
  }
137
104
  else if (input.origin === Origin.var) {
138
- if (storedEntry) {
139
- resolved.domain = storedEntry.domain;
140
- resolved.value = storedEntry.value;
141
- resolved.provenance = storedEntry.provenance;
142
- resolved.readonly = storedEntry.readonly;
143
- resolved.secret = storedEntry.secret; // Propagate secret property
144
- resolved.origin = Origin.var;
145
- if (resolved.secret === undefined) {
146
- resolved.secret = this.isSecret(lookupTerm);
147
- }
148
- }
149
- else if (lookupTerm.includes('.')) {
150
- const dotResult = this.resolveDotPath(lookupTerm);
151
- if (dotResult.found) {
152
- resolved.value = dotResult.value;
153
- resolved.domain = DOMAIN_STRING;
154
- resolved.origin = Origin.var;
155
- }
156
- }
105
+ Object.assign(resolved, await this.lookupVariable(lookupTerm));
157
106
  }
158
107
  else if (input.origin === Origin.defined) {
159
108
  if (featureStep?.runtimeArgs?.[lookupTerm] !== undefined) {
@@ -167,60 +116,30 @@ export class FeatureVariables {
167
116
  resolved.origin = Origin.env;
168
117
  resolved.secret = this.isSecret(lookupTerm);
169
118
  }
170
- else if (storedEntry) {
171
- resolved.value = storedEntry.value;
172
- resolved.domain = storedEntry.domain;
173
- resolved.provenance = storedEntry.provenance;
174
- resolved.readonly = storedEntry.readonly;
175
- resolved.origin = Origin.var;
176
- resolved.secret = storedEntry.secret;
177
- if (resolved.secret === undefined) {
178
- resolved.secret = this.isSecret(lookupTerm);
179
- }
180
- }
181
- else if (lookupTerm.includes('.')) {
182
- const dotResult = this.resolveDotPath(lookupTerm);
183
- if (dotResult.found) {
184
- resolved.value = dotResult.value;
185
- resolved.domain = DOMAIN_STRING;
186
- resolved.origin = Origin.var;
119
+ else {
120
+ const found = await this.lookupVariable(lookupTerm);
121
+ if (found) {
122
+ Object.assign(resolved, found);
187
123
  }
188
124
  else if (isLiteralValue(input.term)) {
189
- // Fallback: treat unquoted terms that look like literals as string values
190
125
  resolved.value = input.term;
191
126
  resolved.domain = DOMAIN_STRING;
192
127
  }
193
128
  }
194
- else if (isLiteralValue(input.term)) {
195
- // Fallback: treat unquoted terms that look like literals as string values
196
- resolved.value = input.term;
197
- resolved.domain = DOMAIN_STRING;
198
- }
199
- // Note: for {varName} syntax, storedEntry is looked up using lookupTerm (without braces)
200
- // so this naturally resolves quantifier-bound variables
201
129
  }
202
130
  else if (input.origin === Origin.quoted) {
203
- // Check if this is {varName} syntax - if so, resolve as variable
204
- if (input.term.startsWith('{') && input.term.endsWith('}') && !input.term.includes(':')) {
131
+ if (input.term.startsWith("{") && input.term.endsWith("}") && !input.term.includes(":")) {
205
132
  if (featureStep?.runtimeArgs?.[lookupTerm] !== undefined) {
206
133
  resolved.value = featureStep.runtimeArgs[lookupTerm];
207
134
  resolved.domain = DOMAIN_STRING;
208
135
  resolved.origin = Origin.var;
209
136
  }
210
- else if (storedEntry) {
211
- resolved.value = storedEntry.value;
212
- resolved.domain = storedEntry.domain;
213
- resolved.provenance = storedEntry.provenance;
214
- resolved.readonly = storedEntry.readonly;
215
- resolved.origin = Origin.var;
216
- resolved.secret = storedEntry.secret;
217
- if (resolved.secret === undefined) {
218
- resolved.secret = this.isSecret(lookupTerm);
219
- }
137
+ else {
138
+ Object.assign(resolved, await this.lookupVariable(lookupTerm));
220
139
  }
221
140
  }
222
141
  else {
223
- resolved.value = input.term.replace(/^"|"$/g, '');
142
+ resolved.value = input.term.replace(/^"|"$/g, "");
224
143
  resolved.domain = input.domain ?? DOMAIN_STRING;
225
144
  }
226
145
  }
@@ -229,37 +148,48 @@ export class FeatureVariables {
229
148
  }
230
149
  if (resolved.value !== undefined) {
231
150
  const rawDomainKey = resolved.domain ?? DOMAIN_STRING;
232
- // Normalize union domains (e.g. "string | other" → sorted "other | string") and look up
233
- const parts = rawDomainKey.split(' | ').map(s => s.trim()).filter(Boolean).sort();
234
- const sortedKey = parts.join(' | ');
235
- // For union domains with unregistered parts, fall back to string; for single domains, require registration
151
+ const parts = rawDomainKey
152
+ .split(" | ")
153
+ .map((s) => s.trim())
154
+ .filter(Boolean)
155
+ .sort();
156
+ const sortedKey = parts.join(" | ");
236
157
  const isUnion = parts.length > 1;
237
- const domainKey = this.world.domains[sortedKey] ? sortedKey : (isUnion ? DOMAIN_STRING : sortedKey);
158
+ const domainKey = this.world.domains[sortedKey] ? sortedKey : isUnion ? DOMAIN_STRING : sortedKey;
238
159
  const domain = this.world.domains[domainKey];
239
- if (!domain) {
160
+ if (!domain)
240
161
  throw new Error(`Cannot resolve variable "${input.term}": unknown domain "${domainKey}"`);
241
- }
242
162
  resolved.value = domain.coerce({ ...resolved, domain: domainKey }, featureStep, steppers);
243
163
  resolved.domain = domainKey;
244
164
  const isSecretValue = resolved.secret === true || this.isSecret(lookupTerm);
245
- const fromVariableOrEnv = resolved.origin === Origin.env || resolved.origin === Origin.var;
246
- if (!options.secure && fromVariableOrEnv && isSecretValue) {
165
+ if (!options.secure && (resolved.origin === Origin.env || resolved.origin === Origin.var) && isSecretValue)
247
166
  resolved.value = OBSCURED_VALUE;
248
- }
249
167
  }
250
168
  return resolved;
251
169
  }
252
- /** Try dot-path navigation into a stored structured value. */
253
- resolveDotPath(lookupTerm) {
170
+ /** Reconstruct a stored variable entry from the quad's properties. */
171
+ async getStoredEntry(name) {
172
+ const q = (await this.store.query({ subject: name, namedGraph: SHARED_GRAPH })).pop();
173
+ if (!q)
174
+ return undefined;
175
+ const p = q.properties;
176
+ return {
177
+ value: q.object,
178
+ domain: q.predicate,
179
+ readonly: p?.readonly === true,
180
+ secret: p?.secret === true,
181
+ origin: p?.origin,
182
+ };
183
+ }
184
+ async resolveDotPath(lookupTerm) {
254
185
  const { baseName, pathSegments } = parseDotPath(lookupTerm);
255
186
  if (pathSegments.length === 0)
256
187
  return { value: undefined, domain: DOMAIN_STRING, found: false };
257
- const baseEntry = this.values[baseName];
188
+ const baseEntry = await this.getStoredEntry(baseName);
258
189
  if (!baseEntry)
259
190
  return { value: undefined, domain: DOMAIN_STRING, found: false };
260
191
  let baseValue = baseEntry.value;
261
- // Parse JSON strings into objects for navigation
262
- if (typeof baseValue === 'string') {
192
+ if (typeof baseValue === "string") {
263
193
  try {
264
194
  baseValue = JSON.parse(baseValue);
265
195
  }
@@ -270,97 +200,57 @@ export class FeatureVariables {
270
200
  const result = navigateValue(baseValue, pathSegments);
271
201
  return { ...result, domain: baseEntry.domain ?? DOMAIN_STRING };
272
202
  }
273
- getDomainValues(domainName) {
203
+ async getDomainValues(domainName) {
274
204
  const domainKey = normalizeDomainKey(domainName);
275
205
  const domainDef = this.world.domains[domainKey];
276
- if (!domainDef) {
206
+ if (!domainDef)
277
207
  return { values: [], error: `Domain "${domainName}" is not defined` };
278
- }
279
- if (Array.isArray(domainDef.values) && domainDef.values.length > 0) {
208
+ if (Array.isArray(domainDef.values) && domainDef.values.length > 0)
280
209
  return { values: domainDef.values };
281
- }
282
- const allVars = this.all();
210
+ const allVars = await this.all();
283
211
  const memberValues = Object.values(allVars)
284
- .filter(v => v.domain && normalizeDomainKey(v.domain) === domainKey)
285
- .map(v => v.value);
212
+ .filter((v) => v.domain && normalizeDomainKey(v.domain) === domainKey)
213
+ .map((v) => v.value);
286
214
  return { values: memberValues };
287
215
  }
288
- get(term, secure = false) {
289
- return this.resolveVariable({ term, origin: Origin.defined }, undefined, undefined, { secure }).value;
290
- }
291
- queryQuads(pattern) {
292
- const queryPattern = { ...pattern, namedGraph: pattern.namedGraph };
293
- return this.store.query(queryPattern);
216
+ async get(term, secure = false) {
217
+ return (await this.resolveVariable({ term, origin: Origin.defined }, undefined, undefined, { secure })).value;
294
218
  }
295
- existsQuad(pattern) {
296
- return this.queryQuads(pattern).length > 0;
297
- }
298
- countQuads(pattern) {
299
- return this.queryQuads(pattern).length;
300
- }
301
- addQuad(quad) {
302
- this.store.add(quad);
303
- // Emit event for graph visualization
304
- const timestamp = Date.now();
305
- this.world.eventLogger?.emit({
306
- id: `quad-${timestamp}-${quad.subject}-${quad.predicate}`,
307
- timestamp,
308
- source: 'haibun',
309
- level: 'debug',
310
- kind: 'artifact',
311
- artifactType: 'json',
312
- mimetype: 'application/json',
313
- json: {
314
- quadObservation: quad
315
- },
316
- });
317
- }
318
- removeQuad(pattern) {
319
- this.store.remove(pattern);
320
- }
321
- allQuads() {
322
- return this.store.all();
219
+ async allQuads() {
220
+ return await this.store.all();
323
221
  }
324
222
  isSecret(name) {
325
- if (this.values[name]?.secret) {
326
- return true;
327
- }
328
- if (this.values[name]?.secret === false) {
329
- return false;
330
- }
331
223
  return /(password|secret)/i.test(name);
332
224
  }
333
- getSecrets() {
225
+ async getSecrets() {
334
226
  const secrets = {};
335
- const envVars = this.world.options.envVariables;
336
- for (const [key, value] of Object.entries(envVars)) {
337
- if (this.isSecret(key)) {
227
+ for (const [key, value] of Object.entries(this.world.options.envVariables)) {
228
+ if (this.isSecret(key))
338
229
  secrets[key] = String(value);
339
- }
340
230
  }
341
- for (const [key, variable] of Object.entries(this.all())) {
342
- if (this.isSecret(key)) {
343
- secrets[key] = String(variable.value);
344
- }
231
+ // Query raw quads to get unmasked values for secret detection
232
+ const quads = await this.store.query({ namedGraph: SHARED_GRAPH });
233
+ for (const q of quads) {
234
+ if (q.properties?.secret === true || this.isSecret(q.subject))
235
+ secrets[q.subject] = String(q.object);
345
236
  }
346
237
  return secrets;
347
238
  }
348
- // =========================================================================
349
- // Private helpers
350
- // =========================================================================
351
- storeAsQuad(name, sv, namedGraph = SHARED_GRAPH) {
239
+ async writeQuads(name, sv, namedGraph = SHARED_GRAPH, provenance) {
352
240
  const domainKey = normalizeDomainKey(sv.domain);
353
- // Domain IS the predicate: (name, domainType, value, shared)
354
- this.store.add({ subject: name, predicate: domainKey, object: sv.value, namedGraph });
355
- if (sv.origin) {
356
- this.store.add({ subject: name, predicate: 'origin', object: sv.origin, namedGraph: META_GRAPH });
357
- }
358
- if (sv.provenance) {
359
- this.store.add({ subject: name, predicate: 'provenance', object: sv.provenance, namedGraph: META_GRAPH });
360
- }
361
- if (sv.readonly) {
362
- this.store.add({ subject: name, predicate: 'readonly', object: true, namedGraph: META_GRAPH });
241
+ const properties = {};
242
+ if (sv.origin)
243
+ properties.origin = sv.origin;
244
+ if (sv.readonly)
245
+ properties.readonly = true;
246
+ if (sv.secret || this.isSecret(name))
247
+ properties.secret = true;
248
+ if (provenance) {
249
+ const existing = await this.store.query({ subject: name, namedGraph });
250
+ const prev = existing.pop()?.properties?.provenance;
251
+ properties.provenance = Array.isArray(prev) ? [...prev, provenance.seq] : [provenance.seq];
363
252
  }
253
+ await this.store.set(name, domainKey, sv.value, namedGraph, Object.keys(properties).length > 0 ? properties : undefined);
364
254
  }
365
255
  }
366
256
  //# sourceMappingURL=feature-variables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-variables.js","sourceRoot":"","sources":["../../src/lib/feature-variables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-variables.js","sourceRoot":"","sources":["../../src/lib/feature-variables.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { TExpandedFeature, TExpandedLine, TFeature, TFeatures } from './defs.js';
2
- export declare function expand({ features, backgrounds }: {
1
+ import { TExpandedFeature, TExpandedLine, TFeature, TFeatures } from "./execution.js";
2
+ export declare function expand({ features, backgrounds, }: {
3
3
  features: TFeatures;
4
4
  backgrounds: TFeatures;
5
5
  }): Promise<TExpandedFeature[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/lib/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAIjF,wBAAsB,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAGpI;AAGD,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAU/G;AAYD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,aAAa,CAE5G;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,aAAa,EAAE,CAUhI;AA8BD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,SAAY,GAAG,SAAS,CAO9F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,SAAY,GAAG,SAAS,CAMtF;AAID,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,aAGrB,CAAC;AAExB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;EAK5G"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/lib/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAItF,wBAAsB,MAAM,CAAC,EAC5B,QAAQ,EACR,WAAW,GACX,EAAE;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,SAAS,CAAC;CACvB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAG9B;AAGD,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAU/G;AAYD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,aAAa,CAE5G;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,aAAa,EAAE,CAUhI;AA8BD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,SAAY,GAAG,SAAS,CAI9F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,SAAY,GAAG,SAAS,CAGtF;AAID,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,aAA6C,CAAC;AAE1F,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;EAK5G"}
@@ -1,4 +1,4 @@
1
- export async function expand({ features, backgrounds }) {
1
+ export async function expand({ features, backgrounds, }) {
2
2
  const expandedFeatures = await expandFeatures(features, backgrounds);
3
3
  return expandedFeatures;
4
4
  }
@@ -26,8 +26,8 @@ export function asFeatureLine(line, lineNumber, feature) {
26
26
  }
27
27
  export function expandLine(l, lineNumber, backgrounds, feature) {
28
28
  const lines = [];
29
- if (l.startsWith('Backgrounds:')) {
30
- const includes = doIncludes(l.replace('Backgrounds:', '').trim(), backgrounds);
29
+ if (l.startsWith("Backgrounds:")) {
30
+ const includes = doIncludes(l.replace("Backgrounds:", "").trim(), backgrounds);
31
31
  lines.push(...includes);
32
32
  }
33
33
  else {
@@ -37,12 +37,12 @@ export function expandLine(l, lineNumber, backgrounds, feature) {
37
37
  return lines;
38
38
  }
39
39
  function doIncludes(input, backgrounds) {
40
- const includes = input.split(',').map((a) => a.trim());
40
+ const includes = input.split(",").map((a) => a.trim());
41
41
  const ret = [];
42
42
  for (const l of includes) {
43
43
  const bg = findFeatures(l, backgrounds);
44
44
  if (bg.length !== 1) {
45
- throw Error(`can't find single "${l}.feature" from ${backgrounds?.map((b) => b.path).join(', ')}`);
45
+ throw Error(`can't find single "${l}.feature" from ${backgrounds?.map((b) => b.path).join(", ")}`);
46
46
  }
47
47
  const origin = bg[0];
48
48
  const bgLines = featureSplit(origin.content);
@@ -63,25 +63,21 @@ function doIncludes(input, backgrounds) {
63
63
  }
64
64
  return ret;
65
65
  }
66
- export function findFeatures(name, backgrounds, type = 'feature') {
66
+ export function findFeatures(name, backgrounds, type = "feature") {
67
67
  const ftype = findFeaturesOfType(backgrounds, type);
68
68
  // Match both .feature and .feature.ts extensions
69
- return ftype.filter((f) => f.path.endsWith(`/${name}.${fileTypeToExt(type)}`) ||
70
- f.path.endsWith(`/${name}.feature.ts`));
69
+ return ftype.filter((f) => f.path.endsWith(`/${name}.${fileTypeToExt(type)}`) || f.path.endsWith(`/${name}.feature.ts`));
71
70
  }
72
- export function findFeaturesOfType(backgrounds, type = 'feature') {
71
+ export function findFeaturesOfType(backgrounds, type = "feature") {
73
72
  // Match both .feature and .feature.ts files
74
- return backgrounds.filter((f) => f.path.endsWith(`.${fileTypeToExt(type)}`) ||
75
- f.path.endsWith('.feature.ts'));
73
+ return backgrounds.filter((f) => f.path.endsWith(`.${fileTypeToExt(type)}`) || f.path.endsWith(".feature.ts"));
76
74
  }
77
- const fileTypeToExt = (type) => (type === 'feature' ? 'feature' : `${type}.feature`);
78
- export const featureSplit = (content) => content
79
- .split('\n')
80
- .map((a) => a.trim());
75
+ const fileTypeToExt = (type) => (type === "feature" ? "feature" : `${type}.feature`);
76
+ export const featureSplit = (content) => content.split("\n").map((a) => a.trim());
81
77
  export function withNameType(base, path, content, kirejiLineMap) {
82
- const s = path.split('.');
78
+ const s = path.split(".");
83
79
  const name = s[0];
84
- const type = s.length === 3 ? s[1] : 'feature';
80
+ const type = s.length === 3 ? s[1] : "feature";
85
81
  return { path, base, name, type, content, kirejiLineMap };
86
82
  }
87
83
  //# sourceMappingURL=features.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/lib/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/lib/features.ts"],"names":[],"mappings":"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"}