perttool 0.2.0 → 0.3.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 (195) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/README.md +60 -27
  3. package/dist/analysis/temporal-deadline.d.ts +59 -0
  4. package/dist/analysis/temporal-deadline.d.ts.map +1 -0
  5. package/dist/analysis/temporal-deadline.js +387 -0
  6. package/dist/analysis/temporal-deadline.js.map +1 -0
  7. package/dist/analysis/temporal-precedence.d.ts +45 -0
  8. package/dist/analysis/temporal-precedence.d.ts.map +1 -0
  9. package/dist/analysis/temporal-precedence.js +123 -0
  10. package/dist/analysis/temporal-precedence.js.map +1 -0
  11. package/dist/analysis/temporal-resource.d.ts +66 -0
  12. package/dist/analysis/temporal-resource.d.ts.map +1 -0
  13. package/dist/analysis/temporal-resource.js +292 -0
  14. package/dist/analysis/temporal-resource.js.map +1 -0
  15. package/dist/application/check.d.ts +16 -0
  16. package/dist/application/check.d.ts.map +1 -1
  17. package/dist/application/check.js +51 -0
  18. package/dist/application/check.js.map +1 -1
  19. package/dist/application/contract4.d.ts +17 -0
  20. package/dist/application/contract4.d.ts.map +1 -0
  21. package/dist/application/contract4.js +27 -0
  22. package/dist/application/contract4.js.map +1 -0
  23. package/dist/application/init.d.ts +2 -1
  24. package/dist/application/init.d.ts.map +1 -1
  25. package/dist/application/init.js +11 -2
  26. package/dist/application/init.js.map +1 -1
  27. package/dist/application/mutate.d.ts +19 -0
  28. package/dist/application/mutate.d.ts.map +1 -1
  29. package/dist/application/mutate.js +34 -16
  30. package/dist/application/mutate.js.map +1 -1
  31. package/dist/application/next.d.ts +2 -0
  32. package/dist/application/next.d.ts.map +1 -1
  33. package/dist/application/next.js +7 -1
  34. package/dist/application/next.js.map +1 -1
  35. package/dist/application/project.d.ts +3 -1
  36. package/dist/application/project.d.ts.map +1 -1
  37. package/dist/application/project.js +2 -1
  38. package/dist/application/project.js.map +1 -1
  39. package/dist/application/target-check.d.ts +34 -0
  40. package/dist/application/target-check.d.ts.map +1 -0
  41. package/dist/application/target-check.js +90 -0
  42. package/dist/application/target-check.js.map +1 -0
  43. package/dist/application/target-grammar-boundary.d.ts +22 -0
  44. package/dist/application/target-grammar-boundary.d.ts.map +1 -0
  45. package/dist/application/target-grammar-boundary.js +91 -0
  46. package/dist/application/target-grammar-boundary.js.map +1 -0
  47. package/dist/application/target-mutate.d.ts +8 -0
  48. package/dist/application/target-mutate.d.ts.map +1 -0
  49. package/dist/application/target-mutate.js +56 -0
  50. package/dist/application/target-mutate.js.map +1 -0
  51. package/dist/application/target-project.d.ts +28 -0
  52. package/dist/application/target-project.d.ts.map +1 -0
  53. package/dist/application/target-project.js +60 -0
  54. package/dist/application/target-project.js.map +1 -0
  55. package/dist/application/target-temporal-analysis.d.ts +138 -0
  56. package/dist/application/target-temporal-analysis.d.ts.map +1 -0
  57. package/dist/application/target-temporal-analysis.js +409 -0
  58. package/dist/application/target-temporal-analysis.js.map +1 -0
  59. package/dist/application/target-temporal-input.d.ts +86 -0
  60. package/dist/application/target-temporal-input.d.ts.map +1 -0
  61. package/dist/application/target-temporal-input.js +238 -0
  62. package/dist/application/target-temporal-input.js.map +1 -0
  63. package/dist/application/target-unit-migration-candidate.d.ts +60 -0
  64. package/dist/application/target-unit-migration-candidate.d.ts.map +1 -0
  65. package/dist/application/target-unit-migration-candidate.js +290 -0
  66. package/dist/application/target-unit-migration-candidate.js.map +1 -0
  67. package/dist/application/target-unit-migration-request.d.ts +35 -0
  68. package/dist/application/target-unit-migration-request.d.ts.map +1 -0
  69. package/dist/application/target-unit-migration-request.js +68 -0
  70. package/dist/application/target-unit-migration-request.js.map +1 -0
  71. package/dist/application/target-unit-migration-result.d.ts +66 -0
  72. package/dist/application/target-unit-migration-result.d.ts.map +1 -0
  73. package/dist/application/target-unit-migration-result.js +86 -0
  74. package/dist/application/target-unit-migration-result.js.map +1 -0
  75. package/dist/application/unit-migration.d.ts +13 -0
  76. package/dist/application/unit-migration.d.ts.map +1 -0
  77. package/dist/application/unit-migration.js +9 -0
  78. package/dist/application/unit-migration.js.map +1 -0
  79. package/dist/cli.js +264 -26
  80. package/dist/cli.js.map +1 -1
  81. package/dist/command/discovery.d.ts +3 -3
  82. package/dist/command/discovery.d.ts.map +1 -1
  83. package/dist/command/discovery.js +149 -22
  84. package/dist/command/discovery.js.map +1 -1
  85. package/dist/command/registry.d.ts +1 -1
  86. package/dist/command/registry.d.ts.map +1 -1
  87. package/dist/command/registry.js +14 -1
  88. package/dist/command/registry.js.map +1 -1
  89. package/dist/command/usage.js +3 -3
  90. package/dist/formatter/source-formatter.d.ts +12 -0
  91. package/dist/formatter/source-formatter.d.ts.map +1 -1
  92. package/dist/formatter/source-formatter.js +48 -6
  93. package/dist/formatter/source-formatter.js.map +1 -1
  94. package/dist/formatter/target-source-formatter.d.ts +8 -0
  95. package/dist/formatter/target-source-formatter.d.ts.map +1 -0
  96. package/dist/formatter/target-source-formatter.js +36 -0
  97. package/dist/formatter/target-source-formatter.js.map +1 -0
  98. package/dist/help/guide.d.ts +1 -1
  99. package/dist/help/guide.js +1 -1
  100. package/dist/help/registry.d.ts.map +1 -1
  101. package/dist/help/registry.js +124 -13
  102. package/dist/help/registry.js.map +1 -1
  103. package/dist/index.d.ts +9 -6
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +3 -3
  106. package/dist/index.js.map +1 -1
  107. package/dist/io/safe-write.d.ts +7 -0
  108. package/dist/io/safe-write.d.ts.map +1 -1
  109. package/dist/io/safe-write.js +19 -10
  110. package/dist/io/safe-write.js.map +1 -1
  111. package/dist/io/target-safe-write.d.ts +7 -0
  112. package/dist/io/target-safe-write.d.ts.map +1 -0
  113. package/dist/io/target-safe-write.js +33 -0
  114. package/dist/io/target-safe-write.js.map +1 -0
  115. package/dist/migration/conversion.d.ts +40 -0
  116. package/dist/migration/conversion.d.ts.map +1 -0
  117. package/dist/migration/conversion.js +106 -0
  118. package/dist/migration/conversion.js.map +1 -0
  119. package/dist/migration/grammar-boundary.d.ts +20 -0
  120. package/dist/migration/grammar-boundary.d.ts.map +1 -0
  121. package/dist/migration/grammar-boundary.js +92 -0
  122. package/dist/migration/grammar-boundary.js.map +1 -0
  123. package/dist/migration/request.d.ts +79 -0
  124. package/dist/migration/request.d.ts.map +1 -0
  125. package/dist/migration/request.js +308 -0
  126. package/dist/migration/request.js.map +1 -0
  127. package/dist/model/calendar-arithmetic.d.ts +46 -0
  128. package/dist/model/calendar-arithmetic.d.ts.map +1 -0
  129. package/dist/model/calendar-arithmetic.js +236 -0
  130. package/dist/model/calendar-arithmetic.js.map +1 -0
  131. package/dist/model/calendar.d.ts +22 -0
  132. package/dist/model/calendar.d.ts.map +1 -0
  133. package/dist/model/calendar.js +83 -0
  134. package/dist/model/calendar.js.map +1 -0
  135. package/dist/model/declaration-fields.d.ts +15 -0
  136. package/dist/model/declaration-fields.d.ts.map +1 -0
  137. package/dist/model/declaration-fields.js +54 -0
  138. package/dist/model/declaration-fields.js.map +1 -0
  139. package/dist/model/exact-duration-source.d.ts +10 -0
  140. package/dist/model/exact-duration-source.d.ts.map +1 -0
  141. package/dist/model/exact-duration-source.js +69 -0
  142. package/dist/model/exact-duration-source.js.map +1 -0
  143. package/dist/model/rational.d.ts +2 -2
  144. package/dist/model/rational.d.ts.map +1 -1
  145. package/dist/model/rational.js +3 -1
  146. package/dist/model/rational.js.map +1 -1
  147. package/dist/model/syntax.d.ts +9 -2
  148. package/dist/model/syntax.d.ts.map +1 -1
  149. package/dist/model/syntax.js +20 -4
  150. package/dist/model/syntax.js.map +1 -1
  151. package/dist/model/target-calendar.d.ts +25 -0
  152. package/dist/model/target-calendar.d.ts.map +1 -0
  153. package/dist/model/target-calendar.js +56 -0
  154. package/dist/model/target-calendar.js.map +1 -0
  155. package/dist/mutation/advance.d.ts.map +1 -1
  156. package/dist/mutation/advance.js +21 -4
  157. package/dist/mutation/advance.js.map +1 -1
  158. package/dist/mutation/milestone.d.ts +10 -1
  159. package/dist/mutation/milestone.d.ts.map +1 -1
  160. package/dist/mutation/milestone.js +77 -21
  161. package/dist/mutation/milestone.js.map +1 -1
  162. package/dist/mutation/project.d.ts +7 -1
  163. package/dist/mutation/project.d.ts.map +1 -1
  164. package/dist/mutation/project.js +18 -5
  165. package/dist/mutation/project.js.map +1 -1
  166. package/dist/mutation/target-types.d.ts +42 -0
  167. package/dist/mutation/target-types.d.ts.map +1 -0
  168. package/dist/mutation/target-types.js +2 -0
  169. package/dist/mutation/target-types.js.map +1 -0
  170. package/dist/mutation/task.d.ts +12 -1
  171. package/dist/mutation/task.d.ts.map +1 -1
  172. package/dist/mutation/task.js +108 -49
  173. package/dist/mutation/task.js.map +1 -1
  174. package/dist/mutation/types.d.ts +8 -2
  175. package/dist/mutation/types.d.ts.map +1 -1
  176. package/dist/parser/document-parser.d.ts +14 -0
  177. package/dist/parser/document-parser.d.ts.map +1 -1
  178. package/dist/parser/document-parser.js +142 -38
  179. package/dist/parser/document-parser.js.map +1 -1
  180. package/dist/recommendation/override-types.d.ts +2 -2
  181. package/dist/recommendation/override.d.ts +2 -2
  182. package/dist/recommendation/override.d.ts.map +1 -1
  183. package/dist/recommendation/override.js +49 -12
  184. package/dist/recommendation/override.js.map +1 -1
  185. package/dist/semantic/target-validator.d.ts +36 -0
  186. package/dist/semantic/target-validator.d.ts.map +1 -0
  187. package/dist/semantic/target-validator.js +87 -0
  188. package/dist/semantic/target-validator.js.map +1 -0
  189. package/dist/semantic/validator.d.ts +2 -0
  190. package/dist/semantic/validator.d.ts.map +1 -1
  191. package/dist/semantic/validator.js +50 -5
  192. package/dist/semantic/validator.js.map +1 -1
  193. package/dist/version.d.ts +1 -1
  194. package/dist/version.js +1 -1
  195. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ import type { AddMilestoneMutation, AddTaskMutation, AtomicMutation, FinishTaskMutation, MilestoneDefinition, MilestoneFieldSet, MilestoneMutation, RemoveMilestoneMutation, RemoveTaskMutation, SetMilestoneMutation, SetTaskMutation, TaskDefinition, TaskFieldSet, TaskMutation } from "./types.js";
