@portaidentity/sdk 1.7.3 → 1.9.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 (116) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +70 -41
  3. package/dist/agent.d.ts +15 -1
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +473 -69
  6. package/dist/agent.js.map +1 -1
  7. package/dist/auth/cli-auth.d.ts +45 -71
  8. package/dist/auth/cli-auth.d.ts.map +1 -1
  9. package/dist/auth/cli-auth.js +208 -144
  10. package/dist/auth/cli-auth.js.map +1 -1
  11. package/dist/auth/index.d.ts +1 -1
  12. package/dist/auth/index.d.ts.map +1 -1
  13. package/dist/domains/applications.d.ts +22 -3
  14. package/dist/domains/applications.d.ts.map +1 -1
  15. package/dist/domains/applications.js +90 -20
  16. package/dist/domains/applications.js.map +1 -1
  17. package/dist/domains/branding.d.ts +47 -16
  18. package/dist/domains/branding.d.ts.map +1 -1
  19. package/dist/domains/branding.js +28 -5
  20. package/dist/domains/branding.js.map +1 -1
  21. package/dist/domains/clients.d.ts +23 -6
  22. package/dist/domains/clients.d.ts.map +1 -1
  23. package/dist/domains/clients.js +122 -21
  24. package/dist/domains/clients.js.map +1 -1
  25. package/dist/domains/config.d.ts +20 -3
  26. package/dist/domains/config.d.ts.map +1 -1
  27. package/dist/domains/config.js +30 -3
  28. package/dist/domains/config.js.map +1 -1
  29. package/dist/domains/custom-claims.d.ts +2 -1
  30. package/dist/domains/custom-claims.d.ts.map +1 -1
  31. package/dist/domains/custom-claims.js +2 -2
  32. package/dist/domains/custom-claims.js.map +1 -1
  33. package/dist/domains/exports.d.ts +6 -1
  34. package/dist/domains/exports.d.ts.map +1 -1
  35. package/dist/domains/exports.js +27 -1
  36. package/dist/domains/exports.js.map +1 -1
  37. package/dist/domains/helpers.d.ts +31 -0
  38. package/dist/domains/helpers.d.ts.map +1 -1
  39. package/dist/domains/helpers.js +72 -1
  40. package/dist/domains/helpers.js.map +1 -1
  41. package/dist/domains/imports.d.ts +8 -7
  42. package/dist/domains/imports.d.ts.map +1 -1
  43. package/dist/domains/imports.js +158 -14
  44. package/dist/domains/imports.js.map +1 -1
  45. package/dist/domains/index.d.ts +1 -1
  46. package/dist/domains/index.d.ts.map +1 -1
  47. package/dist/domains/organizations.d.ts +2 -9
  48. package/dist/domains/organizations.d.ts.map +1 -1
  49. package/dist/domains/organizations.js +2 -13
  50. package/dist/domains/organizations.js.map +1 -1
  51. package/dist/domains/permissions.d.ts +22 -4
  52. package/dist/domains/permissions.d.ts.map +1 -1
  53. package/dist/domains/permissions.js +47 -13
  54. package/dist/domains/permissions.js.map +1 -1
  55. package/dist/domains/roles.d.ts +26 -16
  56. package/dist/domains/roles.d.ts.map +1 -1
  57. package/dist/domains/roles.js +61 -31
  58. package/dist/domains/roles.js.map +1 -1
  59. package/dist/domains/user-roles.d.ts +9 -4
  60. package/dist/domains/user-roles.d.ts.map +1 -1
  61. package/dist/domains/user-roles.js +32 -6
  62. package/dist/domains/user-roles.js.map +1 -1
  63. package/dist/domains/users.d.ts +31 -26
  64. package/dist/domains/users.d.ts.map +1 -1
  65. package/dist/domains/users.js +56 -46
  66. package/dist/domains/users.js.map +1 -1
  67. package/dist/errors/index.d.ts +2 -0
  68. package/dist/errors/index.d.ts.map +1 -1
  69. package/dist/errors/index.js +18 -1
  70. package/dist/errors/index.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/node.d.ts +1 -1
  75. package/dist/node.d.ts.map +1 -1
  76. package/dist/pagination/index.d.ts +5 -1
  77. package/dist/pagination/index.d.ts.map +1 -1
  78. package/dist/pagination/index.js +2 -2
  79. package/dist/pagination/index.js.map +1 -1
  80. package/dist/types/applications.d.ts +27 -6
  81. package/dist/types/applications.d.ts.map +1 -1
  82. package/dist/types/branding.d.ts +38 -11
  83. package/dist/types/branding.d.ts.map +1 -1
  84. package/dist/types/branding.js +0 -5
  85. package/dist/types/branding.js.map +1 -1
  86. package/dist/types/bulk.d.ts +2 -4
  87. package/dist/types/bulk.d.ts.map +1 -1
  88. package/dist/types/clients.d.ts +104 -13
  89. package/dist/types/clients.d.ts.map +1 -1
  90. package/dist/types/common.d.ts +26 -3
  91. package/dist/types/common.d.ts.map +1 -1
  92. package/dist/types/config.d.ts +57 -21
  93. package/dist/types/config.d.ts.map +1 -1
  94. package/dist/types/config.js +1 -8
  95. package/dist/types/config.js.map +1 -1
  96. package/dist/types/exports.d.ts +17 -0
  97. package/dist/types/exports.d.ts.map +1 -1
  98. package/dist/types/imports.d.ts +390 -84
  99. package/dist/types/imports.d.ts.map +1 -1
  100. package/dist/types/imports.js +1 -7
  101. package/dist/types/imports.js.map +1 -1
  102. package/dist/types/index.d.ts +14 -14
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/organizations.d.ts +5 -9
  105. package/dist/types/organizations.d.ts.map +1 -1
  106. package/dist/types/permissions.d.ts +21 -6
  107. package/dist/types/permissions.d.ts.map +1 -1
  108. package/dist/types/roles.d.ts +3 -1
  109. package/dist/types/roles.d.ts.map +1 -1
  110. package/dist/types/user-roles.d.ts +4 -10
  111. package/dist/types/user-roles.d.ts.map +1 -1
  112. package/dist/types/users.d.ts +102 -15
  113. package/dist/types/users.d.ts.map +1 -1
  114. package/dist/version.d.ts +1 -1
  115. package/dist/version.js +1 -1
  116. package/package.json +3 -2
