centy 0.4.0 → 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 (96) hide show
  1. package/dist/commands/create/item-type.d.ts +20 -0
  2. package/dist/commands/create/item-type.d.ts.map +1 -0
  3. package/dist/commands/create/item-type.js +90 -0
  4. package/dist/commands/create/item-type.js.map +1 -0
  5. package/dist/commands/init.d.ts +0 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +0 -4
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/link.d.ts +19 -0
  10. package/dist/commands/link.d.ts.map +1 -0
  11. package/dist/commands/link.js +74 -0
  12. package/dist/commands/link.js.map +1 -0
  13. package/dist/commands/links.d.ts +18 -0
  14. package/dist/commands/links.d.ts.map +1 -0
  15. package/dist/commands/links.js +70 -0
  16. package/dist/commands/links.js.map +1 -0
  17. package/dist/commands/list/link-types.d.ts +14 -0
  18. package/dist/commands/list/link-types.d.ts.map +1 -0
  19. package/dist/commands/list/link-types.js +59 -0
  20. package/dist/commands/list/link-types.js.map +1 -0
  21. package/dist/commands/unlink.d.ts +19 -0
  22. package/dist/commands/unlink.d.ts.map +1 -0
  23. package/dist/commands/unlink.js +73 -0
  24. package/dist/commands/unlink.js.map +1 -0
  25. package/dist/commands/version.d.ts +13 -0
  26. package/dist/commands/version.d.ts.map +1 -0
  27. package/dist/commands/version.js +51 -0
  28. package/dist/commands/version.js.map +1 -0
  29. package/dist/daemon/daemon-create-item-type.d.ts +6 -0
  30. package/dist/daemon/daemon-create-item-type.d.ts.map +1 -0
  31. package/dist/daemon/daemon-create-item-type.js +9 -0
  32. package/dist/daemon/daemon-create-item-type.js.map +1 -0
  33. package/dist/daemon/daemon-create-link.d.ts +6 -0
  34. package/dist/daemon/daemon-create-link.d.ts.map +1 -0
  35. package/dist/daemon/daemon-create-link.js +9 -0
  36. package/dist/daemon/daemon-create-link.js.map +1 -0
  37. package/dist/daemon/daemon-delete-link.d.ts +6 -0
  38. package/dist/daemon/daemon-delete-link.d.ts.map +1 -0
  39. package/dist/daemon/daemon-delete-link.js +9 -0
  40. package/dist/daemon/daemon-delete-link.js.map +1 -0
  41. package/dist/daemon/daemon-get-available-link-types.d.ts +6 -0
  42. package/dist/daemon/daemon-get-available-link-types.d.ts.map +1 -0
  43. package/dist/daemon/daemon-get-available-link-types.js +9 -0
  44. package/dist/daemon/daemon-get-available-link-types.js.map +1 -0
  45. package/dist/daemon/daemon-list-links.d.ts +6 -0
  46. package/dist/daemon/daemon-list-links.d.ts.map +1 -0
  47. package/dist/daemon/daemon-list-links.js +9 -0
  48. package/dist/daemon/daemon-list-links.js.map +1 -0
  49. package/dist/daemon/daemon-open-in-temp-workspace.d.ts +2 -2
  50. package/dist/daemon/daemon-open-in-temp-workspace.d.ts.map +1 -1
  51. package/dist/daemon/daemon-open-in-temp-workspace.js.map +1 -1
  52. package/dist/daemon/grpc-client-extended.d.ts +4 -8
  53. package/dist/daemon/grpc-client-extended.d.ts.map +1 -1
  54. package/dist/daemon/grpc-client-items.d.ts +19 -0
  55. package/dist/daemon/grpc-client-items.d.ts.map +1 -0
  56. package/dist/daemon/grpc-client-items.js +2 -0
  57. package/dist/daemon/grpc-client-items.js.map +1 -0
  58. package/dist/daemon/grpc-client-link.d.ts +12 -0
  59. package/dist/daemon/grpc-client-link.d.ts.map +1 -0
  60. package/dist/daemon/grpc-client-link.js +2 -0
  61. package/dist/daemon/grpc-client-link.js.map +1 -0
  62. package/dist/daemon/load-proto.d.ts +3 -1
  63. package/dist/daemon/load-proto.d.ts.map +1 -1
  64. package/dist/daemon/load-proto.js +3 -1
  65. package/dist/daemon/load-proto.js.map +1 -1
  66. package/dist/daemon/types/config.d.ts +0 -1
  67. package/dist/daemon/types/config.d.ts.map +1 -1
  68. package/dist/daemon/types/generic-item.d.ts +104 -0
  69. package/dist/daemon/types/generic-item.d.ts.map +1 -0
  70. package/dist/daemon/types/generic-item.js +6 -0
  71. package/dist/daemon/types/generic-item.js.map +1 -0
  72. package/dist/daemon/types/item-type.d.ts +37 -0
  73. package/dist/daemon/types/item-type.d.ts.map +1 -0
  74. package/dist/daemon/types/item-type.js +6 -0
  75. package/dist/daemon/types/item-type.js.map +1 -0
  76. package/dist/daemon/types.d.ts +2 -0
  77. package/dist/daemon/types.d.ts.map +1 -1
  78. package/dist/daemon/types.js +2 -0
  79. package/dist/daemon/types.js.map +1 -1
  80. package/dist/lib/create-item-type/features.d.ts +18 -0
  81. package/dist/lib/create-item-type/features.d.ts.map +1 -0
  82. package/dist/lib/create-item-type/features.js +58 -0
  83. package/dist/lib/create-item-type/features.js.map +1 -0
  84. package/dist/lib/init/config-builder.d.ts.map +1 -1
  85. package/dist/lib/init/config-builder.js +0 -2
  86. package/dist/lib/init/config-builder.js.map +1 -1
  87. package/dist/types/init-options.d.ts +0 -2
  88. package/dist/types/init-options.d.ts.map +1 -1
  89. package/dist/utils/parse-link-target.d.ts +5 -0
  90. package/dist/utils/parse-link-target.d.ts.map +1 -0
  91. package/dist/utils/parse-link-target.js +16 -0
  92. package/dist/utils/parse-link-target.js.map +1 -0
  93. package/oclif.manifest.json +446 -128
  94. package/package.json +1 -1
  95. package/proto/{centy.proto → centy/v1/centy.proto} +44 -15
  96. package/proto/centy/v1/generic_item.proto +177 -0