2
+ export type TargetTaskDefinition = TaskDefinition & {
3
+ readonly notBefore?: string;
4
+ readonly deadline?: string;
5
+ };
6
+ export type TargetTaskFieldSet = TaskFieldSet & {
7
+ readonly notBefore?: string;
8
+ readonly deadline?: string;
9
+ };
10
+ export type TargetTaskClearableField = NonNullable<SetTaskMutation["clear"]>[number] | "not_before" | "deadline";
11
+ export interface TargetAddTaskMutation extends Omit<AddTaskMutation, "task"> {
12
+ readonly task: TargetTaskDefinition;
13
+ }
14
+ export interface TargetSetTaskMutation extends Omit<SetTaskMutation, "set" | "clear"> {
15
+ readonly set?: TargetTaskFieldSet;
16
+ readonly clear?: readonly TargetTaskClearableField[];
17
+ }
18
+ export type TargetTaskMutation = TargetAddTaskMutation | TargetSetTaskMutation | RemoveTaskMutation | FinishTaskMutation;
19
+ export type TargetMilestoneDefinition = MilestoneDefinition & {
20
+ readonly deadline?: string;
21
+ };
22
+ export type TargetMilestoneFieldSet = MilestoneFieldSet & {
23
+ readonly deadline?: string;
24
+ };
25
+ export type TargetMilestoneClearableField = NonNullable<SetMilestoneMutation["clear"]>[number] | "deadline";
26
+ export interface TargetAddMilestoneMutation extends Omit<AddMilestoneMutation, "milestone"> {
27
+ readonly milestone: TargetMilestoneDefinition;
28
+ }
29
+ export interface TargetSetMilestoneMutation extends Omit<SetMilestoneMutation, "set" | "clear"> {
30
+ readonly set?: TargetMilestoneFieldSet;
31
+ readonly clear?: readonly TargetMilestoneClearableField[];
32
+ }
33
+ export type TargetMilestoneMutation = TargetAddMilestoneMutation | TargetSetMilestoneMutation | RemoveMilestoneMutation;
34
+ type NonTemporalAtomicMutation = Exclude<AtomicMutation, TaskMutation | MilestoneMutation>;
35
+ export type TargetAtomicMutation = NonTemporalAtomicMutation | TargetTaskMutation | TargetMilestoneMutation;
36
+ export interface TargetBatchMutation {
37
+ readonly kind: "batch";
38
+ readonly mutations: readonly TargetAtomicMutation[];
39
+ }
40
+ export type TargetMutation = TargetAtomicMutation | TargetBatchMutation;
41
+ export {};
42
+ //# sourceMappingURL=target-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-types.d.ts","sourceRoot":"","sources":["../../src/mutation/target-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAC7C,YAAY,GACZ,UAAU,CAAC;AAEf,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACtD;AAED,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,qBAAqB,GACrB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAClD,UAAU,CAAC;AAEf,MAAM,WAAW,0BACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CAC/C;AAED,MAAM,WAAW,0BACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,KAAK,GAAG,OAAO,CAAC;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC3D;AAED,MAAM,MAAM,uBAAuB,GAC/B,0BAA0B,GAC1B,0BAA0B,GAC1B,uBAAuB,CAAC;AAE5B,KAAK,yBAAyB,GAAG,OAAO,CACtC,cAAc,EACd,YAAY,GAAG,iBAAiB,CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B,yBAAyB,GACzB,kBAAkB,GAClB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACrD;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=target-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-types.js","sourceRoot":"","sources":["../../src/mutation/target-types.ts"],"names":[],"mappings":""}
@@ -1,10 +1,21 @@
1
1
  import type { Diagnostic } from "../model/diagnostics.js";
