@inf-monkeys-tech/monkeys-cli 0.12.12 → 0.12.14

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 (128) hide show
  1. package/README.md +10 -0
  2. package/README.zh.md +10 -0
  3. package/dist/command/metadata.d.ts.map +1 -1
  4. package/dist/command/metadata.js +14 -1
  5. package/dist/command/metadata.js.map +1 -1
  6. package/dist/commands/data/asset/aggregate.d.ts +21 -0
  7. package/dist/commands/data/asset/aggregate.d.ts.map +1 -0
  8. package/dist/commands/data/asset/aggregate.js +96 -0
  9. package/dist/commands/data/asset/aggregate.js.map +1 -0
  10. package/dist/commands/data/asset/search.d.ts.map +1 -1
  11. package/dist/commands/data/asset/search.js +8 -1
  12. package/dist/commands/data/asset/search.js.map +1 -1
  13. package/dist/commands/group/create.d.ts +21 -0
  14. package/dist/commands/group/create.d.ts.map +1 -0
  15. package/dist/commands/group/create.js +31 -0
  16. package/dist/commands/group/create.js.map +1 -0
  17. package/dist/commands/group/delete.d.ts +22 -0
  18. package/dist/commands/group/delete.d.ts.map +1 -0
  19. package/dist/commands/group/delete.js +30 -0
  20. package/dist/commands/group/delete.js.map +1 -0
  21. package/dist/commands/group/get.d.ts +14 -0
  22. package/dist/commands/group/get.d.ts.map +1 -0
  23. package/dist/commands/group/get.js +20 -0
  24. package/dist/commands/group/get.js.map +1 -0
  25. package/dist/commands/group/list.d.ts +16 -0
  26. package/dist/commands/group/list.d.ts.map +1 -0
  27. package/dist/commands/group/list.js +18 -0
  28. package/dist/commands/group/list.js.map +1 -0
  29. package/dist/commands/group/member/add.d.ts +26 -0
  30. package/dist/commands/group/member/add.d.ts.map +1 -0
  31. package/dist/commands/group/member/add.js +29 -0
  32. package/dist/commands/group/member/add.js.map +1 -0
  33. package/dist/commands/group/member/list.d.ts +20 -0
  34. package/dist/commands/group/member/list.d.ts.map +1 -0
  35. package/dist/commands/group/member/list.js +21 -0
  36. package/dist/commands/group/member/list.js.map +1 -0
  37. package/dist/commands/group/member/remove.d.ts +27 -0
  38. package/dist/commands/group/member/remove.d.ts.map +1 -0
  39. package/dist/commands/group/member/remove.js +33 -0
  40. package/dist/commands/group/member/remove.js.map +1 -0
  41. package/dist/commands/group/permission/list.d.ts +19 -0
  42. package/dist/commands/group/permission/list.d.ts.map +1 -0
  43. package/dist/commands/group/permission/list.js +28 -0
  44. package/dist/commands/group/permission/list.js.map +1 -0
  45. package/dist/commands/group/permission/set.d.ts +24 -0
  46. package/dist/commands/group/permission/set.d.ts.map +1 -0
  47. package/dist/commands/group/permission/set.js +33 -0
  48. package/dist/commands/group/permission/set.js.map +1 -0
  49. package/dist/commands/group/update.d.ts +24 -0
  50. package/dist/commands/group/update.d.ts.map +1 -0
  51. package/dist/commands/group/update.js +33 -0
  52. package/dist/commands/group/update.js.map +1 -0
  53. package/dist/commands/permission/list.d.ts +16 -0
  54. package/dist/commands/permission/list.d.ts.map +1 -0
  55. package/dist/commands/permission/list.js +18 -0
  56. package/dist/commands/permission/list.js.map +1 -0
  57. package/dist/commands/user/get.d.ts +14 -0
  58. package/dist/commands/user/get.d.ts.map +1 -0
  59. package/dist/commands/user/get.js +20 -0
  60. package/dist/commands/user/get.js.map +1 -0
  61. package/dist/commands/user/group/add.d.ts +26 -0
  62. package/dist/commands/user/group/add.d.ts.map +1 -0
  63. package/dist/commands/user/group/add.js +29 -0
  64. package/dist/commands/user/group/add.js.map +1 -0
  65. package/dist/commands/user/group/list.d.ts +19 -0
  66. package/dist/commands/user/group/list.d.ts.map +1 -0
  67. package/dist/commands/user/group/list.js +38 -0
  68. package/dist/commands/user/group/list.js.map +1 -0
  69. package/dist/commands/user/group/remove.d.ts +26 -0
  70. package/dist/commands/user/group/remove.d.ts.map +1 -0
  71. package/dist/commands/user/group/remove.js +29 -0
  72. package/dist/commands/user/group/remove.js.map +1 -0
  73. package/dist/commands/user/list.d.ts +18 -0
  74. package/dist/commands/user/list.d.ts.map +1 -0
  75. package/dist/commands/user/list.js +27 -0
  76. package/dist/commands/user/list.js.map +1 -0
  77. package/dist/data/asset-aggregate.d.ts +68 -0
  78. package/dist/data/asset-aggregate.d.ts.map +1 -0
  79. package/dist/data/asset-aggregate.js +303 -0
  80. package/dist/data/asset-aggregate.js.map +1 -0
  81. package/dist/data/client.d.ts +1 -0
  82. package/dist/data/client.d.ts.map +1 -1
  83. package/dist/data/client.js +52 -9
  84. package/dist/data/client.js.map +1 -1
  85. package/dist/data/contracts.d.ts +3 -2
  86. package/dist/data/contracts.d.ts.map +1 -1
  87. package/dist/data/contracts.js +28 -5
  88. package/dist/data/contracts.js.map +1 -1
  89. package/dist/identity-governance/client.d.ts +217 -0
  90. package/dist/identity-governance/client.d.ts.map +1 -0
  91. package/dist/identity-governance/client.js +185 -0
  92. package/dist/identity-governance/client.js.map +1 -0
  93. package/dist/identity-governance/contracts.d.ts +142 -0
  94. package/dist/identity-governance/contracts.d.ts.map +1 -0
  95. package/dist/identity-governance/contracts.js +109 -0
  96. package/dist/identity-governance/contracts.js.map +1 -0
  97. package/dist/identity-governance/definitions.d.ts +54 -0
  98. package/dist/identity-governance/definitions.d.ts.map +1 -0
  99. package/dist/identity-governance/definitions.js +25 -0
  100. package/dist/identity-governance/definitions.js.map +1 -0
  101. package/dist/identity-governance/files.d.ts +5 -0
  102. package/dist/identity-governance/files.d.ts.map +1 -0
  103. package/dist/identity-governance/files.js +75 -0
  104. package/dist/identity-governance/files.js.map +1 -0
  105. package/dist/identity-governance/flags.d.ts +43 -0
  106. package/dist/identity-governance/flags.d.ts.map +1 -0
  107. package/dist/identity-governance/flags.js +52 -0
  108. package/dist/identity-governance/flags.js.map +1 -0
  109. package/dist/identity-governance/group-mutation.d.ts +165 -0
  110. package/dist/identity-governance/group-mutation.d.ts.map +1 -0
  111. package/dist/identity-governance/group-mutation.js +160 -0
  112. package/dist/identity-governance/group-mutation.js.map +1 -0
  113. package/dist/identity-governance/membership.d.ts +145 -0
  114. package/dist/identity-governance/membership.d.ts.map +1 -0
  115. package/dist/identity-governance/membership.js +264 -0
  116. package/dist/identity-governance/membership.js.map +1 -0
  117. package/dist/identity-governance/runtime.d.ts +16 -0
  118. package/dist/identity-governance/runtime.d.ts.map +1 -0
  119. package/dist/identity-governance/runtime.js +30 -0
  120. package/dist/identity-governance/runtime.js.map +1 -0
  121. package/oclif.manifest.json +2747 -570
  122. package/package.json +11 -2
  123. package/skills/monkeys-data/references/data-perspective.md +5 -5
  124. package/skills/monkeys-data/references/data-read.md +2 -1
  125. package/skills/monkeys-data/references/ontology-feature-search.md +47 -1
  126. package/skills/monkeys-shared/SKILL.md +2 -1
  127. package/skills/monkeys-shared/references/identity-governance.md +47 -0
  128. package/skills/monkeys-shared/references/platform-overview.md +2 -0