@@ -0,0 +1,58 @@
1
+ /* eslint-disable single-export/single-export */
2
+ export class InvalidFeatureError extends Error {
3
+ constructor(feature, validFeatures) {
4
+ super(`Invalid feature "${feature}". Valid features: ${validFeatures.join(', ')}`);
5
+ this.name = 'InvalidFeatureError';
6
+ }
7
+ }
8
+ /**
9
+ * Valid feature names for item types
10
+ */
11
+ export const VALID_FEATURES = [
12
+ 'display-number',
13
+ 'status',
14
+ 'priority',
15
+ 'assets',
16
+ 'org-sync',
17
+ 'move',
18
+ 'duplicate',
19
+ ];
20
+ const FEATURE_TO_ENUM = {
21
+ 'display-number': 'ITEM_TYPE_FEATURE_DISPLAY_NUMBER',
22
+ status: 'ITEM_TYPE_FEATURE_STATUS',
23
+ priority: 'ITEM_TYPE_FEATURE_PRIORITY',
24
+ assets: 'ITEM_TYPE_FEATURE_ASSETS',
25
+ 'org-sync': 'ITEM_TYPE_FEATURE_ORG_SYNC',
26
+ move: 'ITEM_TYPE_FEATURE_MOVE',
27
+ duplicate: 'ITEM_TYPE_FEATURE_DUPLICATE',
28
+ };
29
+ /**
30
+ * Map a CLI feature name to the gRPC enum value
31
+ */
32
+ export function mapFeatureToEnum(feature) {
33
+ // eslint-disable-next-line security/detect-object-injection
34
+ const mapped = FEATURE_TO_ENUM[feature];
35
+ if (mapped === undefined) {
36
+ return feature;
37
+ }
38
+ return mapped;
39
+ }
40
+ /**
41
+ * Parse and validate a comma-separated features string.
42
+ * Returns the gRPC enum values for each feature.
43
+ * Throws if any feature is invalid.
44
+ */
45
+ export function parseFeatures(featuresFlag) {
46
+ if (featuresFlag === undefined) {
47
+ return [];
48
+ }
49
+ const result = [];
50
+ for (const f of featuresFlag.split(',').map(s => s.trim())) {
51
+ if (!VALID_FEATURES.includes(f)) {
52
+ throw new InvalidFeatureError(f, VALID_FEATURES);
53
+ }
54
+ result.push(mapFeatureToEnum(f));
55
+ }
56
+ return result;
57
+ }
58
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../src/lib/create-item-type/features.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe,EAAE,aAAuB;QAClD,KAAK,CACH,oBAAoB,OAAO,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,MAAM;IACN,WAAW;CACZ,CAAA;AAED,MAAM,eAAe,GAA2B;IAC9C,gBAAgB,EAAE,kCAAkC;IACpD,MAAM,EAAE,0BAA0B;IAClC,QAAQ,EAAE,4BAA4B;IACtC,MAAM,EAAE,0BAA0B;IAClC,UAAU,EAAE,4BAA4B;IACxC,IAAI,EAAE,wBAAwB;IAC9B,SAAS,EAAE,6BAA6B;CACzC,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,4DAA4D;IAC5D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,YAAgC;IAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/init/config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE9D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAyB5E"}
1
+ {"version":3,"file":"config-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/init/config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE9D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAuB5E"}
@@ -5,7 +5,6 @@
5
5
  */