2
2
  import type { DocumentNode } from "../model/syntax.js";
3
+ import type { TargetTaskMutation } from "./target-types.js";
3
4
  import type { TaskMutation } from "./types.js";
4
5
  import type { TextEdit } from "./text-edits.js";
5
6
  export interface TaskMutationPlan {
6
7
  readonly edits: readonly TextEdit[];
7
8
  readonly diagnostic?: Diagnostic;
8
9
  }
9
- export declare function planTaskMutationEdits(text: string, document: DocumentNode, mutation: TaskMutation): TaskMutationPlan;
10
+ export interface TaskMutationProfile {
11
+ readonly fieldOrder: readonly string[];
12
+ readonly temporalFields: boolean;
13
+ readonly exactDurations: boolean;
14
+ }
15
+ export declare const ACTIVE_TASK_MUTATION_PROFILE: TaskMutationProfile;
16
+ export declare const TARGET_GRAMMAR_2_TASK_MUTATION_PROFILE: TaskMutationProfile;
17
+ export declare const TARGET_GRAMMAR_3_TASK_MUTATION_PROFILE: TaskMutationProfile;
18
+ type SupportedTaskMutation = TaskMutation | TargetTaskMutation;
19
+ export declare function planTaskMutationEdits(text: string, document: DocumentNode, mutation: SupportedTaskMutation, profile?: TaskMutationProfile): TaskMutationPlan;
20
+ export {};
10
21
  //# sourceMappingURL=task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/mutation/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAEV,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAMV,YAAY,EAEb,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAwnBD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,GACrB,gBAAgB,CAwDlB"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/mutation/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAEV,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAGV,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAMV,YAAY,EAEb,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,4BAA4B,EAAE,mBAIzC,CAAC;AAEH,eAAO,MAAM,sCAAsC,EAAE,mBAKjD,CAAC;AAEL,eAAO,MAAM,sCAAsC,EAAE,mBAKnD,CAAC;AAEH,KAAK,qBAAqB,GAAG,YAAY,GAAG,kBAAkB,CAAC;AAssB/D,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,GAAE,mBAAkD,GAC1D,gBAAgB,CAwDlB"}