@@ -0,0 +1,29 @@
1
+ import { Args } from '@oclif/core';
2
+ import { LocalCommand } from '../../../config/local-command.js';
3
+ import { IdentityClient } from '../../../identity-governance/client.js';
4
+ import { membershipFlags } from '../../../identity-governance/flags.js';
5
+ import { executeMembership } from '../../../identity-governance/membership.js';
6
+ import { loadIdentityRuntime } from '../../../identity-governance/runtime.js';
7
+ import { paginationInput } from '../../../pagination/index.js';
8
+ export default class MembershipMutation extends LocalCommand {
9
+ static description = 'Remove direct group memberships using exact IDs or a reviewed frozen plan.';
10
+ static args = { id: Args.string({ required: true, description: 'Exact user ID' }) };
11
+ static flags = { ...membershipFlags() };
12
+ async run() {
13
+ const { flags, args } = await this.parse(MembershipMutation);
14
+ await this.emit('user group remove', flags.output, async () => executeMembership({
15
+ client: new IdentityClient(await loadIdentityRuntime(flags.subscription, flags.refresh)),
16
+ scope: { kind: 'user', id: args.id },
17
+ action: 'remove',
18
+ ids: flags.ids,
19
+ idsFile: flags['ids-file'],
20
+ planFile: flags['plan-file'],
21
+ planOut: flags['plan-out'],
22
+ report: flags.report,
23
+ dryRun: flags['dry-run'],
24
+ yes: flags.yes,
25
+ pagination: paginationInput(flags),
26
+ }));
27
+ }
28
+ }
29
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/user/group/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,YAAY;IAC1D,MAAM,CAAU,WAAW,GAAG,4EAA4E,CAAC;IAC3G,MAAM,CAAU,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;IAC7F,MAAM,CAAU,KAAK,GAAG,EAAE,GAAG,eAAe,EAAE,EAAE,CAAC;IACjD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAC5D,iBAAiB,CAAC;YAChB,MAAM,EAAE,IAAI,cAAc,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxF,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;YAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;YAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YAEpB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;YACxB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { LocalCommand } from '../../config/local-command.js';
2
+ export default class IdentityRead extends LocalCommand {
3
+ static description: string;
4
+ static flags: {
5
+ 'page-all': import("@oclif/core/interfaces").BooleanFlag<boolean>;
6
+ 'page-delay': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
7
+ 'page-limit': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
8
+ 'page-size': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
9
+ 'page-token': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
+ subscription: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ refresh: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ keyword: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ 'user-type': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ };
16
+ run(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAM7D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,OAAgB,WAAW,SAAsE;IAEjG,OAAgB,KAAK;;;;;;;;;;;MAKnB;IACI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAUzB;CACF"}
@@ -0,0 +1,27 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { LocalCommand } from '../../config/local-command.js';
3
+ import { IdentityClient } from '../../identity-governance/client.js';
4
+ import { identityFlags } from '../../identity-governance/flags.js';
5
+ import { identityMeta, loadIdentityRuntime } from '../../identity-governance/runtime.js';
6
+ import { paginationFlags, paginationInput } from '../../pagination/index.js';
7
+ export default class IdentityRead extends LocalCommand {
8
+ static description = 'List Kernel platform users (not Studio share-target identities).';
9
+ static flags = {
10
+ ...identityFlags(),
11
+ ...paginationFlags(),
12
+ keyword: Flags.string({ summary: 'Search supported user fields' }),
13
+ 'user-type': Flags.string({ options: ['human', 'agent'], summary: 'User type' }),
14
+ };
15
+ async run() {
16
+ const { flags } = await this.parse(IdentityRead);
17
+ await this.emit('user list', flags.output, async () => {
18
+ const client = new IdentityClient(await loadIdentityRuntime(flags.subscription, flags.refresh));
19
+ const data = await client.users(paginationInput(flags), {
20
+ ...(flags.keyword ? { keyword: flags.keyword } : {}),
21
+ ...(flags['user-type'] ? { userType: flags['user-type'] } : {}),
22
+ });
23
+ return { ...identityMeta(client.runtime), ...data };
24
+ });
25
+ }
26
+ }
27
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7E,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,MAAM,CAAU,WAAW,GAAG,kEAAkE,CAAC;IAEjG,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,aAAa,EAAE;QAClB,GAAG,eAAe,EAAE;QACpB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;QAClE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KACjF,CAAC;IACF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAChG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBACtD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,68 @@
1
+ import { z } from 'zod';
2
+ import { type AssetSearchFilterExpression } from './asset-search-expression.js';
3
+ declare const METRIC_OPS: readonly ['count', 'value_count', 'distinct_count', 'sum', 'avg', 'min', 'max'];
4
+ export type AssetAggregateScalarField = {
5
+ kind: 'builtin';
6
+ name: string;
7
+ } | {
8
+ kind: 'feature';
9
+ fieldKey: string;
10
+ };
11
+ export type AssetAggregateField = AssetAggregateScalarField | {
12
+ kind: 'tag_group';
13
+ tagGroupId: string;
14
+ };
15
+ export type AssetAggregateMetric = {
16
+ op: (typeof METRIC_OPS)[number];
17
+ alias: string;
18
+ field?: AssetAggregateScalarField;
19
+ };
20
+ export interface AssetAggregateInput {
21
+ ontologyId: string;
22
+ viewId: string;
23
+ metrics: AssetAggregateMetric[];
24
+ groupBy?: {
25
+ field: AssetAggregateField;
26
+ alias: string;
27
+ };
28
+ orderBy?: {
29
+ kind: 'key' | 'metric';
30
+ alias?: string;
31
+ order?: 'asc' | 'desc';
32
+ };
33
+ expression?: AssetSearchFilterExpression;
34
+ name?: string;
35
+ creatorUserId?: string;
36
+ tags?: string[];
37
+ tagGroups?: string[][];
38
+ excludeTags?: string[];
39
+ rules?: Array<{
40
+ whenAllOf?: string[];
41
+ whenAnyOf?: string[];
42
+ requireAllOf?: string[];
43
+ requireAnyOf?: string[][];
44
+ }>;
45
+ includeForked?: boolean;
46
+ }
47
+ export declare function normalizeAssetAggregateInput(input: unknown, scope: {
48
+ ontologyId: string;
49
+ viewId: string;
50
+ }): AssetAggregateInput;
51
+ export declare function validateAssetAggregateContinuation(input: AssetAggregateInput, pageToken: string | undefined): void;
52
+ declare const aggregateResultSchema: z.ZodObject<{
53
+ items: z.ZodArray<z.ZodPipe<z.ZodUnknown, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
54
+ pageInfo: z.ZodObject<{
55
+ hasMore: z.ZodBoolean;
56
+ nextPageToken: z.ZodOptional<z.ZodString>;
57
+ pageSize: z.ZodNumber;
58
+ returned: z.ZodNumber;
59
+ total: z.ZodOptional<z.ZodNumber>;
60
+ }, z.core.$loose>;
61
+ scanned: z.ZodNumber;
62
+ truncated: z.ZodBoolean;
63
+ exact: z.ZodBoolean;
64
+ }, z.core.$loose>;
65
+ export type AssetAggregateResult = z.infer<typeof aggregateResultSchema>;
66
+ export declare function parseAssetAggregateResponse(value: unknown): AssetAggregateResult;
67
+ export {};
68
+ //# sourceMappingURL=asset-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-aggregate.d.ts","sourceRoot":"","sources":["../../src/data/asset-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAkC,KAAK,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAuBhH,QAAA,MAAM,UAAU,YAAI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAGnG,MAAM,MAAM,yBAAyB,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAClH,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,yBAAyB,CAAA;CAAE,CAAC;AACzH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,mBAAmB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7E,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAClH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA8GD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAuG/H;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAIlH;AAmBD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;iBAsBvB,CAAC;AAEL,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAEhF"}
@@ -0,0 +1,303 @@
1
+ import { z } from 'zod';
2
+ import { CliError, EXIT_CODES } from '../errors/cli-error.js';
3
+ import { normalizeAssetSearchExpression } from './asset-search-expression.js';
4
+ const BUILTIN_FIELDS = new Set([
5
+ 'asset_id',
6
+ 'team_id',
7
+ 'ontology_id',
8
+ 'creator_user_id',
9
+ 'name',
10
+ 'asset_type',
11
+ 'status',
12
+ 'container_view_id',
13
+ 'created_timestamp',
14
+ 'updated_timestamp',
15
+ 'sort',
16
+ 'view_count',
17
+ 'download_count',
18
+ 'like_count',
19
+ 'is_forked',
20
+ 'tag_ids',
21
+ ]);
22
+ const NUMERIC_BUILTINS = new Set(['sort', 'view_count', 'download_count', 'like_count']);
23
+ const DATE_BUILTINS = new Set(['created_timestamp', 'updated_timestamp']);
24
+ const RESERVED_ALIASES = new Set(['key', 'key_as_string', 'doc_count', 'value', 'value_as_string', 'buckets', 'after_key', '__proto__']);
25
+ const METRIC_OPS = ['count', 'value_count', 'distinct_count', 'sum', 'avg', 'min', 'max'];
26
+ const RAW_STORAGE_FIELD = /^(?:feature_(?:num|str|bool|date|json)|properties|extra)\./i;
27
+ function invalid(message, path) {
28
+ throw new CliError(message, {
29
+ code: 'DATA_AGGREGATE_INPUT_INVALID',
30
+ exitCode: EXIT_CODES.validation,
31
+ safeDetails: { path, requestState: 'not_sent' },
32
+ });
33
+ }
34
+ function object(input, path) {
35
+ if (!input || typeof input !== 'object' || Array.isArray(input))
36
+ invalid('Aggregate input must be a JSON Object.', path);
37
+ return input;
38
+ }
39
+ function allowedKeys(input, allowed, path) {
40
+ for (const key of Object.keys(input)) {
41
+ if (!allowed.includes(key))
42
+ invalid(`Unsupported aggregate field: ${key}.`, `${path}.${key}`);
43
+ }
44
+ }
45
+ function text(input, path, maxLength = 128) {
46
+ if (typeof input !== 'string' || !input.trim() || input.trim().length > maxLength) {
47
+ invalid(`Expected a non-empty string of at most ${maxLength} characters.`, path);
48
+ }
49
+ return input.trim();
50
+ }
51
+ function strings(input, path, maximum) {
52
+ if (!Array.isArray(input) || input.length > maximum)
53
+ invalid(`Expected an array of at most ${maximum} strings.`, path);
54
+ return input.map((value, index) => text(value, `${path}[${index}]`));
55
+ }
56
+ function stringGroups(input, path) {
57
+ if (!Array.isArray(input) || input.length > 50)
58
+ invalid('Expected at most 50 tag groups.', path);
59
+ return input.map((value, index) => strings(value, `${path}[${index}]`, 100));
60
+ }
61
+ function alias(input, path, seen) {
62
+ const value = text(input, path, 64);
63
+ if (!/^[A-Za-z_][A-Za-z0-9_]{0,63}$/.test(value) || RESERVED_ALIASES.has(value))
64
+ invalid('Invalid or reserved aggregate alias.', path);
65
+ if (seen.has(value))
66
+ invalid(`Duplicate aggregate alias: ${value}.`, path);
67
+ seen.add(value);
68
+ return value;
69
+ }
70
+ function field(input, path, allowTagGroup = false) {
71
+ const value = object(input, path);
72
+ if (value.kind === 'builtin') {
73
+ allowedKeys(value, ['kind', 'name'], path);
74
+ const name = text(value.name, `${path}.name`);
75
+ if (!BUILTIN_FIELDS.has(name) || name === 'name')
76
+ invalid('Unsupported or non-aggregatable builtin field.', `${path}.name`);
77
+ return { kind: 'builtin', name };
78
+ }
79
+ if (value.kind === 'feature') {
80
+ allowedKeys(value, ['kind', 'fieldKey'], path);
81
+ const fieldKey = text(value.fieldKey, `${path}.fieldKey`);
82
+ if (RAW_STORAGE_FIELD.test(fieldKey))
83
+ invalid('Use a semantic fieldKey, not a raw storage path.', `${path}.fieldKey`);
84
+ return { kind: 'feature', fieldKey };
85
+ }
86
+ if (value.kind === 'tag_group' && allowTagGroup) {
87
+ allowedKeys(value, ['kind', 'tagGroupId'], path);
88
+ return { kind: 'tag_group', tagGroupId: text(value.tagGroupId, `${path}.tagGroupId`) };
89
+ }
90
+ invalid('Expected a supported semantic field reference.', path);
91
+ }
92
+ // The shared search normalizer reconstructs nodes; reject unknown fields before calling it.
93
+ function checkExpression(input, path, depth = 0, count = { value: 0 }) {
94
+ if (depth > 8 || ++count.value > 80)
95
+ invalid('Expression exceeds its depth or node bound.', path);
96
+ const node = object(input, path);
97
+ const fields = {
98
+ and: ['op', 'filters'],
99
+ or: ['op', 'filters'],
100
+ field: ['op', 'field', 'cmp', 'value'],
101
+ feature: ['op', 'fieldKey', 'cmp', 'value'],
102
+ tagGroup: ['op', 'allOf'],
103
+ relation: ['op', 'relationKind', 'objectKind', 'objectId'],
104
+ };
105
+ if (typeof node.op !== 'string' || !Object.hasOwn(fields, node.op))
106
+ invalid('Unsupported expression node.', `${path}.op`);
107
+ allowedKeys(node, fields[node.op], path);
108
+ if (node.op === 'and' || node.op === 'or') {
109
+ if (!Array.isArray(node.filters))
110
+ invalid('Expression filters must be an array.', `${path}.filters`);
111
+ node.filters.forEach((child, index) => checkExpression(child, `${path}.filters[${index}]`, depth + 1, count));
112
+ }
113
+ else if (node.op === 'feature') {
114
+ const fieldKey = text(node.fieldKey, `${path}.fieldKey`);
115
+ if (RAW_STORAGE_FIELD.test(fieldKey))
116
+ invalid('Use a semantic fieldKey, not a raw storage path.', `${path}.fieldKey`);
117
+ const comparator = node.cmp === undefined ? 'eq' : text(node.cmp, `${path}.cmp`);
118
+ const values = Array.isArray(node.value) ? node.value : [node.value];
119
+ if (comparator === 'between') {
120
+ if (values.length !== 2)
121
+ invalid('between requires exactly two values.', `${path}.value`);
122
+ if (typeof values[0] === 'number' && typeof values[1] === 'number' && values[0] > values[1]) {
123
+ invalid('between lower bound must not exceed its upper bound.', `${path}.value`);
124
+ }
125
+ }
126
+ else if (comparator !== 'in' && values.length !== 1) {
127
+ invalid('This feature comparator requires exactly one value.', `${path}.value`);
128
+ }
129
+ }
130
+ else if (node.op === 'field') {
131
+ text(node.field, `${path}.field`);
132
+ if (node.cmp !== undefined)
133
+ text(node.cmp, `${path}.cmp`);
134
+ if (Array.isArray(node.value))
135
+ strings(node.value, `${path}.value`, 100);
136
+ else
137
+ text(node.value, `${path}.value`);
138
+ }
139
+ else if (node.op === 'tagGroup')
140
+ strings(node.allOf, `${path}.allOf`, 20);
141
+ else {
142
+ text(node.relationKind, `${path}.relationKind`);
143
+ text(node.objectKind, `${path}.objectKind`);
144
+ text(node.objectId, `${path}.objectId`);
145
+ }
146
+ }
147
+ export function normalizeAssetAggregateInput(input, scope) {
148
+ const source = object(input, '$');
149
+ allowedKeys(source, [
150
+ 'ontologyId',
151
+ 'viewId',
152
+ 'metrics',
153
+ 'groupBy',
154
+ 'orderBy',
155
+ 'expression',
156
+ 'name',
157
+ 'creatorUserId',
158
+ 'tags',
159
+ 'tagGroups',
160
+ 'excludeTags',
161
+ 'rules',
162
+ 'includeForked',
163
+ ], '$');
164
+ const result = {
165
+ ontologyId: text(scope.ontologyId, '$.ontologyId'),
166
+ viewId: text(scope.viewId, '$.viewId'),
167
+ metrics: [],
168
+ };
169
+ for (const key of ['ontologyId', 'viewId']) {
170
+ if (Object.hasOwn(source, key) && text(source[key], `$.${key}`) !== result[key])
171
+ invalid(`Input ${key} does not match the command scope.`, `$.${key}`);
172
+ }
173
+ const aliases = new Set();
174
+ if (source.groupBy !== undefined) {
175
+ const group = object(source.groupBy, '$.groupBy');
176
+ allowedKeys(group, ['field', 'alias'], '$.groupBy');
177
+ result.groupBy = { field: field(group.field, '$.groupBy.field', true), alias: alias(group.alias, '$.groupBy.alias', aliases) };
178
+ }
179
+ if (!Array.isArray(source.metrics) || source.metrics.length < 1 || source.metrics.length > 16)
180
+ invalid('Aggregate metrics must contain between 1 and 16 entries.', '$.metrics');
181
+ result.metrics = source.metrics.map((input, index) => {
182
+ const path = `$.metrics[${index}]`;
183
+ const metric = object(input, path);
184
+ allowedKeys(metric, ['op', 'field', 'alias'], path);
185
+ if (!METRIC_OPS.includes(metric.op))
186
+ invalid('Unsupported aggregate metric.', `${path}.op`);
187
+ const op = metric.op;
188
+ const normalized = { op, alias: alias(metric.alias, `${path}.alias`, aliases) };
189
+ if (op === 'count') {
190
+ if (Object.hasOwn(metric, 'field'))
191
+ invalid('The count metric must not specify a field.', `${path}.field`);
192
+ }
193
+ else {
194
+ const metricField = field(metric.field, `${path}.field`);
195
+ if (metricField.kind === 'builtin' && ['sum', 'avg', 'min', 'max'].includes(op)) {
196
+ const numeric = NUMERIC_BUILTINS.has(metricField.name);
197
+ const date = DATE_BUILTINS.has(metricField.name) && (op === 'min' || op === 'max');
198
+ if (!numeric && !date)
199
+ invalid(`${op} does not support this builtin field type.`, `${path}.field`);
200
+ }
201
+ normalized.field = metricField;
202
+ }
203
+ return normalized;
204
+ });
205
+ if (source.orderBy !== undefined) {
206
+ if (!result.groupBy)
207
+ invalid('orderBy requires groupBy.', '$.orderBy');
208
+ const order = object(source.orderBy, '$.orderBy');
209
+ allowedKeys(order, ['kind', 'alias', 'order'], '$.orderBy');
210
+ if (order.kind !== 'key' && order.kind !== 'metric')
211
+ invalid('orderBy.kind must be key or metric.', '$.orderBy.kind');
212
+ if (order.order !== undefined && order.order !== 'asc' && order.order !== 'desc')
213
+ invalid('orderBy.order must be asc or desc.', '$.orderBy.order');
214
+ const orderAlias = order.alias === undefined ? undefined : text(order.alias, '$.orderBy.alias', 64);
215
+ if (order.kind === 'key' && orderAlias !== undefined && orderAlias !== result.groupBy.alias)
216
+ invalid('Key ordering alias must match groupBy.alias.', '$.orderBy.alias');
217
+ if (order.kind === 'metric' && !result.metrics.some((metric) => metric.alias === orderAlias))
218
+ invalid('Metric ordering must name a declared metric alias.', '$.orderBy.alias');
219
+ result.orderBy = {
220
+ kind: order.kind,
221
+ ...(orderAlias === undefined ? {} : { alias: orderAlias }),
222
+ ...(order.order === undefined ? {} : { order: order.order }),
223
+ };
224
+ }
225
+ for (const key of ['name', 'creatorUserId'])
226
+ if (source[key] !== undefined)
227
+ result[key] = text(source[key], `$.${key}`, key === 'name' ? 512 : 128);
228
+ for (const key of ['tags', 'excludeTags'])
229
+ if (source[key] !== undefined)
230
+ result[key] = strings(source[key], `$.${key}`, 200);
231
+ if (source.tagGroups !== undefined)
232
+ result.tagGroups = stringGroups(source.tagGroups, '$.tagGroups');
233
+ if (source.rules !== undefined) {
234
+ if (!Array.isArray(source.rules) || source.rules.length > 50)
235
+ invalid('Expected at most 50 tag rules.', '$.rules');
236
+ result.rules = source.rules.map((input, index) => {
237
+ const path = `$.rules[${index}]`;
238
+ const rule = object(input, path);
239
+ allowedKeys(rule, ['whenAllOf', 'whenAnyOf', 'requireAllOf', 'requireAnyOf'], path);
240
+ return Object.fromEntries(Object.entries(rule).map(([key, value]) => [
241
+ key,
242
+ key === 'requireAnyOf' ? stringGroups(value, `${path}.${key}`) : strings(value, `${path}.${key}`, 100),
243
+ ]));
244
+ });
245
+ }
246
+ if (source.includeForked !== undefined) {
247
+ if (typeof source.includeForked !== 'boolean')
248
+ invalid('includeForked must be boolean.', '$.includeForked');
249
+ result.includeForked = source.includeForked;
250
+ }
251
+ if (source.expression !== undefined) {
252
+ checkExpression(source.expression, '$.expression');
253
+ result.expression = normalizeAssetSearchExpression(source.expression);
254
+ }
255
+ return result;
256
+ }
257
+ export function validateAssetAggregateContinuation(input, pageToken) {
258
+ if (pageToken && (!input.groupBy || input.orderBy?.kind === 'metric')) {
259
+ invalid('Continuation requires groupBy with key ordering; metric ordering has no continuation.', '$.pageToken');
260
+ }
261
+ }
262
+ function finiteJson(value) {
263
+ if (value === null || typeof value === 'string' || typeof value === 'boolean')
264
+ return true;
265
+ if (typeof value === 'number')
266
+ return Number.isFinite(value);
267
+ if (Array.isArray(value))
268
+ return value.every(finiteJson);
269
+ return Boolean(value && typeof value === 'object' && Object.values(value).every(finiteJson));
270
+ }
271
+ // Check before z.record reconstructs the row and discards an own __proto__ key.
272
+ const aggregateRowSchema = z
273
+ .unknown()
274
+ .refine((value) => !value || typeof value !== 'object' || !Object.hasOwn(value, '__proto__'), 'Aggregate rows cannot contain the reserved __proto__ alias.')
275
+ .pipe(z.record(z.string(), z.unknown()))
276
+ .refine(finiteJson, 'Aggregate values must be finite JSON values.');
277
+ const aggregateResultSchema = z
278
+ .object({
279
+ items: z.array(aggregateRowSchema).max(1000),
280
+ pageInfo: z
281
+ .object({
282
+ hasMore: z.boolean(),
283
+ nextPageToken: z.string().min(1).optional(),
284
+ pageSize: z.number().int().min(1).max(1000),
285
+ returned: z.number().int().nonnegative(),
286
+ total: z.number().int().nonnegative().optional(),
287
+ })
288
+ .passthrough(),
289
+ scanned: z.number().int().nonnegative(),
290
+ truncated: z.boolean(),
291
+ exact: z.boolean(),
292
+ })
293
+ .passthrough()
294
+ .superRefine((value, context) => {
295
+ if (value.pageInfo.hasMore !== Boolean(value.pageInfo.nextPageToken))
296
+ context.addIssue({ code: 'custom', message: 'Aggregate continuation metadata is inconsistent.', path: ['pageInfo'] });
297
+ if (value.pageInfo.returned !== value.items.length || value.items.length > value.pageInfo.pageSize)
298
+ context.addIssue({ code: 'custom', message: 'Aggregate returned count does not match its page.', path: ['pageInfo', 'returned'] });
299
+ });
300
+ export function parseAssetAggregateResponse(value) {
301
+ return aggregateResultSchema.parse(value);
302
+ }
303
+ //# sourceMappingURL=asset-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-aggregate.js","sourceRoot":"","sources":["../../src/data/asset-aggregate.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { type DataPerspective, type DataPerspectiveSource } from './perspective.
6
6
  import type { DataResourceLocator } from './resource-locator-types.js';
7
7
  export interface DataCallOptions {
8
8
  body?: unknown;
9
+ publishedBindingOnly?: boolean;
9
10
  idempotencyKey?: string;
10
11
  legacyBinding?: {
11
12
  apiOperationId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/data/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/data/client.ts"],"names":[],"mappings":"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"}