@kelpie/server 0.6.0 → 0.8.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.
- package/dist/app.d.ts +13 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +9 -0
- package/dist/app.js.map +1 -1
- package/dist/boot.d.ts +42 -0
- package/dist/boot.d.ts.map +1 -0
- package/dist/boot.js +57 -0
- package/dist/boot.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +7 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +2 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/consumerEmailDomains.d.ts +2 -0
- package/dist/lib/consumerEmailDomains.d.ts.map +1 -0
- package/dist/lib/consumerEmailDomains.js +62 -0
- package/dist/lib/consumerEmailDomains.js.map +1 -0
- package/dist/lib/email.d.ts +7 -0
- package/dist/lib/email.d.ts.map +1 -1
- package/dist/lib/email.js.map +1 -1
- package/dist/lib/emailContent.d.ts +33 -0
- package/dist/lib/emailContent.d.ts.map +1 -0
- package/dist/lib/emailContent.js +54 -0
- package/dist/lib/emailContent.js.map +1 -0
- package/dist/lib/emailDomainAutoLink.d.ts +27 -0
- package/dist/lib/emailDomainAutoLink.d.ts.map +1 -0
- package/dist/lib/emailDomainAutoLink.js +119 -0
- package/dist/lib/emailDomainAutoLink.js.map +1 -0
- package/dist/lib/ids.d.ts +2 -0
- package/dist/lib/ids.d.ts.map +1 -1
- package/dist/lib/ids.js +2 -0
- package/dist/lib/ids.js.map +1 -1
- package/dist/lib/kelpieConfigFile.d.ts +6 -0
- package/dist/lib/kelpieConfigFile.d.ts.map +1 -1
- package/dist/lib/kelpieConfigFile.js +1 -0
- package/dist/lib/kelpieConfigFile.js.map +1 -1
- package/dist/modules/attachedRecords.d.ts.map +1 -1
- package/dist/modules/attachedRecords.js +4 -2
- package/dist/modules/attachedRecords.js.map +1 -1
- package/dist/modules/auth/preferences.d.ts +11 -1
- package/dist/modules/auth/preferences.d.ts.map +1 -1
- package/dist/modules/auth/preferences.js +11 -0
- package/dist/modules/auth/preferences.js.map +1 -1
- package/dist/modules/auth/routes.d.ts.map +1 -1
- package/dist/modules/auth/routes.js +18 -0
- package/dist/modules/auth/routes.js.map +1 -1
- package/dist/modules/auth/schema.d.ts +20 -0
- package/dist/modules/auth/schema.d.ts.map +1 -1
- package/dist/modules/auth/schema.js +11 -1
- package/dist/modules/auth/schema.js.map +1 -1
- package/dist/modules/auth/service.d.ts.map +1 -1
- package/dist/modules/auth/service.js +27 -3
- package/dist/modules/auth/service.js.map +1 -1
- package/dist/modules/companies/repository.d.ts +2 -0
- package/dist/modules/companies/repository.d.ts.map +1 -1
- package/dist/modules/companies/repository.js +1 -0
- package/dist/modules/companies/repository.js.map +1 -1
- package/dist/modules/companies/routes.d.ts +2 -0
- package/dist/modules/companies/routes.d.ts.map +1 -1
- package/dist/modules/companies/routes.js +11 -0
- package/dist/modules/companies/routes.js.map +1 -1
- package/dist/modules/companies/schema.d.ts +17 -0
- package/dist/modules/companies/schema.d.ts.map +1 -1
- package/dist/modules/companies/schema.js +5 -1
- package/dist/modules/companies/schema.js.map +1 -1
- package/dist/modules/companies/service.d.ts +1 -0
- package/dist/modules/companies/service.d.ts.map +1 -1
- package/dist/modules/companies/service.js +22 -0
- package/dist/modules/companies/service.js.map +1 -1
- package/dist/modules/core.d.ts.map +1 -1
- package/dist/modules/core.js +11 -0
- package/dist/modules/core.js.map +1 -1
- package/dist/modules/email-domain-linker/index.d.ts +12 -0
- package/dist/modules/email-domain-linker/index.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/index.js +34 -0
- package/dist/modules/email-domain-linker/index.js.map +1 -0
- package/dist/modules/email-domain-linker/routes.d.ts +14 -0
- package/dist/modules/email-domain-linker/routes.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/routes.js +15 -0
- package/dist/modules/email-domain-linker/routes.js.map +1 -0
- package/dist/modules/email-domain-linker/service.d.ts +37 -0
- package/dist/modules/email-domain-linker/service.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/service.js +63 -0
- package/dist/modules/email-domain-linker/service.js.map +1 -0
- package/dist/modules/eventCatalogs.d.ts +36 -0
- package/dist/modules/eventCatalogs.d.ts.map +1 -0
- package/dist/modules/eventCatalogs.js +36 -0
- package/dist/modules/eventCatalogs.js.map +1 -0
- package/dist/modules/import-export/drafts.d.ts +9 -0
- package/dist/modules/import-export/drafts.d.ts.map +1 -1
- package/dist/modules/import-export/drafts.js +25 -0
- package/dist/modules/import-export/drafts.js.map +1 -1
- package/dist/modules/import-export/exportRows.d.ts +9 -0
- package/dist/modules/import-export/exportRows.d.ts.map +1 -1
- package/dist/modules/import-export/exportRows.js +10 -1
- package/dist/modules/import-export/exportRows.js.map +1 -1
- package/dist/modules/import-export/plan.d.ts +23 -1
- package/dist/modules/import-export/plan.d.ts.map +1 -1
- package/dist/modules/import-export/plan.js +62 -3
- package/dist/modules/import-export/plan.js.map +1 -1
- package/dist/modules/import-export/presets.d.ts.map +1 -1
- package/dist/modules/import-export/presets.js +25 -0
- package/dist/modules/import-export/presets.js.map +1 -1
- package/dist/modules/import-export/repository.d.ts +17 -0
- package/dist/modules/import-export/repository.d.ts.map +1 -1
- package/dist/modules/import-export/repository.js +21 -1
- package/dist/modules/import-export/repository.js.map +1 -1
- package/dist/modules/import-export/routes.d.ts.map +1 -1
- package/dist/modules/import-export/routes.js +5 -1
- package/dist/modules/import-export/routes.js.map +1 -1
- package/dist/modules/import-export/schema.d.ts +55 -0
- package/dist/modules/import-export/schema.d.ts.map +1 -1
- package/dist/modules/import-export/schema.js +13 -1
- package/dist/modules/import-export/schema.js.map +1 -1
- package/dist/modules/import-export/service.d.ts +4 -1
- package/dist/modules/import-export/service.d.ts.map +1 -1
- package/dist/modules/import-export/service.js +51 -3
- package/dist/modules/import-export/service.js.map +1 -1
- package/dist/modules/import-export/tools.d.ts.map +1 -1
- package/dist/modules/import-export/tools.js +7 -1
- package/dist/modules/import-export/tools.js.map +1 -1
- package/dist/modules/import-export/writes.d.ts +16 -0
- package/dist/modules/import-export/writes.d.ts.map +1 -1
- package/dist/modules/import-export/writes.js +77 -2
- package/dist/modules/import-export/writes.js.map +1 -1
- package/dist/modules/lists/events.d.ts +42 -0
- package/dist/modules/lists/events.d.ts.map +1 -0
- package/dist/modules/lists/events.js +16 -0
- package/dist/modules/lists/events.js.map +1 -0
- package/dist/modules/lists/index.d.ts +10 -0
- package/dist/modules/lists/index.d.ts.map +1 -0
- package/dist/modules/lists/index.js +35 -0
- package/dist/modules/lists/index.js.map +1 -0
- package/dist/modules/lists/repository.d.ts +69 -0
- package/dist/modules/lists/repository.d.ts.map +1 -0
- package/dist/modules/lists/repository.js +165 -0
- package/dist/modules/lists/repository.js.map +1 -0
- package/dist/modules/lists/routes.d.ts +51 -0
- package/dist/modules/lists/routes.d.ts.map +1 -0
- package/dist/modules/lists/routes.js +160 -0
- package/dist/modules/lists/routes.js.map +1 -0
- package/dist/modules/lists/schema.d.ts +264 -0
- package/dist/modules/lists/schema.d.ts.map +1 -0
- package/dist/modules/lists/schema.js +73 -0
- package/dist/modules/lists/schema.js.map +1 -0
- package/dist/modules/lists/service.d.ts +70 -0
- package/dist/modules/lists/service.d.ts.map +1 -0
- package/dist/modules/lists/service.js +214 -0
- package/dist/modules/lists/service.js.map +1 -0
- package/dist/modules/lists/tools.d.ts +4 -0
- package/dist/modules/lists/tools.d.ts.map +1 -0
- package/dist/modules/lists/tools.js +86 -0
- package/dist/modules/lists/tools.js.map +1 -0
- package/dist/modules/people/repository.d.ts +11 -0
- package/dist/modules/people/repository.d.ts.map +1 -1
- package/dist/modules/people/repository.js +16 -0
- package/dist/modules/people/repository.js.map +1 -1
- package/dist/modules/people/service.d.ts.map +1 -1
- package/dist/modules/people/service.js +18 -0
- package/dist/modules/people/service.js.map +1 -1
- package/dist/modules/positions/routes.d.ts.map +1 -1
- package/dist/modules/positions/routes.js +4 -2
- package/dist/modules/positions/routes.js.map +1 -1
- package/dist/modules/sample-data/fixture.d.ts +139 -0
- package/dist/modules/sample-data/fixture.d.ts.map +1 -0
- package/dist/modules/sample-data/fixture.js +461 -0
- package/dist/modules/sample-data/fixture.js.map +1 -0
- package/dist/modules/sample-data/index.d.ts +11 -0
- package/dist/modules/sample-data/index.d.ts.map +1 -0
- package/dist/modules/sample-data/index.js +43 -0
- package/dist/modules/sample-data/index.js.map +1 -0
- package/dist/modules/sample-data/routes.d.ts +15 -0
- package/dist/modules/sample-data/routes.d.ts.map +1 -0
- package/dist/modules/sample-data/routes.js +24 -0
- package/dist/modules/sample-data/routes.js.map +1 -0
- package/dist/modules/sample-data/service.d.ts +38 -0
- package/dist/modules/sample-data/service.d.ts.map +1 -0
- package/dist/modules/sample-data/service.js +412 -0
- package/dist/modules/sample-data/service.js.map +1 -0
- package/dist/modules/sample-data/tools.d.ts +4 -0
- package/dist/modules/sample-data/tools.d.ts.map +1 -0
- package/dist/modules/sample-data/tools.js +22 -0
- package/dist/modules/sample-data/tools.js.map +1 -0
- package/dist/modules/smtp-email/index.d.ts +1 -0
- package/dist/modules/smtp-email/index.d.ts.map +1 -1
- package/dist/modules/smtp-email/index.js +1 -0
- package/dist/modules/smtp-email/index.js.map +1 -1
- package/dist/modules/workspace/service.d.ts.map +1 -1
- package/dist/modules/workspace/service.js +10 -1
- package/dist/modules/workspace/service.js.map +1 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/testing/app.d.ts +5 -1
- package/dist/testing/app.d.ts.map +1 -1
- package/dist/testing/app.js +2 -0
- package/dist/testing/app.js.map +1 -1
- package/migrations/0019_sharp_red_skull.sql +4 -0
- package/migrations/0020_early_nemesis.sql +2 -0
- package/migrations/0021_certain_maggott.sql +30 -0
- package/migrations/0022_stormy_manta.sql +1 -0
- package/migrations/0023_funny_maddog.sql +1 -0
- package/migrations/meta/0019_snapshot.json +5138 -0
- package/migrations/meta/0020_snapshot.json +5138 -0
- package/migrations/meta/0021_snapshot.json +5389 -0
- package/migrations/meta/0022_snapshot.json +5396 -0
- package/migrations/meta/0023_snapshot.json +5403 -0
- package/migrations/meta/_journal.json +35 -0
- package/package.json +3 -2
- package/src/app.ts +26 -0
- package/src/boot.ts +89 -0
- package/src/index.ts +8 -0
- package/src/lib/config.ts +9 -0
- package/src/lib/consumerEmailDomains.ts +62 -0
- package/src/lib/email.ts +7 -0
- package/src/lib/emailContent.ts +91 -0
- package/src/lib/emailDomainAutoLink.ts +165 -0
- package/src/lib/ids.ts +2 -0
- package/src/lib/kelpieConfigFile.ts +8 -0
- package/src/modules/attachedRecords.ts +9 -2
- package/src/modules/auth/preferences.ts +13 -1
- package/src/modules/auth/routes.ts +22 -0
- package/src/modules/auth/schema.ts +12 -2
- package/src/modules/auth/service.ts +37 -3
- package/src/modules/companies/repository.ts +3 -0
- package/src/modules/companies/routes.ts +13 -0
- package/src/modules/companies/schema.ts +5 -1
- package/src/modules/companies/service.ts +25 -0
- package/src/modules/core.ts +11 -0
- package/src/modules/email-domain-linker/index.ts +40 -0
- package/src/modules/email-domain-linker/routes.ts +40 -0
- package/src/modules/email-domain-linker/service.ts +122 -0
- package/src/modules/eventCatalogs.ts +36 -0
- package/src/modules/import-export/drafts.ts +27 -0
- package/src/modules/import-export/exportRows.ts +10 -1
- package/src/modules/import-export/plan.ts +107 -5
- package/src/modules/import-export/presets.ts +25 -0
- package/src/modules/import-export/repository.ts +35 -1
- package/src/modules/import-export/routes.ts +5 -0
- package/src/modules/import-export/schema.ts +13 -0
- package/src/modules/import-export/service.ts +70 -4
- package/src/modules/import-export/tools.ts +9 -0
- package/src/modules/import-export/writes.ts +116 -3
- package/src/modules/lists/events.ts +41 -0
- package/src/modules/lists/index.ts +41 -0
- package/src/modules/lists/repository.ts +313 -0
- package/src/modules/lists/routes.ts +247 -0
- package/src/modules/lists/schema.ts +85 -0
- package/src/modules/lists/service.ts +404 -0
- package/src/modules/lists/tools.ts +128 -0
- package/src/modules/people/repository.ts +26 -0
- package/src/modules/people/service.ts +20 -0
- package/src/modules/positions/routes.ts +4 -2
- package/src/modules/sample-data/fixture.ts +627 -0
- package/src/modules/sample-data/index.ts +50 -0
- package/src/modules/sample-data/routes.ts +49 -0
- package/src/modules/sample-data/service.ts +590 -0
- package/src/modules/sample-data/tools.ts +32 -0
- package/src/modules/smtp-email/index.ts +8 -1
- package/src/modules/workspace/service.ts +13 -1
- package/src/schema/index.ts +1 -0
- package/src/testing/app.ts +7 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Database } from '../../lib/database.ts';
|
|
2
|
+
import type { IdFactory } from '../../lib/ids.ts';
|
|
3
|
+
import type { TransactionScope } from '../../runtime/transaction.ts';
|
|
4
|
+
import type { ActivityRecorder } from '../activities/recorder.ts';
|
|
5
|
+
import type { Actor } from '../auth/actor.ts';
|
|
6
|
+
/**
|
|
7
|
+
* Rebuild every email-domain link across the workspace.
|
|
8
|
+
*
|
|
9
|
+
* Iterates each Company that carries a domain and runs the same sweep the
|
|
10
|
+
* companies service runs on a domain change — every workspace Person whose
|
|
11
|
+
* email is at that domain gets a titleless Position where none exists yet.
|
|
12
|
+
*
|
|
13
|
+
* Idempotent: a follow-up run adds nothing. Add-only, consumer-host-skipping,
|
|
14
|
+
* and workspace-scoped, same as the inline auto-linker.
|
|
15
|
+
*
|
|
16
|
+
* One transaction per Company, not one for the whole sweep. A workspace can
|
|
17
|
+
* carry thousands of Companies, and a single transaction that long would
|
|
18
|
+
* hold row-share locks against every write elsewhere for the whole run.
|
|
19
|
+
*/
|
|
20
|
+
export interface EmailDomainLinkerDependencies {
|
|
21
|
+
readonly db: Database;
|
|
22
|
+
readonly transaction: TransactionScope;
|
|
23
|
+
readonly createId: IdFactory;
|
|
24
|
+
readonly now: () => Date;
|
|
25
|
+
readonly recordActivity: ActivityRecorder;
|
|
26
|
+
}
|
|
27
|
+
export interface RelinkCounts {
|
|
28
|
+
/** Companies with a non-null domain that were considered. Consumer hosts are counted but skipped. */
|
|
29
|
+
readonly companiesScanned: number;
|
|
30
|
+
/** New Positions the sweep inserted this run. */
|
|
31
|
+
readonly positionsCreated: number;
|
|
32
|
+
}
|
|
33
|
+
export interface EmailDomainLinkerService {
|
|
34
|
+
relink(actor: Actor, workspaceId: string): Promise<RelinkCounts>;
|
|
35
|
+
}
|
|
36
|
+
export declare function createEmailDomainLinkerService(dependencies: EmailDomainLinkerDependencies): EmailDomainLinkerService;
|
|
37
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAM7C;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAA;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,iDAAiD;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACjE;AAED,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,6BAA6B,GAC1C,wBAAwB,CAsE1B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { and, eq, isNotNull } from 'drizzle-orm';
|
|
2
|
+
import { toEventActor } from '../../lib/actor.js';
|
|
3
|
+
import { autoLinkCompanyByDomain } from '../../lib/emailDomainAutoLink.js';
|
|
4
|
+
import { AppError } from '../../lib/errors.js';
|
|
5
|
+
import { requireWorkspaceId } from '../auth/actor.js';
|
|
6
|
+
import * as authRepository from '../auth/repository.js';
|
|
7
|
+
import { companies } from '../companies/schema.js';
|
|
8
|
+
import { parseMemberRole, roleAllows } from '../workspace/roles.js';
|
|
9
|
+
export function createEmailDomainLinkerService(dependencies) {
|
|
10
|
+
async function requireAdmin(actor, workspaceId) {
|
|
11
|
+
if (actor.workspaceId !== workspaceId) {
|
|
12
|
+
throw AppError.notFound('Workspace not found');
|
|
13
|
+
}
|
|
14
|
+
if (actor.kind === 'api_key' && actor.userId === null) {
|
|
15
|
+
if (!roleAllows(actor.role, 'admin')) {
|
|
16
|
+
throw new AppError('forbidden', 'This action needs the admin role');
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const userId = actor.userId;
|
|
21
|
+
if (userId === null) {
|
|
22
|
+
throw AppError.notFound('Workspace not found');
|
|
23
|
+
}
|
|
24
|
+
const membership = await authRepository.findMembership(dependencies.db, workspaceId, userId);
|
|
25
|
+
if (membership === undefined) {
|
|
26
|
+
throw AppError.notFound('Workspace not found');
|
|
27
|
+
}
|
|
28
|
+
const role = parseMemberRole(membership.role);
|
|
29
|
+
if (role === undefined) {
|
|
30
|
+
throw new Error(`workspace_members.role holds "${membership.role}", which its check forbids`);
|
|
31
|
+
}
|
|
32
|
+
if (!roleAllows(role, 'admin')) {
|
|
33
|
+
throw new AppError('forbidden', 'This action needs the admin role');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
async relink(actor, workspaceId) {
|
|
38
|
+
requireWorkspaceId(actor);
|
|
39
|
+
await requireAdmin(actor, workspaceId);
|
|
40
|
+
// Every workspace Company that carries a domain — the ones the sweep
|
|
41
|
+
// can match against. Pooled read outside the per-company transactions:
|
|
42
|
+
// the work-list is one query, each write opens its own scope.
|
|
43
|
+
const rows = await dependencies.db
|
|
44
|
+
.select()
|
|
45
|
+
.from(companies)
|
|
46
|
+
.where(and(eq(companies.workspaceId, workspaceId), isNotNull(companies.domain)));
|
|
47
|
+
let created = 0;
|
|
48
|
+
// One transaction per Company, not one for the whole sweep. A workspace
|
|
49
|
+
// can carry thousands of Companies; a single transaction that long would
|
|
50
|
+
// hold row-share locks against every write elsewhere for the whole run.
|
|
51
|
+
for (const company of rows) {
|
|
52
|
+
const inserted = await dependencies.transaction(async ({ tx, events }) => autoLinkCompanyByDomain(tx, events, workspaceId, company, {
|
|
53
|
+
createId: dependencies.createId,
|
|
54
|
+
now: dependencies.now,
|
|
55
|
+
recordActivity: dependencies.recordActivity,
|
|
56
|
+
}), { workspaceId, actor: toEventActor(actor) });
|
|
57
|
+
created += inserted.length;
|
|
58
|
+
}
|
|
59
|
+
return { companiesScanned: rows.length, positionsCreated: created };
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/email-domain-linker/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads every core module's `KelpieEventMap` augmentation at the package entry.
|
|
3
|
+
*
|
|
4
|
+
* Each module declares its event payload types in `<module>/events.ts` through
|
|
5
|
+
* `declare module '../../runtime/events.ts'`. Inside the monorepo those merge
|
|
6
|
+
* because the source graph reaches every file. A consumer that installs
|
|
7
|
+
* `@kelpie/server` from npm typechecks against `dist`, and declaration emit
|
|
8
|
+
* keeps only the imports a file actually references. Nothing in `dist/index.d.ts`
|
|
9
|
+
* referenced the per-module `events.d.ts` files, so `KelpieEventMap` stayed empty
|
|
10
|
+
* for consumers and every `subscribe` handler saw `event.data: unknown`.
|
|
11
|
+
*
|
|
12
|
+
* These side-effect imports give `index.ts` one reference into each catalog. The
|
|
13
|
+
* emitted `index.d.ts` carries them, so a consumer loads the augmentations and
|
|
14
|
+
* gets a typed `event.data` without a cast at the read site.
|
|
15
|
+
*
|
|
16
|
+
* List only modules whose `events.ts` augments `KelpieEventMap`. A module that
|
|
17
|
+
* publishes no events has no `events.ts` and does not belong here. Order mirrors
|
|
18
|
+
* `coreModules` in `core.ts` for readability; it has no runtime effect.
|
|
19
|
+
*/
|
|
20
|
+
import './workspace/events.ts';
|
|
21
|
+
import './people/events.ts';
|
|
22
|
+
import './companies/events.ts';
|
|
23
|
+
import './positions/events.ts';
|
|
24
|
+
import './notes/events.ts';
|
|
25
|
+
import './lists/events.ts';
|
|
26
|
+
import './deals/events.ts';
|
|
27
|
+
import './opportunities/events.ts';
|
|
28
|
+
import './partnerships/events.ts';
|
|
29
|
+
import './raises/events.ts';
|
|
30
|
+
import './hiring/events.ts';
|
|
31
|
+
import './plans/events.ts';
|
|
32
|
+
import './decisions/events.ts';
|
|
33
|
+
import './handbook/events.ts';
|
|
34
|
+
import './forms/events.ts';
|
|
35
|
+
import './import-export/events.ts';
|
|
36
|
+
//# sourceMappingURL=eventCatalogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventCatalogs.d.ts","sourceRoot":"","sources":["../../src/modules/eventCatalogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,uBAAuB,CAAA;AAC9B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA;AAClC,OAAO,0BAA0B,CAAA;AACjC,OAAO,oBAAoB,CAAA;AAC3B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads every core module's `KelpieEventMap` augmentation at the package entry.
|
|
3
|
+
*
|
|
4
|
+
* Each module declares its event payload types in `<module>/events.ts` through
|
|
5
|
+
* `declare module '../../runtime/events.ts'`. Inside the monorepo those merge
|
|
6
|
+
* because the source graph reaches every file. A consumer that installs
|
|
7
|
+
* `@kelpie/server` from npm typechecks against `dist`, and declaration emit
|
|
8
|
+
* keeps only the imports a file actually references. Nothing in `dist/index.d.ts`
|
|
9
|
+
* referenced the per-module `events.d.ts` files, so `KelpieEventMap` stayed empty
|
|
10
|
+
* for consumers and every `subscribe` handler saw `event.data: unknown`.
|
|
11
|
+
*
|
|
12
|
+
* These side-effect imports give `index.ts` one reference into each catalog. The
|
|
13
|
+
* emitted `index.d.ts` carries them, so a consumer loads the augmentations and
|
|
14
|
+
* gets a typed `event.data` without a cast at the read site.
|
|
15
|
+
*
|
|
16
|
+
* List only modules whose `events.ts` augments `KelpieEventMap`. A module that
|
|
17
|
+
* publishes no events has no `events.ts` and does not belong here. Order mirrors
|
|
18
|
+
* `coreModules` in `core.ts` for readability; it has no runtime effect.
|
|
19
|
+
*/
|
|
20
|
+
import './workspace/events.js';
|
|
21
|
+
import './people/events.js';
|
|
22
|
+
import './companies/events.js';
|
|
23
|
+
import './positions/events.js';
|
|
24
|
+
import './notes/events.js';
|
|
25
|
+
import './lists/events.js';
|
|
26
|
+
import './deals/events.js';
|
|
27
|
+
import './opportunities/events.js';
|
|
28
|
+
import './partnerships/events.js';
|
|
29
|
+
import './raises/events.js';
|
|
30
|
+
import './hiring/events.js';
|
|
31
|
+
import './plans/events.js';
|
|
32
|
+
import './decisions/events.js';
|
|
33
|
+
import './handbook/events.js';
|
|
34
|
+
import './forms/events.js';
|
|
35
|
+
import './import-export/events.js';
|
|
36
|
+
//# sourceMappingURL=eventCatalogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventCatalogs.js","sourceRoot":"","sources":["../../src/modules/eventCatalogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,uBAAuB,CAAA;AAC9B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA;AAClC,OAAO,0BAA0B,CAAA;AACjC,OAAO,oBAAoB,CAAA;AAC3B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,2BAA2B,CAAA"}
|
|
@@ -75,6 +75,15 @@ export declare const NEW_PERSON_DEFAULTS: {
|
|
|
75
75
|
export declare const IMPORT_DEAL_CURRENCY = "USD";
|
|
76
76
|
export declare function companyDraft(mapped: Readonly<Record<string, string>>): CompanyDraft;
|
|
77
77
|
export declare function personDraft(mapped: Readonly<Record<string, string>>): PersonDraft;
|
|
78
|
+
/**
|
|
79
|
+
* The company a People row's affiliation would create.
|
|
80
|
+
*
|
|
81
|
+
* Built from the row's `company_domain` and `company_name` cells, not the
|
|
82
|
+
* `name`/`domain` a Companies file uses. The name falls back to the raw domain
|
|
83
|
+
* so a create from a domain-only row is not a nameless company. The write lays
|
|
84
|
+
* `NEW_COMPANY_DEFAULTS` over this, the same as a Companies import.
|
|
85
|
+
*/
|
|
86
|
+
export declare function affiliationCompanyDraft(mapped: Readonly<Record<string, string>>): CompanyDraft;
|
|
78
87
|
/**
|
|
79
88
|
* `value` is required, so `moneyToCents` has already been checked by
|
|
80
89
|
* `validateRow` and cannot be undefined here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/drafts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/drafts.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,31 @@ export function personDraft(mapped) {
|
|
|
75
75
|
tags: list(mapped, 'tags'),
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* The company a People row's affiliation would create.
|
|
80
|
+
*
|
|
81
|
+
* Built from the row's `company_domain` and `company_name` cells, not the
|
|
82
|
+
* `name`/`domain` a Companies file uses. The name falls back to the raw domain
|
|
83
|
+
* so a create from a domain-only row is not a nameless company. The write lays
|
|
84
|
+
* `NEW_COMPANY_DEFAULTS` over this, the same as a Companies import.
|
|
85
|
+
*/
|
|
86
|
+
export function affiliationCompanyDraft(mapped) {
|
|
87
|
+
const domainRaw = text(mapped, 'company_domain');
|
|
88
|
+
return present({
|
|
89
|
+
name: text(mapped, 'company_name') ?? domainRaw,
|
|
90
|
+
domain: domainRaw === undefined ? undefined : (normaliseDomain(domainRaw) ?? undefined),
|
|
91
|
+
industry: undefined,
|
|
92
|
+
description: undefined,
|
|
93
|
+
stage: undefined,
|
|
94
|
+
sizeBand: undefined,
|
|
95
|
+
hq: undefined,
|
|
96
|
+
website: undefined,
|
|
97
|
+
accountType: undefined,
|
|
98
|
+
icpFit: undefined,
|
|
99
|
+
summary: undefined,
|
|
100
|
+
tags: undefined,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
78
103
|
/**
|
|
79
104
|
* `value` is required, so `moneyToCents` has already been checked by
|
|
80
105
|
* `validateRow` and cannot be undefined here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../../src/modules/import-export/drafts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAyD/C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,SAAS;CACT,CAAA;AAEV,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,OAAO;IACzB,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,MAAM;CACZ,CAAA;AAEV,0FAA0F;AAC1F,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAEzC,oFAAoF;AACpF,SAAS,IAAI,CAAC,MAAwC,EAAE,MAAc;IACpE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAE3C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;AAC/C,CAAC;AAED,SAAS,IAAI,CACX,MAAwC,EACxC,MAAc;IAEd,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,WAAW,CAClB,MAAwC,EACxC,MAAc,EACd,MAAyB;IAEzB,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CAAA;AAC3D,CAAC;AAgBD,SAAS,OAAO,CAAmB,KAAkB;IACnD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAM,CAAA;AAClG,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAwC;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAErC,OAAO,OAAO,CAAe;QAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QACjF,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAClC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;QACxC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC;QACnD,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;QACtD,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QACtB,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QAChC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC;QAC/D,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;QAChD,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAwC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEnC,OAAO,OAAO,CAAc;QAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;QAC7E,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;QAClC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;QAC9E,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC;QAC7D,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,CAAC;QACtE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwC;IACtE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAExC,OAAO,OAAO,CAAkB;QAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QACnD,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAC7C,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;QACxC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;KACxC,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../../src/modules/import-export/drafts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { ImportObject } from '@kelpie/schemas';
|
|
2
2
|
import type { ExportCompanyRow, ExportDealRow, ExportPersonRow, ExportPositionRow } from './repository.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The header row of an export and of a template.
|
|
5
|
+
*
|
|
6
|
+
* `importOnly` columns are left out: a People import may map `company_domain`,
|
|
7
|
+
* `company_name` and `title` to drive a Position, but a person holds many
|
|
8
|
+
* positions and none of them is a field on the person. Writing one on the export
|
|
9
|
+
* would be lossy, so the export and the template carry the round-trippable
|
|
10
|
+
* columns only, and each cell function matches this order one for one.
|
|
11
|
+
*/
|
|
3
12
|
export declare function headersFor(object: ImportObject): readonly string[];
|
|
4
13
|
export declare function companyCells(row: ExportCompanyRow): readonly string[];
|
|
5
14
|
export declare function personCells(row: ExportPersonRow): readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportRows.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/exportRows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGnD,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AAmBxB,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAElE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAerE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAanE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,MAAM,EAAE,CAEvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAgBhG"}
|
|
1
|
+
{"version":3,"file":"exportRows.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/exportRows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGnD,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AAmBxB;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAElE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAerE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAanE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,MAAM,EAAE,CAEvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAgBhG"}
|
|
@@ -15,8 +15,17 @@ import { centsToMoney } from './mapping.js';
|
|
|
15
15
|
function joinList(values) {
|
|
16
16
|
return values.join('|');
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* The header row of an export and of a template.
|
|
20
|
+
*
|
|
21
|
+
* `importOnly` columns are left out: a People import may map `company_domain`,
|
|
22
|
+
* `company_name` and `title` to drive a Position, but a person holds many
|
|
23
|
+
* positions and none of them is a field on the person. Writing one on the export
|
|
24
|
+
* would be lossy, so the export and the template carry the round-trippable
|
|
25
|
+
* columns only, and each cell function matches this order one for one.
|
|
26
|
+
*/
|
|
18
27
|
export function headersFor(object) {
|
|
19
|
-
return OBJECT_COLUMNS[object].map((column) => column.key);
|
|
28
|
+
return OBJECT_COLUMNS[object].filter((column) => column.importOnly !== true).map((column) => column.key);
|
|
20
29
|
}
|
|
21
30
|
export function companyCells(row) {
|
|
22
31
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportRows.js","sourceRoot":"","sources":["../../../src/modules/import-export/exportRows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAQ3C;;;;;;;;;;GAUG;AAEH,8CAA8C;AAC9C,SAAS,QAAQ,CAAC,MAAyB;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"exportRows.js","sourceRoot":"","sources":["../../../src/modules/import-export/exportRows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAQ3C;;;;;;;;;;GAUG;AAEH,8CAA8C;AAC9C,SAAS,QAAQ,CAAC,MAAyB;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC1G,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAqB;IAChD,OAAO;QACL,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,MAAM,IAAI,EAAE;QAChB,GAAG,CAAC,QAAQ,IAAI,EAAE;QAClB,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,WAAW;QACf,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,WAAW;QACf,GAAG,CAAC,OAAO;QACX,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAClB,GAAG,CAAC,OAAO,IAAI,EAAE;QACjB,GAAG,CAAC,EAAE,IAAI,EAAE;KACb,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAoB;IAC9C,OAAO;QACL,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,KAAK,IAAI,EAAE;QACf,GAAG,CAAC,QAAQ,IAAI,EAAE;QAClB,GAAG,CAAC,QAAQ,IAAI,EAAE;QAClB,GAAG,CAAC,gBAAgB;QACpB,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,OAAO;QACX,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAClB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;KACrB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAsB;IAClD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,YAA+B;IAC3E,OAAO;QACL,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,aAAa,IAAI,EAAE;QACvB,GAAG,CAAC,SAAS;QACb,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;QAC5B,GAAG,CAAC,UAAU,IAAI,EAAE;QACpB,GAAG,CAAC,aAAa,IAAI,EAAE;QACvB,QAAQ,CAAC,YAAY,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QACzB,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,OAAO;QACX,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAClB,GAAG,CAAC,UAAU,IAAI,EAAE;KACrB,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ImportConflictMode, ImportCounts, ImportObject, MatchKeyOption } from '@kelpie/schemas';
|
|
1
|
+
import type { ImportConflictMode, ImportCounts, ImportObject, MatchKeyOption, OnMissingCompany } from '@kelpie/schemas';
|
|
2
2
|
import type { CompanyDraft, DealFieldsDraft, PersonDraft } from './drafts.ts';
|
|
3
3
|
import type { StoredRowError } from './schema.ts';
|
|
4
4
|
/**
|
|
@@ -16,6 +16,8 @@ export interface ImportLookups {
|
|
|
16
16
|
readonly existing: ReadonlyMap<string, string>;
|
|
17
17
|
readonly personIdByEmail: ReadonlyMap<string, string>;
|
|
18
18
|
readonly companyIdByDomain: ReadonlyMap<string, string>;
|
|
19
|
+
/** Company id by its folded name, for a People affiliation matched by name. */
|
|
20
|
+
readonly companyIdByName: ReadonlyMap<string, string>;
|
|
19
21
|
/** Workspace member id by the address of the user behind it. */
|
|
20
22
|
readonly memberIdByEmail: ReadonlyMap<string, string>;
|
|
21
23
|
/** Deal stage id, keyed by both its slug and its folded label. */
|
|
@@ -25,8 +27,23 @@ export interface PlanContext {
|
|
|
25
27
|
readonly object: ImportObject;
|
|
26
28
|
readonly matchKey: MatchKeyOption;
|
|
27
29
|
readonly conflictMode: ImportConflictMode;
|
|
30
|
+
/** What a People row does with an absent company. Ignored by the other objects. */
|
|
31
|
+
readonly onMissingCompany: OnMissingCompany;
|
|
28
32
|
readonly lookups: ImportLookups;
|
|
29
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* A company affiliation a People row asks for: the position to write, and
|
|
36
|
+
* whether the company must be created before it can be linked.
|
|
37
|
+
*/
|
|
38
|
+
export type PlannedAffiliation = {
|
|
39
|
+
readonly kind: 'link';
|
|
40
|
+
readonly companyId: string;
|
|
41
|
+
readonly title: string;
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: 'create';
|
|
44
|
+
readonly company: CompanyDraft;
|
|
45
|
+
readonly title: string;
|
|
46
|
+
};
|
|
30
47
|
/** The values a write applies, once every reference in the row has been resolved. */
|
|
31
48
|
export type ImportWrite = {
|
|
32
49
|
readonly object: 'companies';
|
|
@@ -34,6 +51,8 @@ export type ImportWrite = {
|
|
|
34
51
|
} | {
|
|
35
52
|
readonly object: 'people';
|
|
36
53
|
readonly draft: PersonDraft;
|
|
54
|
+
/** A position to upsert alongside the person, when the row named a company and a title. */
|
|
55
|
+
readonly affiliation?: PlannedAffiliation;
|
|
37
56
|
} | {
|
|
38
57
|
readonly object: 'positions';
|
|
39
58
|
readonly personId: string;
|
|
@@ -73,11 +92,14 @@ export type RowPlan = {
|
|
|
73
92
|
readonly action: 'create';
|
|
74
93
|
readonly key: string;
|
|
75
94
|
readonly write: ImportWrite;
|
|
95
|
+
/** Non-fatal notes about the applied row, e.g. a People affiliation left unlinked. */
|
|
96
|
+
readonly warnings?: readonly StoredRowError[];
|
|
76
97
|
} | {
|
|
77
98
|
readonly action: 'update';
|
|
78
99
|
readonly key: string;
|
|
79
100
|
readonly targetId: string | null;
|
|
80
101
|
readonly write: ImportWrite;
|
|
102
|
+
readonly warnings?: readonly StoredRowError[];
|
|
81
103
|
};
|
|
82
104
|
export interface PlannedRow {
|
|
83
105
|
readonly row: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,cAAc,
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normaliseDomain, normaliseEmail } from '../../lib/normalisation.js';
|
|
2
|
-
import { companyDraft, dealFieldsDraft, personDraft } from './drafts.js';
|
|
2
|
+
import { affiliationCompanyDraft, companyDraft, dealFieldsDraft, personDraft } from './drafts.js';
|
|
3
3
|
import { buildMatchKey, splitList } from './mapping.js';
|
|
4
4
|
import { aliasedStageSlug } from './presets.js';
|
|
5
5
|
import { validateRow } from './validation.js';
|
|
@@ -115,6 +115,62 @@ function resolveWrite(context, mapped) {
|
|
|
115
115
|
return planDeal(context, mapped);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* The company affiliation a People row asks for, if any, and any note about it.
|
|
120
|
+
*
|
|
121
|
+
* A row states an affiliation only when it carries both a title and a company
|
|
122
|
+
* identity, so a blank optional cell still says nothing, the additive rule every
|
|
123
|
+
* column follows. The company is matched by domain when the row has one and by
|
|
124
|
+
* name otherwise. A named company that is not here follows `on_missing_company`:
|
|
125
|
+
* `create` invents it from the row, `skip` imports the person alone and returns
|
|
126
|
+
* a warning.
|
|
127
|
+
*/
|
|
128
|
+
function planAffiliation(context, mapped) {
|
|
129
|
+
const title = (mapped.title ?? '').trim();
|
|
130
|
+
const domainRaw = (mapped.company_domain ?? '').trim();
|
|
131
|
+
const nameRaw = (mapped.company_name ?? '').trim();
|
|
132
|
+
if (title.length === 0 || (domainRaw.length === 0 && nameRaw.length === 0)) {
|
|
133
|
+
return { warnings: [] };
|
|
134
|
+
}
|
|
135
|
+
const domain = normaliseDomain(domainRaw);
|
|
136
|
+
const companyId = domainRaw.length > 0
|
|
137
|
+
? domain === null
|
|
138
|
+
? undefined
|
|
139
|
+
: context.lookups.companyIdByDomain.get(domain)
|
|
140
|
+
: context.lookups.companyIdByName.get(nameRaw.toLowerCase());
|
|
141
|
+
if (companyId !== undefined) {
|
|
142
|
+
return { affiliation: { kind: 'link', companyId, title }, warnings: [] };
|
|
143
|
+
}
|
|
144
|
+
if (context.onMissingCompany === 'create') {
|
|
145
|
+
return {
|
|
146
|
+
affiliation: { kind: 'create', company: affiliationCompanyDraft(mapped), title },
|
|
147
|
+
warnings: [],
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const named = domainRaw.length > 0 ? domainRaw : nameRaw;
|
|
151
|
+
return {
|
|
152
|
+
warnings: [
|
|
153
|
+
{
|
|
154
|
+
field: domainRaw.length > 0 ? 'company_domain' : 'company_name',
|
|
155
|
+
message: `No company here matches "${named}", so the person imported without a position`,
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Folds a People row's affiliation into its create or update plan.
|
|
162
|
+
*
|
|
163
|
+
* A no-op for every other object, and for a person the row said nothing about a
|
|
164
|
+
* company for. The affiliation rides on the write; any note rides on the plan.
|
|
165
|
+
*/
|
|
166
|
+
function withAffiliation(context, mapped, plan) {
|
|
167
|
+
if (context.object !== 'people' || plan.write.object !== 'people') {
|
|
168
|
+
return plan;
|
|
169
|
+
}
|
|
170
|
+
const { affiliation, warnings } = planAffiliation(context, mapped);
|
|
171
|
+
const write = affiliation === undefined ? plan.write : { ...plan.write, affiliation };
|
|
172
|
+
return { ...plan, write, ...(warnings.length > 0 ? { warnings } : {}) };
|
|
173
|
+
}
|
|
118
174
|
/**
|
|
119
175
|
* @param mapped The row's cells by Kelpie column, from `mapRow`.
|
|
120
176
|
* @returns What this row would do. `create` when its key matches nothing;
|
|
@@ -140,13 +196,16 @@ export function planRow(context, mapped) {
|
|
|
140
196
|
}
|
|
141
197
|
const targetId = context.lookups.existing.get(key);
|
|
142
198
|
if (targetId === undefined) {
|
|
143
|
-
return { action: 'create', key, write };
|
|
199
|
+
return withAffiliation(context, mapped, { action: 'create', key, write });
|
|
144
200
|
}
|
|
145
201
|
// An empty string is the placeholder an in-file match carries: the record it
|
|
146
202
|
// matched has not been written yet, so there is no id to report.
|
|
147
203
|
const resolved = targetId.length === 0 ? null : targetId;
|
|
204
|
+
// A skipped row is left entirely alone, affiliation included. A caller who
|
|
205
|
+
// wants an existing person's position updated runs the job in `update` mode,
|
|
206
|
+
// which is where the rename-in-place lives.
|
|
148
207
|
return context.conflictMode === 'update'
|
|
149
|
-
? { action: 'update', key, targetId: resolved, write }
|
|
208
|
+
? withAffiliation(context, mapped, { action: 'update', key, targetId: resolved, write })
|
|
150
209
|
: { action: 'skip', key, targetId: resolved };
|
|
151
210
|
}
|
|
152
211
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/modules/import-export/plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/modules/import-export/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/presets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAElF;;;;;;;;;;GAUG;AAEH,KAAK,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/modules/import-export/presets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAElF;;;;;;;;;;GAUG;AAEH,KAAK,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAsFvE,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB/D,CAAA;AAsCD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,eAAe,CAkBjB"}
|
|
@@ -15,6 +15,8 @@ export const SOURCE_PRESETS = {
|
|
|
15
15
|
email: 'Email',
|
|
16
16
|
phones: 'Phone Number',
|
|
17
17
|
location: 'City',
|
|
18
|
+
company_domain: 'Company Domain Name',
|
|
19
|
+
title: 'Job Title',
|
|
18
20
|
},
|
|
19
21
|
positions: {
|
|
20
22
|
person_email: 'Email',
|
|
@@ -44,6 +46,8 @@ export const SOURCE_PRESETS = {
|
|
|
44
46
|
email: 'Email',
|
|
45
47
|
phones: 'Phone',
|
|
46
48
|
location: 'Mailing City',
|
|
49
|
+
company_name: 'Account Name',
|
|
50
|
+
title: 'Title',
|
|
47
51
|
},
|
|
48
52
|
positions: {
|
|
49
53
|
person_email: 'Email',
|
|
@@ -60,6 +64,27 @@ export const SOURCE_PRESETS = {
|
|
|
60
64
|
external_id: 'Opportunity ID',
|
|
61
65
|
},
|
|
62
66
|
},
|
|
67
|
+
attio: {
|
|
68
|
+
// Attio's export writes one column per attribute, and a linked or nested
|
|
69
|
+
// attribute as `Parent > Child`. Only Companies and People are mapped: the
|
|
70
|
+
// sample export carries no Deals or Positions file, and an Attio People row
|
|
71
|
+
// names its company but not the company's domain, so a Position could not be
|
|
72
|
+
// keyed from it. Those objects fall back to `custom`.
|
|
73
|
+
companies: {
|
|
74
|
+
name: 'Record',
|
|
75
|
+
domain: 'Domains',
|
|
76
|
+
industry: 'Categories',
|
|
77
|
+
description: 'Description',
|
|
78
|
+
hq: 'Primary location > Country',
|
|
79
|
+
},
|
|
80
|
+
people: {
|
|
81
|
+
name: 'Record',
|
|
82
|
+
email: 'Email addresses',
|
|
83
|
+
location: 'Primary location > Country',
|
|
84
|
+
company_name: 'Company > Name',
|
|
85
|
+
title: 'Job title',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
63
88
|
};
|
|
64
89
|
/**
|
|
65
90
|
* Vendor deal-stage names, reduced to the slug of a Kelpie starter stage.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/modules/import-export/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAiBhD,MAAM,CAAC,MAAM,cAAc,GAAiD;IAC1E,MAAM,EAAE,EAAE;IACV,OAAO,EAAE;QACP,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,aAAa;YACtB,EAAE,EAAE,MAAM;YACV,WAAW,EAAE,aAAa;SAC3B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/modules/import-export/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAiBhD,MAAM,CAAC,MAAM,cAAc,GAAiD;IAC1E,MAAM,EAAE,EAAE;IACV,OAAO,EAAE;QACP,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,aAAa;YACtB,EAAE,EAAE,MAAM;YACV,WAAW,EAAE,aAAa;SAC3B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,qBAAqB;YACrC,KAAK,EAAE,WAAW;SACnB;QACD,SAAS,EAAE;YACT,YAAY,EAAE,OAAO;YACrB,cAAc,EAAE,qBAAqB;YACrC,KAAK,EAAE,WAAW;SACnB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,cAAc,EAAE,2BAA2B;YAC3C,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,YAAY;YAC5B,WAAW,EAAE,WAAW;SACzB;KACF;IACD,UAAU,EAAE;QACV,SAAS,EAAE;YACT,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,UAAU;YACpB,EAAE,EAAE,cAAc;YAClB,WAAW,EAAE,aAAa;SAC3B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,cAAc;YAC5B,KAAK,EAAE,OAAO;SACf;QACD,SAAS,EAAE;YACT,YAAY,EAAE,OAAO;YACrB,cAAc,EAAE,iBAAiB;YACjC,KAAK,EAAE,OAAO;SACf;QACD,KAAK,EAAE;YACL,IAAI,EAAE,kBAAkB;YACxB,cAAc,EAAE,iBAAiB;YACjC,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,YAAY;YAC5B,WAAW,EAAE,gBAAgB;SAC9B;KACF;IACD,KAAK,EAAE;QACL,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,sDAAsD;QACtD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,aAAa;YAC1B,EAAE,EAAE,4BAA4B;SACjC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,4BAA4B;YACtC,YAAY,EAAE,gBAAgB;YAC9B,KAAK,EAAE,WAAW;SACnB;KACF;CACF,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,YAAY;IACzB,qBAAqB,EAAE,YAAY;IACnC,gBAAgB,EAAE,YAAY;IAC9B,QAAQ,EAAE,UAAU;IACpB,sBAAsB,EAAE,UAAU;IAClC,oBAAoB,EAAE,UAAU;IAChC,iBAAiB,EAAE,UAAU;IAC7B,WAAW,EAAE,aAAa;IAC1B,kBAAkB,EAAE,aAAa;IACjC,wBAAwB,EAAE,aAAa;IACvC,mBAAmB,EAAE,aAAa;IAClC,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;CACpB,CAAA;AAED;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAgC,CAAC,GAAgC,EAAE;IAC/F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEvC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAE/B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,iCAAiC,GAAG,GAAG,CAAC,CAAA;QACrF,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,EAAE,CAAA;AAEJ,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoB,EACpB,MAAoB,EACpB,OAA0B;IAE1B,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,GAAG,GAAkC,EAAE,CAAA;IAE7C,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAErC,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAA;YAC5B,SAAQ;QACV,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAA;IACvF,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|