6
6
  export function buildConfigFromOptions(opts) {
7
7
  const hasConfigOptions = opts.priorityLevels !== undefined ||
8
- opts.defaultState !== undefined ||
9
8
  opts.allowedStates !== undefined ||
10
9
  opts.version !== undefined;
11
10
  if (!hasConfigOptions) {
@@ -13,7 +12,6 @@ export function buildConfigFromOptions(opts) {
13
12
  }
14
13
  return {
15
14
  priorityLevels: opts.priorityLevels !== undefined ? opts.priorityLevels : 0, // 0 = use default
16
- defaultState: opts.defaultState !== undefined ? opts.defaultState : '', // '' = use default
17
15
  allowedStates: opts.allowedStates !== undefined ? opts.allowedStates : [], // [] = use default
18
16
  version: opts.version !== undefined ? opts.version : '',
19
17
  // These are not configurable via CLI flags, use defaults
@@ -1 +1 @@
1
- {"version":3,"file":"config-builder.js","sourceRoot":"","sources":["../../../src/lib/init/config-builder.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAiB;IACtD,MAAM,gBAAgB,GACpB,IAAI,CAAC,cAAc,KAAK,SAAS;QACjC,IAAI,CAAC,YAAY,KAAK,SAAS;QAC/B,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAA;IAE5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB;QAC/F,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAmB;QAC3F,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAmB;QAC9F,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvD,yDAAyD;QACzD,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,EAAE;KACV,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config-builder.js","sourceRoot":"","sources":["../../../src/lib/init/config-builder.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAiB;IACtD,MAAM,gBAAgB,GACpB,IAAI,CAAC,cAAc,KAAK,SAAS;QACjC,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAA;IAE5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB;QAC/F,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAmB;QAC9F,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvD,yDAAyD;QACzD,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,EAAE;KACV,CAAA;AACH,CAAC"}
@@ -12,8 +12,6 @@ export interface InitOptions {
12
12
  output?: NodeJS.WritableStream;
13
13
  /** Number of priority levels (1-10, default: 3) */
14
14
  priorityLevels?: number;
15
- /** Default state for new issues (default: "open") */
16
- defaultState?: string;
17
15
  /** Allowed states for issues */
18
16
  allowedStates?: string[];
19
17
  /** Project version (semver) */
@@ -1 +1 @@
1
- {"version":3,"file":"init-options.d.ts","sourceRoot":"","sources":["../../src/types/init-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAC7B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAG9B,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
1
+ {"version":3,"file":"init-options.d.ts","sourceRoot":"","sources":["../../src/types/init-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAC7B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAG9B,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Parse a link target string in the format type:id
3
+ */
4
+ export declare function parseLinkTarget(target: string): [string, string] | undefined;
5
+ //# sourceMappingURL=parse-link-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-link-target.d.ts","sourceRoot":"","sources":["../../src/utils/parse-link-target.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAW5E"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Parse a link target string in the format type:id
3
+ */
4
+ export function parseLinkTarget(target) {
5
+ const colonIndex = target.indexOf(':');
6
+ if (colonIndex === -1) {
7
+ return undefined;
8
+ }
9
+ const type = target.slice(0, colonIndex);
10
+ const id = target.slice(colonIndex + 1);
11
+ if (type === '' || id === '') {
12
+ return undefined;
13
+ }
14
+ return [type, id];
15
+ }
16
+ //# sourceMappingURL=parse-link-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-link-target.js","sourceRoot":"","sources":["../../src/utils/parse-link-target.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACxC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;IACvC,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AACnB,CAAC"}