@@ -1,19 +1,163 @@
1
- /**
2
- * Imports domain — declarative provisioning / data import.
3
- *
4
- * @module domains/imports
5
- */
1
+ /** Strict portability-manifest preview and import operations. */
2
+ import { PortaConflictError } from '../errors/index.js';
3
+ import { isRecord, unwrapData } from './helpers.js';
4
+ /** Entity discriminators accepted in the public result contract. */
5
+ const ENTITY_TYPES = [
6
+ 'organizations',
7
+ 'applications',
8
+ 'application_modules',
9
+ 'roles',
10
+ 'permissions',
11
+ 'claim_definitions',
12
+ 'role_permission_mappings',
13
+ 'users',
14
+ 'user_role_assignments',
15
+ 'user_claim_values',
16
+ 'clients',
17
+ ];
18
+ /** Closed action and count keys shared by every result group. */
19
+ const ACTIONS = ['created', 'updated', 'skipped', 'rejected'];
20
+ /** Safe rejection codes that may cross the public API boundary. */
21
+ const ERROR_CODES = [
22
+ 'invalid_record',
23
+ 'duplicate_natural_key',
24
+ 'missing_dependency',
25
+ 'ambiguous_dependency',
26
+ 'incompatible_record',
27
+ 'cross_scope_reference',
28
+ 'control_plane_record',
29
+ 'client_id_collision',
30
+ ];
31
+ /** Return whether an object has exactly the named own keys. */
32
+ function hasExactKeys(value, keys) {
33
+ const actual = Object.keys(value);
34
+ return actual.length === keys.length && actual.every((key) => keys.includes(key));
35
+ }
36
+ /** Return whether a value is one closed portability entity discriminator. */
37
+ function isEntityType(value) {
38
+ return typeof value === 'string' && ENTITY_TYPES.some((candidate) => candidate === value);
39
+ }
40
+ /** Return whether a value contains one entity's exact public natural-key fields. */
41
+ function isNaturalKey(entityType, value) {
42
+ if (!isRecord(value))
43
+ return false;
44
+ const expectedKeys = {
45
+ organizations: ['slug'],
46
+ applications: ['slug'],
47
+ application_modules: ['application_slug', 'slug'],
48
+ roles: ['application_slug', 'slug'],
49
+ permissions: ['application_slug', 'slug'],
50
+ claim_definitions: ['application_slug', 'claim_name'],
51
+ role_permission_mappings: ['application_slug', 'role_slug'],
52
+ users: ['organization_slug', 'email'],
53
+ user_role_assignments: ['organization_slug', 'email', 'application_slug', 'role_slug'],
54
+ user_claim_values: ['organization_slug', 'email', 'application_slug', 'claim_name'],
55
+ clients: ['client_id'],
56
+ };
57
+ return (hasExactKeys(value, expectedKeys[entityType]) &&
58
+ Object.values(value).every((field) => typeof field === 'string'));
59
+ }
60
+ /** Return whether a value is one exact non-negative result count group. */
61
+ function isActionCounts(value) {
62
+ return (isRecord(value) &&
63
+ hasExactKeys(value, ACTIONS) &&
64
+ ACTIONS.every((key) => Number.isInteger(value[key]) && Number(value[key]) >= 0));
65
+ }
66
+ /** Validate the closed summary object shared by preview and apply results. */
67
+ function isSummary(value) {
68
+ return (isRecord(value) &&
69
+ hasExactKeys(value, ENTITY_TYPES) &&
70
+ ENTITY_TYPES.every((entityType) => isActionCounts(value[entityType])));
71
+ }
72
+ /** Validate one ordered record outcome without accepting internal fields. */
73
+ function isResultItem(value) {
74
+ if (!isRecord(value) || !isEntityType(value.entity_type))
75
+ return false;
76
+ const keys = value.credential_will_be_generated === undefined
77
+ ? ['entity_type', 'action', 'natural_key']
78
+ : ['entity_type', 'action', 'natural_key', 'credential_will_be_generated'];
79
+ return (hasExactKeys(value, keys) &&
80
+ typeof value.action === 'string' &&
81
+ ACTIONS.some((action) => action === value.action) &&
82
+ isNaturalKey(value.entity_type, value.natural_key) &&
83
+ (value.credential_will_be_generated === undefined ||
84
+ typeof value.credential_will_be_generated === 'boolean'));
85
+ }
86
+ /** Validate one bounded safe rejection without accepting diagnostic details. */
87
+ function isResultError(value) {
88
+ return (isRecord(value) &&
89
+ hasExactKeys(value, ['entity_type', 'natural_key', 'code']) &&
90
+ isEntityType(value.entity_type) &&
91
+ isNaturalKey(value.entity_type, value.natural_key) &&
92
+ typeof value.code === 'string' &&
93
+ ERROR_CODES.some((code) => code === value.code));
94
+ }
95
+ /** Validate one committed one-time confidential-client credential. */
96
+ function isCredential(value) {
97
+ return (isRecord(value) &&
98
+ hasExactKeys(value, ['client_id', 'label', 'secret', 'expires_at']) &&
99
+ typeof value.client_id === 'string' &&
100
+ typeof value.label === 'string' &&
101
+ typeof value.secret === 'string' &&
102
+ typeof value.expires_at === 'string');
103
+ }
104
+ /** Validate a result for the exact operation mode requested by the caller. */
105
+ function isPortabilityResult(value, mode) {
106
+ if (!isRecord(value) || value.mode !== mode)
107
+ return false;
108
+ const hasCredentials = Object.hasOwn(value, 'credentials');
109
+ const expectedKeys = hasCredentials
110
+ ? ['mode', 'summary', 'items', 'errors', 'credentials']
111
+ : ['mode', 'summary', 'items', 'errors'];
112
+ return (hasExactKeys(value, expectedKeys) &&
113
+ isSummary(value.summary) &&
114
+ Array.isArray(value.items) &&
115
+ value.items.every(isResultItem) &&
116
+ Array.isArray(value.errors) &&
117
+ value.errors.length <= 100 &&
118
+ value.errors.every(isResultError) &&
119
+ (mode === 'dry-run'
120
+ ? !hasCredentials
121
+ : !hasCredentials ||
122
+ (Array.isArray(value.credentials) && value.credentials.every(isCredential))));
123
+ }
124
+ /** Return an exact rejected-plan result or preserve normal SDK error handling. */
125
+ function rejectedPlanResult(error, mode) {
126
+ if (!(error instanceof PortaConflictError) || !isRecord(error.body))
127
+ return undefined;
128
+ const body = error.body;
129
+ return hasExactKeys(body, ['error', 'code', 'result']) &&
130
+ body.error === 'Import plan rejected' &&
131
+ body.code === 'import_plan_rejected' &&
132
+ isPortabilityResult(body.result, mode)
133
+ ? body.result
134
+ : undefined;
135
+ }
136
+ /** Send one strict import request and preserve only validated rejected plans. */
137
+ async function importManifest(transport, manifest, mode) {
138
+ try {
139
+ const response = await transport.request({
140
+ method: 'POST',
141
+ path: '/import',
142
+ body: { manifest, mode },
143
+ });
144
+ return unwrapData(response.body);
145
+ }
146
+ catch (error) {
147
+ const rejected = rejectedPlanResult(error, mode);
148
+ if (rejected)
149
+ return rejected;
150
+ throw error;
151
+ }
152
+ }
153
+ /** Create the import operations backed by one shared HTTP transport. */
6
154
  export function createImportsDomain(transport) {
7
155
  return {
8
- async provision(manifest) {
9
- const { dryRun, mode, ...request } = manifest;
10
- const normalizedMode = dryRun === true ? 'dry-run' : mode;
11
- const res = await transport.request({
12
- method: 'POST',
13
- path: '/import',
14
- body: { ...request, ...(normalizedMode === undefined ? {} : { mode: normalizedMode }) },
15
- });
16
- return res.body;
156
+ async preview(manifest) {
157
+ return importManifest(transport, manifest, 'dry-run');
158
+ },
159
+ async apply(manifest, mode) {
160
+ return importManifest(transport, manifest, mode);
17
161
  },
18
162
  };
19
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/domains/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,UAAU,mBAAmB,CAAC,SAAwB;IAC1D,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,QAAQ;YACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC;YAC9C,MAAM,cAAc,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;gBAClC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;aACxF,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAoB,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/domains/imports.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  export { unwrapData, unwrapWithEtag, etagHeaders, toQueryParams } from './helpers.js';
7
7
  export { createOrganizationsDomain } from './organizations.js';
8
- export type { OrganizationsDomain, SlugValidation, DestroyResult } from './organizations.js';
8
+ export type { OrganizationsDomain, SlugValidation } from './organizations.js';
9
9
  export { createApplicationsDomain } from './applications.js';
10
10
  export type { ApplicationsDomain } from './applications.js';
11
11
  export { createClientsDomain } from './clients.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domains/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domains/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -9,10 +9,6 @@ export interface SlugValidation {
9
9
  available: boolean;
10
10
  slug: string;
11
11
  }
12
- export interface DestroyResult {
13
- deleted: boolean;
14
- counts?: Record<string, number>;
15
- }
16
12
  export interface OrganizationsDomain {
17
13
  list(params?: ListParams): Promise<PaginatedResponse<Organization>>;
18
14
  listAll(params?: Omit<ListParams, 'page' | 'cursor'>): Promise<Organization[]>;
@@ -21,11 +17,8 @@ export interface OrganizationsDomain {
21
17
  update(idOrSlug: string, input: UpdateOrganizationInput, etag?: string): Promise<Organization>;
22
18
  suspend(idOrSlug: string): Promise<void>;
23
19
  activate(idOrSlug: string): Promise<void>;
24
- archive(idOrSlug: string): Promise<void>;
25
- restore(idOrSlug: string): Promise<void>;
26
- destroy(idOrSlug: string, params?: {
27
- dryRun?: boolean;
28
- }): Promise<DestroyResult>;
20
+ /** Permanently delete an organization and its owned data. */
21
+ delete(idOrSlug: string): Promise<void>;
29
22
  validateSlug(slug: string): Promise<SlugValidation>;
30
23
  getHistory(idOrSlug: string, params?: ListParams): Promise<HistoryEntry[]>;
31
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/domains/organizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/F,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACjF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5E;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,aAAa,GAAG,mBAAmB,CAwEvF"}
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/domains/organizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/F,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,6DAA6D;IAC7D,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5E;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,aAAa,GAAG,mBAAmB,CA2DvF"}
@@ -38,19 +38,8 @@ export function createOrganizationsDomain(transport) {
38
38
  async activate(idOrSlug) {
39
39
  await transport.request({ method: 'POST', path: `${base}/${idOrSlug}/activate` });
40
40
  },
41
- async archive(idOrSlug) {
42
- await transport.request({ method: 'POST', path: `${base}/${idOrSlug}/archive` });
43
- },
44
- async restore(idOrSlug) {
45
- await transport.request({ method: 'POST', path: `${base}/${idOrSlug}/restore` });
46
- },
47
- async destroy(idOrSlug, params) {
48
- const res = await transport.request({
49
- method: 'DELETE',
50
- path: `${base}/${idOrSlug}`,
51
- params: params?.dryRun ? { dryRun: true } : undefined,
52
- });
53
- return res.body;
41
+ async delete(idOrSlug) {
42
+ await transport.request({ method: 'DELETE', path: `${base}/${idOrSlug}` });
54
43
  },
55
44
  async validateSlug(slug) {
56
45
  const res = await transport.request({ method: 'GET', path: `${base}/validate-slug`, params: { slug } });
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/domains/organizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/domains/organizations.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,31 @@
4
4
  * @module domains/permissions
5
5
  */
6
6
  import type { HttpTransport } from '../transport/types.js';
7
- import type { Permission, CreatePermissionInput, ListParams, PaginatedResponse } from '../types/index.js';
7
+ import type { Permission, CreatePermissionInput, UpdatePermissionInput } from '../types/index.js';
8
+ /** Optional filters supported by the complete permission collection. */
9
+ interface PermissionListParams {
10
+ /** Return only permissions owned by this application module. */
11
+ moduleId?: string;
12
+ }
13
+ /** Result returned after an operation can reduce a user's current authority. */
14
+ interface AuthorityReductionResult {
15
+ /** Whether the current caller must authenticate again after the committed operation. */
16
+ reauthenticationRequired: boolean;
17
+ }
18
+ /** Permission operations scoped by their parent application. */
8
19
  export interface PermissionsDomain {
9
- list(appId: string, params?: ListParams): Promise<PaginatedResponse<Permission>>;
10
- listAll(appId: string, params?: Omit<ListParams, 'page' | 'cursor'>): Promise<Permission[]>;
20
+ /** List the complete permission collection, optionally filtered by module. */
21
+ list(appId: string, params?: PermissionListParams): Promise<Permission[]>;
22
+ /** Get one permission through its parent-qualified route. */
11
23
  get(appId: string, permissionId: string): Promise<Permission>;
24
+ /** Create a permission under the application identified by the route. */
12
25
  create(appId: string, input: CreatePermissionInput): Promise<Permission>;
13
- archive(appId: string, permissionId: string): Promise<void>;
26
+ /** Update mutable permission metadata. */
27
+ update(appId: string, permissionId: string, input: UpdatePermissionInput): Promise<Permission>;
28
+ /** Permanently delete a permission through its parent-qualified route. */
29
+ delete(appId: string, permissionId: string): Promise<AuthorityReductionResult>;
14
30
  }
31
+ /** Create permission operations backed by one HTTP transport. */
15
32
  export declare function createPermissionsDomain(transport: HttpTransport): PermissionsDomain;
33
+ export {};
16
34
  //# sourceMappingURL=permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/domains/permissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI1G,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,iBAAiB,CAuBnF"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/domains/permissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGlG,wEAAwE;AACxE,UAAU,oBAAoB;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gFAAgF;AAChF,UAAU,wBAAwB;IAChC,wFAAwF;IACxF,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAqBD,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,6DAA6D;IAC7D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzE,0CAA0C;IAC1C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/F,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAChF;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,iBAAiB,CA6CnF"}
@@ -3,28 +3,62 @@
3
3
  *
4
4
  * @module domains/permissions
5
5
  */
6
- import { listAll } from '../pagination/index.js';
7
- import { unwrapData, toQueryParams } from './helpers.js';
6
+ import { isRecord, requireData } from './helpers.js';
7
+ /** Validate one permission returned by the Admin API. */
8
+ function isPermission(value) {
9
+ return (isRecord(value) &&
10
+ typeof value.id === 'string' &&
11
+ typeof value.applicationId === 'string' &&
12
+ (typeof value.moduleId === 'string' || value.moduleId === null) &&
13
+ typeof value.name === 'string' &&
14
+ typeof value.slug === 'string' &&
15
+ (typeof value.description === 'string' || value.description === null) &&
16
+ typeof value.createdAt === 'string');
17
+ }
18
+ /** Validate the explicit result of a committed authority reduction. */
19
+ function isAuthorityReductionResult(value) {
20
+ return isRecord(value) && typeof value.reauthenticationRequired === 'boolean';
21
+ }
22
+ /** Create permission operations backed by one HTTP transport. */
8
23
  export function createPermissionsDomain(transport) {
9
- function base(appId) { return `/applications/${appId}/permissions`; }
24
+ /** Build the parent-qualified permission collection path. */
25
+ function base(appId) {
26
+ return `/applications/${appId}/permissions`;
27
+ }
10
28
  return {
11
29
  async list(appId, params) {
12
- const res = await transport.request({ method: 'GET', path: base(appId), params: toQueryParams(params) });
13
- return res.body;
14
- },
15
- listAll(appId, params) {
16
- return listAll((p) => this.list(appId, { ...params, ...p }), params);
30
+ const res = await transport.request({
31
+ method: 'GET',
32
+ path: base(appId),
33
+ params: params?.moduleId === undefined ? undefined : { moduleId: params.moduleId },
34
+ });
35
+ return requireData(res.body, (value) => Array.isArray(value) && value.every(isPermission));
17
36
  },
18
37
  async get(appId, permissionId) {
19
- const res = await transport.request({ method: 'GET', path: `${base(appId)}/${permissionId}` });
20
- return unwrapData(res.body);
38
+ const res = await transport.request({
39
+ method: 'GET',
40
+ path: `${base(appId)}/${permissionId}`,
41
+ });
42
+ return requireData(res.body, isPermission);
21
43
  },
22
44
  async create(appId, input) {
23
45
  const res = await transport.request({ method: 'POST', path: base(appId), body: input });
24
- return unwrapData(res.body);
46
+ return requireData(res.body, isPermission);
47
+ },
48
+ async update(appId, permissionId, input) {
49
+ const res = await transport.request({
50
+ method: 'PUT',
51
+ path: `${base(appId)}/${permissionId}`,
52
+ body: input,
53
+ });
54
+ return requireData(res.body, isPermission);
25
55
  },
26
- async archive(appId, permissionId) {
27
- await transport.request({ method: 'POST', path: `${base(appId)}/${permissionId}/archive` });
56
+ async delete(appId, permissionId) {
57
+ const res = await transport.request({
58
+ method: 'DELETE',
59
+ path: `${base(appId)}/${permissionId}`,
60
+ });
61
+ return requireData(res.body, isAuthorityReductionResult);
28
62
  },
29
63
  };
30
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/domains/permissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAUzD,MAAM,UAAU,uBAAuB,CAAC,SAAwB;IAC9D,SAAS,IAAI,CAAC,KAAa,IAAI,OAAO,iBAAiB,KAAK,cAAc,CAAC,CAAC,CAAC;IAE7E,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAO;YACvB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzG,OAAO,GAAG,CAAC,IAAqC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,MAAO;YACpB,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY;YAC3B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,CAAC;YAC/F,OAAO,UAAU,CAAa,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK;YACvB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxF,OAAO,UAAU,CAAa,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;YAC/B,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/domains/permissions.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@
6
6
  * GET /applications/:appId/roles/:roleId — Get role (plain Role)
7
7
  * POST /applications/:appId/roles — Create role
8
8
  * PUT /applications/:appId/roles/:roleId — Update role
9
- * POST /applications/:appId/roles/:roleId/archive — Archive role
10
- * DELETE /applications/:appId/roles/:roleId — Delete role (?force=true)
9
+ * DELETE /applications/:appId/roles/:roleId — Delete role
11
10
  * GET /applications/:appId/roles/:roleId/permissions — List permissions for role
12
11
  * PUT /applications/:appId/roles/:roleId/permissions — Assign permissions (bulk)
13
12
  * DELETE /applications/:appId/roles/:roleId/permissions — Remove permissions (bulk)
@@ -15,25 +14,36 @@
15
14
  * @module domains/roles
16
15
  */
17
16
  import type { HttpTransport } from '../transport/types.js';
18
- import type { Role, CreateRoleInput, UpdateRoleInput, Permission, ListParams, PaginatedResponse } from '../types/index.js';
17
+ import type { Role, CreateRoleInput, UpdateRoleInput, Permission } from '../types/index.js';
18
+ /** Result returned after an operation can reduce a user's current authority. */
19
+ interface AuthorityReductionResult {
20
+ /** Whether the current caller must authenticate again after the committed operation. */
21
+ reauthenticationRequired: boolean;
22
+ }
23
+ /** Authoritative role and authentication effect returned after a role update. */
24
+ interface RoleUpdateResult extends AuthorityReductionResult {
25
+ /** Role state committed by the server. */
26
+ role: Role;
27
+ }
19
28
  export interface RolesDomain {
20
- list(appId: string, params?: ListParams): Promise<PaginatedResponse<Role>>;
21
- listAll(appId: string, params?: Omit<ListParams, 'page' | 'cursor'>): Promise<Role[]>;
29
+ /** List the complete role collection for one application. */
30
+ list(appId: string): Promise<Role[]>;
31
+ /** Get one role through its parent-qualified route. */
22
32
  get(appId: string, roleId: string): Promise<Role>;
33
+ /** Create a role under the application identified by the route. */
23
34
  create(appId: string, input: CreateRoleInput): Promise<Role>;
24
- update(appId: string, roleId: string, input: UpdateRoleInput): Promise<Role>;
25
- archive(appId: string, roleId: string): Promise<void>;
26
- remove(appId: string, roleId: string, force?: boolean): Promise<void>;
27
- /** List permissions assigned to a role (full Permission objects) */
35
+ /** Update mutable role fields and report whether the caller must authenticate again. */
36
+ update(appId: string, roleId: string, input: UpdateRoleInput): Promise<RoleUpdateResult>;
37
+ /** Permanently delete a role through its parent-qualified route. */
38
+ delete(appId: string, roleId: string): Promise<AuthorityReductionResult>;
39
+ /** List full permission objects assigned to a role. */
28
40
  listPermissions(appId: string, roleId: string): Promise<Permission[]>;
29
- /** Bulk assign permissions to a role (array of permission UUIDs) */
41
+ /** Assign permission UUIDs to a role. */
30
42
  assignPermissions(appId: string, roleId: string, permissionIds: string[]): Promise<void>;
31
- /** Bulk remove permissions from a role (array of permission UUIDs) */
32
- removePermissions(appId: string, roleId: string, permissionIds: string[]): Promise<void>;
33
- /** @deprecated Use assignPermissions (plural) */
34
- assignPermission(appId: string, roleId: string, permissionId: string): Promise<void>;
35
- /** @deprecated Use removePermissions (plural) */
36
- removePermission(appId: string, roleId: string, permissionId: string): Promise<void>;
43
+ /** Remove permission UUIDs and report whether the caller must authenticate again. */
44
+ removePermissions(appId: string, roleId: string, permissionIds: string[]): Promise<AuthorityReductionResult>;
37
45
  }
46
+ /** Create role operations backed by one HTTP transport. */
38
47
  export declare function createRolesDomain(transport: HttpTransport): RolesDomain;
48
+ export {};
39
49
  //# sourceMappingURL=roles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/domains/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3H,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,oEAAoE;IACpE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,oEAAoE;IACpE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,sEAAsE;IACtE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,iDAAiD;IACjD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,iDAAiD;IACjD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,CAwDvE"}
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/domains/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5F,gFAAgF;AAChF,UAAU,wBAAwB;IAChC,wFAAwF;IACxF,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED,iFAAiF;AACjF,UAAU,gBAAiB,SAAQ,wBAAwB;IACzD,0CAA0C;IAC1C,IAAI,EAAE,IAAI,CAAC;CACZ;AA0CD,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,uDAAuD;IACvD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,mEAAmE;IACnE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wFAAwF;IACxF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzF,oEAAoE;IACpE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACzE,uDAAuD;IACvD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,yCAAyC;IACzC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,qFAAqF;IACrF,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtC;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,CA+DvE"}