@noodleseed/one 0.173.0 → 0.174.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 (23) hide show
  1. package/dist/commands/solutions-ops-args.d.ts +42 -0
  2. package/dist/commands/solutions-ops-args.d.ts.map +1 -0
  3. package/dist/commands/solutions-ops-args.js +47 -0
  4. package/dist/commands/solutions-ops-args.js.map +1 -0
  5. package/dist/commands/solutions-ops.d.ts.map +1 -1
  6. package/dist/commands/solutions-ops.js +6 -46
  7. package/dist/commands/solutions-ops.js.map +1 -1
  8. package/dist/commands/solutions-workspace.d.ts +5 -0
  9. package/dist/commands/solutions-workspace.d.ts.map +1 -0
  10. package/dist/commands/solutions-workspace.js +132 -0
  11. package/dist/commands/solutions-workspace.js.map +1 -0
  12. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-solution-workspace.js +88 -0
  13. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-solutions.js +2 -0
  14. package/node_modules/@noodle-borg/service/dist/business-workspaces/contracts.js +52 -0
  15. package/node_modules/@noodle-borg/service/dist/business-workspaces/paths.js +17 -0
  16. package/node_modules/@noodle-borg/service/dist/routes/business-authoring-dispatch.js +23 -0
  17. package/node_modules/@noodle-borg/service/dist/routes/business-information-dispatch.js +0 -6
  18. package/node_modules/@noodle-borg/service/dist/routes/business-workspaces.js +106 -0
  19. package/node_modules/@noodle-borg/service/dist/routes/service-probes.js +2 -1
  20. package/node_modules/@noodle-borg/service/dist/service.js +8 -2
  21. package/node_modules/@noodle-borg/wire-contracts/dist/business-workspaces.d.ts +188 -0
  22. package/node_modules/@noodle-borg/wire-contracts/dist/business-workspaces.js +88 -1
  23. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ declare function parseArgs(rest: readonly string[]): import("./shared.js").ParsedCommandFlags<{
2
+ readonly '--service': "service";
3
+ readonly '--auth-token': "authToken";
4
+ readonly '--org': "org";
5
+ readonly '--app': "app";
6
+ readonly '--env': "env";
7
+ readonly '--retention-days': "retentionDays";
8
+ readonly '--display-name': "displayName";
9
+ readonly '--privacy-url': "privacyUrl";
10
+ readonly '--support-url': "supportUrl";
11
+ readonly '--role': "role";
12
+ readonly '--subject': "subject";
13
+ readonly '--email': "email";
14
+ readonly '--expected-revision': "expectedRevision";
15
+ readonly '--status': "status";
16
+ readonly '--filters': "filters";
17
+ readonly '--sort-field': "sortField";
18
+ readonly '--sort-direction': "sortDirection";
19
+ readonly '--created-at-from': "createdAtFrom";
20
+ readonly '--created-at-to': "createdAtTo";
21
+ readonly '--assignee': "assignee";
22
+ readonly '--data': "data";
23
+ readonly '--unset': "unset";
24
+ readonly '--note': "note";
25
+ readonly '--idempotency-key': "idempotencyKey";
26
+ readonly '--cursor': "cursor";
27
+ readonly '--limit': "limit";
28
+ readonly '--publisher-org': "publisherOrg";
29
+ readonly '--definition-app': "definitionApp";
30
+ readonly '--definition-env': "definitionEnv";
31
+ readonly '--deployment': "deploymentId";
32
+ readonly '--binding-reference': "bindingReference";
33
+ readonly '--binding-generation': "bindingGeneration";
34
+ readonly '--configuration-reference': "configurationReference";
35
+ }, {
36
+ readonly '--json': "json";
37
+ readonly '--include-deleted': "includeDeleted";
38
+ readonly '--enable': "enable";
39
+ readonly '--replace': "replace";
40
+ }>;
41
+ export { parseArgs };
42
+ //# sourceMappingURL=solutions-ops-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solutions-ops-args.d.ts","sourceRoot":"","sources":["../../src/commands/solutions-ops-args.ts"],"names":[],"mappings":"AA6CA,iBAAS,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEzC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { parseCommandFlags } from './shared.js';
2
+ const VALUES = {
3
+ '--service': 'service',
4
+ '--auth-token': 'authToken',
5
+ '--org': 'org',
6
+ '--app': 'app',
7
+ '--env': 'env',
8
+ '--retention-days': 'retentionDays',
9
+ '--display-name': 'displayName',
10
+ '--privacy-url': 'privacyUrl',
11
+ '--support-url': 'supportUrl',
12
+ '--role': 'role',
13
+ '--subject': 'subject',
14
+ '--email': 'email',
15
+ '--expected-revision': 'expectedRevision',
16
+ '--status': 'status',
17
+ '--filters': 'filters',
18
+ '--sort-field': 'sortField',
19
+ '--sort-direction': 'sortDirection',
20
+ '--created-at-from': 'createdAtFrom',
21
+ '--created-at-to': 'createdAtTo',
22
+ '--assignee': 'assignee',
23
+ '--data': 'data',
24
+ '--unset': 'unset',
25
+ '--note': 'note',
26
+ '--idempotency-key': 'idempotencyKey',
27
+ '--cursor': 'cursor',
28
+ '--limit': 'limit',
29
+ '--publisher-org': 'publisherOrg',
30
+ '--definition-app': 'definitionApp',
31
+ '--definition-env': 'definitionEnv',
32
+ '--deployment': 'deploymentId',
33
+ '--binding-reference': 'bindingReference',
34
+ '--binding-generation': 'bindingGeneration',
35
+ '--configuration-reference': 'configurationReference',
36
+ };
37
+ const BOOLEANS = {
38
+ '--json': 'json',
39
+ '--include-deleted': 'includeDeleted',
40
+ '--enable': 'enable',
41
+ '--replace': 'replace',
42
+ };
43
+ function parseArgs(rest) {
44
+ return parseCommandFlags(rest, { values: VALUES, booleans: BOOLEANS });
45
+ }
46
+ export { parseArgs };
47
+ //# sourceMappingURL=solutions-ops-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solutions-ops-args.js","sourceRoot":"","sources":["../../src/commands/solutions-ops-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,WAAW;IAC3B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,kBAAkB,EAAE,eAAe;IACnC,gBAAgB,EAAE,aAAa;IAC/B,eAAe,EAAE,YAAY;IAC7B,eAAe,EAAE,YAAY;IAC7B,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,OAAO;IAClB,qBAAqB,EAAE,kBAAkB;IACzC,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,WAAW;IAC3B,kBAAkB,EAAE,eAAe;IACnC,mBAAmB,EAAE,eAAe;IACpC,iBAAiB,EAAE,aAAa;IAChC,YAAY,EAAE,UAAU;IACxB,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,MAAM;IAChB,mBAAmB,EAAE,gBAAgB;IACrC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,OAAO;IAClB,iBAAiB,EAAE,cAAc;IACjC,kBAAkB,EAAE,eAAe;IACnC,kBAAkB,EAAE,eAAe;IACnC,cAAc,EAAE,cAAc;IAC9B,qBAAqB,EAAE,kBAAkB;IACzC,sBAAsB,EAAE,mBAAmB;IAC3C,2BAA2B,EAAE,wBAAwB;CAC7C,CAAC;AAEX,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,MAAM;IAChB,mBAAmB,EAAE,gBAAgB;IACrC,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;CACd,CAAC;AAEX,SAAS,SAAS,CAAC,IAAuB;IACxC,OAAO,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"solutions-ops.d.ts","sourceRoot":"","sources":["../../src/commands/solutions-ops.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkBnD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AA0JD,gFAAgF;AAChF,wBAAsB,YAAY,CAChC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CA0NjB"}
1
+ {"version":3,"file":"solutions-ops.d.ts","sourceRoot":"","sources":["../../src/commands/solutions-ops.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAcnD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AA2GD,gFAAgF;AAChF,wBAAsB,YAAY,CAChC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CA2NjB"}
@@ -2,60 +2,18 @@ import { randomBytes, randomUUID } from 'node:crypto';
2
2
  import { BusinessNoticeSchema, ManagedRecordMutationRequestSchema, ManagedRecordQuerySchema, } from '@noodle-borg/wire-contracts';
3
3
  import { resolveControlPlaneToken, serviceJson } from '../control-plane.js';
4
4
  import { EXIT, printJsonOk } from './output.js';
5
- import { authRequired, parseCommandFlags, printCliFailure, serviceFailure, usageError, } from './shared.js';
5
+ import { authRequired, printCliFailure, serviceFailure, usageError } from './shared.js';
6
6
  import { runSolutionActivity } from './solutions-activity.js';
7
7
  import { runSolutionConnections } from './solutions-connections.js';
8
8
  import { runSolutionOperations } from './solutions-coordination.js';
9
9
  import { runSolutionDrafts } from './solutions-drafts.js';
10
10
  import { runSolutionInstallationOptions } from './solutions-installation-options.js';
11
11
  import { runSolutionOnboarding } from './solutions-onboarding.js';
12
+ import { parseArgs } from './solutions-ops-args.js';
12
13
  import { runSolutionPage } from './solutions-page.js';
13
- const VALUES = {
14
- '--service': 'service',
15
- '--auth-token': 'authToken',
16
- '--org': 'org',
17
- '--app': 'app',
18
- '--env': 'env',
19
- '--retention-days': 'retentionDays',
20
- '--display-name': 'displayName',
21
- '--privacy-url': 'privacyUrl',
22
- '--support-url': 'supportUrl',
23
- '--role': 'role',
24
- '--subject': 'subject',
25
- '--email': 'email',
26
- '--expected-revision': 'expectedRevision',
27
- '--status': 'status',
28
- '--filters': 'filters',
29
- '--sort-field': 'sortField',
30
- '--sort-direction': 'sortDirection',
31
- '--created-at-from': 'createdAtFrom',
32
- '--created-at-to': 'createdAtTo',
33
- '--assignee': 'assignee',
34
- '--data': 'data',
35
- '--unset': 'unset',
36
- '--note': 'note',
37
- '--idempotency-key': 'idempotencyKey',
38
- '--cursor': 'cursor',
39
- '--limit': 'limit',
40
- '--publisher-org': 'publisherOrg',
41
- '--definition-app': 'definitionApp',
42
- '--definition-env': 'definitionEnv',
43
- '--deployment': 'deploymentId',
44
- '--binding-reference': 'bindingReference',
45
- '--binding-generation': 'bindingGeneration',
46
- '--configuration-reference': 'configurationReference',
47
- };
48
- const BOOLEANS = {
49
- '--json': 'json',
50
- '--include-deleted': 'includeDeleted',
51
- '--enable': 'enable',
52
- '--replace': 'replace',
53
- };
54
- function parseArgs(rest) {
55
- return parseCommandFlags(rest, { values: VALUES, booleans: BOOLEANS });
56
- }
14
+ import { runSolutionWorkspace } from './solutions-workspace.js';
57
15
  function commandUsage(message, json) {
58
- return printCliFailure('solutions', usageError(message, 'noodle solutions catalog | installation-options | agreement | notice | drafts | page | list | install | inspect | activate | pause | resume | grants | invitations | records | sources | connections | activity | operations'), json);
16
+ return printCliFailure('solutions', usageError(message, 'noodle solutions catalog | installation-options | agreement | notice | drafts | page | workspace | list | install | inspect | activate | pause | resume | grants | invitations | records | sources | connections | activity | operations'), json);
59
17
  }
60
18
  function required(value, name, json) {
61
19
  return value ?? commandUsage(`${name} is required`, json);
@@ -129,6 +87,8 @@ export async function runSolutions(rest, env, home, options = {}) {
129
87
  return runSolutionDrafts(rest.slice(1), env, home, options);
130
88
  if (rest[0] === 'page')
131
89
  return runSolutionPage(rest.slice(1), env, home, options);
90
+ if (rest[0] === 'workspace')
91
+ return runSolutionWorkspace(rest.slice(1), env, home, options);
132
92
  if (rest[0] === 'agreement' || rest[0] === 'notice')
133
93
  return runSolutionOnboarding(rest[0], rest.slice(1), env, home, options);
134
94
  if (rest[0] === 'operations')
@@ -1 +1 @@
1
- {"version":3,"file":"solutions-ops.js","sourceRoot":"","sources":["../../src/commands/solutions-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solutions-ops.js","sourceRoot":"","sources":["../../src/commands/solutions-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,oBAAoB,EAEpB,kCAAkC,EAClC,wBAAwB,GAEzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAQhE,SAAS,YAAY,CAAC,OAAe,EAAE,IAAa;IAClD,OAAO,eAAe,CACpB,WAAW,EACX,UAAU,CACR,OAAO,EACP,0OAA0O,CAC3O,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAyB,EAAE,IAAY,EAAE,IAAa;IACtE,OAAO,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,cAAc,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CACtB,KAAyB,EACzB,IAAY,EACZ,IAAa;IAEb,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,YAAY,CAAC,GAAG,IAAI,6BAA6B,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAyB,EACzB,IAAY,EACZ,IAAa;IAEb,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,YAAY,CAAC,GAAG,IAAI,iCAAiC,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB,EAAE,IAAa;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,YAAY,CAAC,8CAA8C,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QAC9F,OAAO,MAAiC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,GAAW;IAC3C,OAAO,GAAG,OAAO,YAAY,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,GAAW,EAAE,cAAsB;IAC5E,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAClB,OAAe,EACf,GAAW,EACX,cAAsB,EACtB,UAAkB;IAElB,OAAO,CACL,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,eAAe;QAChE,GAAG,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,OAAe,EACf,GAAW,EACX,cAAsB,EACtB,UAAkB;IAElB,OAAO,CACL,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,eAAe;QAChE,GAAG,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAc,EAAE,OAAgC;IAChF,OAAO;QACL,MAAM;QACN,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE;QAC9F,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAmC,EAAE,IAAa,EAAE,OAAe;IACtF,IAAI,IAAI;QAAE,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAuB,EACvB,GAAsB,EACtB,IAAoB,EACpB,UAAmC,EAAE;IAErC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5F,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACjD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY;QAAE,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9F,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1F,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa;QAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,sBAAsB;QACpC,OAAO,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC;QAC9C,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,GAAG;QACH,IAAI;KACL,CAAC,CAAC;IACH,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC3C,IAAI,CAAC;QACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,QAAQ,CAAC,UAAU,uBAAuB,EAC7C,QAAQ,CAAC,KAAK,EACd,EAAE,EACF,OAAO,CACR,CAAC;YACF,WAAW,CACT,MAAM,EACN,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;YACF,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;gBACtF,OAAO,YAAY,CACjB,6DAA6D,EAC7D,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;YACvE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBACvC,OAAO,YAAY,CAAC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,GAAG,QAAQ,CAAC,UAAU,gCAAgC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5G,MAAM,MAAM,GAAG,MAAM,WAAW,CAG9B,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,EAC/E,QAAQ,CAAC,KAAK,EACd,EAAE,EACF,OAAO,CACR,CAAC;YACF,WAAW,CACT,MAAM,EACN,IAAI,CAAC,IAAI,EACT,SAAS,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,4BAA4B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChJ,CAAC;YACF,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,KAAK,aAAa,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,QAAQ,CAAC,UAAU,4BAA4B,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EACvF,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,CAAC,EAChB,OAAO,CACR,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,gCAAgC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAChD,IAAI,OAAO,WAAW,KAAK,QAAQ;gBAAE,OAAO,WAAW,CAAC;YACxD,MAAM,aAAa,GAAG,eAAe,CACnC,IAAI,CAAC,aAAa,IAAI,IAAI,EAC1B,kBAAkB,EAClB,IAAI,CAAC,IAAI,CACV,CAAC;YACF,IAAI,aAAa,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC,uCAAuC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,WAAW,GAAG;gBAClB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC5E,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC7C,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC3B,OAAO,YAAY,CACjB,yFAAyF,EACzF,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,OAAO,UAAU,KAAK,QAAQ;gBAAE,OAAO,UAAU,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,EACjC,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,EAAE;gBACf,UAAU;gBACV,OAAO;gBACP,WAAW;gBACX,aAAa;gBACb,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,CAAC,EACF,OAAO,CACR,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;YAC7F,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,OAAO,cAAc,KAAK,QAAQ;gBAAE,OAAO,cAAc,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC;gBACxD,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAC5C,QAAQ,CAAC,KAAK,EACd,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACjD,OAAO,CACR,CAAC;YACF,WAAW,CACT,MAAM,EACN,IAAI,CAAC,IAAI,EACT,yBAAyB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,IAAI,aAAa,EAAE,CACvH,CAAC;YACF,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,OAAO,cAAc,KAAK,QAAQ;gBAAE,OAAO,cAAc,CAAC;YAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1F,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC,EAC1D,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAC9E,OAAO,CACR,CAAC;YACF,WAAW,CACT,MAAM,EACN,IAAI,CAAC,IAAI,EACT,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,sBAAsB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CACjG,CAAC;YACF,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,UAAU,EACV,WAAW,EACX,IAAI,EACJ,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,KAAK,EACd,GAAG,EACH,OAAO,CACR,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,OAAO,oBAAoB,CACzB,UAAU,EACV,WAAW,EACX,IAAI,EACJ,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,KAAK,EACd,GAAG,EACH,OAAO,CACR,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,UAAU,EACV,WAAW,EACX,IAAI,EACJ,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,KAAK,EACd,GAAG,EACH,OAAO,CACR,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,UAAU,EACV,WAAW,EACX,IAAI,EACJ,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,KAAK,EACd,GAAG,EACH,OAAO,CACR,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,YAAY,CAAC,6BAA6B,MAAM,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,eAAe,CACpB,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,mCAAmC,CAAC,EACvE,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,MAA0B,EAC1B,WAA8B,EAC9B,IAAU,EACV,OAAe,EACf,KAAyB,EACzB,GAAW,EACX,OAAqB;IAErB,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,OAAO,cAAc,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC9D,MAAM,IAAI,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,cAAc,CAAC;IAC7E,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,EACJ,KAAK,EACL,EAAE,EACF,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,MAAM,EAAE;YACf,KAAK;YACL,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;YACnD,cAAc,EAAE,GAAG;SACpB,CAAC,EACF,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,oBAAoB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,OAAO,YAAY,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAC;QAC1D,MAAM,gBAAgB,GAAG,eAAe,CACtC,IAAI,CAAC,gBAAgB,EACrB,qBAAqB,EACrB,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,IAAI,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAC7C,KAAK,EACL,QAAQ,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,CAAC,EACxC,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,sBAAsB,YAAY,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,YAAY,CAAC,yCAAyC,MAAM,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB,CACxB,SAA6B,EAC7B,IAAU,EACV,IAAa;IAWb,MAAM,eAAe,GACnB,IAAI,CAAC,YAAY,KAAK,SAAS;QAC/B,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IAClC,IAAI,SAAS,KAAK,SAAS,IAAI,eAAe,EAAE,CAAC;QAC/C,OAAO,YAAY,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,YAAY,CACjB,yFAAyF,EACzF,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC;IACxD,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAC1D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAA0B,EAC1B,WAA8B,EAC9B,IAAU,EACV,OAAe,EACf,KAAyB,EACzB,GAAW,EACX,OAAqB;IAErB,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,OAAO,cAAc,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC9D,MAAM,IAAI,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,EACJ,KAAK,EACL,EAAE,EACF,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,IAAI,CAAC,gBAAgB,IAAI,GAAG,EAC5B,qBAAqB,EACrB,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAC5D,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,OAAO,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,eAAe,CACtC,IAAI,CAAC,gBAAgB,EACrB,qBAAqB,EACrB,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACxC,KAAK,EACL,QAAQ,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,CAAC,EACxC,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,8BAA8B,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,YAAY,CAAC,oCAAoC,MAAM,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAA0B,EAC1B,WAA8B,EAC9B,IAAU,EACV,OAAe,EACf,KAAyB,EACzB,GAAW,EACX,OAAqB;IAErB,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,OAAO,cAAc,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC9D,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAClE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAoB,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9E,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,UAAU,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClG,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACtD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,sBAAsB,GAAG,QAAQ,CACrC,IAAI,CAAC,sBAAsB,EAC3B,2BAA2B,EAC3B,IAAI,CAAC,IAAI,CACV,CAAC;QACF,MAAM,iBAAiB,GAAG,eAAe,CACvC,IAAI,CAAC,iBAAiB,EACtB,sBAAsB,EACtB,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,OAAO,gBAAgB,KAAK,QAAQ;YAAE,OAAO,gBAAgB,CAAC;QAClE,IAAI,OAAO,sBAAsB,KAAK,QAAQ;YAAE,OAAO,sBAAsB,CAAC;QAC9E,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,OAAO,YAAY,CAAC,sDAAsD,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,OAAO,EAAE;YAChB,gBAAgB;YAChB,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE;YACvE,sBAAsB;YACtB,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,CAAC,EACF,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,yBAAyB,UAAU,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,IAAI,IAAI,MAAM,EAAE,EACnB,KAAK,EACL,QAAQ,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC,EACtC,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,gBAAgB,UAAU,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,OAAO,cAAc,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,IAAI,UAAU,EACjB,KAAK,EACL,QAAQ,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,EACtD,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,kBAAkB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,UAAU,EAAE,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,YAAY,CAAC,qCAAqC,MAAM,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAA0B,EAC1B,WAA8B,EAC9B,IAAU,EACV,OAAe,EACf,KAAyB,EACzB,GAAW,EACX,OAAqB;IAErB,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,OAAO,cAAc,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC;IAC9D,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG;QAChB,SAAS;QACT,WAAW;QACX,eAAe;QACf,eAAe;QACf,aAAa;KACL,CAAC;IACX,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;IACF,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;QAC1D,OAAO,YAAY,CAAC,6DAA6D,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChG,IAAI,CAAC;QACH,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK;gBAAE,MAAM,IAAI,KAAK,EAAE,CAAC;YAC1D,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CACjB,oGAAoG,EACpG,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YACpD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,cAAc;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,CAAC,QAAQ,EAAE,EACd,KAAK,EACL,EAAE,EACF,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAC7C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,OAAO,cAAc,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,EACpE,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,kBAAkB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5D,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjF,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YACpD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YACnD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACxF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClG,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACtD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,SAAS,EACT,KAAK,EACL,QAAQ,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,CAAC,EACxC,OAAO,CACR,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,kBAAkB,QAAQ,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,QAAiC,CAAC;IACtC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,QAAQ,GAAG;YACT,SAAS,EAAE,QAAQ;YACnB,gBAAgB;YAChB,KAAK;YACL,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C,CAAC;QACF,IACE,CAAC,kCAAkC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO;YAC/D,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE/C,OAAO,YAAY,CAAC,0DAA0D,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACvC,QAAQ,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAC/D,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;IAC/F,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC9C,QAAQ,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IACnE,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,QAAQ,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,YAAY,CAAC,qCAAqC,MAAM,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,SAAS,EACT,KAAK,EACL,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC3B,OAAO,CACR,CAAC;IACF,WAAW,CACT,MAAM,KAAK,gBAAgB;QACzB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE;QAC/E,CAAC,CAAC,MAAM,EACV,IAAI,CAAC,IAAI,EACT,kBAAkB,QAAQ,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACxE,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ConfigLocation } from '../config.js';
2
+ export declare function runSolutionWorkspace(rest: readonly string[], env: NodeJS.ProcessEnv, home: ConfigLocation, options: {
3
+ readonly fetchImpl?: typeof fetch;
4
+ }): Promise<number>;
5
+ //# sourceMappingURL=solutions-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solutions-workspace.d.ts","sourceRoot":"","sources":["../../src/commands/solutions-workspace.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmBnD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAE,GAC7C,OAAO,CAAC,MAAM,CAAC,CAsIjB"}
@@ -0,0 +1,132 @@
1
+ import { BusinessWorkspaceAcceptRequestSchema, BusinessWorkspaceClientResponseSchema, BusinessWorkspaceInvitationRequestSchema, BusinessWorkspaceIssuedInvitationClientResponseSchema, BusinessWorkspaceMutationClientResponseSchema, BusinessWorkspaceRevisionRequestSchema, BusinessWorkspaceRoleChangeRequestSchema, } from '@noodle-borg/wire-contracts';
2
+ import { resolveControlPlaneToken, serviceJson } from '../control-plane.js';
3
+ import { EXIT, printJsonOk, printRawJsonForHumanDebug } from './output.js';
4
+ import { authRequired, parseCommandFlags, printCliFailure, serviceFailure, usageError, } from './shared.js';
5
+ const operationFlags = {
6
+ show: [],
7
+ invite: ['email', 'role', 'revision'],
8
+ 'set-role': ['subject', 'role', 'revision', 'confirm'],
9
+ remove: ['subject', 'revision', 'confirm'],
10
+ 'revoke-invitation': ['invitation', 'revision', 'confirm'],
11
+ accept: ['tokenEnv', 'confirm'],
12
+ };
13
+ export async function runSolutionWorkspace(rest, env, home, options) {
14
+ const command = 'solutions workspace';
15
+ const args = parseCommandFlags(rest, {
16
+ values: {
17
+ '--service': 'service',
18
+ '--auth-token': 'authToken',
19
+ '--org': 'org',
20
+ '--email': 'email',
21
+ '--role': 'role',
22
+ '--subject': 'subject',
23
+ '--expected-revision': 'revision',
24
+ '--invitation': 'invitation',
25
+ '--token-from-env': 'tokenEnv',
26
+ },
27
+ booleans: { '--json': 'json', '--confirm': 'confirm' },
28
+ });
29
+ const invalid = (message) => printCliFailure(command, usageError(message, 'noodle solutions workspace <show|invite|set-role|remove|revoke-invitation|accept> --org <org> [options] [--json]'), args.json);
30
+ const [operation, ...extra] = args.positional;
31
+ if (args.parseError ||
32
+ !operation ||
33
+ !operationFlags[operation] ||
34
+ extra.length ||
35
+ !/^[a-z0-9][a-z0-9-]{0,62}$/.test(args.org ?? ''))
36
+ return invalid('Supply a workspace operation and explicit --org.');
37
+ for (const key of [
38
+ 'email',
39
+ 'role',
40
+ 'subject',
41
+ 'revision',
42
+ 'invitation',
43
+ 'tokenEnv',
44
+ 'confirm',
45
+ ])
46
+ if (args[key] && !operationFlags[operation].includes(key))
47
+ return invalid('A flag does not apply to this operation.');
48
+ if (!['show', 'invite'].includes(operation) && !args.confirm)
49
+ return invalid('--confirm is required for this workspace change.');
50
+ if (!['show', 'accept'].includes(operation) && !/^[1-9]\d{0,9}$/.test(args.revision ?? ''))
51
+ return invalid('--expected-revision must identify the current workspace revision.');
52
+ const expectedRevision = Number(args.revision);
53
+ let body;
54
+ let suffix = '', method = 'GET';
55
+ if (operation === 'invite') {
56
+ const input = BusinessWorkspaceInvitationRequestSchema.safeParse({
57
+ email: args.email,
58
+ expectedRevision,
59
+ ...(args.role === undefined ? {} : { role: args.role }),
60
+ });
61
+ if (!input.success)
62
+ return invalid('Supply a valid email, fixed role and expected revision.');
63
+ body = input.data;
64
+ suffix = '/invitations';
65
+ method = 'POST';
66
+ }
67
+ else if (operation === 'set-role' || operation === 'remove') {
68
+ const input = BusinessWorkspaceRoleChangeRequestSchema.safeParse({
69
+ subject: args.subject,
70
+ expectedRevision,
71
+ role: operation === 'remove' ? null : args.role,
72
+ });
73
+ if (!input.success)
74
+ return invalid('Supply a member subject, fixed role and expected revision.');
75
+ body = input.data;
76
+ suffix = '/members';
77
+ method = 'PATCH';
78
+ }
79
+ else if (operation === 'revoke-invitation') {
80
+ const input = BusinessWorkspaceRevisionRequestSchema.safeParse({ expectedRevision });
81
+ if (!input.success ||
82
+ !/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/.test(args.invitation ?? ''))
83
+ return invalid('Supply --invitation <id> and the expected revision.');
84
+ body = input.data;
85
+ suffix = `/invitations/${args.invitation}`;
86
+ method = 'DELETE';
87
+ }
88
+ else if (operation === 'accept') {
89
+ if (!/^[A-Z_][A-Z0-9_]{0,127}$/.test(args.tokenEnv ?? ''))
90
+ return invalid('Supply --token-from-env <NAME>; do not place the invitation token on the command line.');
91
+ const input = BusinessWorkspaceAcceptRequestSchema.safeParse({
92
+ token: env[args.tokenEnv ?? ''],
93
+ });
94
+ if (!input.success)
95
+ return invalid('The selected environment variable must contain a valid invitation token.');
96
+ body = input.data;
97
+ suffix = '/accept';
98
+ method = 'POST';
99
+ }
100
+ const resolved = await resolveControlPlaneToken({
101
+ serviceFlag: args.service,
102
+ authFlag: args.authToken,
103
+ env,
104
+ home,
105
+ });
106
+ if (!resolved.token)
107
+ return printCliFailure(command, authRequired(), args.json);
108
+ try {
109
+ const response = await serviceJson(`${resolved.serviceUrl}/v1/orgs/${encodeURIComponent(args.org ?? '')}/business-workspace${suffix}`, resolved.token, {
110
+ method,
111
+ headers: { 'content-type': 'application/json' },
112
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
113
+ }, options.fetchImpl ?? fetch);
114
+ const schema = operation === 'show'
115
+ ? BusinessWorkspaceClientResponseSchema
116
+ : operation === 'invite'
117
+ ? BusinessWorkspaceIssuedInvitationClientResponseSchema
118
+ : BusinessWorkspaceMutationClientResponseSchema;
119
+ const parsed = schema.safeParse(response);
120
+ if (!parsed.success)
121
+ throw new Error('The service returned an invalid workspace response.');
122
+ if (args.json)
123
+ printJsonOk(parsed.data.data);
124
+ else
125
+ printRawJsonForHumanDebug(parsed.data.data, 2);
126
+ return EXIT.OK;
127
+ }
128
+ catch (error) {
129
+ return printCliFailure(command, serviceFailure(command, error, 'noodle solutions workspace --help'), args.json);
130
+ }
131
+ }
132
+ //# sourceMappingURL=solutions-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solutions-workspace.js","sourceRoot":"","sources":["../../src/commands/solutions-workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /** Fixed-role workspace administration. No execution or business permission authority lives here. */
2
+ import { EXPECTED_REVISION, OPTIONAL_FLAG, SOLUTION_COMMON_FLAGS, } from './catalog-data-solution-flags.js';
3
+ const common = SOLUTION_COMMON_FLAGS.map((flag) => flag.name === 'org' ? { ...flag, required: true } : flag);
4
+ const confirm = {
5
+ ...OPTIONAL_FLAG,
6
+ name: 'confirm',
7
+ type: 'boolean',
8
+ required: true,
9
+ summary: 'Confirm this workspace access change.',
10
+ };
11
+ const value = (name, summary) => ({
12
+ ...OPTIONAL_FLAG,
13
+ name,
14
+ summary,
15
+ type: 'string',
16
+ required: true,
17
+ value: '<value>',
18
+ });
19
+ const role = {
20
+ ...value('role', 'One fixed workspace role.'),
21
+ constraints: { choices: ['owner', 'administrator', 'builder', 'operator', 'viewer'] },
22
+ };
23
+ const subject = value('subject', 'Canonical member subject from workspace show.');
24
+ export const SOLUTION_WORKSPACE = {
25
+ name: 'workspace',
26
+ summary: 'Inspect and administer versioned business workspace access.',
27
+ arguments: [],
28
+ flags: [],
29
+ subcommands: [
30
+ {
31
+ name: 'show',
32
+ summary: 'Inspect current workspace members, permissions and pending invitations.',
33
+ arguments: [],
34
+ flags: common,
35
+ jsonOutput: { mode: 'single' },
36
+ },
37
+ {
38
+ name: 'invite',
39
+ summary: 'Create a seven-day invitation; the one-time token is returned only here.',
40
+ arguments: [],
41
+ flags: [
42
+ ...common,
43
+ EXPECTED_REVISION,
44
+ value('email', 'Verified email address that may claim this invitation.'),
45
+ { ...role, required: false, constraints: { ...role.constraints, default: 'operator' } },
46
+ ],
47
+ jsonOutput: { mode: 'single' },
48
+ },
49
+ {
50
+ name: 'set-role',
51
+ summary: 'Change a member role under current delegation and last-Owner checks.',
52
+ arguments: [],
53
+ flags: [...common, EXPECTED_REVISION, subject, role, confirm],
54
+ jsonOutput: { mode: 'single' },
55
+ },
56
+ {
57
+ name: 'remove',
58
+ summary: 'Remove a workspace member without removing the last Owner.',
59
+ arguments: [],
60
+ flags: [...common, EXPECTED_REVISION, subject, confirm],
61
+ jsonOutput: { mode: 'single' },
62
+ },
63
+ {
64
+ name: 'revoke-invitation',
65
+ summary: 'Revoke an unclaimed invitation.',
66
+ arguments: [],
67
+ flags: [
68
+ ...common,
69
+ EXPECTED_REVISION,
70
+ value('invitation', 'Invitation ID from workspace show.'),
71
+ confirm,
72
+ ],
73
+ jsonOutput: { mode: 'single' },
74
+ },
75
+ {
76
+ name: 'accept',
77
+ summary: 'Claim an invitation using the signed-in verified email.',
78
+ arguments: [],
79
+ flags: [
80
+ ...common,
81
+ value('token-from-env', 'Environment variable containing the one-time invitation token; not the token itself.'),
82
+ confirm,
83
+ ],
84
+ jsonOutput: { mode: 'single' },
85
+ },
86
+ ],
87
+ };
88
+ //# sourceMappingURL=catalog-data-solution-workspace.js.map
@@ -2,6 +2,7 @@
2
2
  import { SOLUTION_DRAFTS } from './catalog-data-solution-drafts.js';
3
3
  import { AUTH_TOKEN, EXPECTED_REVISION, IDEMPOTENCY_KEY, INSTALLATION_ARGUMENT, JSON_FLAG, OPTIONAL_FLAG, PAGING_FLAGS, REQUIRED_ARGUMENT, SERVICE, SOLUTION_COMMON_FLAGS, } from './catalog-data-solution-flags.js';
4
4
  import { SOLUTION_PAGE } from './catalog-data-solution-page.js';
5
+ import { SOLUTION_WORKSPACE } from './catalog-data-solution-workspace.js';
5
6
  const APP = {
6
7
  ...OPTIONAL_FLAG,
7
8
  name: 'app',
@@ -133,6 +134,7 @@ export const CATALOG_SOLUTIONS = {
133
134
  subcommands: [
134
135
  SOLUTION_DRAFTS,
135
136
  SOLUTION_PAGE,
137
+ SOLUTION_WORKSPACE,
136
138
  {
137
139
  name: 'installation-options',
138
140
  summary: 'List organizations currently authorized to install solutions.',
@@ -0,0 +1,52 @@
1
+ import { SLUG_PATTERN, validateSlug } from '@noodle-borg/control-plane/portable';
2
+ import { BusinessWorkspaceRoleSchema } from '@noodle-borg/wire-contracts';
3
+ import { z } from 'zod';
4
+ export const WorkspaceSubjectSchema = z.string().min(1).max(500);
5
+ export const WorkspaceOrgSchema = z
6
+ .string()
7
+ .regex(SLUG_PATTERN)
8
+ .refine((value) => {
9
+ try {
10
+ validateSlug('org', value);
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ });
17
+ export const WorkspaceRevisionSchema = z.number().int().positive().max(2147483647);
18
+ export const WorkspaceMemberSchema = z.strictObject({
19
+ subject: WorkspaceSubjectSchema,
20
+ role: BusinessWorkspaceRoleSchema,
21
+ joinedAt: z.iso.datetime(),
22
+ });
23
+ const invitation = z.strictObject({
24
+ id: z.string().uuid(),
25
+ email: z.email().max(254),
26
+ role: BusinessWorkspaceRoleSchema,
27
+ tokenDigest: z.string().regex(/^[a-f0-9]{64}$/),
28
+ createdBy: WorkspaceSubjectSchema,
29
+ createdAt: z.iso.datetime(),
30
+ expiresAt: z.iso.datetime(),
31
+ });
32
+ /** Internal encrypted state. Never serialize pending invitation material into a staff response. */
33
+ export const WorkspaceStateSchema = z.strictObject({
34
+ org: WorkspaceOrgSchema,
35
+ authorityVersion: z.literal(1),
36
+ revision: WorkspaceRevisionSchema,
37
+ initializedBy: WorkspaceSubjectSchema,
38
+ activatedAt: z.iso.datetime(),
39
+ members: z.array(WorkspaceMemberSchema).min(1).max(1000),
40
+ invitations: z.array(invitation).max(100),
41
+ });
42
+ export class BusinessWorkspaceError extends Error {
43
+ code;
44
+ currentRevision;
45
+ constructor(code, currentRevision) {
46
+ super(code);
47
+ this.code = code;
48
+ this.currentRevision = currentRevision;
49
+ this.name = 'BusinessWorkspaceError';
50
+ }
51
+ }
52
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1,17 @@
1
+ const root = /^\/v1\/orgs\/([a-z0-9][a-z0-9-]{0,62})\/business-workspace(?:\/(members|accept|invitations)(?:\/([a-f0-9-]{36}))?)?$/;
2
+ export function parseBusinessWorkspacePath(path) {
3
+ const match = root.exec(path);
4
+ if (!match?.[1] || (match[3] && match[2] !== 'invitations'))
5
+ return undefined;
6
+ return { org: match[1], action: match[2], id: match[3] };
7
+ }
8
+ export function businessWorkspaceMethod(ref) {
9
+ if (!ref.action)
10
+ return 'GET';
11
+ if (ref.action === 'members')
12
+ return 'PATCH';
13
+ if (ref.action === 'invitations' && ref.id)
14
+ return 'DELETE';
15
+ return 'POST';
16
+ }
17
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1,23 @@
1
+ import { applySecurityHeaders, enforceHttps } from '@noodle-borg/transport-http';
2
+ import { parseApplicationDraftPath } from '../application-drafts/paths.js';
3
+ import { parseBusinessWorkspacePath } from '../business-workspaces/paths.js';
4
+ import { handleApplicationDraftRoute, } from './application-drafts.js';
5
+ import { handleBusinessWorkspaceRoute } from './business-workspaces.js';
6
+ /** Explicit versioned authority, independent of the managed-record switch. */
7
+ export function dispatchBusinessAuthoringRoutes(req, res, url, authoring, deps) {
8
+ if (!authoring)
9
+ return false;
10
+ const workspace = parseBusinessWorkspacePath(url.pathname);
11
+ if (!workspace && !parseApplicationDraftPath(url.pathname))
12
+ return false;
13
+ applySecurityHeaders(res, deps.tls);
14
+ if (!enforceHttps(req, res, deps.tls)) {
15
+ const merged = { ...deps, ...authoring };
16
+ if (workspace)
17
+ void handleBusinessWorkspaceRoute(req, res, url, merged);
18
+ else
19
+ void handleApplicationDraftRoute(req, res, url, merged);
20
+ }
21
+ return true;
22
+ }
23
+ //# sourceMappingURL=business-authoring-dispatch.js.map
@@ -1,6 +1,5 @@
1
1
  import { OrganizationAgreementError } from '@noodle-borg/control-plane/portable';
2
2
  import { sendJson } from '@noodle-borg/transport-http';
3
- import { parseApplicationDraftPath } from '../application-drafts/paths.js';
4
3
  import { BusinessNoticeError } from '../business-information/business-notice.js';
5
4
  import { parseBusinessPagePath } from '../business-information/business-page-paths.js';
6
5
  import { InstallationCapacityError } from '../business-information/installation-capacity.js';
@@ -8,7 +7,6 @@ import { NativeStorageLimitError } from '../business-information/native-storage-
8
7
  import { SourceCredentialError } from '../business-information/source-credential-fence.js';
9
8
  import { SourceCapacityError } from '../business-information/source-custody-budget.js';
10
9
  import { respondRouteError } from '../http-util.js';
11
- import { handleApplicationDraftRoute } from './application-drafts.js';
12
10
  import { handleBusinessGrants, handleManagedRecords, handleSolutionCatalog, handleSolutionInstallations, } from './business-information.js';
13
11
  import { handleApplicationActivity, } from './business-information-activity.js';
14
12
  import { handleBusinessChannels, } from './business-information-channels.js';
@@ -37,10 +35,6 @@ export function dispatchBusinessInformationRoutes(req, res, url, deps) {
37
35
  ? handleBusinessPage(req, res, pageRef, pageDeps)
38
36
  : handlePublicBusinessPage(req, res, publicPage[1], pageDeps));
39
37
  }
40
- if (deps.authoring && parseApplicationDraftPath(url.pathname)) {
41
- const draftDeps = { ...deps, ...deps.authoring, maxBody: deps.maxDraftBody ?? deps.maxBody };
42
- return run(req, res, deps, () => handleApplicationDraftRoute(req, res, url, draftDeps));
43
- }
44
38
  const agreement = /^\/v1\/orgs\/([a-z0-9][a-z0-9-]{0,62})\/agreement$/.exec(url.pathname);
45
39
  if (agreement?.[1])
46
40
  return run(req, res, deps, () => handleOrganizationAgreement(req, res, agreement[1], deps));
@@ -0,0 +1,106 @@
1
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
2
+ import { BusinessWorkspaceAcceptRequestSchema, BusinessWorkspaceInvitationRequestSchema, BusinessWorkspaceIssuedInvitationResponseSchema, BusinessWorkspaceMutationResponseSchema, BusinessWorkspaceResponseSchema, BusinessWorkspaceRevisionRequestSchema, BusinessWorkspaceRoleChangeRequestSchema, } from '@noodle-borg/wire-contracts';
3
+ import { admitBusinessTarget, authorizeBusinessApi } from '../business-api-admission.js';
4
+ import { BusinessWorkspaceError } from '../business-workspaces/contracts.js';
5
+ import { businessWorkspaceMethod, parseBusinessWorkspacePath, } from '../business-workspaces/paths.js';
6
+ export async function handleBusinessWorkspaceRoute(req, res, url, deps) {
7
+ res.setHeader('cache-control', 'private, no-store');
8
+ try {
9
+ await handle(req, res, url, deps);
10
+ }
11
+ catch (error) {
12
+ if (error instanceof BusinessWorkspaceError) {
13
+ const status = error.code === 'forbidden'
14
+ ? 403
15
+ : error.code === 'invalid_request'
16
+ ? 400
17
+ : error.code === 'not_found'
18
+ ? 404
19
+ : 409;
20
+ return sendJson(res, status, {
21
+ error: error.code.replaceAll('_', ' '),
22
+ code: error.code,
23
+ ...(error.currentRevision === undefined ? {} : { currentRevision: error.currentRevision }),
24
+ });
25
+ }
26
+ sendJson(res, 503, {
27
+ error: 'Workspace access is temporarily unavailable.',
28
+ code: 'workspace_unavailable',
29
+ });
30
+ }
31
+ }
32
+ async function handle(req, res, url, deps) {
33
+ const ref = parseBusinessWorkspacePath(url.pathname);
34
+ if (!ref)
35
+ return sendJson(res, 404, { error: 'not found' });
36
+ const identity = await authorizeBusinessApi(req, res, deps);
37
+ if (!identity)
38
+ return;
39
+ const method = businessWorkspaceMethod(ref);
40
+ if (req.method !== method) {
41
+ res.setHeader('allow', method);
42
+ return sendJson(res, 405, { error: 'method not allowed' });
43
+ }
44
+ if ([...url.searchParams].length)
45
+ return invalid(res);
46
+ const { org } = ref;
47
+ if (ref.action !== 'accept') {
48
+ const state = await deps.workspaces.inspect(org, identity.subject);
49
+ if (ref.action && !state.permissions.includes('team:manage'))
50
+ throw new BusinessWorkspaceError('forbidden');
51
+ if (!(await admitBusinessTarget(res, { org })))
52
+ return;
53
+ if (!ref.action)
54
+ return sendJson(res, 200, BusinessWorkspaceResponseSchema.parse({ ok: true, data: state }));
55
+ }
56
+ const body = await readJsonBody(req, Math.min(deps.maxBody, 16 * 1024));
57
+ if (!body.ok)
58
+ return sendJson(res, body.status, { error: body.error });
59
+ if (ref.action === 'accept') {
60
+ const input = BusinessWorkspaceAcceptRequestSchema.safeParse(body.value);
61
+ if (!input.success)
62
+ return invalid(res);
63
+ const email = await deps.verifiedEmail?.(identity.subject, identity.email);
64
+ if (!email)
65
+ return sendJson(res, 403, {
66
+ error: 'Sign in with a verified invited email address.',
67
+ code: 'verified_email_required',
68
+ });
69
+ // Subject admission already ran. The opaque one-use invitation supplies authority, not the org in the URL.
70
+ const result = await deps.workspaces.accept({
71
+ org,
72
+ subject: identity.subject,
73
+ verifiedEmail: email,
74
+ token: input.data.token,
75
+ });
76
+ return sendJson(res, 200, BusinessWorkspaceMutationResponseSchema.parse({ ok: true, data: result }));
77
+ }
78
+ if (ref.action === 'invitations' && !ref.id) {
79
+ const input = BusinessWorkspaceInvitationRequestSchema.safeParse(body.value);
80
+ if (!input.success)
81
+ return invalid(res);
82
+ const result = await deps.workspaces.invite({ ...input.data, org, actor: identity.subject });
83
+ return sendJson(res, 201, BusinessWorkspaceIssuedInvitationResponseSchema.parse({ ok: true, data: result }));
84
+ }
85
+ if (ref.action === 'invitations' && ref.id) {
86
+ const input = BusinessWorkspaceRevisionRequestSchema.safeParse(body.value);
87
+ if (!input.success)
88
+ return invalid(res);
89
+ const result = await deps.workspaces.revokeInvitation({
90
+ ...input.data,
91
+ org,
92
+ actor: identity.subject,
93
+ invitationId: ref.id,
94
+ });
95
+ return sendJson(res, 200, BusinessWorkspaceMutationResponseSchema.parse({ ok: true, data: result }));
96
+ }
97
+ const input = BusinessWorkspaceRoleChangeRequestSchema.safeParse(body.value);
98
+ if (!input.success)
99
+ return invalid(res);
100
+ const result = await deps.workspaces.changeRole({ ...input.data, org, actor: identity.subject });
101
+ return sendJson(res, 200, BusinessWorkspaceMutationResponseSchema.parse({ ok: true, data: result }));
102
+ }
103
+ function invalid(res) {
104
+ return sendJson(res, 400, { error: 'Invalid workspace request.', code: 'invalid_request' });
105
+ }
106
+ //# sourceMappingURL=business-workspaces.js.map
@@ -16,7 +16,8 @@ function handleServiceProbe(req, res, url, { tls, moduleHost, buildInfo, options
16
16
  applySecurityHeaders(res, tls);
17
17
  if (url.pathname === '/healthz')
18
18
  return sendJson(res, 200, { status: 'ok' });
19
- void Promise.resolve(moduleHost.ready())
19
+ void Promise.resolve()
20
+ .then(() => moduleHost.ready())
20
21
  .then((ready) => sendJson(res, ready ? 200 : 503, { status: ready ? 'ready' : 'unready' }))
21
22
  .catch(() => sendJson(res, 503, { status: 'unready' }));
22
23
  return;
@@ -36,6 +36,7 @@ import { handleAppArchive, handleAppRestore } from './routes/archive.js';
36
36
  import { handleAssetPreflight } from './routes/asset-control-plane.js';
37
37
  import { dispatchAssistantRoutes } from './routes/assistant-dispatch.js';
38
38
  import { dispatchAuthDiscoveryRoute } from './routes/auth-discovery.js';
39
+ import { dispatchBusinessAuthoringRoutes } from './routes/business-authoring-dispatch.js';
39
40
  import { dispatchBusinessInformationRoutes } from './routes/business-information-dispatch.js';
40
41
  import { dispatchConfigValueRequest } from './routes/config-values-dispatch.js';
41
42
  import { authorizeTenantControl, handleDeploymentStatus, handleWhoami, } from './routes/control-plane.js';
@@ -294,13 +295,18 @@ export function createServiceHandler(registry, options = {}) {
294
295
  }
295
296
  if (servicePrincipalDispatcher?.(req, res, url))
296
297
  return;
298
+ if (dispatchBusinessAuthoringRoutes(req, res, url, options.businessAuthoring, {
299
+ gate,
300
+ publicCounters,
301
+ maxBody: maxDeployBody,
302
+ tls,
303
+ }))
304
+ return;
297
305
  if (businessInformationStore !== undefined &&
298
306
  options.businessInformationEnabled !== false &&
299
307
  dispatchBusinessInformationRoutes(req, res, url, {
300
- authoring: options.businessAuthoring,
301
308
  pageOrigin: options.businessPageOrigin,
302
309
  pageServiceUrl: options.publicBaseUrl,
303
- maxDraftBody: maxDeployBody,
304
310
  ...(whatsapp ? { readWhatsApp: whatsapp.projection.bind(whatsapp) } : {}),
305
311
  store: businessInformationStore,
306
312
  ...(businessOnboarding ? { businessOnboarding } : {}),
@@ -8,6 +8,194 @@ export declare const BusinessWorkspaceRoleSchema: z.ZodEnum<{
8
8
  builder: "builder";
9
9
  }>;
10
10
  export type BusinessWorkspaceRole = z.infer<typeof BusinessWorkspaceRoleSchema>;
11
+ export declare const BusinessWorkspacePermissionSchema: z.ZodEnum<{
12
+ "records:read": "records:read";
13
+ "records:write": "records:write";
14
+ "records:export": "records:export";
15
+ "records:erase": "records:erase";
16
+ "drafts:read": "drafts:read";
17
+ "drafts:edit": "drafts:edit";
18
+ "drafts:preview": "drafts:preview";
19
+ "applications:publish": "applications:publish";
20
+ "settings:manage": "settings:manage";
21
+ "team:manage": "team:manage";
22
+ "owners:manage": "owners:manage";
23
+ "billing:manage": "billing:manage";
24
+ "workspace:delete": "workspace:delete";
25
+ }>;
26
+ export declare const BusinessWorkspaceResponseSchema: z.ZodObject<{
27
+ ok: z.ZodLiteral<true>;
28
+ data: z.ZodObject<{
29
+ org: z.ZodString;
30
+ authorityVersion: z.ZodLiteral<1>;
31
+ revision: z.ZodNumber;
32
+ activatedAt: z.ZodISODateTime;
33
+ role: z.ZodEnum<{
34
+ operator: "operator";
35
+ owner: "owner";
36
+ viewer: "viewer";
37
+ administrator: "administrator";
38
+ builder: "builder";
39
+ }>;
40
+ permissions: z.ZodArray<z.ZodEnum<{
41
+ "records:read": "records:read";
42
+ "records:write": "records:write";
43
+ "records:export": "records:export";
44
+ "records:erase": "records:erase";
45
+ "drafts:read": "drafts:read";
46
+ "drafts:edit": "drafts:edit";
47
+ "drafts:preview": "drafts:preview";
48
+ "applications:publish": "applications:publish";
49
+ "settings:manage": "settings:manage";
50
+ "team:manage": "team:manage";
51
+ "owners:manage": "owners:manage";
52
+ "billing:manage": "billing:manage";
53
+ "workspace:delete": "workspace:delete";
54
+ }>>;
55
+ members: z.ZodArray<z.ZodObject<{
56
+ subject: z.ZodString;
57
+ role: z.ZodEnum<{
58
+ operator: "operator";
59
+ owner: "owner";
60
+ viewer: "viewer";
61
+ administrator: "administrator";
62
+ builder: "builder";
63
+ }>;
64
+ joinedAt: z.ZodISODateTime;
65
+ }, z.core.$strict>>;
66
+ invitations: z.ZodArray<z.ZodObject<{
67
+ id: z.ZodUUID;
68
+ email: z.ZodEmail;
69
+ role: z.ZodEnum<{
70
+ operator: "operator";
71
+ owner: "owner";
72
+ viewer: "viewer";
73
+ administrator: "administrator";
74
+ builder: "builder";
75
+ }>;
76
+ createdBy: z.ZodString;
77
+ createdAt: z.ZodISODateTime;
78
+ expiresAt: z.ZodISODateTime;
79
+ }, z.core.$strict>>;
80
+ }, z.core.$strict>;
81
+ }, z.core.$strict>;
82
+ export declare const BusinessWorkspaceClientResponseSchema: z.ZodObject<{
83
+ ok: z.ZodLiteral<true>;
84
+ data: z.ZodObject<{
85
+ org: z.ZodString;
86
+ authorityVersion: z.ZodLiteral<1>;
87
+ revision: z.ZodNumber;
88
+ activatedAt: z.ZodISODateTime;
89
+ role: z.ZodEnum<{
90
+ operator: "operator";
91
+ owner: "owner";
92
+ viewer: "viewer";
93
+ administrator: "administrator";
94
+ builder: "builder";
95
+ }>;
96
+ permissions: z.ZodArray<z.ZodEnum<{
97
+ "records:read": "records:read";
98
+ "records:write": "records:write";
99
+ "records:export": "records:export";
100
+ "records:erase": "records:erase";
101
+ "drafts:read": "drafts:read";
102
+ "drafts:edit": "drafts:edit";
103
+ "drafts:preview": "drafts:preview";
104
+ "applications:publish": "applications:publish";
105
+ "settings:manage": "settings:manage";
106
+ "team:manage": "team:manage";
107
+ "owners:manage": "owners:manage";
108
+ "billing:manage": "billing:manage";
109
+ "workspace:delete": "workspace:delete";
110
+ }>>;
111
+ members: z.ZodArray<z.ZodObject<{
112
+ subject: z.ZodString;
113
+ role: z.ZodEnum<{
114
+ operator: "operator";
115
+ owner: "owner";
116
+ viewer: "viewer";
117
+ administrator: "administrator";
118
+ builder: "builder";
119
+ }>;
120
+ joinedAt: z.ZodISODateTime;
121
+ }, z.core.$strip>>;
122
+ invitations: z.ZodArray<z.ZodObject<{
123
+ id: z.ZodUUID;
124
+ email: z.ZodEmail;
125
+ role: z.ZodEnum<{
126
+ operator: "operator";
127
+ owner: "owner";
128
+ viewer: "viewer";
129
+ administrator: "administrator";
130
+ builder: "builder";
131
+ }>;
132
+ createdBy: z.ZodString;
133
+ createdAt: z.ZodISODateTime;
134
+ expiresAt: z.ZodISODateTime;
135
+ }, z.core.$strip>>;
136
+ }, z.core.$strip>;
137
+ }, z.core.$strip>;
138
+ export declare const BusinessWorkspaceRoleChangeRequestSchema: z.ZodObject<{
139
+ expectedRevision: z.ZodNumber;
140
+ subject: z.ZodString;
141
+ role: z.ZodNullable<z.ZodEnum<{
142
+ operator: "operator";
143
+ owner: "owner";
144
+ viewer: "viewer";
145
+ administrator: "administrator";
146
+ builder: "builder";
147
+ }>>;
148
+ }, z.core.$strict>;
149
+ export declare const BusinessWorkspaceRevisionRequestSchema: z.ZodObject<{
150
+ expectedRevision: z.ZodNumber;
151
+ }, z.core.$strict>;
152
+ export declare const BusinessWorkspaceAcceptRequestSchema: z.ZodObject<{
153
+ token: z.ZodString;
154
+ }, z.core.$strict>;
155
+ export declare const BusinessWorkspaceIssuedInvitationResponseSchema: z.ZodObject<{
156
+ ok: z.ZodLiteral<true>;
157
+ data: z.ZodObject<{
158
+ id: z.ZodUUID;
159
+ role: z.ZodEnum<{
160
+ operator: "operator";
161
+ owner: "owner";
162
+ viewer: "viewer";
163
+ administrator: "administrator";
164
+ builder: "builder";
165
+ }>;
166
+ token: z.ZodString;
167
+ expiresAt: z.ZodISODateTime;
168
+ revision: z.ZodNumber;
169
+ }, z.core.$strict>;
170
+ }, z.core.$strict>;
171
+ export declare const BusinessWorkspaceIssuedInvitationClientResponseSchema: z.ZodObject<{
172
+ ok: z.ZodLiteral<true>;
173
+ data: z.ZodObject<{
174
+ id: z.ZodUUID;
175
+ role: z.ZodEnum<{
176
+ operator: "operator";
177
+ owner: "owner";
178
+ viewer: "viewer";
179
+ administrator: "administrator";
180
+ builder: "builder";
181
+ }>;
182
+ token: z.ZodString;
183
+ expiresAt: z.ZodISODateTime;
184
+ revision: z.ZodNumber;
185
+ }, z.core.$strip>;
186
+ }, z.core.$strip>;
187
+ export declare const BusinessWorkspaceMutationResponseSchema: z.ZodObject<{
188
+ ok: z.ZodLiteral<true>;
189
+ data: z.ZodObject<{
190
+ revision: z.ZodNumber;
191
+ }, z.core.$strict>;
192
+ }, z.core.$strict>;
193
+ export declare const BusinessWorkspaceMutationClientResponseSchema: z.ZodObject<{
194
+ ok: z.ZodLiteral<true>;
195
+ data: z.ZodObject<{
196
+ revision: z.ZodNumber;
197
+ }, z.core.$strip>;
198
+ }, z.core.$strip>;
11
199
  export declare const BusinessWorkspaceInvitationRequestSchema: z.ZodObject<{
12
200
  email: z.ZodEmail;
13
201
  role: z.ZodDefault<z.ZodEnum<{
@@ -7,9 +7,96 @@ export const BusinessWorkspaceRoleSchema = z.enum([
7
7
  'operator',
8
8
  'viewer',
9
9
  ]);
10
+ export const BusinessWorkspacePermissionSchema = z.enum([
11
+ 'records:read',
12
+ 'records:write',
13
+ 'records:export',
14
+ 'records:erase',
15
+ 'drafts:read',
16
+ 'drafts:edit',
17
+ 'drafts:preview',
18
+ 'applications:publish',
19
+ 'settings:manage',
20
+ 'team:manage',
21
+ 'owners:manage',
22
+ 'billing:manage',
23
+ 'workspace:delete',
24
+ ]);
25
+ const revision = z.number().int().positive().max(2147483647);
26
+ const subject = z.string().min(1).max(500);
27
+ const member = z.strictObject({
28
+ subject,
29
+ role: BusinessWorkspaceRoleSchema,
30
+ joinedAt: z.iso.datetime(),
31
+ });
32
+ const invitation = z.strictObject({
33
+ id: z.uuid(),
34
+ email: z.email().max(254),
35
+ role: BusinessWorkspaceRoleSchema,
36
+ createdBy: subject,
37
+ createdAt: z.iso.datetime(),
38
+ expiresAt: z.iso.datetime(),
39
+ });
40
+ const projection = z.strictObject({
41
+ org: z.string().regex(/^[a-z0-9][a-z0-9-]{0,62}$/),
42
+ authorityVersion: z.literal(1),
43
+ revision,
44
+ activatedAt: z.iso.datetime(),
45
+ role: BusinessWorkspaceRoleSchema,
46
+ permissions: z.array(BusinessWorkspacePermissionSchema).max(13),
47
+ members: z.array(member).min(1).max(1000),
48
+ invitations: z.array(invitation).max(100),
49
+ });
50
+ export const BusinessWorkspaceResponseSchema = z.strictObject({
51
+ ok: z.literal(true),
52
+ data: projection,
53
+ });
54
+ export const BusinessWorkspaceClientResponseSchema = z.object({
55
+ ok: z.literal(true),
56
+ data: projection
57
+ .extend({
58
+ members: z.array(member.strip()).min(1).max(1000),
59
+ invitations: z.array(invitation.strip()).max(100),
60
+ })
61
+ .strip(),
62
+ });
63
+ export const BusinessWorkspaceRoleChangeRequestSchema = z.strictObject({
64
+ expectedRevision: revision,
65
+ subject,
66
+ role: BusinessWorkspaceRoleSchema.nullable(),
67
+ });
68
+ export const BusinessWorkspaceRevisionRequestSchema = z.strictObject({
69
+ expectedRevision: revision,
70
+ });
71
+ export const BusinessWorkspaceAcceptRequestSchema = z.strictObject({
72
+ token: z.string().regex(/^[A-Za-z0-9_-]{43}$/),
73
+ });
74
+ const issued = z.strictObject({
75
+ id: z.uuid(),
76
+ role: BusinessWorkspaceRoleSchema,
77
+ token: BusinessWorkspaceAcceptRequestSchema.shape.token,
78
+ expiresAt: z.iso.datetime(),
79
+ revision,
80
+ });
81
+ export const BusinessWorkspaceIssuedInvitationResponseSchema = z.strictObject({
82
+ ok: z.literal(true),
83
+ data: issued,
84
+ });
85
+ export const BusinessWorkspaceIssuedInvitationClientResponseSchema = z.object({
86
+ ok: z.literal(true),
87
+ data: issued.strip(),
88
+ });
89
+ export const BusinessWorkspaceMutationResponseSchema = z.strictObject({
90
+ ok: z.literal(true),
91
+ data: z.strictObject({ revision }),
92
+ });
93
+ export const BusinessWorkspaceMutationClientResponseSchema = z.object({
94
+ ok: z.literal(true),
95
+ data: z.object({ revision }),
96
+ });
10
97
  export const BusinessWorkspaceInvitationRequestSchema = z.strictObject({
11
98
  email: z.email().max(254),
12
99
  role: BusinessWorkspaceRoleSchema.default('operator'),
13
- expectedRevision: z.number().int().positive().max(2147483647),
100
+ expectedRevision: revision,
14
101
  });
15
102
  //# sourceMappingURL=business-workspaces.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/one",
3
- "version": "0.173.0",
3
+ "version": "0.174.0",
4
4
  "private": false,
5
5
  "description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
6
6
  "license": "Apache-2.0",