sonamu 0.10.13 → 0.11.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/ai/agents/agent.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/error.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
- package/dist/api/base-frame.d.ts.map +1 -1
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +3 -2
- package/dist/api/validator.d.ts.map +1 -1
- package/dist/auth/audit-log/events.d.ts.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -3
- package/dist/auth/knex-adapter.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/admin.d.ts +4 -4
- package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
- package/dist/bin/build-config.d.ts +10 -0
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +130 -6
- package/dist/bin/fixture.d.ts +7 -4
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +161 -13
- package/dist/bin/test-command.d.ts +7 -0
- package/dist/bin/test-command.d.ts.map +1 -1
- package/dist/bin/test-command.js +18 -4
- package/dist/bin/typecheck-web.d.ts +2 -0
- package/dist/bin/typecheck-web.d.ts.map +1 -0
- package/dist/bin/typecheck-web.js +36 -0
- package/dist/cache/decorator.d.ts.map +1 -1
- package/dist/cache/drivers.d.ts.map +1 -1
- package/dist/cache-control/cache-control.d.ts.map +1 -1
- package/dist/compress/compress.d.ts.map +1 -1
- package/dist/cone/cone-generator.js +1 -1
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.types.d.ts +0 -1
- package/dist/database/base-model.types.d.ts.map +1 -1
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/puri-subset.types.d.ts +0 -1
- package/dist/database/puri-subset.types.d.ts.map +1 -1
- package/dist/database/puri-wrapper.d.ts +0 -1
- package/dist/database/puri-wrapper.d.ts.map +1 -1
- package/dist/database/puri.d.ts +0 -1
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.types.d.ts +0 -1
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/transaction-context.d.ts.map +1 -1
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/dict/en.d.ts +58 -58
- package/dist/dict/en.d.ts.map +1 -1
- package/dist/dict/ko.d.ts +58 -58
- package/dist/dict/ko.d.ts.map +1 -1
- package/dist/dict/rc-keys.d.ts.map +1 -1
- package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
- package/dist/dict/sonamu-dictionary.js +2 -2
- package/dist/dict/utils.d.ts.map +1 -1
- package/dist/entity/entity-manager.d.ts +115 -113
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +25 -19
- package/dist/entity/entity-template-cone.d.ts +4 -4
- package/dist/entity/entity.d.ts +6 -1
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +8 -3
- package/dist/env.d.ts.map +1 -1
- package/dist/exceptions/so-exceptions.d.ts.map +1 -1
- package/dist/filter/types.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/logger/configure.d.ts +10 -1
- package/dist/logger/configure.d.ts.map +1 -1
- package/dist/logger/configure.js +30 -5
- package/dist/migration/migrator.d.ts +12 -1
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +77 -30
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/slack-confirm.d.ts.map +1 -1
- package/dist/naite/messaging-types.d.ts +0 -1
- package/dist/naite/messaging-types.d.ts.map +1 -1
- package/dist/naite/naite-reporter.d.ts +0 -1
- package/dist/naite/naite-reporter.d.ts.map +1 -1
- package/dist/naite/naite.d.ts.map +1 -1
- package/dist/storage/base-file.d.ts.map +1 -1
- package/dist/storage/buffered-file.d.ts.map +1 -1
- package/dist/storage/drivers.d.ts.map +1 -1
- package/dist/storage/s3-driver.d.ts.map +1 -1
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/uploaded-file.d.ts.map +1 -1
- package/dist/stream/ws-audience-resolver.d.ts.map +1 -1
- package/dist/stream/ws-audience.d.ts.map +1 -1
- package/dist/stream/ws-cluster-bus.d.ts.map +1 -1
- package/dist/stream/ws-delivery.d.ts.map +1 -1
- package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
- package/dist/stream/ws-presence-store.d.ts.map +1 -1
- package/dist/stream/ws-registry.d.ts.map +1 -1
- package/dist/stream/ws-telemetry-memory.d.ts.map +1 -1
- package/dist/stream/ws-telemetry.d.ts.map +1 -1
- package/dist/stream/ws.d.ts.map +1 -1
- package/dist/syncer/api-parser.js +2 -2
- package/dist/syncer/file-patterns.d.ts +17 -17
- package/dist/syncer/filesystem-dependencies.js +1 -1
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/tasks/step-wrapper.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/template/implementations/entity.template.d.ts +2 -2
- package/dist/template/implementations/entity.template.d.ts.map +1 -1
- package/dist/template/implementations/entry-server.template.d.ts +2 -2
- package/dist/template/implementations/entry-server.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.d.ts +2 -2
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.d.ts +2 -2
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.d.ts +2 -2
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/http_validators.template.d.ts +2 -2
- package/dist/template/implementations/http_validators.template.d.ts.map +1 -1
- package/dist/template/implementations/init_types.template.d.ts +2 -2
- package/dist/template/implementations/init_types.template.d.ts.map +1 -1
- package/dist/template/implementations/model.template.d.ts +2 -2
- package/dist/template/implementations/model.template.d.ts.map +1 -1
- package/dist/template/implementations/model_test.template.d.ts +2 -2
- package/dist/template/implementations/model_test.template.d.ts.map +1 -1
- package/dist/template/implementations/queries.template.d.ts +2 -2
- package/dist/template/implementations/queries.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.d.ts +2 -2
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +1 -1
- package/dist/template/implementations/services.template.d.ts +2 -2
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.d.ts +3 -3
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_id_all_select.template.d.ts +2 -2
- package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.d.ts +2 -2
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_search_input.template.d.ts +2 -2
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
- package/dist/template/template-manager.d.ts.map +1 -1
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/testing/_relation-graph.d.ts.map +1 -1
- package/dist/testing/data-explorer.d.ts +2 -2
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
- package/dist/testing/faker-mappings.d.ts.map +1 -1
- package/dist/testing/fixture-generator.d.ts.map +1 -1
- package/dist/testing/fixture-generator.js +1 -1
- package/dist/testing/fixture-loader.d.ts.map +1 -1
- package/dist/testing/fixture-manager.d.ts +4 -0
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +99 -25
- package/dist/testing/naite-vitest-reporter.d.ts.map +1 -1
- package/dist/testing/parallel-db-manager.d.ts.map +1 -1
- package/dist/tooling/__tests__/helpers/sonamu-test-root.d.ts +10 -0
- package/dist/tooling/__tests__/helpers/sonamu-test-root.d.ts.map +1 -0
- package/dist/tooling/__tests__/helpers/sonamu-test-root.js +42 -0
- package/dist/tooling/cdd-service.d.ts +87 -0
- package/dist/tooling/cdd-service.d.ts.map +1 -0
- package/dist/tooling/cdd-service.js +215 -0
- package/dist/tooling/cli-tooling.d.ts +11 -0
- package/dist/tooling/cli-tooling.d.ts.map +1 -0
- package/dist/tooling/cli-tooling.js +901 -0
- package/dist/tooling/fixture-service.d.ts +29 -0
- package/dist/tooling/fixture-service.d.ts.map +1 -0
- package/dist/tooling/fixture-service.js +53 -0
- package/dist/tooling/index.d.ts +2 -0
- package/dist/tooling/index.d.ts.map +1 -0
- package/dist/tooling/index.js +2 -0
- package/dist/tooling/test-run-client.d.ts +27 -0
- package/dist/tooling/test-run-client.d.ts.map +1 -0
- package/dist/tooling/test-run-client.js +120 -0
- package/dist/tsdown.api.config.js +48 -0
- package/dist/types/types.d.ts +527 -527
- package/dist/types/types.d.ts.map +1 -1
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/utils/formatter.d.ts +6 -0
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +42 -11
- package/dist/utils/model.d.ts +1 -1
- package/dist/vector/chunking.d.ts.map +1 -1
- package/dist/vector/embedding.d.ts.map +1 -1
- package/package.json +13 -12
- package/src/api/sonamu.ts +2 -1
- package/src/auth/index.ts +1 -1
- package/src/bin/__tests__/zod-compiler-build.test.ts +67 -0
- package/src/bin/build-config.ts +151 -5
- package/src/bin/fixture.ts +204 -21
- package/src/bin/test-command.ts +27 -4
- package/src/bin/typecheck-web.ts +56 -0
- package/src/dict/sonamu-dictionary.ts +1 -1
- package/src/entity/__tests__/entity-manager-autoload.contract.test.ts +55 -0
- package/src/entity/__tests__/entity-manager-explicit-root-registration.contract.test.ts +107 -0
- package/src/entity/entity-manager.ts +31 -19
- package/src/entity/entity.ts +7 -2
- package/src/logger/__tests__/configure.test.ts +33 -0
- package/src/logger/configure.ts +45 -3
- package/src/migration/__tests__/migrator.test.ts +51 -0
- package/src/migration/migrator.ts +103 -34
- package/src/syncer/api-parser.ts +1 -1
- package/src/testing/fixture-manager.ts +124 -32
- package/src/tooling/__tests__/cdd-rule-bootstrap.contract.test.ts +118 -0
- package/src/tooling/__tests__/cli-tooling-auth.contract.test.ts +72 -0
- package/src/tooling/__tests__/cli-tooling-cone-locale.contract.test.ts +150 -0
- package/src/tooling/__tests__/cli-tooling-entity-patch.contract.test.ts +131 -0
- package/src/tooling/__tests__/cli-tooling-fixture-transfer.contract.test.ts +255 -0
- package/src/tooling/__tests__/cli-tooling-i18n-update.contract.test.ts +104 -0
- package/src/tooling/__tests__/cli-tooling-scaffold.contract.test.ts +86 -0
- package/src/tooling/__tests__/cli-tooling-stub-practice.contract.test.ts +147 -0
- package/src/tooling/__tests__/default-cdd-adapter.contract.test.ts +73 -0
- package/src/tooling/__tests__/helpers/sonamu-test-root.ts +42 -0
- package/src/tooling/__tests__/test-run-client-config.contract.test.ts +154 -0
- package/src/tooling/cdd-service.ts +256 -0
- package/src/tooling/cli-tooling.ts +937 -0
- package/src/tooling/fixture-service.ts +72 -0
- package/src/tooling/index.ts +1 -0
- package/src/tooling/test-run-client.ts +196 -0
- package/src/utils/__tests__/formatter-bin.test.ts +99 -0
- package/src/utils/formatter.ts +74 -10
- package/tsdown.api.config.ts +8 -10
- package/bin/cli.js +0 -75
- package/dist/bin/cli.d.ts +0 -2
- package/dist/bin/cli.d.ts.map +0 -1
- package/dist/bin/cli.js +0 -956
- package/src/bin/cli.ts +0 -1166
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const legacyFixtureOptionsSchema: z.ZodObject<{
|
|
3
|
+
_: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
4
|
+
all: z.ZodOptional<z.ZodBoolean>;
|
|
5
|
+
include: z.ZodOptional<z.ZodString>;
|
|
6
|
+
exclude: z.ZodOptional<z.ZodString>;
|
|
7
|
+
count: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
8
|
+
strategy: z.ZodOptional<z.ZodString>;
|
|
9
|
+
limit: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
10
|
+
saveTo: z.ZodOptional<z.ZodString>;
|
|
11
|
+
useLlm: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
noCache: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
+
"save-to": z.ZodOptional<z.ZodString>;
|
|
14
|
+
"use-llm": z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
"no-cache": z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
nonInteractive: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
userMode: z.ZodOptional<z.ZodEnum<{
|
|
18
|
+
dummy: "dummy";
|
|
19
|
+
login: "login";
|
|
20
|
+
}>>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
type LegacyFixtureOptions = z.infer<typeof legacyFixtureOptionsSchema>;
|
|
23
|
+
export type LegacyFixtureSource = z.input<typeof legacyFixtureOptionsSchema>;
|
|
24
|
+
export type LegacyFixtureCommand = "gen" | "fetch" | "explore";
|
|
25
|
+
export type NormalizedLegacyFixtureOptions = Omit<LegacyFixtureOptions, "saveTo" | "useLlm" | "noCache">;
|
|
26
|
+
export declare function normalizeLegacyFixtureOptions(input: LegacyFixtureSource): NormalizedLegacyFixtureOptions;
|
|
27
|
+
export declare function normalizeLegacyFixtureCommandOptions(command: LegacyFixtureCommand, input: LegacyFixtureSource): NormalizedLegacyFixtureOptions;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=fixture-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-service.d.ts","sourceRoot":"","sources":["../../src/tooling/fixture-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;iBAgB9B,CAAC;AAEH,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC7E,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAC/D,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,oBAAoB,EACpB,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAChC,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,mBAAmB,GACzB,8BAA8B,CAQhC;AAUD,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,mBAAmB,GACzB,8BAA8B,CAoBhC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/tooling/fixture-service.ts
|
|
3
|
+
const legacyFixtureOptionsSchema = z.object({
|
|
4
|
+
_: z.array(z.string()).optional(),
|
|
5
|
+
all: z.boolean().optional(),
|
|
6
|
+
include: z.string().optional(),
|
|
7
|
+
exclude: z.string().optional(),
|
|
8
|
+
count: z.union([z.string(), z.number()]).optional(),
|
|
9
|
+
strategy: z.string().optional(),
|
|
10
|
+
limit: z.union([z.string(), z.number()]).optional(),
|
|
11
|
+
saveTo: z.string().optional(),
|
|
12
|
+
useLlm: z.boolean().optional(),
|
|
13
|
+
noCache: z.boolean().optional(),
|
|
14
|
+
"save-to": z.string().optional(),
|
|
15
|
+
"use-llm": z.boolean().optional(),
|
|
16
|
+
"no-cache": z.boolean().optional(),
|
|
17
|
+
nonInteractive: z.boolean().optional(),
|
|
18
|
+
userMode: z.enum(["login", "dummy"]).optional()
|
|
19
|
+
});
|
|
20
|
+
function normalizeLegacyFixtureOptions(input) {
|
|
21
|
+
const { saveTo, useLlm, noCache, ...options } = legacyFixtureOptionsSchema.parse(input);
|
|
22
|
+
return {
|
|
23
|
+
...options,
|
|
24
|
+
"save-to": saveTo ?? options["save-to"],
|
|
25
|
+
"use-llm": useLlm ?? options["use-llm"],
|
|
26
|
+
"no-cache": noCache ?? options["no-cache"]
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function hasLegacyFixtureSelector(command, input) {
|
|
30
|
+
const hasInclude = input.include !== void 0 && input.include.trim().length > 0;
|
|
31
|
+
return command === "explore" ? hasInclude : input.all === true || hasInclude;
|
|
32
|
+
}
|
|
33
|
+
function normalizeLegacyFixtureCommandOptions(command, input) {
|
|
34
|
+
const normalized = normalizeLegacyFixtureOptions(input);
|
|
35
|
+
if (normalized.nonInteractive !== true) return normalized;
|
|
36
|
+
if (!hasLegacyFixtureSelector(command, normalized)) throw Object.assign(/* @__PURE__ */ new Error(`Missing fixture ${command} selector.`), {
|
|
37
|
+
code: "MISSING_ARGUMENT",
|
|
38
|
+
exitCode: 2
|
|
39
|
+
});
|
|
40
|
+
if (command !== "gen") return normalized;
|
|
41
|
+
return {
|
|
42
|
+
...normalized,
|
|
43
|
+
count: normalized.count || 5,
|
|
44
|
+
"save-to": normalized["save-to"] || "db",
|
|
45
|
+
"use-llm": normalized["use-llm"] ?? false,
|
|
46
|
+
"no-cache": normalized["no-cache"] ?? false,
|
|
47
|
+
userMode: normalized.userMode ?? "dummy"
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { normalizeLegacyFixtureCommandOptions, normalizeLegacyFixtureOptions };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXJ2aWNlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29saW5nL2ZpeHR1cmUtc2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5jb25zdCBsZWdhY3lGaXh0dXJlT3B0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgXzogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBhbGw6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGluY2x1ZGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZXhjbHVkZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjb3VudDogei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKV0pLm9wdGlvbmFsKCksXG4gIHN0cmF0ZWd5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxpbWl0OiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkub3B0aW9uYWwoKSxcbiAgc2F2ZVRvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzZUxsbTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgbm9DYWNoZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgXCJzYXZlLXRvXCI6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgXCJ1c2UtbGxtXCI6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIFwibm8tY2FjaGVcIjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgbm9uSW50ZXJhY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHVzZXJNb2RlOiB6LmVudW0oW1wibG9naW5cIiwgXCJkdW1teVwiXSkub3B0aW9uYWwoKSxcbn0pO1xuXG50eXBlIExlZ2FjeUZpeHR1cmVPcHRpb25zID0gei5pbmZlcjx0eXBlb2YgbGVnYWN5Rml4dHVyZU9wdGlvbnNTY2hlbWE+O1xuZXhwb3J0IHR5cGUgTGVnYWN5Rml4dHVyZVNvdXJjZSA9IHouaW5wdXQ8dHlwZW9mIGxlZ2FjeUZpeHR1cmVPcHRpb25zU2NoZW1hPjtcbmV4cG9ydCB0eXBlIExlZ2FjeUZpeHR1cmVDb21tYW5kID0gXCJnZW5cIiB8IFwiZmV0Y2hcIiB8IFwiZXhwbG9yZVwiO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplZExlZ2FjeUZpeHR1cmVPcHRpb25zID0gT21pdDxcbiAgTGVnYWN5Rml4dHVyZU9wdGlvbnMsXG4gIFwic2F2ZVRvXCIgfCBcInVzZUxsbVwiIHwgXCJub0NhY2hlXCJcbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVMZWdhY3lGaXh0dXJlT3B0aW9ucyhcbiAgaW5wdXQ6IExlZ2FjeUZpeHR1cmVTb3VyY2UsXG4pOiBOb3JtYWxpemVkTGVnYWN5Rml4dHVyZU9wdGlvbnMge1xuICBjb25zdCB7IHNhdmVUbywgdXNlTGxtLCBub0NhY2hlLCAuLi5vcHRpb25zIH0gPSBsZWdhY3lGaXh0dXJlT3B0aW9uc1NjaGVtYS5wYXJzZShpbnB1dCk7XG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBcInNhdmUtdG9cIjogc2F2ZVRvID8/IG9wdGlvbnNbXCJzYXZlLXRvXCJdLFxuICAgIFwidXNlLWxsbVwiOiB1c2VMbG0gPz8gb3B0aW9uc1tcInVzZS1sbG1cIl0sXG4gICAgXCJuby1jYWNoZVwiOiBub0NhY2hlID8/IG9wdGlvbnNbXCJuby1jYWNoZVwiXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFzTGVnYWN5Rml4dHVyZVNlbGVjdG9yKFxuICBjb21tYW5kOiBMZWdhY3lGaXh0dXJlQ29tbWFuZCxcbiAgaW5wdXQ6IE5vcm1hbGl6ZWRMZWdhY3lGaXh0dXJlT3B0aW9ucyxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBoYXNJbmNsdWRlID0gaW5wdXQuaW5jbHVkZSAhPT0gdW5kZWZpbmVkICYmIGlucHV0LmluY2x1ZGUudHJpbSgpLmxlbmd0aCA+IDA7XG4gIHJldHVybiBjb21tYW5kID09PSBcImV4cGxvcmVcIiA/IGhhc0luY2x1ZGUgOiBpbnB1dC5hbGwgPT09IHRydWUgfHwgaGFzSW5jbHVkZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUxlZ2FjeUZpeHR1cmVDb21tYW5kT3B0aW9ucyhcbiAgY29tbWFuZDogTGVnYWN5Rml4dHVyZUNvbW1hbmQsXG4gIGlucHV0OiBMZWdhY3lGaXh0dXJlU291cmNlLFxuKTogTm9ybWFsaXplZExlZ2FjeUZpeHR1cmVPcHRpb25zIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUxlZ2FjeUZpeHR1cmVPcHRpb25zKGlucHV0KTtcbiAgaWYgKG5vcm1hbGl6ZWQubm9uSW50ZXJhY3RpdmUgIT09IHRydWUpIHJldHVybiBub3JtYWxpemVkO1xuXG4gIGlmICghaGFzTGVnYWN5Rml4dHVyZVNlbGVjdG9yKGNvbW1hbmQsIG5vcm1hbGl6ZWQpKSB7XG4gICAgdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYE1pc3NpbmcgZml4dHVyZSAke2NvbW1hbmR9IHNlbGVjdG9yLmApLCB7XG4gICAgICBjb2RlOiBcIk1JU1NJTkdfQVJHVU1FTlRcIixcbiAgICAgIGV4aXRDb2RlOiAyLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKGNvbW1hbmQgIT09IFwiZ2VuXCIpIHJldHVybiBub3JtYWxpemVkO1xuICByZXR1cm4ge1xuICAgIC4uLm5vcm1hbGl6ZWQsXG4gICAgY291bnQ6IG5vcm1hbGl6ZWQuY291bnQgfHwgNSxcbiAgICBcInNhdmUtdG9cIjogbm9ybWFsaXplZFtcInNhdmUtdG9cIl0gfHwgXCJkYlwiLFxuICAgIFwidXNlLWxsbVwiOiBub3JtYWxpemVkW1widXNlLWxsbVwiXSA/PyBmYWxzZSxcbiAgICBcIm5vLWNhY2hlXCI6IG5vcm1hbGl6ZWRbXCJuby1jYWNoZVwiXSA/PyBmYWxzZSxcbiAgICB1c2VyTW9kZTogbm9ybWFsaXplZC51c2VyTW9kZSA/PyBcImR1bW15XCIsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBTSw2QkFBNkIsRUFBRSxPQUFPO0NBQzFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO0NBQ2hDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0NBQzFCLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTO0NBQzdCLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTO0NBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztDQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUztDQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Q0FDbEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Q0FDNUIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVM7Q0FDN0IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVM7Q0FDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Q0FDL0IsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVM7Q0FDaEMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVM7Q0FDakMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUztDQUNyQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO0FBQ2hELENBQUM7QUFVRCxTQUFnQiw4QkFDZCxPQUNnQztDQUNoQyxNQUFNLEVBQUUsUUFBUSxRQUFRLFNBQVMsR0FBRyxZQUFZLDJCQUEyQixNQUFNLEtBQUs7Q0FDdEYsT0FBTztFQUNMLEdBQUc7RUFDSCxXQUFXLFVBQVUsUUFBUTtFQUM3QixXQUFXLFVBQVUsUUFBUTtFQUM3QixZQUFZLFdBQVcsUUFBUTtDQUNqQztBQUNGO0FBRUEsU0FBUyx5QkFDUCxTQUNBLE9BQ1M7Q0FDVCxNQUFNLGFBQWEsTUFBTSxZQUFZLFVBQWEsTUFBTSxRQUFRLEtBQUssQ0FBQyxDQUFDLFNBQVM7Q0FDaEYsT0FBTyxZQUFZLFlBQVksYUFBYSxNQUFNLFFBQVEsUUFBUTtBQUNwRTtBQUVBLFNBQWdCLHFDQUNkLFNBQ0EsT0FDZ0M7Q0FDaEMsTUFBTSxhQUFhLDhCQUE4QixLQUFLO0NBQ3RELElBQUksV0FBVyxtQkFBbUIsTUFBTSxPQUFPO0NBRS9DLElBQUksQ0FBQyx5QkFBeUIsU0FBUyxVQUFVLEdBQy9DLE1BQU0sT0FBTyx1QkFBTyxJQUFJLE1BQU0sbUJBQW1CLFFBQVEsV0FBVyxHQUFHO0VBQ3JFLE1BQU07RUFDTixVQUFVO0NBQ1osQ0FBQztDQUdILElBQUksWUFBWSxPQUFPLE9BQU87Q0FDOUIsT0FBTztFQUNMLEdBQUc7RUFDSCxPQUFPLFdBQVcsU0FBUztFQUMzQixXQUFXLFdBQVcsY0FBYztFQUNwQyxXQUFXLFdBQVcsY0FBYztFQUNwQyxZQUFZLFdBQVcsZUFBZTtFQUN0QyxVQUFVLFdBQVcsWUFBWTtDQUNuQztBQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tooling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export interface TestRunRequest {
|
|
3
|
+
files?: string[];
|
|
4
|
+
pattern?: string;
|
|
5
|
+
traces?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface TestRunResult {
|
|
8
|
+
ok: boolean;
|
|
9
|
+
summary: {
|
|
10
|
+
total: number;
|
|
11
|
+
passed: number;
|
|
12
|
+
failed: number;
|
|
13
|
+
skipped: number;
|
|
14
|
+
durationMs: number;
|
|
15
|
+
};
|
|
16
|
+
results: z.infer<typeof jsonValueSchema>[];
|
|
17
|
+
}
|
|
18
|
+
export interface TestRunClient {
|
|
19
|
+
status(): Promise<JsonObject>;
|
|
20
|
+
run(input: TestRunRequest): Promise<TestRunResult>;
|
|
21
|
+
}
|
|
22
|
+
declare const jsonValueSchema: z.ZodJSONSchema;
|
|
23
|
+
declare const jsonObjectSchema: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
24
|
+
type JsonObject = z.infer<typeof jsonObjectSchema>;
|
|
25
|
+
export declare function createDefaultTestRunClient(projectRoot?: string): TestRunClient;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=test-run-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-run-client.d.ts","sourceRoot":"","sources":["../../src/tooling/test-run-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACpD;AAsBD,QAAA,MAAM,eAAe,iBAAW,CAAC;AACjC,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AA2InD,wBAAgB,0BAA0B,CAAC,WAAW,GAAE,MAA0B,GAAG,aAAa,CAMjG"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { findApiRootPath, init_utils } from "../utils/utils.js";
|
|
2
|
+
import { init_config, loadConfig } from "../api/config.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region src/tooling/test-run-client.ts
|
|
5
|
+
init_config();
|
|
6
|
+
init_utils();
|
|
7
|
+
var TestRunClientError = class extends Error {
|
|
8
|
+
code;
|
|
9
|
+
constructor(code, message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.name = "TestRunClientError";
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const jsonValueSchema = z.json();
|
|
16
|
+
const jsonObjectSchema = z.record(z.string(), jsonValueSchema);
|
|
17
|
+
const configSchema = z.object({
|
|
18
|
+
server: z.object({ listen: z.object({
|
|
19
|
+
host: z.string().optional(),
|
|
20
|
+
port: z.number().optional()
|
|
21
|
+
}).optional() }).optional(),
|
|
22
|
+
test: z.object({ devRunner: z.object({
|
|
23
|
+
enabled: z.boolean().optional(),
|
|
24
|
+
routePrefix: z.string().optional()
|
|
25
|
+
}).optional() }).optional()
|
|
26
|
+
});
|
|
27
|
+
const testRunResultSchema = z.object({
|
|
28
|
+
ok: z.boolean(),
|
|
29
|
+
summary: z.object({
|
|
30
|
+
total: z.number(),
|
|
31
|
+
passed: z.number(),
|
|
32
|
+
failed: z.number(),
|
|
33
|
+
skipped: z.number(),
|
|
34
|
+
durationMs: z.number()
|
|
35
|
+
}),
|
|
36
|
+
results: z.array(jsonValueSchema)
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* sonamu.config를 소스(`src/sonamu.config.ts`)에서 읽도록 강제해 설정을 불러옵니다.
|
|
40
|
+
*
|
|
41
|
+
* loadConfig는 VITEST/HOT 환경변수로 dist/소스 설정을 고르므로, dist 빌드가 없는
|
|
42
|
+
* 일반 개발 셸에서도 소스 설정을 읽도록 VITEST를 잠시 켜고 원래 값을 그대로 복원합니다.
|
|
43
|
+
*/
|
|
44
|
+
async function loadSourceConfig(dependencies) {
|
|
45
|
+
const previousVitest = process.env.VITEST;
|
|
46
|
+
process.env.VITEST = "true";
|
|
47
|
+
try {
|
|
48
|
+
return await dependencies.loadConfig(dependencies.projectRoot);
|
|
49
|
+
} finally {
|
|
50
|
+
if (previousVitest === void 0) delete process.env.VITEST;
|
|
51
|
+
else process.env.VITEST = previousVitest;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function resolveBaseUrl(dependencies) {
|
|
55
|
+
let config;
|
|
56
|
+
try {
|
|
57
|
+
config = await loadSourceConfig(dependencies);
|
|
58
|
+
} catch {
|
|
59
|
+
throw new TestRunClientError("TEST_RUN_CONFIG_ERROR", "sonamu.config를 불러올 수 없습니다. 프로젝트 설정을 확인하세요.");
|
|
60
|
+
}
|
|
61
|
+
const parsedConfig = configSchema.parse(config);
|
|
62
|
+
const listen = parsedConfig.server?.listen;
|
|
63
|
+
const devRunner = parsedConfig.test?.devRunner;
|
|
64
|
+
if (devRunner?.enabled !== true) throw new TestRunClientError("TEST_RUN_CONFIG_ERROR", "sonamu.config의 test.devRunner.enabled를 true로 설정해야 합니다.");
|
|
65
|
+
const configuredHost = listen?.host ?? "localhost";
|
|
66
|
+
const host = ["0.0.0.0", "::"].includes(configuredHost) ? "127.0.0.1" : configuredHost;
|
|
67
|
+
const port = listen?.port ?? 3e3;
|
|
68
|
+
const routePrefix = devRunner.routePrefix ?? "/__test__";
|
|
69
|
+
return `http://${host}:${port}${(routePrefix.startsWith("/") ? routePrefix : `/${routePrefix}`).replace(/\/$/, "")}`;
|
|
70
|
+
}
|
|
71
|
+
async function requestJson(dependencies, url, init) {
|
|
72
|
+
let response;
|
|
73
|
+
try {
|
|
74
|
+
response = await dependencies.fetch(url, init);
|
|
75
|
+
} catch {
|
|
76
|
+
throw new TestRunClientError("TEST_RUN_NETWORK_ERROR", "로컬 DevRunner에 연결할 수 없습니다. sonamu dev 실행 상태를 확인하세요.");
|
|
77
|
+
}
|
|
78
|
+
if (!response.ok) throw new TestRunClientError("TEST_RUN_HTTP_ERROR", `DevRunner 요청이 HTTP ${response.status} 상태로 실패했습니다.`);
|
|
79
|
+
const object = jsonObjectSchema.safeParse(await response.json());
|
|
80
|
+
if (!object.success) throw new TestRunClientError("TEST_RUN_HTTP_ERROR", "DevRunner 응답이 JSON 객체가 아닙니다.");
|
|
81
|
+
return object.data;
|
|
82
|
+
}
|
|
83
|
+
function parseResult(value) {
|
|
84
|
+
const result = testRunResultSchema.safeParse(value);
|
|
85
|
+
if (!result.success) throw new TestRunClientError("TEST_RUN_HTTP_ERROR", "DevRunner 테스트 결과의 구조가 올바르지 않습니다.");
|
|
86
|
+
return result.data;
|
|
87
|
+
}
|
|
88
|
+
function createTestRunClient(dependencies) {
|
|
89
|
+
return {
|
|
90
|
+
async status() {
|
|
91
|
+
return requestJson(dependencies, `${await resolveBaseUrl(dependencies)}/status`);
|
|
92
|
+
},
|
|
93
|
+
async run(input) {
|
|
94
|
+
const payload = {};
|
|
95
|
+
if (input.files !== void 0) payload.files = input.files;
|
|
96
|
+
if (input.pattern !== void 0) payload.pattern = input.pattern;
|
|
97
|
+
const result = parseResult(await requestJson(dependencies, `${await resolveBaseUrl(dependencies)}/run`, {
|
|
98
|
+
method: "POST",
|
|
99
|
+
headers: { "Content-Type": "application/json" },
|
|
100
|
+
body: JSON.stringify(payload)
|
|
101
|
+
}));
|
|
102
|
+
if (!result.ok) throw Object.assign(new TestRunClientError("TEST_RUN_FAILED", "테스트 실행이 실패했습니다."), {
|
|
103
|
+
exitCode: 1,
|
|
104
|
+
result
|
|
105
|
+
});
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function createDefaultTestRunClient(projectRoot = findApiRootPath()) {
|
|
111
|
+
return createTestRunClient({
|
|
112
|
+
projectRoot,
|
|
113
|
+
loadConfig,
|
|
114
|
+
fetch: globalThis.fetch
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
//#endregion
|
|
118
|
+
export { createDefaultTestRunClient };
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4tY2xpZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29saW5nL3Rlc3QtcnVuLWNsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSBcIi4uL2FwaS9jb25maWdcIjtcbmltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RSdW5SZXF1ZXN0IHtcbiAgZmlsZXM/OiBzdHJpbmdbXTtcbiAgcGF0dGVybj86IHN0cmluZztcbiAgdHJhY2VzPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFRlc3RSdW5SZXN1bHQge1xuICBvazogYm9vbGVhbjtcbiAgc3VtbWFyeToge1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgcGFzc2VkOiBudW1iZXI7XG4gICAgZmFpbGVkOiBudW1iZXI7XG4gICAgc2tpcHBlZDogbnVtYmVyO1xuICAgIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgfTtcbiAgcmVzdWx0czogei5pbmZlcjx0eXBlb2YganNvblZhbHVlU2NoZW1hPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RSdW5DbGllbnQge1xuICBzdGF0dXMoKTogUHJvbWlzZTxKc29uT2JqZWN0PjtcbiAgcnVuKGlucHV0OiBUZXN0UnVuUmVxdWVzdCk6IFByb21pc2U8VGVzdFJ1blJlc3VsdD47XG59XG5cbmludGVyZmFjZSBUZXN0UnVuQ2xpZW50RGVwZW5kZW5jaWVzIHtcbiAgcHJvamVjdFJvb3Q6IHN0cmluZztcbiAgbG9hZENvbmZpZyhwcm9qZWN0Um9vdDogc3RyaW5nKTogUHJvbWlzZTxvYmplY3Q+O1xuICBmZXRjaDogdHlwZW9mIGdsb2JhbFRoaXMuZmV0Y2g7XG59XG5cbmNsYXNzIFRlc3RSdW5DbGllbnRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgY29kZTpcbiAgICAgIHwgXCJURVNUX1JVTl9DT05GSUdfRVJST1JcIlxuICAgICAgfCBcIlRFU1RfUlVOX0ZBSUxFRFwiXG4gICAgICB8IFwiVEVTVF9SVU5fSFRUUF9FUlJPUlwiXG4gICAgICB8IFwiVEVTVF9SVU5fTkVUV09SS19FUlJPUlwiLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJUZXN0UnVuQ2xpZW50RXJyb3JcIjtcbiAgfVxufVxuXG5jb25zdCBqc29uVmFsdWVTY2hlbWEgPSB6Lmpzb24oKTtcbmNvbnN0IGpzb25PYmplY3RTY2hlbWEgPSB6LnJlY29yZCh6LnN0cmluZygpLCBqc29uVmFsdWVTY2hlbWEpO1xudHlwZSBKc29uT2JqZWN0ID0gei5pbmZlcjx0eXBlb2YganNvbk9iamVjdFNjaGVtYT47XG5jb25zdCBjb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNlcnZlcjogelxuICAgIC5vYmplY3Qoe1xuICAgICAgbGlzdGVuOiB6Lm9iamVjdCh7IGhvc3Q6IHouc3RyaW5nKCkub3B0aW9uYWwoKSwgcG9ydDogei5udW1iZXIoKS5vcHRpb25hbCgpIH0pLm9wdGlvbmFsKCksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKSxcbiAgdGVzdDogelxuICAgIC5vYmplY3Qoe1xuICAgICAgZGV2UnVubmVyOiB6XG4gICAgICAgIC5vYmplY3QoeyBlbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLCByb3V0ZVByZWZpeDogei5zdHJpbmcoKS5vcHRpb25hbCgpIH0pXG4gICAgICAgIC5vcHRpb25hbCgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKCksXG59KTtcbmNvbnN0IHRlc3RSdW5SZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG9rOiB6LmJvb2xlYW4oKSxcbiAgc3VtbWFyeTogei5vYmplY3Qoe1xuICAgIHRvdGFsOiB6Lm51bWJlcigpLFxuICAgIHBhc3NlZDogei5udW1iZXIoKSxcbiAgICBmYWlsZWQ6IHoubnVtYmVyKCksXG4gICAgc2tpcHBlZDogei5udW1iZXIoKSxcbiAgICBkdXJhdGlvbk1zOiB6Lm51bWJlcigpLFxuICB9KSxcbiAgcmVzdWx0czogei5hcnJheShqc29uVmFsdWVTY2hlbWEpLFxufSk7XG5cbi8qKlxuICogc29uYW11LmNvbmZpZ+ulvCDshozsiqQoYHNyYy9zb25hbXUuY29uZmlnLnRzYCnsl5DshJwg7J2964+E66GdIOqwleygnO2VtCDshKTsoJXsnYQg67aI65+s7Ji164uI64ukLlxuICpcbiAqIGxvYWRDb25maWfripQgVklURVNUL0hPVCDtmZjqsr3rs4DsiJjroZwgZGlzdC/shozsiqQg7ISk7KCV7J2EIOqzoOultOuvgOuhnCwgZGlzdCDruYzrk5zqsIAg7JeG64qUXG4gKiDsnbzrsJgg6rCc67CcIOyFuOyXkOyEnOuPhCDshozsiqQg7ISk7KCV7J2EIOydveuPhOuhnSBWSVRFU1Trpbwg7J6g7IucIOy8nOqzoCDsm5Drnpgg6rCS7J2EIOq3uOuMgOuhnCDrs7Xsm5Dtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRTb3VyY2VDb25maWcoZGVwZW5kZW5jaWVzOiBUZXN0UnVuQ2xpZW50RGVwZW5kZW5jaWVzKTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgY29uc3QgcHJldmlvdXNWaXRlc3QgPSBwcm9jZXNzLmVudi5WSVRFU1Q7XG4gIHByb2Nlc3MuZW52LlZJVEVTVCA9IFwidHJ1ZVwiO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBkZXBlbmRlbmNpZXMubG9hZENvbmZpZyhkZXBlbmRlbmNpZXMucHJvamVjdFJvb3QpO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChwcmV2aW91c1ZpdGVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnYuVklURVNUO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5WSVRFU1QgPSBwcmV2aW91c1ZpdGVzdDtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUJhc2VVcmwoZGVwZW5kZW5jaWVzOiBUZXN0UnVuQ2xpZW50RGVwZW5kZW5jaWVzKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbGV0IGNvbmZpZzogb2JqZWN0O1xuICB0cnkge1xuICAgIGNvbmZpZyA9IGF3YWl0IGxvYWRTb3VyY2VDb25maWcoZGVwZW5kZW5jaWVzKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IFRlc3RSdW5DbGllbnRFcnJvcihcbiAgICAgIFwiVEVTVF9SVU5fQ09ORklHX0VSUk9SXCIsXG4gICAgICBcInNvbmFtdS5jb25maWfrpbwg67aI65+s7JisIOyImCDsl4bsirXri4jri6QuIO2UhOuhnOygne2KuCDshKTsoJXsnYQg7ZmV7J247ZWY7IS47JqULlwiLFxuICAgICk7XG4gIH1cbiAgY29uc3QgcGFyc2VkQ29uZmlnID0gY29uZmlnU2NoZW1hLnBhcnNlKGNvbmZpZyk7XG4gIGNvbnN0IGxpc3RlbiA9IHBhcnNlZENvbmZpZy5zZXJ2ZXI/Lmxpc3RlbjtcbiAgY29uc3QgZGV2UnVubmVyID0gcGFyc2VkQ29uZmlnLnRlc3Q/LmRldlJ1bm5lcjtcbiAgaWYgKGRldlJ1bm5lcj8uZW5hYmxlZCAhPT0gdHJ1ZSkge1xuICAgIHRocm93IG5ldyBUZXN0UnVuQ2xpZW50RXJyb3IoXG4gICAgICBcIlRFU1RfUlVOX0NPTkZJR19FUlJPUlwiLFxuICAgICAgXCJzb25hbXUuY29uZmln7J2YIHRlc3QuZGV2UnVubmVyLmVuYWJsZWTrpbwgdHJ1ZeuhnCDshKTsoJXtlbTslbwg7ZWp64uI64ukLlwiLFxuICAgICk7XG4gIH1cbiAgY29uc3QgY29uZmlndXJlZEhvc3QgPSBsaXN0ZW4/Lmhvc3QgPz8gXCJsb2NhbGhvc3RcIjtcbiAgY29uc3QgaG9zdCA9IFtcIjAuMC4wLjBcIiwgXCI6OlwiXS5pbmNsdWRlcyhjb25maWd1cmVkSG9zdCkgPyBcIjEyNy4wLjAuMVwiIDogY29uZmlndXJlZEhvc3Q7XG4gIGNvbnN0IHBvcnQgPSBsaXN0ZW4/LnBvcnQgPz8gMzAwMDtcbiAgY29uc3Qgcm91dGVQcmVmaXggPSBkZXZSdW5uZXIucm91dGVQcmVmaXggPz8gXCIvX190ZXN0X19cIjtcbiAgY29uc3QgcHJlZml4ID0gKHJvdXRlUHJlZml4LnN0YXJ0c1dpdGgoXCIvXCIpID8gcm91dGVQcmVmaXggOiBgLyR7cm91dGVQcmVmaXh9YCkucmVwbGFjZSgvXFwvJC8sIFwiXCIpO1xuICByZXR1cm4gYGh0dHA6Ly8ke2hvc3R9OiR7cG9ydH0ke3ByZWZpeH1gO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZXF1ZXN0SnNvbihcbiAgZGVwZW5kZW5jaWVzOiBUZXN0UnVuQ2xpZW50RGVwZW5kZW5jaWVzLFxuICB1cmw6IHN0cmluZyxcbiAgaW5pdD86IFJlcXVlc3RJbml0LFxuKTogUHJvbWlzZTxKc29uT2JqZWN0PiB7XG4gIGxldCByZXNwb25zZTogUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgcmVzcG9uc2UgPSBhd2FpdCBkZXBlbmRlbmNpZXMuZmV0Y2godXJsLCBpbml0KTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IFRlc3RSdW5DbGllbnRFcnJvcihcbiAgICAgIFwiVEVTVF9SVU5fTkVUV09SS19FUlJPUlwiLFxuICAgICAgXCLroZzsu6wgRGV2UnVubmVy7JeQIOyXsOqysO2VoCDsiJgg7JeG7Iq164uI64ukLiBzb25hbXUgZGV2IOyLpO2WiSDsg4Htg5zrpbwg7ZmV7J247ZWY7IS47JqULlwiLFxuICAgICk7XG4gIH1cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBUZXN0UnVuQ2xpZW50RXJyb3IoXG4gICAgICBcIlRFU1RfUlVOX0hUVFBfRVJST1JcIixcbiAgICAgIGBEZXZSdW5uZXIg7JqU7LKt7J20IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9IOyDge2DnOuhnCDsi6TtjKjtlojsirXri4jri6QuYCxcbiAgICApO1xuICB9XG4gIGNvbnN0IG9iamVjdCA9IGpzb25PYmplY3RTY2hlbWEuc2FmZVBhcnNlKGF3YWl0IHJlc3BvbnNlLmpzb24oKSk7XG4gIGlmICghb2JqZWN0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgVGVzdFJ1bkNsaWVudEVycm9yKFwiVEVTVF9SVU5fSFRUUF9FUlJPUlwiLCBcIkRldlJ1bm5lciDsnZHri7XsnbQgSlNPTiDqsJ3ssrTqsIAg7JWE64uZ64uI64ukLlwiKTtcbiAgfVxuICByZXR1cm4gb2JqZWN0LmRhdGE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUmVzdWx0KHZhbHVlOiBKc29uT2JqZWN0KTogVGVzdFJ1blJlc3VsdCB7XG4gIGNvbnN0IHJlc3VsdCA9IHRlc3RSdW5SZXN1bHRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKTtcbiAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBUZXN0UnVuQ2xpZW50RXJyb3IoXG4gICAgICBcIlRFU1RfUlVOX0hUVFBfRVJST1JcIixcbiAgICAgIFwiRGV2UnVubmVyIO2FjOyKpO2KuCDqsrDqs7zsnZgg6rWs7KGw6rCAIOyYrOuwlOultOyngCDslYrsirXri4jri6QuXCIsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmRhdGE7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRlc3RSdW5DbGllbnQoZGVwZW5kZW5jaWVzOiBUZXN0UnVuQ2xpZW50RGVwZW5kZW5jaWVzKTogVGVzdFJ1bkNsaWVudCB7XG4gIHJldHVybiB7XG4gICAgYXN5bmMgc3RhdHVzKCkge1xuICAgICAgcmV0dXJuIHJlcXVlc3RKc29uKGRlcGVuZGVuY2llcywgYCR7YXdhaXQgcmVzb2x2ZUJhc2VVcmwoZGVwZW5kZW5jaWVzKX0vc3RhdHVzYCk7XG4gICAgfSxcbiAgICBhc3luYyBydW4oaW5wdXQpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQ6IFRlc3RSdW5SZXF1ZXN0ID0ge307XG4gICAgICBpZiAoaW5wdXQuZmlsZXMgIT09IHVuZGVmaW5lZCkgcGF5bG9hZC5maWxlcyA9IGlucHV0LmZpbGVzO1xuICAgICAgaWYgKGlucHV0LnBhdHRlcm4gIT09IHVuZGVmaW5lZCkgcGF5bG9hZC5wYXR0ZXJuID0gaW5wdXQucGF0dGVybjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlUmVzdWx0KFxuICAgICAgICBhd2FpdCByZXF1ZXN0SnNvbihkZXBlbmRlbmNpZXMsIGAke2F3YWl0IHJlc29sdmVCYXNlVXJsKGRlcGVuZGVuY2llcyl9L3J1bmAsIHtcbiAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgaWYgKCFyZXN1bHQub2spIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICBuZXcgVGVzdFJ1bkNsaWVudEVycm9yKFwiVEVTVF9SVU5fRkFJTEVEXCIsIFwi7YWM7Iqk7Yq4IOyLpO2WieydtCDsi6TtjKjtlojsirXri4jri6QuXCIpLFxuICAgICAgICAgIHsgZXhpdENvZGU6IDEsIHJlc3VsdCB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFRlc3RSdW5DbGllbnQocHJvamVjdFJvb3Q6IHN0cmluZyA9IGZpbmRBcGlSb290UGF0aCgpKTogVGVzdFJ1bkNsaWVudCB7XG4gIHJldHVybiBjcmVhdGVUZXN0UnVuQ2xpZW50KHtcbiAgICBwcm9qZWN0Um9vdCxcbiAgICBsb2FkQ29uZmlnLFxuICAgIGZldGNoOiBnbG9iYWxUaGlzLmZldGNoLFxuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztZQUUwQztXQUNNO0FBK0JoRCxJQUFNLHFCQUFOLGNBQWlDLE1BQU07Q0FFMUI7Q0FEWCxZQUNFLE1BS0Es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
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { readdir, stat } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region tsdown.api.config.ts
|
|
4
|
+
const srcRoot = path.resolve(process.cwd(), "src");
|
|
5
|
+
const ignoredSuffixes = [
|
|
6
|
+
".test.ts",
|
|
7
|
+
".test-hold.ts",
|
|
8
|
+
".ignore.ts",
|
|
9
|
+
".d.ts"
|
|
10
|
+
];
|
|
11
|
+
const ignoredDirectories = /* @__PURE__ */ new Set([
|
|
12
|
+
"__mocks__",
|
|
13
|
+
"_templates",
|
|
14
|
+
"wasted_src"
|
|
15
|
+
]);
|
|
16
|
+
async function collectEntries(directory) {
|
|
17
|
+
const entries = {};
|
|
18
|
+
for (const entry of await readdir(directory)) {
|
|
19
|
+
if (ignoredDirectories.has(entry)) continue;
|
|
20
|
+
const absolutePath = path.join(directory, entry);
|
|
21
|
+
if ((await stat(absolutePath)).isDirectory()) {
|
|
22
|
+
Object.assign(entries, await collectEntries(absolutePath));
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (!absolutePath.endsWith(".ts") || ignoredSuffixes.some((suffix) => absolutePath.endsWith(suffix))) continue;
|
|
26
|
+
const entryName = path.relative(srcRoot, absolutePath).replace(/\.ts$/, "").split(path.sep).join("/");
|
|
27
|
+
entries[entryName] = absolutePath;
|
|
28
|
+
}
|
|
29
|
+
return entries;
|
|
30
|
+
}
|
|
31
|
+
var tsdown_api_config_default = {
|
|
32
|
+
clean: true,
|
|
33
|
+
deps: { neverBundle: [/^sonamu(?:\/.*)?$/] },
|
|
34
|
+
dts: false,
|
|
35
|
+
entry: await collectEntries(srcRoot),
|
|
36
|
+
fixedExtension: false,
|
|
37
|
+
format: "esm",
|
|
38
|
+
outDir: path.resolve(process.cwd(), "dist"),
|
|
39
|
+
platform: "node",
|
|
40
|
+
sourcemap: "inline",
|
|
41
|
+
target: "esnext",
|
|
42
|
+
treeshake: false,
|
|
43
|
+
unbundle: true
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { tsdown_api_config_default as default };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNkb3duLmFwaS5jb25maWcuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vdHNkb3duLmFwaS5jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZGRpciwgc3RhdCB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmNvbnN0IHNyY1Jvb3QgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgXCJzcmNcIik7XG5jb25zdCBpZ25vcmVkU3VmZml4ZXMgPSBbXCIudGVzdC50c1wiLCBcIi50ZXN0LWhvbGQudHNcIiwgXCIuaWdub3JlLnRzXCIsIFwiLmQudHNcIl07XG5jb25zdCBpZ25vcmVkRGlyZWN0b3JpZXMgPSBuZXcgU2V0KFtcIl9fbW9ja3NfX1wiLCBcIl90ZW1wbGF0ZXNcIiwgXCJ3YXN0ZWRfc3JjXCJdKTtcbmludGVyZmFjZSBCdWlsZEVudHJpZXMge1xuICBbZW50cnlOYW1lOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RFbnRyaWVzKGRpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxCdWlsZEVudHJpZXM+IHtcbiAgY29uc3QgZW50cmllczogQnVpbGRFbnRyaWVzID0ge307XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBhd2FpdCByZWFkZGlyKGRpcmVjdG9yeSkpIHtcbiAgICBpZiAoaWdub3JlZERpcmVjdG9yaWVzLmhhcyhlbnRyeSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHBhdGguam9pbihkaXJlY3RvcnksIGVudHJ5KTtcbiAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXQoYWJzb2x1dGVQYXRoKTtcblxuICAgIGlmIChzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGVudHJpZXMsIGF3YWl0IGNvbGxlY3RFbnRyaWVzKGFic29sdXRlUGF0aCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWFic29sdXRlUGF0aC5lbmRzV2l0aChcIi50c1wiKSB8fFxuICAgICAgaWdub3JlZFN1ZmZpeGVzLnNvbWUoKHN1ZmZpeCkgPT4gYWJzb2x1dGVQYXRoLmVuZHNXaXRoKHN1ZmZpeCkpXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHNyY1Jvb3QsIGFic29sdXRlUGF0aCk7XG4gICAgY29uc3QgZW50cnlOYW1lID0gcmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLnRzJC8sIFwiXCIpLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKTtcbiAgICBlbnRyaWVzW2VudHJ5TmFtZV0gPSBhYnNvbHV0ZVBhdGg7XG4gIH1cblxuICByZXR1cm4gZW50cmllcztcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjbGVhbjogdHJ1ZSxcbiAgZGVwczoge1xuICAgIG5ldmVyQnVuZGxlOiBbL15zb25hbXUoPzpcXC8uKik/JC9dLFxuICB9LFxuICBkdHM6IGZhbHNlLFxuICBlbnRyeTogYXdhaXQgY29sbGVjdEVudHJpZXMoc3JjUm9vdCksXG4gIGZpeGVkRXh0ZW5zaW9uOiBmYWxzZSxcbiAgZm9ybWF0OiBcImVzbVwiLFxuICBvdXREaXI6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBcImRpc3RcIiksXG4gIHBsYXRmb3JtOiBcIm5vZGVcIixcbiAgc291cmNlbWFwOiBcImlubGluZVwiLFxuICB0YXJnZXQ6IFwiZXNuZXh0XCIsXG4gIHRyZWVzaGFrZTogZmFsc2UsXG4gIHVuYnVuZGxlOiB0cnVlLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBTSxVQUFVLEtBQUssUUFBUSxRQUFRLElBQUksR0FBRyxLQUFLO0FBQ2pELE1BQU0sa0JBQWtCO0NBQUM7Q0FBWTtDQUFpQjtDQUFjO0FBQU87QUFDM0UsTUFBTSxxQ0FBcUIsSUFBSSxJQUFJO0NBQUM7Q0FBYTtDQUFjO0FBQVksQ0FBQztBQUs1RSxlQUFlLGVBQWUsV0FBMEM7Q0FDdEUsTUFBTSxVQUF3QixDQUFDO0NBRS9CLEtBQUssTUFBTSxTQUFTLE1BQU0sUUFBUSxTQUFTLEdBQUc7RUFDNUMsSUFBSSxtQkFBbUIsSUFBSSxLQUFLLEdBQzlCO0VBR0YsTUFBTSxlQUFlLEtBQUssS0FBSyxXQUFXLEtBQUs7RUFHL0MsS0FBSSxNQUZnQixLQUFLLFlBQVksRUFFakMsQ0FBTSxZQUFZLEdBQUc7R0FDdkIsT0FBTyxPQUFPLFNBQVMsTUFBTSxlQUFlLFlBQVksQ0FBQztHQUN6RDtFQUNGO0VBRUEsSUFDRSxDQUFDLGFBQWEsU0FBUyxLQUFLLEtBQzVCLGdCQUFnQixNQUFNLFdBQVcsYUFBYSxTQUFTLE1BQU0sQ0FBQyxHQUU5RDtFQUlGLE1BQU0sWUFEZSxLQUFLLFNBQVMsU0FBUyxZQUMxQixDQUFBLENBQWEsUUFBUSxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7RUFDNUUsUUFBUSxhQUFhO0NBQ3ZCO0NBRUEsT0FBTztBQUNUO0FBRUEsSUFBQSw0QkFBZTtDQUNiLE9BQU87Q0FDUCxNQUFNLEVBQ0osYUFBYSxDQUFDLG1CQUFtQixFQUNuQztDQUNBLEtBQUs7Q0FDTCxPQUFPLE1BQU0sZUFBZSxPQUFPO0NBQ25DLGdCQUFnQjtDQUNoQixRQUFRO0NBQ1IsUUFBUSxLQUFLLFFBQVEsUUFBUSxJQUFJLEdBQUcsTUFBTTtDQUMxQyxVQUFVO0NBQ1YsV0FBVztDQUNYLFFBQVE7Q0FDUixXQUFXO0NBQ1gsVUFBVTtBQUNaIn0=
|