@@ -1,23 +1,25 @@
1
1
  import { fieldNamed } from "../model/syntax.js";
2
+ import { GRAMMAR_1_DECLARATION_FIELD_ORDER, TARGET_GRAMMAR_2_DECLARATION_FIELD_ORDER, } from "../model/declaration-fields.js";
3
+ import { canonicalizeExactDurationSourceToken, } from "../model/exact-duration-source.js";
2
4
  import { mutationDiagnostic } from "./diagnostics.js";
3
5
  import { appendDeclarationEdit, contentEndOffset, contentTextEndOffset, deleteDeclarationEdit, deleteFieldEdit, fieldInsertionOffset, insertionText, leadingCommentStart, lineIndexAt, majorLineEnding, serializeTags, serializeTextField, splitPhysicalLines, } from "./source.js";
4
- const fieldOrder = [
5
- "title",
6
- "description",
7
- "duration",
8
- "estimate",
9
- "status",
10
- "priority",
11
- "requires",
12
- "owner",
13
- "tags",
14
- "blocked_reason",
15
- "source",
16
- ];
17
- const fieldRank = new Map(fieldOrder.map((name, index) => [name, name === "estimate" ? 2 : index]));
18
- fieldRank.set("duration", 2);
6
+ export const ACTIVE_TASK_MUTATION_PROFILE = Object.freeze({
7
+ fieldOrder: GRAMMAR_1_DECLARATION_FIELD_ORDER.task,
8
+ temporalFields: false,
9
+ exactDurations: false,
10
+ });
11
+ export const TARGET_GRAMMAR_2_TASK_MUTATION_PROFILE = Object.freeze({
12
+ fieldOrder: TARGET_GRAMMAR_2_DECLARATION_FIELD_ORDER.task,
13
+ temporalFields: true,
14
+ exactDurations: false,
15
+ });
16
+ export const TARGET_GRAMMAR_3_TASK_MUTATION_PROFILE = Object.freeze({
17
+ fieldOrder: TARGET_GRAMMAR_2_DECLARATION_FIELD_ORDER.task,
18
+ temporalFields: true,
19
+ exactDurations: true,
20
+ });
19
21
  const taskStatuses = new Set(["planned", "active", "blocked", "done"]);
20
- const clearableFields = new Set([
22
+ const activeClearableFields = [
21
23
  "description",
22
24
  "status",
23
25
  "priority",
@@ -26,7 +28,10 @@ const clearableFields = new Set([
26
28
  "source",
27
29
  "tags",
28
30
  "requires",
29
- ]);
31
+ ];
32
+ function fieldRank(profile) {
33
+ return new Map(profile.fieldOrder.map((name, index) => [name, index]));
34
+ }
30
35
  function validEstimate(value) {
31
36
  if (value === null || typeof value !== "object")
32
37
  return false;
@@ -45,7 +50,7 @@ function validRequirement(value) {
45
50
  function validStringArray(value) {
46
51
  return Array.isArray(value) && value.every((item) => typeof item === "string");
47
52
  }
48
- function taskDefinitionError(value) {
53
+ function taskDefinitionError(value, profile) {
49
54
  if (value === null || typeof value !== "object")
50
55
  return "task definition is not an object";
51
56
  const task = value;
@@ -54,6 +59,7 @@ function taskDefinitionError(value) {
54
59
  "description",
55
60
  "duration",
56
61
  "estimate",
62
+ ...(profile.temporalFields ? ["notBefore", "deadline"] : []),
57
63
  "status",
58
64
  "priority",
59
65
  "requirements",
@@ -76,7 +82,13 @@ function taskDefinitionError(value) {
76
82
  if (task["estimate"] !== undefined && !validEstimate(task["estimate"])) {
77
83
  return "estimate requires optimistic, mostLikely, and pessimistic string fields";
78
84
  }
79
- for (const name of ["description", "owner", "blockedReason", "source"]) {
85
+ for (const name of [
86
+ "description",
87
+ "owner",
88
+ "blockedReason",
89
+ "source",
90
+ ...(profile.temporalFields ? ["notBefore", "deadline"] : []),
91
+ ]) {
80
92
  if (task[name] !== undefined && typeof task[name] !== "string") {
81
93
  return `${name} is not a string`;
82
94
  }
@@ -132,7 +144,10 @@ function taskMutationRequestError(value) {
132
144
  }
133
145
  return undefined;
134
146
  }
135
- function canonicalDuration(value) {
147
+ function canonicalDuration(value, profile) {
148
+ if (profile.exactDurations) {
149
+ return canonicalizeExactDurationSourceToken(value)?.token ?? value;
150
+ }
136
151
  const match = /^(\d+)(?:\.(\d+))?([dhp])$/.exec(value);
137
152
  if (match === null)
138
153
  return value;
@@ -140,12 +155,12 @@ function canonicalDuration(value) {
140
155
  const fraction = (match[2] ?? "").replace(/0+$/, "");
141
156
  return `${whole}${fraction === "" ? "" : `.${fraction}`}${match[3]}`;
142
157
  }
143
- function serializeEstimate(estimate, lineEnding) {
158
+ function serializeEstimate(estimate, lineEnding, profile) {
144
159
  return [
145
160
  " estimate:",
146
- ` optimistic ${canonicalDuration(estimate.optimistic)}`,
147
- ` most_likely ${canonicalDuration(estimate.mostLikely)}`,
148
- ` pessimistic ${canonicalDuration(estimate.pessimistic)}`,
161
+ ` optimistic ${canonicalDuration(estimate.optimistic, profile)}`,
162
+ ` most_likely ${canonicalDuration(estimate.mostLikely, profile)}`,
163
+ ` pessimistic ${canonicalDuration(estimate.pessimistic, profile)}`,
149
164
  ].join(lineEnding);
150
165
  }
151
166
  function serializeRequirements(requirements, lineEnding) {
@@ -154,7 +169,7 @@ function serializeRequirements(requirements, lineEnding) {
154
169
  ...requirements.map(({ resourceId, units }) => ` ${resourceId} ${units}`),
155
170
  ].join(lineEnding);
156
171
  }
157
- function serializeField(name, value, lineEnding) {
172
+ function serializeField(name, value, lineEnding, profile) {
158
173
  switch (name) {
159
174
  case "title":
160
175
  case "owner":
@@ -164,9 +179,12 @@ function serializeField(name, value, lineEnding) {
164
179
  case "blocked_reason":
165
180
  return serializeTextField(name, value, lineEnding);
166
181
  case "duration":
167
- return ` duration ${canonicalDuration(value)}`;
182
+ return ` duration ${canonicalDuration(value, profile)}`;
168
183
  case "estimate":
169
- return serializeEstimate(value, lineEnding);
184
+ return serializeEstimate(value, lineEnding, profile);
185
+ case "not_before":
186
+ case "deadline":
187
+ return ` ${name} ${value}`;
170
188
  case "status":
171
189
  case "priority":
172
190
  return ` ${name} ${value}`;
@@ -186,6 +204,12 @@ function taskFields(task) {
186
204
  fields.set("duration", task.duration);
187
205
  if (task.estimate !== undefined)
188
206
  fields.set("estimate", task.estimate);
207
+ if ("notBefore" in task && task.notBefore !== undefined) {
208
+ fields.set("not_before", task.notBefore);
209
+ }
210
+ if ("deadline" in task && task.deadline !== undefined) {
211
+ fields.set("deadline", task.deadline);
212
+ }
189
213
  if (task.status !== undefined)
190
214
  fields.set("status", task.status);
191
215
  if (task.priority !== undefined)
@@ -202,22 +226,27 @@ function taskFields(task) {
202
226
  fields.set("source", task.source);
203
227
  return fields;
204
228
  }
205
- function serializeTask(mutation, lineEnding) {
229
+ function serializeTask(mutation, lineEnding, profile) {
230
+ if (mutation.kind !== "task.add") {
231
+ throw new Error("task serializer requires task.add");
232
+ }
206
233
  const fields = taskFields(mutation.task);
207
234
  return [
208
235
  `task ${mutation.id} ${mutation.from} -> ${mutation.to}:`,
209
- ...fieldOrder.flatMap((name) => {
236
+ ...profile.fieldOrder.flatMap((name) => {
210
237
  if (name === "duration" && fields.has("estimate"))
211
238
  return [];
212
239
  if (name === "estimate" && fields.has("duration"))
213
240
  return [];
214
- return fields.has(name) ? [serializeField(name, fields.get(name), lineEnding)] : [];
241
+ return fields.has(name)
242
+ ? [serializeField(name, fields.get(name), lineEnding, profile)]
243
+ : [];
215
244
  }),
216
245
  ].join(lineEnding);
217
246
  }
218
- function addTaskPlan(text, mutation) {
247
+ function addTaskPlan(text, mutation, profile) {
219
248
  const task = mutation.task;
220
- const taskError = taskDefinitionError(task);
249
+ const taskError = taskDefinitionError(task, profile);
221
250
  if (typeof mutation.id !== "string" ||
222
251
  typeof mutation.from !== "string" ||
223
252
  typeof mutation.to !== "string" ||
@@ -229,10 +258,12 @@ function addTaskPlan(text, mutation) {
229
258
  }
230
259
  const lineEnding = majorLineEnding(text);
231
260
  return {
232
- edits: [appendDeclarationEdit(text, serializeTask(mutation, lineEnding), lineEnding)],
261
+ edits: [
262
+ appendDeclarationEdit(text, serializeTask(mutation, lineEnding, profile), lineEnding),
263
+ ],
233
264
  };
234
265
  }
235
- function setRequestError(mutation) {
266
+ function setRequestError(mutation, profile) {
236
267
  const rawSet = mutation.set;
237
268
  const rawClear = mutation.clear;
238
269
  const rawAddTags = mutation.addTags;
@@ -284,6 +315,7 @@ function setRequestError(mutation) {
284
315
  "description",
285
316
  "duration",
286
317
  "estimate",
318
+ ...(profile.temporalFields ? ["notBefore", "deadline"] : []),
287
319
  "status",
288
320
  "priority",
289
321
  "owner",
@@ -293,8 +325,17 @@ function setRequestError(mutation) {
293
325
  if (Object.keys(set).some((name) => !knownSetFields.has(name))) {
294
326
  return "set contains unsupported fields";
295
327
  }
296
- for (const name of ["title", "description", "duration", "owner", "blockedReason", "source"]) {
297
- if (set[name] !== undefined && typeof set[name] !== "string") {
328
+ for (const name of [
329
+ "title",
330
+ "description",
331
+ "duration",
332
+ "owner",
333
+ "blockedReason",
334
+ "source",
335
+ ...(profile.temporalFields ? ["notBefore", "deadline"] : []),
336
+ ]) {
337
+ if (set[name] !== undefined &&
338
+ typeof set[name] !== "string") {
298
339
  return `${name} is not a string`;
299
340
  }
300
341
  }
@@ -307,6 +348,10 @@ function setRequestError(mutation) {
307
348
  if (set.priority !== undefined && !Number.isSafeInteger(set.priority)) {
308
349
  return "priority is not a safe integer";
309
350
  }
351
+ const clearableFields = new Set([
352
+ ...activeClearableFields,
353
+ ...(profile.temporalFields ? ["not_before", "deadline"] : []),
354
+ ]);
310
355
  if (!Array.isArray(clear) || clear.some((name) => !clearableFields.has(name))) {
311
356
  return "clear contains unsupported fields";
312
357
  }
@@ -326,6 +371,9 @@ function setRequestError(mutation) {
326
371
  description: "description",
327
372
  duration: "duration",
328
373
  estimate: "estimate",
374
+ ...(profile.temporalFields
375
+ ? { notBefore: "not_before", deadline: "deadline" }
376
+ : {}),
329
377
  status: "status",
330
378
  priority: "priority",
331
379
  owner: "owner",
@@ -370,8 +418,8 @@ function currentRequirements(task) {
370
418
  ? value.map(({ resourceId, units }) => ({ resourceId, units }))
371
419
  : [];
372
420
  }
373
- function planSetTask(text, task, mutation) {
374
- const error = setRequestError(mutation);
421
+ function planSetTask(text, task, mutation, profile) {
422
+ const error = setRequestError(mutation, profile);
375
423
  if (error !== undefined) {
376
424
  return { edits: [], diagnostic: mutationDiagnostic("PTMUT-301", error, task) };
377
425
  }
@@ -380,10 +428,14 @@ function planSetTask(text, task, mutation) {
380
428
  const edits = [];
381
429
  const deleted = new Set(mutation.clear ?? []);
382
430
  const additions = new Map();
431
+ const rank = fieldRank(profile);
383
432
  const queueAddition = (name, value) => {
384
- const offset = fieldInsertionOffset(task, name, deleted, lines, fieldRank);
433
+ const offset = fieldInsertionOffset(task, name, deleted, lines, rank);
385
434
  const entries = additions.get(offset) ?? [];
386
- entries.push({ name, serialized: serializeField(name, value, lineEnding) });
435
+ entries.push({
436
+ name,
437
+ serialized: serializeField(name, value, lineEnding, profile),
438
+ });
387
439
  additions.set(offset, entries);
388
440
  };
389
441
  const setScalar = (name, value, valueText) => {
@@ -432,6 +484,7 @@ function planSetTask(text, task, mutation) {
432
484
  });
433
485
  }
434
486
  const set = mutation.set ?? {};
487
+ const targetSet = set;
435
488
  if (set.title !== undefined)
436
489
  setScalar("title", set.title, JSON.stringify(set.title));
437
490
  if (set.description !== undefined)
@@ -440,13 +493,13 @@ function planSetTask(text, task, mutation) {
440
493
  const duration = fieldNamed(task, "duration");
441
494
  const estimate = fieldNamed(task, "estimate");
442
495
  if (duration !== undefined) {
443
- setScalar("duration", set.duration, canonicalDuration(set.duration));
496
+ setScalar("duration", set.duration, canonicalDuration(set.duration, profile));
444
497
  }
445
498
  else if (estimate !== undefined) {
446
499
  edits.push({
447
500
  startOffset: estimate.span.start.offset,
448
501
  endOffset: contentTextEndOffset(estimate, lines),
449
- replacement: serializeField("duration", set.duration, lineEnding),
502
+ replacement: serializeField("duration", set.duration, lineEnding, profile),
450
503
  });
451
504
  }
452
505
  }
@@ -463,7 +516,7 @@ function planSetTask(text, task, mutation) {
463
516
  edits.push({
464
517
  startOffset: child.valueSpan.start.offset,
465
518
  endOffset: child.valueSpan.end.offset,
466
- replacement: canonicalDuration(value),
519
+ replacement: canonicalDuration(value, profile),
467
520
  });
468
521
  }
469
522
  }
@@ -471,10 +524,16 @@ function planSetTask(text, task, mutation) {
471
524
  edits.push({
472
525
  startOffset: duration.span.start.offset,
473
526
  endOffset: contentTextEndOffset(duration, lines),
474
- replacement: serializeEstimate(set.estimate, lineEnding),
527
+ replacement: serializeEstimate(set.estimate, lineEnding, profile),
475
528
  });
476
529
  }
477
530
  }
531
+ if (profile.temporalFields && targetSet.notBefore !== undefined) {
532
+ setScalar("not_before", targetSet.notBefore, targetSet.notBefore);
533
+ }
534
+ if (profile.temporalFields && targetSet.deadline !== undefined) {
535
+ setScalar("deadline", targetSet.deadline, targetSet.deadline);
536
+ }
478
537
  if (set.status !== undefined)
479
538
  setScalar("status", set.status, set.status);
480
539
  if (set.priority !== undefined)
@@ -586,7 +645,7 @@ function planSetTask(text, task, mutation) {
586
645
  edits.push(deleteFieldEdit(field, lines));
587
646
  }
588
647
  for (const [offset, entries] of additions) {
589
- entries.sort((left, right) => (fieldRank.get(left.name) ?? 99) - (fieldRank.get(right.name) ?? 99));
648
+ entries.sort((left, right) => (rank.get(left.name) ?? 99) - (rank.get(right.name) ?? 99));
590
649
  edits.push({
591
650
  startOffset: offset,
592
651
  endOffset: offset,
@@ -595,7 +654,7 @@ function planSetTask(text, task, mutation) {
595
654
  }
596
655
  return { edits };
597
656
  }
598
- export function planTaskMutationEdits(text, document, mutation) {
657
+ export function planTaskMutationEdits(text, document, mutation, profile = ACTIVE_TASK_MUTATION_PROFILE) {
599
658
  const requestError = taskMutationRequestError(mutation);
600
659
  if (requestError !== undefined) {
601
660
  return {
@@ -611,7 +670,7 @@ export function planTaskMutationEdits(text, document, mutation) {
611
670
  diagnostic: mutationDiagnostic("PTMUT-304", `entity ID ${mutation.id} is already in use`, entity),
612
671
  };
613
672
  }
614
- return addTaskPlan(text, mutation);
673
+ return addTaskPlan(text, mutation, profile);
615
674
  }
616
675
  if (entity === undefined) {
617
676
  return {
@@ -637,8 +696,8 @@ export function planTaskMutationEdits(text, document, mutation) {
637
696
  ...(fieldNamed(entity, "blocked_reason") === undefined
638
697
  ? {}
639
698
  : { clear: ["blocked_reason"] }),
640
- });
699
+ }, profile);
641
700
  }
642
- return planSetTask(text, entity, mutation);
701
+ return planSetTask(text, entity, mutation, profile);
643
702
  }
644
703
  //# sourceMappingURL=task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/mutation/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/mutation/task.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ export interface TaskRequirementInput {
34
34
  interface TaskDefinitionBase {
35
35
  readonly title: string;
36
36
  readonly description?: string;
37
+ readonly notBefore?: string;
38
+ readonly deadline?: string;
37
39
  readonly status?: TaskMutationStatus;
38
40
  readonly priority?: number;
39
41
  readonly requirements?: readonly TaskRequirementInput[];
@@ -54,13 +56,15 @@ export interface TaskFieldSet {
54
56
  readonly description?: string;
55
57
  readonly duration?: string;
56
58
  readonly estimate?: TaskEstimateInput;
59
+ readonly notBefore?: string;
60
+ readonly deadline?: string;
57
61
  readonly status?: TaskMutationStatus;
58
62
  readonly priority?: number;
59
63
  readonly owner?: string;
60
64
  readonly blockedReason?: string;
61
65
  readonly source?: string;
62
66
  }
63
- export type TaskClearableField = "description" | "status" | "priority" | "owner" | "blocked_reason" | "source" | "tags" | "requires";
67
+ export type TaskClearableField = "description" | "not_before" | "deadline" | "status" | "priority" | "owner" | "blocked_reason" | "source" | "tags" | "requires";
64
68
  export interface AddTaskMutation {
65
69
  readonly kind: "task.add";
66
70
  readonly id: string;
@@ -119,14 +123,16 @@ export interface MilestoneDefinition {
119
123
  readonly title: string;
120
124
  readonly description?: string;
121
125
  readonly state?: MilestoneMutationState;
126
+ readonly deadline?: string;
122
127
  readonly tags?: readonly string[];
123
128
  }
124
129
  export interface MilestoneFieldSet {
125
130
  readonly title?: string;
126
131
  readonly description?: string;
127
132
  readonly state?: MilestoneMutationState;
133
+ readonly deadline?: string;
128
134
  }
129
- export type MilestoneClearableField = "description" | "state" | "tags";
135
+ export type MilestoneClearableField = "description" | "state" | "deadline" | "tags";
130
136
  export interface AddMilestoneMutation {
131
137
  readonly kind: "milestone.add";
132
138
  readonly id: string;