@nx-ddd/any-func 19.8.2 → 19.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-any-func-adapters-validator-commonjs.mjs","sources":["../tmp-esm2022/adapters/validator-commonjs/index.js","../tmp-esm2022/adapters/validator-commonjs/nx-ddd-any-func-adapters-validator-commonjs.js"],"sourcesContent":["import { compileSchema, draft07 } from \"json-schema-library\";\nimport { ValidatorAdapter } from \"@nx-ddd/any-func/adapters/validator\";\nimport { Injectable } from \"@angular/core\";\nimport { makeEnvironmentProviders } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class ValidatorAdapterCommonjs extends ValidatorAdapter {\n async validate(schema, data) {\n const compiledSchema = compileSchema(schema, { drafts: [draft07] });\n const result = compiledSchema.validate(data);\n if (Array.isArray(result)) {\n return result;\n }\n return result.errors || [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterCommonjs, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterCommonjs, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterCommonjs, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function provideValidatorAdapter() {\n return makeEnvironmentProviders([\n { provide: ValidatorAdapter, useClass: ValidatorAdapterCommonjs },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvYWRhcHRlcnMvdmFsaWRhdG9yLWNvbW1vbmpzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF3Qix3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHL0UsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUM1RCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQWtCLEVBQUUsSUFBUztRQUMxQyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzt1R0FUVSx3QkFBd0I7MkdBQXhCLHdCQUF3QixjQURaLE1BQU07OzJGQUNsQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQWFoQyxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFO0tBQ2xFLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uRXJyb3IsIEpzb25TY2hlbWEsIGNvbXBpbGVTY2hlbWEsIGRyYWZ0MDcgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuaW1wb3J0IHsgVmFsaWRhdG9yQWRhcHRlciB9IGZyb20gXCJAbngtZGRkL2FueS1mdW5jL2FkYXB0ZXJzL3ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yQWRhcHRlckNvbW1vbmpzIGV4dGVuZHMgVmFsaWRhdG9yQWRhcHRlciB7XG4gIGFzeW5jIHZhbGlkYXRlKHNjaGVtYTogSnNvblNjaGVtYSwgZGF0YTogYW55KTogUHJvbWlzZTxKc29uRXJyb3JbXT4ge1xuICAgIGNvbnN0IGNvbXBpbGVkU2NoZW1hID0gY29tcGlsZVNjaGVtYShzY2hlbWEsIHsgZHJhZnRzOiBbZHJhZnQwN10gfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gY29tcGlsZWRTY2hlbWEudmFsaWRhdGUoZGF0YSk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmVycm9ycyB8fCBbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbGlkYXRvckFkYXB0ZXIoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7IHByb3ZpZGU6IFZhbGlkYXRvckFkYXB0ZXIsIHVzZUNsYXNzOiBWYWxpZGF0b3JBZGFwdGVyQ29tbW9uanMgfSxcbiAgXSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1jb21tb25qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9hZGFwdGVycy92YWxpZGF0b3ItY29tbW9uanMvbngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1jb21tb25qcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AAKO,MAAM,wBAAwB,SAAS,gBAAgB,CAAC;AAC/D,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE;AACjC,QAAQ,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3E,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC,YAAY,OAAO,MAAM;AACzB
|
|
1
|
+
{"version":3,"file":"nx-ddd-any-func-adapters-validator-commonjs.mjs","sources":["../tmp-esm2022/adapters/validator-commonjs/index.js","../tmp-esm2022/adapters/validator-commonjs/nx-ddd-any-func-adapters-validator-commonjs.js"],"sourcesContent":["import { compileSchema, draft07 } from \"json-schema-library\";\nimport { ValidatorAdapter } from \"@nx-ddd/any-func/adapters/validator\";\nimport { Injectable } from \"@angular/core\";\nimport { makeEnvironmentProviders } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class ValidatorAdapterCommonjs extends ValidatorAdapter {\n async validate(schema, data) {\n const compiledSchema = compileSchema(schema, { drafts: [draft07] });\n const result = compiledSchema.validate(data);\n if (Array.isArray(result)) {\n return result;\n }\n return result.errors || [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterCommonjs, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterCommonjs, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterCommonjs, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function provideValidatorAdapter() {\n return makeEnvironmentProviders([\n { provide: ValidatorAdapter, useClass: ValidatorAdapterCommonjs },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvYWRhcHRlcnMvdmFsaWRhdG9yLWNvbW1vbmpzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF3Qix3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHL0UsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUM1RCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQWtCLEVBQUUsSUFBUztRQUMxQyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzt1R0FUVSx3QkFBd0I7MkdBQXhCLHdCQUF3QixjQURaLE1BQU07OzJGQUNsQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQWFoQyxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFO0tBQ2xFLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uRXJyb3IsIEpzb25TY2hlbWEsIGNvbXBpbGVTY2hlbWEsIGRyYWZ0MDcgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuaW1wb3J0IHsgVmFsaWRhdG9yQWRhcHRlciB9IGZyb20gXCJAbngtZGRkL2FueS1mdW5jL2FkYXB0ZXJzL3ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yQWRhcHRlckNvbW1vbmpzIGV4dGVuZHMgVmFsaWRhdG9yQWRhcHRlciB7XG4gIGFzeW5jIHZhbGlkYXRlKHNjaGVtYTogSnNvblNjaGVtYSwgZGF0YTogYW55KTogUHJvbWlzZTxKc29uRXJyb3JbXT4ge1xuICAgIGNvbnN0IGNvbXBpbGVkU2NoZW1hID0gY29tcGlsZVNjaGVtYShzY2hlbWEsIHsgZHJhZnRzOiBbZHJhZnQwN10gfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gY29tcGlsZWRTY2hlbWEudmFsaWRhdGUoZGF0YSk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmVycm9ycyB8fCBbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbGlkYXRvckFkYXB0ZXIoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7IHByb3ZpZGU6IFZhbGlkYXRvckFkYXB0ZXIsIHVzZUNsYXNzOiBWYWxpZGF0b3JBZGFwdGVyQ29tbW9uanMgfSxcbiAgXSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1jb21tb25qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9hZGFwdGVycy92YWxpZGF0b3ItY29tbW9uanMvbngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1jb21tb25qcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AAKO,MAAM,wBAAwB,SAAS,gBAAgB,CAAC;AAC/D,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE;AACjC,QAAQ,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3E,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC,YAAY,OAAO,MAAM;AACzB;AACA,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE;AAClC;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACrL,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC1J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;AACN,SAAS,uBAAuB,GAAG;AAC1C,IAAI,OAAO,wBAAwB,CAAC;AACpC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,wBAAwB,EAAE;AACzE,KAAK,CAAC;AACN;;ACzBA;AACA;AACA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-any-func-adapters-validator-esmodule.mjs","sources":["../tmp-esm2022/adapters/validator-esmodule/index.js","../tmp-esm2022/adapters/validator-esmodule/nx-ddd-any-func-adapters-validator-esmodule.js"],"sourcesContent":["import { ValidatorAdapter } from \"@nx-ddd/any-func/adapters/validator\";\nimport { Injectable } from \"@angular/core\";\nimport { compileSchema } from 'json-schema-library';\nimport * as i0 from \"@angular/core\";\nexport class ValidatorAdapterEsmodule extends ValidatorAdapter {\n async validate(schema, data) {\n return compileSchema(schema).validate(data).errors;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterEsmodule, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterEsmodule, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterEsmodule, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function provideValidatorAdapter() {\n return [\n { provide: ValidatorAdapter, useClass: ValidatorAdapterEsmodule },\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvYWRhcHRlcnMvdmFsaWRhdG9yLWVzbW9kdWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUdwRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQzVELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBa0IsRUFBRSxJQUFTO1FBQzFDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckQsQ0FBQzt1R0FIVSx3QkFBd0I7MkdBQXhCLHdCQUF3QixjQURaLE1BQU07OzJGQUNsQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQU9oQyxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU87UUFDTCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUU7S0FDbEUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uRXJyb3IsIEpzb25TY2hlbWEgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuaW1wb3J0IHsgVmFsaWRhdG9yQWRhcHRlciB9IGZyb20gXCJAbngtZGRkL2FueS1mdW5jL2FkYXB0ZXJzL3ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjb21waWxlU2NoZW1hIH0gZnJvbSAnanNvbi1zY2hlbWEtbGlicmFyeSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvckFkYXB0ZXJFc21vZHVsZSBleHRlbmRzIFZhbGlkYXRvckFkYXB0ZXIge1xuICBhc3luYyB2YWxpZGF0ZShzY2hlbWE6IEpzb25TY2hlbWEsIGRhdGE6IGFueSk6IFByb21pc2U8SnNvbkVycm9yW10+IHtcbiAgICByZXR1cm4gY29tcGlsZVNjaGVtYShzY2hlbWEpLnZhbGlkYXRlKGRhdGEpLmVycm9ycztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbGlkYXRvckFkYXB0ZXIoKSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBWYWxpZGF0b3JBZGFwdGVyLCB1c2VDbGFzczogVmFsaWRhdG9yQWRhcHRlckVzbW9kdWxlIH0sXG4gIF07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1lc21vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9hZGFwdGVycy92YWxpZGF0b3ItZXNtb2R1bGUvbngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1lc21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AAIO,MAAM,wBAAwB,SAAS,gBAAgB,CAAC;AAC/D,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE;AACjC,QAAQ,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1D
|
|
1
|
+
{"version":3,"file":"nx-ddd-any-func-adapters-validator-esmodule.mjs","sources":["../tmp-esm2022/adapters/validator-esmodule/index.js","../tmp-esm2022/adapters/validator-esmodule/nx-ddd-any-func-adapters-validator-esmodule.js"],"sourcesContent":["import { ValidatorAdapter } from \"@nx-ddd/any-func/adapters/validator\";\nimport { Injectable } from \"@angular/core\";\nimport { compileSchema } from 'json-schema-library';\nimport * as i0 from \"@angular/core\";\nexport class ValidatorAdapterEsmodule extends ValidatorAdapter {\n async validate(schema, data) {\n return compileSchema(schema).validate(data).errors;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterEsmodule, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterEsmodule, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ValidatorAdapterEsmodule, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function provideValidatorAdapter() {\n return [\n { provide: ValidatorAdapter, useClass: ValidatorAdapterEsmodule },\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvYWRhcHRlcnMvdmFsaWRhdG9yLWVzbW9kdWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUdwRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQzVELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBa0IsRUFBRSxJQUFTO1FBQzFDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckQsQ0FBQzt1R0FIVSx3QkFBd0I7MkdBQXhCLHdCQUF3QixjQURaLE1BQU07OzJGQUNsQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQU9oQyxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU87UUFDTCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUU7S0FDbEUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uRXJyb3IsIEpzb25TY2hlbWEgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuaW1wb3J0IHsgVmFsaWRhdG9yQWRhcHRlciB9IGZyb20gXCJAbngtZGRkL2FueS1mdW5jL2FkYXB0ZXJzL3ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjb21waWxlU2NoZW1hIH0gZnJvbSAnanNvbi1zY2hlbWEtbGlicmFyeSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvckFkYXB0ZXJFc21vZHVsZSBleHRlbmRzIFZhbGlkYXRvckFkYXB0ZXIge1xuICBhc3luYyB2YWxpZGF0ZShzY2hlbWE6IEpzb25TY2hlbWEsIGRhdGE6IGFueSk6IFByb21pc2U8SnNvbkVycm9yW10+IHtcbiAgICByZXR1cm4gY29tcGlsZVNjaGVtYShzY2hlbWEpLnZhbGlkYXRlKGRhdGEpLmVycm9ycztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbGlkYXRvckFkYXB0ZXIoKSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBWYWxpZGF0b3JBZGFwdGVyLCB1c2VDbGFzczogVmFsaWRhdG9yQWRhcHRlckVzbW9kdWxlIH0sXG4gIF07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1lc21vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9hZGFwdGVycy92YWxpZGF0b3ItZXNtb2R1bGUvbngtZGRkLWFueS1mdW5jLWFkYXB0ZXJzLXZhbGlkYXRvci1lc21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AAIO,MAAM,wBAAwB,SAAS,gBAAgB,CAAC;AAC/D,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE;AACjC,QAAQ,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1D;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACrL,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC1J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;AACN,SAAS,uBAAuB,GAAG;AAC1C,IAAI,OAAO;AACX,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,wBAAwB,EAAE;AACzE,KAAK;AACL;;ACnBA;AACA;AACA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-any-func.mjs","sources":["../tmp-esm2022/impl/json-schema/default-metadata-storage.js","../tmp-esm2022/impl/json-schema/json-schema.js","../tmp-esm2022/agent/agent.js","../tmp-esm2022/impl/adapters/cache/cache.adapter.js","../tmp-esm2022/any-func/any-func.service.impl.js","../tmp-esm2022/any-func/any-func.service.js","../tmp-esm2022/nx-ddd-any-func.js"],"sourcesContent":["// 環境差異を吸収するため、try-catchでdynamic importしてdefaultMetadataStorageを取得します。\nlet defaultMetadataStorage;\ntry {\n ({ defaultMetadataStorage } = require('class-transformer/cjs/storage'));\n}\ncatch {\n // Ignore error if class-transformer is not available\n}\nexport function getMetadataStorage() {\n return defaultMetadataStorage;\n}\nexport function setMetadataStorage(metadataStorage) {\n defaultMetadataStorage = metadataStorage;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1tZXRhZGF0YS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9hbnktZnVuYy9zcmMvbGliL2ltcGwvanNvbi1zY2hlbWEvZGVmYXVsdC1tZXRhZGF0YS1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNFQUFzRTtBQUN0RSxJQUFJLHNCQUFnRixDQUFDO0FBRXJGLElBQUksQ0FBQztJQUNILENBQUMsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUFDLE1BQU0sQ0FBQztJQUNQLHFEQUFxRDtBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLHNCQUFzQixDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsZUFBeUU7SUFDMUcsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnkrDlooPlt67nlbDjgpLlkLjlj47jgZnjgovjgZ/jgoHjgIF0cnktY2F0Y2jjgadkeW5hbWljIGltcG9ydOOBl+OBpmRlZmF1bHRNZXRhZGF0YVN0b3JhZ2XjgpLlj5blvpfjgZfjgb7jgZnjgIJcbmxldCBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlOiBpbXBvcnQoJ2NsYXNzLXRyYW5zZm9ybWVyL2VzbTUvc3RvcmFnZScpLk1ldGFkYXRhU3RvcmFnZTtcblxudHJ5IHtcbiAgKHsgZGVmYXVsdE1ldGFkYXRhU3RvcmFnZSB9ID0gcmVxdWlyZSgnY2xhc3MtdHJhbnNmb3JtZXIvY2pzL3N0b3JhZ2UnKSk7XG59IGNhdGNoIHtcbiAgLy8gSWdub3JlIGVycm9yIGlmIGNsYXNzLXRyYW5zZm9ybWVyIGlzIG5vdCBhdmFpbGFibGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1ldGFkYXRhU3RvcmFnZSgpIHtcbiAgcmV0dXJuIGRlZmF1bHRNZXRhZGF0YVN0b3JhZ2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNZXRhZGF0YVN0b3JhZ2UobWV0YWRhdGFTdG9yYWdlOiBpbXBvcnQoJ2NsYXNzLXRyYW5zZm9ybWVyL2VzbTUvc3RvcmFnZScpLk1ldGFkYXRhU3RvcmFnZSkge1xuICBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlID0gbWV0YWRhdGFTdG9yYWdlO1xufVxuIl19","import { ValidationTypes } from \"class-validator\";\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\";\nimport { getMetadataStorage } from \"./default-metadata-storage\";\n// import { defaultMetadataStorage } from 'c/lass-transformer/esm5/storage';\n// setMetadataStorage(defaultMetadataStorage);\nfunction getPropType(target, property) {\n return Reflect.getMetadata('design:type', target, property);\n}\nfunction targetToSchema(type, options) {\n if (typeof type === 'function') {\n if (type.prototype === String.prototype ||\n type.prototype === Symbol.prototype) {\n return { type: 'string' };\n }\n else if (type.prototype === Number.prototype) {\n return { type: 'number' };\n }\n else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' };\n }\n return targetConstructorToSchema(type, options);\n }\n}\nconst additionalConverters = {\n [ValidationTypes.NESTED_VALIDATION]: (meta, options) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(meta.target, meta.propertyName)\n : null;\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName);\n return targetToSchema(childType, options);\n }\n },\n isDayjs: (meta) => {\n return {\n type: 'string',\n format: 'date-time', // JSON Schemaで日付型を指定\n };\n },\n};\nexport function targetConstructorToSchema(target, options = {}) {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: getMetadataStorage(),\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvaW1wbC9qc29uLXNjaGVtYS9qc29uLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixJQUFJLDBCQUEwQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFHcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsNEVBQTRFO0FBRTVFLDhDQUE4QztBQUU5QyxTQUFTLFdBQVcsQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7SUFDbkQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDN0QsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixJQUFTLEVBQ1QsT0FBWTtJQUVaLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFDRSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTO1lBQ25DLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFDbkMsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUE7UUFDM0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQTtRQUMzQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO1FBQzVCLENBQUM7UUFFRCxPQUFPLHlCQUF5QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQUU7SUFDMUIsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLElBQVMsRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUMvRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsK0JBQStCO2dCQUN0RCxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLGdCQUFnQixDQUN0RCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxZQUFZLENBQ2xCO2dCQUNILENBQUMsQ0FBQyxJQUFJLENBQUE7WUFDUixNQUFNLFNBQVMsR0FBRyxRQUFRO2dCQUN4QixDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtnQkFDekIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDekQsT0FBTyxjQUFjLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBUyxFQUFlLEVBQUU7UUFDbEMsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsTUFBTSxFQUFFLFdBQVcsRUFBRSxxQkFBcUI7U0FDM0MsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQWdCLEVBQUUsVUFBNkIsRUFBRTtJQUN6RixPQUFPLDBCQUEwQixDQUFDLE1BQU0sRUFBRTtRQUN4QyxHQUFHLE9BQU87UUFDVixvQkFBb0I7UUFDcEIsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUU7S0FDdEQsQ0FBZ0IsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvblR5cGVzIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvclwiXG5pbXBvcnQgeyB0YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hIGFzIF90YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hXCJcbmltcG9ydCB7IElPcHRpb25zIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hL2J1aWxkL29wdGlvbnNcIjtcbmltcG9ydCB7IEpTT05TY2hlbWE3IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgZ2V0TWV0YWRhdGFTdG9yYWdlIH0gZnJvbSBcIi4vZGVmYXVsdC1tZXRhZGF0YS1zdG9yYWdlXCI7XG4vLyBpbXBvcnQgeyBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlIH0gZnJvbSAnYy9sYXNzLXRyYW5zZm9ybWVyL2VzbTUvc3RvcmFnZSc7XG5cbi8vIHNldE1ldGFkYXRhU3RvcmFnZShkZWZhdWx0TWV0YWRhdGFTdG9yYWdlKTtcblxuZnVuY3Rpb24gZ2V0UHJvcFR5cGUodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgdGFyZ2V0LCBwcm9wZXJ0eSlcbn1cblxuZnVuY3Rpb24gdGFyZ2V0VG9TY2hlbWEoXG4gIHR5cGU6IGFueSxcbiAgb3B0aW9uczogYW55XG4pOiBhbnkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlLnByb3RvdHlwZSA9PT0gU3RyaW5nLnByb3RvdHlwZSB8fFxuICAgICAgdHlwZS5wcm90b3R5cGUgPT09IFN5bWJvbC5wcm90b3R5cGVcbiAgICApIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUucHJvdG90eXBlID09PSBOdW1iZXIucHJvdG90eXBlKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnbnVtYmVyJyB9XG4gICAgfSBlbHNlIGlmICh0eXBlLnByb3RvdHlwZSA9PT0gQm9vbGVhbi5wcm90b3R5cGUpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdib29sZWFuJyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEodHlwZSwgb3B0aW9ucylcbiAgfVxufVxuXG5jb25zdCBhZGRpdGlvbmFsQ29udmVydGVycz0ge1xuICBbVmFsaWRhdGlvblR5cGVzLk5FU1RFRF9WQUxJREFUSU9OXTogKG1ldGE6IGFueSwgb3B0aW9uczogYW55KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBtZXRhLnRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgdHlwZU1ldGEgPSBvcHRpb25zLmNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2VcbiAgICAgICAgPyBvcHRpb25zLmNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2UuZmluZFR5cGVNZXRhZGF0YShcbiAgICAgICAgICAgIG1ldGEudGFyZ2V0LFxuICAgICAgICAgICAgbWV0YS5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbFxuICAgICAgY29uc3QgY2hpbGRUeXBlID0gdHlwZU1ldGFcbiAgICAgICAgPyB0eXBlTWV0YS50eXBlRnVuY3Rpb24oKVxuICAgICAgICA6IGdldFByb3BUeXBlKG1ldGEudGFyZ2V0LnByb3RvdHlwZSwgbWV0YS5wcm9wZXJ0eU5hbWUpXG4gICAgICByZXR1cm4gdGFyZ2V0VG9TY2hlbWEoY2hpbGRUeXBlLCBvcHRpb25zKVxuICAgIH1cbiAgfSxcbiAgaXNEYXlqczogKG1ldGE6IGFueSk6IEpTT05TY2hlbWE3ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnLCAvLyBKU09OIFNjaGVtYeOBp+aXpeS7mOWei+OCkuaMh+WumlxuICAgIH07XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSh0YXJnZXQ6IEZ1bmN0aW9uLCBvcHRpb25zOiBQYXJ0aWFsPElPcHRpb25zPiA9IHt9KTogSlNPTlNjaGVtYTcge1xuICByZXR1cm4gX3RhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEodGFyZ2V0LCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBhZGRpdGlvbmFsQ29udmVydGVycyxcbiAgICBjbGFzc1RyYW5zZm9ybWVyTWV0YWRhdGFTdG9yYWdlOiBnZXRNZXRhZGF0YVN0b3JhZ2UoKSxcbiAgfSkgYXMgSlNPTlNjaGVtYTc7XG59XG4iXX0=","import { targetConstructorToSchema } from '../impl/json-schema';\nconst AI_TOOLS = '[ai-tools]';\nconst AI_SYSTEM = '[ai-system]';\nexport function addTool(obj, tool) {\n obj[AI_TOOLS] = obj[AI_TOOLS] ?? [];\n obj[AI_TOOLS].push(tool);\n return obj;\n}\nexport function getTools(obj) {\n return obj[AI_TOOLS] ?? [];\n}\nexport function buildFunctionTool(params) {\n return {\n type: 'function',\n function: {\n name: params.name,\n description: params.description,\n parameters: params.parameters,\n },\n };\n}\nexport function buildToolFromSchema(name, description, schema) {\n const parameters = targetConstructorToSchema(schema);\n return buildFunctionTool({ name, description, parameters });\n}\nexport function AiFunction(params) {\n return function (target, propertyKey, descriptor) {\n // 引数の型を取得\n const args = Reflect.getMetadata('design:paramtypes', target, propertyKey);\n const tool = buildToolFromSchema(propertyKey, params?.description ?? '', args[0]);\n addTool(target, tool);\n return descriptor;\n };\n}\nexport function setAiSystemConfig(obj, config) {\n obj[AI_SYSTEM] = config;\n return obj;\n}\nexport function getAiSystemConfig(obj) {\n return obj[AI_SYSTEM];\n}\nexport function AiSystem({ model = 'gpt-4-1106-preview', instructions = ``, shots = [], }) {\n return function (target) {\n setAiSystemConfig(target, { model, instructions, shots });\n return target;\n };\n}\nexport class AiToolsAgent {\n openai;\n constructor(openai) {\n this.openai = openai;\n }\n messages = [\n { role: 'system', content: '' },\n ];\n results = [];\n get tools() {\n return getTools(this.constructor);\n }\n get config() {\n return getAiSystemConfig(this.constructor);\n }\n async completion(tools = this.tools) {\n const message = await this.openai.chat.completions.create({\n model: this.config.model,\n messages: this.messages,\n tools,\n });\n for (const call of message.choices?.[0]?.message?.tool_calls ?? []) {\n if (call.type === 'function') {\n const func = this[call.function.name];\n const result = func(JSON.parse(call.function.arguments));\n this.results.push(result);\n }\n }\n }\n async execute(message, options = {}) {\n this.messages.push({ role: 'user', content: message });\n await this.completion(options.tools);\n return this.results.at(-1);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvYWdlbnQvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsTUFBTSxRQUFRLEdBQUcsWUFBcUIsQ0FBQztBQUN2QyxNQUFNLFNBQVMsR0FBRyxhQUFzQixDQUFDO0FBRXpDLE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBMkIsRUFBRSxJQUFZO0lBQy9ELEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUEyQjtJQUNsRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUlqQztJQUNDLE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUM5QjtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVksRUFBRSxXQUFtQixFQUFFLE1BQWdCO0lBQ3JGLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBdUIsQ0FBQztJQUMzRSxPQUFPLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUs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LENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdENvbXBsZXRpb25NZXNzYWdlUGFyYW0sIEZ1bmN0aW9uUGFyYW1ldGVycywgIH0gZnJvbSBcIm9wZW5haS9yZXNvdXJjZXNcIjtcbmltcG9ydCB7IEZ1bmN0aW9uVG9vbCB9IGZyb20gXCJvcGVuYWkvcmVzb3VyY2VzL2JldGEvYXNzaXN0YW50c1wiO1xuaW1wb3J0IHsgQ2hhdENvbXBsZXRpb25DcmVhdGVQYXJhbXNCYXNlIH0gZnJvbSBcIm9wZW5haS9yZXNvdXJjZXMvY2hhdC9jb21wbGV0aW9uc1wiO1xuaW1wb3J0IHsgT3BlbkFpU2VydmljZUltcGwgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvb3BlbmFpL2ltcGwnO1xuaW1wb3J0IHsgdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSB9IGZyb20gJy4uL2ltcGwvanNvbi1zY2hlbWEnO1xuXG5jb25zdCBBSV9UT09MUyA9ICdbYWktdG9vbHNdJyBhcyBjb25zdDtcbmNvbnN0IEFJX1NZU1RFTSA9ICdbYWktc3lzdGVtXScgYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb29sKG9iajoge1tBSV9UT09MU106IG9iamVjdFtdfSwgdG9vbDogb2JqZWN0KSB7XG4gIG9ialtBSV9UT09MU10gPSBvYmpbQUlfVE9PTFNdID8/IFtdO1xuICBvYmpbQUlfVE9PTFNdLnB1c2godG9vbCk7XG4gIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb29scyhvYmo6IHtbQUlfVE9PTFNdOiBvYmplY3RbXX0pOiBhbnlbXSB7XG4gIHJldHVybiBvYmpbQUlfVE9PTFNdID8/IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGdW5jdGlvblRvb2wocGFyYW1zOiB7XG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgcGFyYW1ldGVyczogRnVuY3Rpb25QYXJhbWV0ZXJzLFxufSk6IEZ1bmN0aW9uVG9vbCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBmdW5jdGlvbjoge1xuICAgICAgbmFtZTogcGFyYW1zLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcGFyYW1zLmRlc2NyaXB0aW9uLFxuICAgICAgcGFyYW1ldGVyczogcGFyYW1zLnBhcmFtZXRlcnMsXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUb29sRnJvbVNjaGVtYShuYW1lOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHNjaGVtYTogRnVuY3Rpb24pOiBGdW5jdGlvblRvb2wge1xuICBjb25zdCBwYXJhbWV0ZXJzID0gdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYShzY2hlbWEpIGFzIEZ1bmN0aW9uUGFyYW1ldGVycztcbiAgcmV0dXJuIGJ1aWxkRnVuY3Rpb25Ub29sKHsgbmFtZSwgZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBaUZ1bmN0aW9uKHBhcmFtcz86IHtkZXNjcmlwdGlvbj86IHN0cmluZ30pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZywgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKSB7XG4gICAgLy8g5byV5pWw44Gu5Z6L44KS5Y+W5b6XXG4gICAgY29uc3QgYXJncyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjpwYXJhbXR5cGVzJywgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgY29uc3QgdG9vbCA9IGJ1aWxkVG9vbEZyb21TY2hlbWEocHJvcGVydHlLZXksIHBhcmFtcz8uZGVzY3JpcHRpb24gPz8gJycsIGFyZ3NbMF0pO1xuICAgIGFkZFRvb2wodGFyZ2V0LCB0b29sKTtcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBaVN5c3RlbUNvbmZpZyB7XG4gIG1vZGVsPzogQ2hhdENvbXBsZXRpb25DcmVhdGVQYXJhbXNCYXNlWydtb2RlbCddO1xuICBpbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG4gIHNob3RzPzoge2lucHV0OiBzdHJpbmcsIG91dHB1dDogc3RyaW5nfVtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QWlTeXN0ZW1Db25maWcob2JqOiB7W0FJX1NZU1RFTV06IEFpU3lzdGVtQ29uZmlnfSwgY29uZmlnOiBBaVN5c3RlbUNvbmZpZykge1xuICBvYmpbQUlfU1lTVEVNXSA9IGNvbmZpZztcbiAgcmV0dXJuIG9iajtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFpU3lzdGVtQ29uZmlnKG9iajoge1tBSV9TWVNURU1dOiBBaVN5c3RlbUNvbmZpZ30pOiBBaVN5c3RlbUNvbmZpZyB7XG4gIHJldHVybiBvYmpbQUlfU1lTVEVNXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFpU3lzdGVtKHtcbiAgbW9kZWwgPSAnZ3B0LTQtMTEwNi1wcmV2aWV3JyxcbiAgaW5zdHJ1Y3Rpb25zID0gYGAsXG4gIHNob3RzID0gW10sXG59OiBBaVN5c3RlbUNvbmZpZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55KSB7XG4gICAgc2V0QWlTeXN0ZW1Db25maWcodGFyZ2V0LCB7bW9kZWwsIGluc3RydWN0aW9ucywgc2hvdHN9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQWlUb29sc0FnZW50IHtcbiAgY29uc3RydWN0b3IgKHByb3RlY3RlZCBvcGVuYWk6IE9wZW5BaVNlcnZpY2VJbXBsKSB7IH1cbiAgXG4gIG1lc3NhZ2VzOiBDaGF0Q29tcGxldGlvbk1lc3NhZ2VQYXJhbVtdID0gW1xuICAgIHsgcm9sZTogJ3N5c3RlbScgYXMgY29uc3QsIGNvbnRlbnQ6ICcnIH0sXG4gIF07XG5cbiAgcmVzdWx0czogYW55W10gPSBbXTtcblxuICBnZXQgdG9vbHMoKSB7XG4gICAgcmV0dXJuIGdldFRvb2xzKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIGdldEFpU3lzdGVtQ29uZmlnKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRpb24odG9vbHM6IGFueVtdID0gdGhpcy50b29scykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCB0aGlzLm9wZW5haS5jaGF0LmNvbXBsZXRpb25zLmNyZWF0ZSh7XG4gICAgICBtb2RlbDogdGhpcy5jb25maWcubW9kZWwhLFxuICAgICAgbWVzc2FnZXM6IHRoaXMubWVzc2FnZXMsXG4gICAgICB0b29scyxcbiAgICB9KTtcbiAgICBmb3IgKGNvbnN0IGNhbGwgb2YgbWVzc2FnZS5jaG9pY2VzPy5bMF0/Lm1lc3NhZ2U/LnRvb2xfY2FsbHMgPz8gW10pIHtcbiAgICAgIGlmIChjYWxsLnR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgZnVuYyA9ICh0aGlzIGFzIGFueSlbY2FsbC5mdW5jdGlvbi5uYW1lXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyhKU09OLnBhcnNlKGNhbGwuZnVuY3Rpb24uYXJndW1lbnRzKSk7XG4gICAgICAgIHRoaXMucmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZTxUPWFueT4obWVzc2FnZTogc3RyaW5nLCBvcHRpb25zOiB7dG9vbHM/OiBhbnlbXX0gPSB7fSk6IFByb21pc2U8VD4ge1xuICAgIHRoaXMubWVzc2FnZXMucHVzaCh7cm9sZTogJ3VzZXInLCBjb250ZW50OiBtZXNzYWdlfSk7XG4gICAgYXdhaXQgdGhpcy5jb21wbGV0aW9uKG9wdGlvbnMudG9vbHMpO1xuICAgIHJldHVybiB0aGlzLnJlc3VsdHMuYXQoLTEpIGFzIGFueTtcbiAgfVxufVxuXG4iXX0=","import { Injectable } from \"@angular/core\";\nimport { LOCAL_STORAGE } from '@nx-ddd/any-func/adapters/local-storage';\nimport CryptoJS from 'crypto-js';\nimport * as i0 from \"@angular/core\";\nexport class CacheAdapter {\n localStorage = LOCAL_STORAGE.inject();\n async get(keyOrObj) {\n const key = this.makeKey(keyOrObj);\n return this.parseJson(this.localStorage.getItem(key));\n }\n async set(keyOrObj, value) {\n const key = this.makeKey(keyOrObj);\n this.localStorage.setItem(key, this.makeJson(value));\n }\n async call(props, callback) {\n const key = this.makeKey(props);\n let value = await this.get(key);\n if (value)\n return value;\n value = await callback(props);\n await this.set(key, value);\n return value;\n }\n makeKey(keyOrObj) {\n const value = typeof keyOrObj === 'string' ? keyOrObj : JSON.stringify(keyOrObj);\n return CryptoJS.SHA256(value).toString();\n }\n makeJson(valueOrObj) {\n return JSON.stringify(valueOrObj);\n }\n parseJson(value) {\n return JSON.parse(value);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CacheAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CacheAdapter });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CacheAdapter, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9pbXBsL2FkYXB0ZXJzL2NhY2hlL2NhY2hlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDOztBQUdqQyxNQUFNLE9BQU8sWUFBWTtJQUNiLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFaEQsS0FBSyxDQUFDLEdBQUcsQ0FBSSxRQUF5QjtRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBYSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQXlCLEVBQUUsS0FBVTtRQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQWlDLEtBQVEsRUFBRSxRQUFrQztRQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFUyxPQUFPLENBQUMsUUFBeUI7UUFDekMsTUFBTSxLQUFLLEdBQUcsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakYsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFUyxRQUFRLENBQUMsVUFBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO3VHQWpDVSxZQUFZOzJHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExPQ0FMX1NUT1JBR0UgfSBmcm9tICdAbngtZGRkL2FueS1mdW5jL2FkYXB0ZXJzL2xvY2FsLXN0b3JhZ2UnO1xuaW1wb3J0IENyeXB0b0pTIGZyb20gJ2NyeXB0by1qcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZUFkYXB0ZXIge1xuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlID0gTE9DQUxfU1RPUkFHRS5pbmplY3QoKTtcblxuICBhc3luYyBnZXQ8VD4oa2V5T3JPYmo6IHN0cmluZyB8IG9iamVjdCk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkoa2V5T3JPYmopO1xuICAgIHJldHVybiB0aGlzLnBhcnNlSnNvbih0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpIGFzIFQgfCBudWxsO1xuICB9XG5cbiAgYXN5bmMgc2V0KGtleU9yT2JqOiBzdHJpbmcgfCBvYmplY3QsIHZhbHVlOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkoa2V5T3JPYmopO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLm1ha2VKc29uKHZhbHVlKSk7XG4gIH1cblxuICBhc3luYyBjYWxsPFAgZXh0ZW5kcyAoc3RyaW5nIHwgb2JqZWN0KSwgVD4ocHJvcHM6IFAsIGNhbGxiYWNrOiAocHJvcHM6IFApID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkocHJvcHMpO1xuICAgIGxldCB2YWx1ZSA9IGF3YWl0IHRoaXMuZ2V0PFQ+KGtleSk7XG4gICAgaWYgKHZhbHVlKSByZXR1cm4gdmFsdWU7XG4gICAgdmFsdWUgPSBhd2FpdCBjYWxsYmFjayhwcm9wcyk7XG4gICAgYXdhaXQgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuIHZhbHVlOyBcbiAgfVxuXG4gIHByb3RlY3RlZCBtYWtlS2V5KGtleU9yT2JqOiBzdHJpbmcgfCBvYmplY3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIGtleU9yT2JqID09PSAnc3RyaW5nJyA/IGtleU9yT2JqIDogSlNPTi5zdHJpbmdpZnkoa2V5T3JPYmopO1xuICAgIHJldHVybiBDcnlwdG9KUy5TSEEyNTYodmFsdWUpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFrZUpzb24odmFsdWVPck9iajogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWVPck9iaik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VKc29uKHZhbHVlOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgfVxufVxuIl19","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { injectOpenAiService } from '@nx-ddd/common/infrastructure/externals/openai';\nimport { provideOpenaiService } from '@nx-ddd/common/infrastructure/externals/openai/impl';\nimport { catchError, lastValueFrom, map, of, retry, switchMap, tap } from 'rxjs';\nimport pLimit from 'p-limit';\nimport { ZodSchema } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { buildFunctionTool } from '../agent';\nimport { targetConstructorToSchema } from '../impl/json-schema';\nimport { CacheAdapter } from '../impl/adapters/cache';\nimport { ValidatorAdapter } from '@nx-ddd/any-func/adapters/validator';\nimport * as i0 from \"@angular/core\";\nexport const ANY_FUNC_SERVICE = new InjectionToken('[@nx-ddd/any-func] AnyFuncService');\nexport function injectAnyFunc() {\n return inject(ANY_FUNC_SERVICE, { optional: true }) ?? {};\n}\nfunction isBrowserFile(obj) {\n return typeof File !== 'undefined' && obj instanceof File;\n}\nconst ANY_FUNC_CONFIG = new InjectionToken('[@nx-ddd/any-func] AnyFuncConfig');\nexport function provideAnyFunc(useFactory) {\n const config = useFactory();\n return [\n { provide: ANY_FUNC_SERVICE, useClass: AnyFuncService },\n { provide: ANY_FUNC_CONFIG, useFactory },\n CacheAdapter,\n provideOpenaiService(() => ({ apiKey: config.openaiApiKey, dangerouslyAllowBrowser: config.dangerouslyAllowBrowser })),\n ];\n}\nclass OpenAiMessageHelper {\n static async imageToBase64(imageFile) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result;\n resolve(base64String.split(',')[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(imageFile);\n });\n }\n static async buildFilesMessage(files) {\n return await Promise.all(files.map(async (file) => ({\n type: 'image_url',\n image_url: { url: `data:image/jpeg;base64,${await this.imageToBase64(file)}` },\n })));\n }\n}\nexport class AnyFuncService {\n openai = injectOpenAiService();\n config = inject(ANY_FUNC_CONFIG, { optional: true }) ?? { debug: false };\n cache = inject(CacheAdapter);\n validator = inject(ValidatorAdapter);\n /** @deprecated use callByJsonSchema instead */\n async jsonSchema(_input, jsonSchema, options = {}) {\n return this.callByJsonSchema(_input, jsonSchema, options);\n }\n async callByJsonSchema(_input, jsonSchema, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, validator = (data) => this.validator.validate(jsonSchema, data), } = {}) {\n for (const spec of specs) {\n const errors = await validator(spec.output);\n if (errors.length > 0) {\n throw new Error(JSON.stringify(errors, null, 2));\n }\n }\n const content = await this.parseInput(_input);\n const sortedSpecs = embeddings ? await this.sort(specs, embeddings, _input) : specs;\n const messages = [\n { role: 'system', content: instructions },\n ...(await this.buildChatMessages(sortedSpecs.slice(0, sample).reverse())),\n { role: 'user', content },\n ];\n return lastValueFrom(of(null).pipe(map(() => messages), switchMap(() => this.complete(_input, jsonSchema, messages, {\n model,\n sample,\n temperature,\n })), tap(message => messages.push(message)), switchMap(async (message) => {\n const toolCall = message.tool_calls[0];\n if (toolCall.type !== 'function') {\n throw new Error('Unexpected tool call type');\n }\n const output = JSON.parse(toolCall.function.arguments);\n console.debug('[AnyFuncService#complete] output:', output);\n const errors = await validator(output);\n console.debug('[AnyFuncService#complete] errors:', errors);\n if (errors.length > 0) {\n messages.push({\n role: 'tool',\n content: JSON.stringify(errors),\n tool_call_id: message.tool_calls[0].id,\n });\n if (this.config.debug) {\n console.debug('messages', JSON.stringify(messages, null, 2));\n }\n throw new Error(JSON.stringify(errors, null, 2));\n }\n else {\n messages.push({\n role: 'tool',\n content: JSON.stringify(output),\n tool_call_id: message.tool_calls[0].id,\n });\n if (this.config.debug) {\n console.debug('messages', JSON.stringify(messages, null, 2));\n }\n }\n return output;\n }), catchError((error) => {\n console.error(error);\n throw error;\n }), retry(maxRetry)));\n // debugPrice(model, res.usage);\n }\n async callByZod(_input, zod, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, validator = (data) => this.validator.validate(zodToJsonSchema(zod, { $refStrategy: 'none' }), data), } = {}) {\n return this.jsonSchema(_input, zodToJsonSchema(zod, { $refStrategy: 'none' }), {\n instructions,\n model,\n specs,\n embeddings,\n sample,\n temperature,\n maxRetry,\n validator,\n });\n }\n async callByClassValidator(_input, args, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, validator = (data) => this.validator.validate(targetConstructorToSchema(args), data), } = {}) {\n const parameters = targetConstructorToSchema(args);\n console.debug('[AnyFuncService#call] parameters:', parameters);\n return this.jsonSchema(_input, parameters, {\n instructions,\n model,\n specs,\n embeddings,\n sample,\n temperature,\n maxRetry,\n validator,\n });\n }\n async call(_input, args, params = {}) {\n if (args instanceof ZodSchema) {\n return this.callByZod(_input, args, params);\n }\n // class validatorか判定\n if (args instanceof Function) {\n return this.callByClassValidator(_input, args, params);\n }\n if (typeof args === 'object' && args !== null && 'type' in args && args.type === 'object') {\n return this.callByJsonSchema(_input, args, params);\n }\n throw new Error('Invalid args type');\n }\n async complete(_input, jsonSchema, messages, { model = 'gpt-4o', temperature = 0, } = {}) {\n const tool = buildFunctionTool({ name: 'function', description: '', parameters: jsonSchema });\n const props = {\n model,\n messages,\n tools: [tool],\n tool_choice: {\n type: 'function',\n function: { name: 'function' }\n },\n temperature,\n };\n const res = await this.cache.call(props, props => this.openai.chat.completions.create(props));\n return res.choices[0].message;\n }\n async buildChatMessages(specs) {\n const messages = await Promise.all(specs.map(async ({ input, output }) => {\n const parsedInput = await this.parseInput(input);\n return [\n { role: 'user', content: parsedInput },\n {\n role: 'assistant',\n content: null,\n tool_calls: [\n {\n id: 'call-example',\n type: 'function',\n function: {\n name: 'function',\n arguments: JSON.stringify(output),\n }\n }\n ],\n },\n { role: 'tool', content: 'success', tool_call_id: 'call-example' },\n ];\n }));\n return messages.flat();\n }\n async getEmbeddings(item, accessor) {\n const props = { item, model: 'text-embedding-3-small' };\n let embedding = await this.cache.get(props);\n if (embedding)\n return embedding;\n embedding = await this.openai.embeddings.create({\n model: props.model,\n input: accessor(item),\n }).then(res => res.data[0].embedding);\n await this.cache.set(props, embedding);\n return embedding;\n }\n async sort(items, accessor, target) {\n const dist = (a, b) => Math.sqrt(a.reduce((acc, v, i) => acc + (v - b[i]) ** 2, 0));\n const targetEmbeddings = await this.getEmbeddings(target, s => s);\n const limit = pLimit(10);\n const embeddings = await Promise.all(items.map(item => limit(() => this.getEmbeddings(item, accessor))));\n const items_ = items.map((item, i) => ({\n item,\n embedding: embeddings[i],\n distance: dist(embeddings[i], targetEmbeddings),\n }));\n const sorted = items_.sort((a, b) => a.distance - b.distance);\n return sorted.map(({ item }) => item);\n }\n async parseInput(input) {\n if (isBrowserFile(input)) {\n return await OpenAiMessageHelper.buildFilesMessage([input]);\n }\n else if (input === 'string') {\n return input;\n }\n else {\n return JSON.stringify(input);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AnyFuncService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AnyFuncService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AnyFuncService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWZ1bmMuc2VydmljZS5pbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9hbnktZnVuYy9zcmMvbGliL2FueS1mdW5jL2FueS1mdW5jLnNlcnZpY2UuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFHN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNoQyxPQUFPLGVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUd2RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsbUNBQW1DLENBQUMsQ0FBQztBQUV4RyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEVBQW9CLENBQUM7QUFDNUUsQ0FBQztBQUdELFNBQVMsYUFBYSxDQUFDLEdBQVk7SUFDakMsT0FBTyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksR0FBRyxZQUFZLElBQUksQ0FBQztBQUM1RCxDQUFDO0FBa0JELE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFnQixrQ0FBa0MsQ0FBQyxDQUFDO0FBRTlGLE1BQU0sVUFBVSxjQUFjLENBQUMsVUFBZ0M7SUFDN0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDNUIsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7UUFDdkQsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRTtRQUN4QyxZQUFZO1FBQ1osb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7S0FDdkgsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLG1CQUFtQjtJQUN2QixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFlO1FBQ3hDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQWdCLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDeEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDMUMsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELElBQUksRUFBRSxXQUFvQjtZQUMxQixTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsMEJBQTBCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1NBQy9FLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0Y7QUFHRCxNQUFNLE9BQU8sY0FBYztJQUNOLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEYsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QixTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFL0MsK0NBQStDO0lBQy9DLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBVyxFQUFFLFVBQThCLEVBQUUsVUFBaUMsRUFBRTtRQUMvRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBVyxFQUFFLFVBQThCLEVBQUUsRUFDbEUsWUFBWSxHQUFHLEVBQUUsRUFDakIsS0FBSyxHQUFHLFFBQVEsRUFDaEIsS0FBSyxHQUFHLEVBQUUsRUFDVixVQUFVLEdBQUcsS0FBSyxFQUNsQixNQUFNLEdBQUcsQ0FBQyxFQUNWLFdBQVcsR0FBRyxDQUFDLEVBQ2YsUUFBUSxHQUFHLENBQUMsRUFDWixTQUFTLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFDM0MsRUFBRTtRQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BGLE1BQU0sUUFBUSxHQUFpQztZQUM3QyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtZQUN6QyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6RSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO1NBQzFCLENBQUM7UUFDRixPQUFPLGFBQWEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNoQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQ25CLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO1lBQzFELEtBQUs7WUFDTCxNQUFNO1lBQ04sV0FBVztTQUNaLENBQUMsQ0FBQyxFQUNILEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDdkMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQy9CLFlBQVksRUFBRSxPQUFPLENBQUMsVUFBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUM5RCxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQ1osSUFBSSxFQUFFLE1BQU07b0JBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO29CQUMvQixZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN4QyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDOUQsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUNoQixDQUFDLENBQUM7UUFDSCxnQ0FBZ0M7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQU8sTUFBUyxFQUFFLEdBQWlCLEVBQUUsRUFDbEQsWUFBWSxHQUFHLEVBQUUsRUFDakIsS0FBSyxHQUFHLFFBQVEsRUFDaEIsS0FBSyxHQUFHLEVBQUUsRUFDVixVQUFVLEdBQUcsS0FBSyxFQUNsQixNQUFNLEdBQUcsQ0FBQyxFQUNWLFdBQVcsR0FBRyxDQUFDLEVBQ2YsUUFBUSxHQUFHLENBQUMsRUFDWixTQUFTLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFDMUYsRUFBRTtRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNwRixZQUFZO1lBQ1osS0FBSztZQUNMLEtBQUs7WUFDTCxVQUFVO1lBQ1YsTUFBTTtZQUNOLFdBQVc7WUFDWCxRQUFRO1lBQ1IsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQU8sTUFBUyxFQUFFLElBQWlCLEVBQUUsRUFDN0QsWUFBWSxHQUFHLEVBQUUsRUFDakIsS0FBSyxHQUFHLFFBQVEsRUFDaEIsS0FBSyxHQUFHLEVBQUUsRUFDVixVQUFVLEdBQUcsS0FBSyxFQUNsQixNQUFNLEdBQUcsQ0FBQyxFQUNWLFdBQVcsR0FBRyxDQUFDLEVBQ2YsUUFBUSxHQUFHLENBQUMsRUFDWixTQUFTLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUNwRSxFQUFFO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBdUIsQ0FBQztRQUN6RSxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFO1lBQ3pDLFlBQVk7WUFDWixLQUFLO1lBQ0wsS0FBSztZQUNMLFVBQVU7WUFDVixNQUFNO1lBQ04sV0FBVztZQUNYLFFBQVE7WUFDUixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQU8sTUFBUyxFQUFFLElBQTZDLEVBQUUsU0FBNEIsRUFBRTtRQUN2RyxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QscUJBQXFCO1FBQ3JCLElBQUksSUFBSSxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsS0FBSyxDQUFDLFFBQVEsQ0FDdEIsTUFBVyxFQUNYLFVBQThCLEVBQzlCLFFBQXNDLEVBQ3RDLEVBQ0UsS0FBSyxHQUFHLFFBQVEsRUFDaEIsV0FBVyxHQUFHLENBQUMsTUFDa0MsRUFBRTtRQUdyRCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztRQUM1RixNQUFNLEtBQUssR0FBRztZQUNaLEtBQUs7WUFDTCxRQUFRO1lBQ1IsS0FBSyxFQUFFLENBQUUsSUFBSSxDQUFFO1lBQ2YsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxVQUFtQjtnQkFDekIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTthQUMvQjtZQUNELFdBQVc7U0FDWixDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUYsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBRy9CO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDdkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELE9BQXFDO2dCQUNuQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTtnQkFDdEM7b0JBQ0UsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLE9BQU8sRUFBRSxJQUFJO29CQUNiLFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxFQUFFLEVBQUUsY0FBYzs0QkFDbEIsSUFBSSxFQUFFLFVBQVU7NEJBQ2hCLFFBQVEsRUFBRTtnQ0FDUixJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDOzZCQUNsQzt5QkFDRjtxQkFDRjtpQkFDRjtnQkFDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFO2FBQ25FLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ0gsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFxRCxDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFJLElBQU8sRUFBRSxRQUE2QjtRQUMzRCxNQUFNLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFXLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUksS0FBVSxFQUFFLFFBQTZCLEVBQUUsTUFBYztRQUNyRSxNQUFNLElBQUksR0FBRyxDQUFDLENBQVcsRUFBRSxDQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEcsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUk7WUFDSixTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztTQUNoRCxDQUFDLENBQUMsQ0FBQztRQUNKLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFVO1FBQ2pDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxNQUFNLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO2FBQU0sSUFBSSxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQzt1R0F0T1UsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0T3BlbkFpU2VydmljZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy9vcGVuYWknO1xuaW1wb3J0IHsgcHJvdmlkZU9wZW5haVNlcnZpY2UgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvb3BlbmFpL2ltcGwnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbGFzdFZhbHVlRnJvbSwgbWFwLCBvZiwgcmV0cnksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgcExpbWl0IGZyb20gJ3AtbGltaXQnO1xuaW1wb3J0IHR5cGUgeyBDaGF0Q29tcGxldGlvbk1lc3NhZ2VQYXJhbSwgRnVuY3Rpb25QYXJhbWV0ZXJzIH0gZnJvbSAnb3BlbmFpL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBDbGllbnRPcHRpb25zIH0gZnJvbSAnb3BlbmFpJztcbmltcG9ydCB7IFpvZFNjaGVtYSB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgem9kVG9Kc29uU2NoZW1hIGZyb20gJ3pvZC10by1qc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBidWlsZEZ1bmN0aW9uVG9vbCB9IGZyb20gJy4uL2FnZW50JztcbmltcG9ydCB7IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEgfSBmcm9tICcuLi9pbXBsL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IENhY2hlQWRhcHRlciB9IGZyb20gJy4uL2ltcGwvYWRhcHRlcnMvY2FjaGUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yQWRhcHRlciB9IGZyb20gJ0BueC1kZGQvYW55LWZ1bmMvYWRhcHRlcnMvdmFsaWRhdG9yJztcbmltcG9ydCB7IEpzb25TY2hlbWEgfSBmcm9tICdqc29uLXNjaGVtYS1saWJyYXJ5JztcblxuZXhwb3J0IGNvbnN0IEFOWV9GVU5DX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48QW55RnVuY1NlcnZpY2U+KCdbQG54LWRkZC9hbnktZnVuY10gQW55RnVuY1NlcnZpY2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFueUZ1bmMoKTogQW55RnVuY1NlcnZpY2Uge1xuICByZXR1cm4gaW5qZWN0KEFOWV9GVU5DX1NFUlZJQ0UsIHtvcHRpb25hbDogdHJ1ZX0pID8/IHt9IGFzIEFueUZ1bmNTZXJ2aWNlO1xufVxuXG5cbmZ1bmN0aW9uIGlzQnJvd3NlckZpbGUob2JqOiB1bmtub3duKTogb2JqIGlzIEZpbGUge1xuICByZXR1cm4gdHlwZW9mIEZpbGUgIT09ICd1bmRlZmluZWQnICYmIG9iaiBpbnN0YW5jZW9mIEZpbGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbE9wdGlvbnM8SSwgTywgUyBleHRlbmRzIHsgaW5wdXQ6IEksIG91dHB1dDogTyB9ID0geyBpbnB1dDogSSwgb3V0cHV0OiBPIH0+IHtcbiAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nLFxuICBtb2RlbD86IHN0cmluZyxcbiAgc3BlY3M/OiBTW10sXG4gIGVtYmVkZGluZ3M/OiBmYWxzZSB8ICgoc3BlYzogUykgPT4gc3RyaW5nKSxcbiAgc2FtcGxlPzogbnVtYmVyLFxuICB0ZW1wZXJhdHVyZT86IG51bWJlcixcbiAgbWF4UmV0cnk/OiBudW1iZXIsXG4gIHZhbGlkYXRvcj86IChvdXRwdXQ6IE8pID0+IFByb21pc2U8YW55Pixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbnlGdW5jQ29uZmlnIGV4dGVuZHMgQ2xpZW50T3B0aW9ucyB7XG4gIGRlYnVnOiBib29sZWFuO1xuICBvcGVuYWlBcGlLZXk6IHN0cmluZztcbn1cblxuY29uc3QgQU5ZX0ZVTkNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFueUZ1bmNDb25maWc+KCdbQG54LWRkZC9hbnktZnVuY10gQW55RnVuY0NvbmZpZycpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFueUZ1bmModXNlRmFjdG9yeT86ICgpID0+IEFueUZ1bmNDb25maWcpIHtcbiAgY29uc3QgY29uZmlnID0gdXNlRmFjdG9yeSgpO1xuICByZXR1cm4gW1xuICAgIHsgcHJvdmlkZTogQU5ZX0ZVTkNfU0VSVklDRSwgdXNlQ2xhc3M6IEFueUZ1bmNTZXJ2aWNlIH0sXG4gICAgeyBwcm92aWRlOiBBTllfRlVOQ19DT05GSUcsIHVzZUZhY3RvcnkgfSxcbiAgICBDYWNoZUFkYXB0ZXIsXG4gICAgcHJvdmlkZU9wZW5haVNlcnZpY2UoKCkgPT4gKHsgYXBpS2V5OiBjb25maWcub3BlbmFpQXBpS2V5LCBkYW5nZXJvdXNseUFsbG93QnJvd3NlcjogY29uZmlnLmRhbmdlcm91c2x5QWxsb3dCcm93c2VyIH0pKSxcbiAgXVxufVxuXG5jbGFzcyBPcGVuQWlNZXNzYWdlSGVscGVyIHtcbiAgc3RhdGljIGFzeW5jIGltYWdlVG9CYXNlNjQoaW1hZ2VGaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2U2NFN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICByZXNvbHZlKGJhc2U2NFN0cmluZy5zcGxpdCgnLCcpWzFdKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGltYWdlRmlsZSk7XG4gICAgfSk7XG4gIH1cbiAgICBcbiAgc3RhdGljIGFzeW5jIGJ1aWxkRmlsZXNNZXNzYWdlKGZpbGVzOiBGaWxlW10pOiBQcm9taXNlPENoYXRDb21wbGV0aW9uTWVzc2FnZVBhcmFtWydjb250ZW50J10+IHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiAoe1xuICAgICAgdHlwZTogJ2ltYWdlX3VybCcgYXMgY29uc3QsXG4gICAgICBpbWFnZV91cmw6IHsgdXJsOiBgZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwke2F3YWl0IHRoaXMuaW1hZ2VUb0Jhc2U2NChmaWxlKX1gIH0sXG4gICAgfSkpKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW55RnVuY1NlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlbmFpID0gaW5qZWN0T3BlbkFpU2VydmljZSgpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEFOWV9GVU5DX0NPTkZJRywge29wdGlvbmFsOiB0cnVlfSkgPz8geyBkZWJ1ZzogZmFsc2UgfTtcbiAgcHJvdGVjdGVkIGNhY2hlID0gaW5qZWN0KENhY2hlQWRhcHRlcik7XG4gIHByb3RlY3RlZCB2YWxpZGF0b3IgPSBpbmplY3QoVmFsaWRhdG9yQWRhcHRlcik7XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBjYWxsQnlKc29uU2NoZW1hIGluc3RlYWQgKi9cbiAgYXN5bmMganNvblNjaGVtYShfaW5wdXQ6IGFueSwganNvblNjaGVtYTogRnVuY3Rpb25QYXJhbWV0ZXJzLCBvcHRpb25zOiBDYWxsT3B0aW9uczxhbnksIGFueT4gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbEJ5SnNvblNjaGVtYShfaW5wdXQsIGpzb25TY2hlbWEsIG9wdGlvbnMpO1xuICB9XG5cbiAgYXN5bmMgY2FsbEJ5SnNvblNjaGVtYShfaW5wdXQ6IGFueSwganNvblNjaGVtYTogRnVuY3Rpb25QYXJhbWV0ZXJzLCB7XG4gICAgaW5zdHJ1Y3Rpb25zID0gJycsXG4gICAgbW9kZWwgPSAnZ3B0LTRvJyxcbiAgICBzcGVjcyA9IFtdLFxuICAgIGVtYmVkZGluZ3MgPSBmYWxzZSxcbiAgICBzYW1wbGUgPSAzLFxuICAgIHRlbXBlcmF0dXJlID0gMCxcbiAgICBtYXhSZXRyeSA9IDMsXG4gICAgdmFsaWRhdG9yID0gKGRhdGE6IGFueSkgPT4gdGhpcy52YWxpZGF0b3IudmFsaWRhdGUoanNvblNjaGVtYSwgZGF0YSksXG4gIH06IENhbGxPcHRpb25zPGFueSwgYW55PiA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBmb3IgKGNvbnN0IHNwZWMgb2Ygc3BlY3MpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IGF3YWl0IHZhbGlkYXRvcihzcGVjLm91dHB1dCk7XG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KGVycm9ycywgbnVsbCwgMikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLnBhcnNlSW5wdXQoX2lucHV0KTtcbiAgICBjb25zdCBzb3J0ZWRTcGVjcyA9IGVtYmVkZGluZ3MgPyBhd2FpdCB0aGlzLnNvcnQoc3BlY3MsIGVtYmVkZGluZ3MsIF9pbnB1dCkgOiBzcGVjcztcbiAgICBjb25zdCBtZXNzYWdlczogQ2hhdENvbXBsZXRpb25NZXNzYWdlUGFyYW1bXSA9IFtcbiAgICAgIHsgcm9sZTogJ3N5c3RlbScsIGNvbnRlbnQ6IGluc3RydWN0aW9ucyB9LFxuICAgICAgLi4uKGF3YWl0IHRoaXMuYnVpbGRDaGF0TWVzc2FnZXMoc29ydGVkU3BlY3Muc2xpY2UoMCwgc2FtcGxlKS5yZXZlcnNlKCkpKSxcbiAgICAgIHsgcm9sZTogJ3VzZXInLCBjb250ZW50IH0sXG4gICAgXTtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShvZihudWxsKS5waXBlKFxuICAgICAgbWFwKCgpID0+IG1lc3NhZ2VzKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNvbXBsZXRlKF9pbnB1dCwganNvblNjaGVtYSwgbWVzc2FnZXMsIHtcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIHNhbXBsZSxcbiAgICAgICAgdGVtcGVyYXR1cmUsXG4gICAgICB9KSksXG4gICAgICB0YXAobWVzc2FnZSA9PiAgbWVzc2FnZXMucHVzaChtZXNzYWdlKSksXG4gICAgICBzd2l0Y2hNYXAoYXN5bmMgKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3QgdG9vbENhbGwgPSBtZXNzYWdlLnRvb2xfY2FsbHMhWzBdO1xuICAgICAgICBpZiAodG9vbENhbGwudHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCB0b29sIGNhbGwgdHlwZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IEpTT04ucGFyc2UodG9vbENhbGwuZnVuY3Rpb24uYXJndW1lbnRzKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW0FueUZ1bmNTZXJ2aWNlI2NvbXBsZXRlXSBvdXRwdXQ6Jywgb3V0cHV0KTtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gYXdhaXQgdmFsaWRhdG9yKG91dHB1dCk7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoJ1tBbnlGdW5jU2VydmljZSNjb21wbGV0ZV0gZXJyb3JzOicsIGVycm9ycyk7XG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgcm9sZTogJ3Rvb2wnLFxuICAgICAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoZXJyb3JzKSxcbiAgICAgICAgICAgIHRvb2xfY2FsbF9pZDogbWVzc2FnZS50b29sX2NhbGxzIVswXS5pZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodGhpcy5jb25maWcuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ21lc3NhZ2VzJywgSlNPTi5zdHJpbmdpZnkobWVzc2FnZXMsIG51bGwsIDIpKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyb3JzLCBudWxsLCAyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgICByb2xlOiAndG9vbCcsXG4gICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShvdXRwdXQpLFxuICAgICAgICAgICAgdG9vbF9jYWxsX2lkOiBtZXNzYWdlLnRvb2xfY2FsbHMhWzBdLmlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnbWVzc2FnZXMnLCBKU09OLnN0cmluZ2lmeShtZXNzYWdlcywgbnVsbCwgMikpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICAgcmV0cnkobWF4UmV0cnkpLFxuICAgICkpO1xuICAgIC8vIGRlYnVnUHJpY2UobW9kZWwsIHJlcy51c2FnZSk7XG4gIH1cblxuICBhc3luYyBjYWxsQnlab2Q8SSwgTz4oX2lucHV0OiBJLCB6b2Q6IFpvZFNjaGVtYTxPPiwge1xuICAgIGluc3RydWN0aW9ucyA9ICcnLFxuICAgIG1vZGVsID0gJ2dwdC00bycsXG4gICAgc3BlY3MgPSBbXSxcbiAgICBlbWJlZGRpbmdzID0gZmFsc2UsXG4gICAgc2FtcGxlID0gMyxcbiAgICB0ZW1wZXJhdHVyZSA9IDAsXG4gICAgbWF4UmV0cnkgPSAzLFxuICAgIHZhbGlkYXRvciA9IChkYXRhOiBhbnkpID0+IHRoaXMudmFsaWRhdG9yLnZhbGlkYXRlKHpvZFRvSnNvblNjaGVtYSh6b2QgYXMgYW55LCB7ICRyZWZTdHJhdGVneTogJ25vbmUnIH0pLCBkYXRhKSxcbiAgfTogQ2FsbE9wdGlvbnM8SSwgTz4gPSB7fSk6IFByb21pc2U8Tz4ge1xuICAgIHJldHVybiB0aGlzLmpzb25TY2hlbWEoX2lucHV0LCB6b2RUb0pzb25TY2hlbWEoem9kIGFzIGFueSwgeyAkcmVmU3RyYXRlZ3k6ICdub25lJyB9KSwge1xuICAgICAgaW5zdHJ1Y3Rpb25zLFxuICAgICAgbW9kZWwsXG4gICAgICBzcGVjcyxcbiAgICAgIGVtYmVkZGluZ3MsXG4gICAgICBzYW1wbGUsXG4gICAgICB0ZW1wZXJhdHVyZSxcbiAgICAgIG1heFJldHJ5LFxuICAgICAgdmFsaWRhdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY2FsbEJ5Q2xhc3NWYWxpZGF0b3I8SSwgTz4oX2lucHV0OiBJLCBhcmdzOiB7bmV3ICgpOiBPfSwge1xuICAgIGluc3RydWN0aW9ucyA9ICcnLFxuICAgIG1vZGVsID0gJ2dwdC00bycsXG4gICAgc3BlY3MgPSBbXSxcbiAgICBlbWJlZGRpbmdzID0gZmFsc2UsXG4gICAgc2FtcGxlID0gMyxcbiAgICB0ZW1wZXJhdHVyZSA9IDAsXG4gICAgbWF4UmV0cnkgPSAzLFxuICAgIHZhbGlkYXRvciA9IChkYXRhOiBhbnkpID0+IHRoaXMudmFsaWRhdG9yLnZhbGlkYXRlKHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoYXJncyksIGRhdGEpLFxuICB9OiBDYWxsT3B0aW9uczxJLCBPPiA9IHt9KTogUHJvbWlzZTxPPiB7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoYXJncykgYXMgRnVuY3Rpb25QYXJhbWV0ZXJzO1xuICAgIGNvbnNvbGUuZGVidWcoJ1tBbnlGdW5jU2VydmljZSNjYWxsXSBwYXJhbWV0ZXJzOicsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiB0aGlzLmpzb25TY2hlbWEoX2lucHV0LCBwYXJhbWV0ZXJzLCB7XG4gICAgICBpbnN0cnVjdGlvbnMsXG4gICAgICBtb2RlbCxcbiAgICAgIHNwZWNzLFxuICAgICAgZW1iZWRkaW5ncyxcbiAgICAgIHNhbXBsZSxcbiAgICAgIHRlbXBlcmF0dXJlLFxuICAgICAgbWF4UmV0cnksXG4gICAgICB2YWxpZGF0b3IsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjYWxsPEksIE8+KF9pbnB1dDogSSwgYXJnczoge25ldyAoKTogT30gfCBab2RTY2hlbWE8Tz4gfCBKc29uU2NoZW1hLCBwYXJhbXM6IENhbGxPcHRpb25zPEksIE8+ID0ge30pOiBQcm9taXNlPE8+IHtcbiAgICBpZiAoYXJncyBpbnN0YW5jZW9mIFpvZFNjaGVtYSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsbEJ5Wm9kKF9pbnB1dCwgYXJncywgcGFyYW1zKTtcbiAgICB9XG4gICAgLy8gY2xhc3MgdmFsaWRhdG9y44GL5Yik5a6aXG4gICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsbEJ5Q2xhc3NWYWxpZGF0b3IoX2lucHV0LCBhcmdzLCBwYXJhbXMpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnICYmIGFyZ3MgIT09IG51bGwgJiYgJ3R5cGUnIGluIGFyZ3MgJiYgYXJncy50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsbEJ5SnNvblNjaGVtYShfaW5wdXQsIGFyZ3MsIHBhcmFtcyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhcmdzIHR5cGUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb21wbGV0ZTxJLCBPPihcbiAgICBfaW5wdXQ6IGFueSxcbiAgICBqc29uU2NoZW1hOiBGdW5jdGlvblBhcmFtZXRlcnMsXG4gICAgbWVzc2FnZXM6IENoYXRDb21wbGV0aW9uTWVzc2FnZVBhcmFtW10sXG4gICAge1xuICAgICAgbW9kZWwgPSAnZ3B0LTRvJyxcbiAgICAgIHRlbXBlcmF0dXJlID0gMCxcbiAgICB9OiBDYWxsT3B0aW9uczxJLCBPPiAmIHtmdW5jdGlvbk91dHB1dD86IG9iamVjdH0gPSB7fVxuICApIHtcbiAgICBcbiAgICBjb25zdCB0b29sID0gYnVpbGRGdW5jdGlvblRvb2woe25hbWU6ICdmdW5jdGlvbicsIGRlc2NyaXB0aW9uOiAnJywgcGFyYW1ldGVyczoganNvblNjaGVtYX0pO1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgbW9kZWwsXG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHRvb2xzOiBbIHRvb2wgXSxcbiAgICAgIHRvb2xfY2hvaWNlOiB7XG4gICAgICAgIHR5cGU6ICdmdW5jdGlvbicgYXMgY29uc3QsXG4gICAgICAgIGZ1bmN0aW9uOiB7IG5hbWU6ICdmdW5jdGlvbicgfVxuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlLFxuICAgIH07XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jYWNoZS5jYWxsKHByb3BzLCBwcm9wcyA9PiB0aGlzLm9wZW5haS5jaGF0LmNvbXBsZXRpb25zLmNyZWF0ZShwcm9wcykpO1xuICAgIHJldHVybiByZXMuY2hvaWNlc1swXS5tZXNzYWdlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkQ2hhdE1lc3NhZ2VzKHNwZWNzOiB7XG4gICAgaW5wdXQ6IGFueTtcbiAgICBvdXRwdXQ6IGFueTtcbiAgfVtdKTogUHJvbWlzZTx7cm9sZTogJ2Fzc2lzdGFudCcgfCAndXNlcicsIGNvbnRlbnQ6IHN0cmluZ31bXT4ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoc3BlY3MubWFwKGFzeW5jICh7IGlucHV0LCBvdXRwdXQgfSkgPT4ge1xuICAgICAgY29uc3QgcGFyc2VkSW5wdXQgPSBhd2FpdCB0aGlzLnBhcnNlSW5wdXQoaW5wdXQpO1xuICAgICAgcmV0dXJuIDxDaGF0Q29tcGxldGlvbk1lc3NhZ2VQYXJhbVtdPltcbiAgICAgICAgeyByb2xlOiAndXNlcicsIGNvbnRlbnQ6IHBhcnNlZElucHV0IH0sXG4gICAgICAgIHtcbiAgICAgICAgICByb2xlOiAnYXNzaXN0YW50JyxcbiAgICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICAgIHRvb2xfY2FsbHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdjYWxsLWV4YW1wbGUnLFxuICAgICAgICAgICAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgICBmdW5jdGlvbjoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICAgICAgYXJndW1lbnRzOiBKU09OLnN0cmluZ2lmeShvdXRwdXQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgeyByb2xlOiAndG9vbCcsIGNvbnRlbnQ6ICdzdWNjZXNzJywgdG9vbF9jYWxsX2lkOiAnY2FsbC1leGFtcGxlJyB9LFxuICAgICAgXTtcbiAgICB9KSlcbiAgICByZXR1cm4gbWVzc2FnZXMuZmxhdCgpIGFzIHtyb2xlOiAnYXNzaXN0YW50JyB8ICd1c2VyJywgY29udGVudDogc3RyaW5nfVtdO1xuICB9XG5cbiAgYXN5bmMgZ2V0RW1iZWRkaW5nczxUPihpdGVtOiBULCBhY2Nlc3NvcjogKGl0ZW06IFQpID0+IHN0cmluZyk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgICBjb25zdCBwcm9wcyA9IHsgaXRlbSwgbW9kZWw6ICd0ZXh0LWVtYmVkZGluZy0zLXNtYWxsJyB9O1xuICAgIGxldCBlbWJlZGRpbmcgPSBhd2FpdCB0aGlzLmNhY2hlLmdldDxudW1iZXJbXT4ocHJvcHMpO1xuICAgIGlmIChlbWJlZGRpbmcpIHJldHVybiBlbWJlZGRpbmc7XG4gICAgZW1iZWRkaW5nID0gYXdhaXQgdGhpcy5vcGVuYWkuZW1iZWRkaW5ncy5jcmVhdGUoe1xuICAgICAgbW9kZWw6IHByb3BzLm1vZGVsLFxuICAgICAgaW5wdXQ6IGFjY2Vzc29yKGl0ZW0pLFxuICAgIH0pLnRoZW4ocmVzID0+IHJlcy5kYXRhWzBdLmVtYmVkZGluZyk7XG4gICAgYXdhaXQgdGhpcy5jYWNoZS5zZXQocHJvcHMsIGVtYmVkZGluZyk7XG4gICAgcmV0dXJuIGVtYmVkZGluZztcbiAgfVxuXG4gIGFzeW5jIHNvcnQ8VD4oaXRlbXM6IFRbXSwgYWNjZXNzb3I6IChpdGVtOiBUKSA9PiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogUHJvbWlzZTxUW10+IHtcbiAgICBjb25zdCBkaXN0ID0gKGE6IG51bWJlcltdLCBiOiBudW1iZXJbXSkgPT4gTWF0aC5zcXJ0KGEucmVkdWNlKChhY2MsIHYsIGkpID0+IGFjYyArICh2IC0gYltpXSkgKiogMiwgMCkpO1xuICAgIGNvbnN0IHRhcmdldEVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmdldEVtYmVkZGluZ3ModGFyZ2V0LCBzID0+IHMpO1xuICAgIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcbiAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMubWFwKGl0ZW0gPT4gbGltaXQoKCkgPT4gdGhpcy5nZXRFbWJlZGRpbmdzKGl0ZW0sIGFjY2Vzc29yKSkpKTtcbiAgICBjb25zdCBpdGVtc18gPSBpdGVtcy5tYXAoKGl0ZW0sIGkpID0+ICh7XG4gICAgICBpdGVtLFxuICAgICAgZW1iZWRkaW5nOiBlbWJlZGRpbmdzW2ldLFxuICAgICAgZGlzdGFuY2U6IGRpc3QoZW1iZWRkaW5nc1tpXSwgdGFyZ2V0RW1iZWRkaW5ncyksXG4gICAgfSkpO1xuICAgIGNvbnN0IHNvcnRlZCA9IGl0ZW1zXy5zb3J0KChhLCBiKSA9PiBhLmRpc3RhbmNlIC0gYi5kaXN0YW5jZSk7XG4gICAgcmV0dXJuIHNvcnRlZC5tYXAoKHtpdGVtfSkgPT4gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBhcnNlSW5wdXQoaW5wdXQ6IGFueSkge1xuICAgIGlmIChpc0Jyb3dzZXJGaWxlKGlucHV0KSkge1xuICAgICAgcmV0dXJuIGF3YWl0IE9wZW5BaU1lc3NhZ2VIZWxwZXIuYnVpbGRGaWxlc01lc3NhZ2UoW2lucHV0XSk7XG4gICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGlucHV0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","// Re-export from impl to maintain backwards compatibility\nexport { ANY_FUNC_SERVICE, injectAnyFunc } from './any-func.service.impl';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWZ1bmMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9hbnktZnVuYy9hbnktZnVuYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBEQUEwRDtBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZS1leHBvcnQgZnJvbSBpbXBsIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5leHBvcnQgeyBBTllfRlVOQ19TRVJWSUNFLCBpbmplY3RBbnlGdW5jIH0gZnJvbSAnLi9hbnktZnVuYy5zZXJ2aWNlLmltcGwnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWFueS1mdW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9hbnktZnVuYy9zcmMvbGliL254LWRkZC1hbnktZnVuYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["_targetConstructorToSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-any-func.mjs","sources":["../tmp-esm2022/impl/json-schema/default-metadata-storage.js","../tmp-esm2022/impl/json-schema/json-schema.js","../tmp-esm2022/agent/agent.js","../tmp-esm2022/impl/adapters/cache/cache.adapter.js","../tmp-esm2022/any-func/any-func.service.impl.js","../tmp-esm2022/any-func/any-func.service.js","../tmp-esm2022/nx-ddd-any-func.js"],"sourcesContent":["// 環境差異を吸収するため、try-catchでdynamic importしてdefaultMetadataStorageを取得します。\nlet defaultMetadataStorage;\ntry {\n ({ defaultMetadataStorage } = require('class-transformer/cjs/storage'));\n}\ncatch {\n // Ignore error if class-transformer is not available\n}\nexport function getMetadataStorage() {\n return defaultMetadataStorage;\n}\nexport function setMetadataStorage(metadataStorage) {\n defaultMetadataStorage = metadataStorage;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1tZXRhZGF0YS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9hbnktZnVuYy9zcmMvbGliL2ltcGwvanNvbi1zY2hlbWEvZGVmYXVsdC1tZXRhZGF0YS1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNFQUFzRTtBQUN0RSxJQUFJLHNCQUFnRixDQUFDO0FBRXJGLElBQUksQ0FBQztJQUNILENBQUMsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUFDLE1BQU0sQ0FBQztJQUNQLHFEQUFxRDtBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLHNCQUFzQixDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsZUFBeUU7SUFDMUcsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnkrDlooPlt67nlbDjgpLlkLjlj47jgZnjgovjgZ/jgoHjgIF0cnktY2F0Y2jjgadkeW5hbWljIGltcG9ydOOBl+OBpmRlZmF1bHRNZXRhZGF0YVN0b3JhZ2XjgpLlj5blvpfjgZfjgb7jgZnjgIJcbmxldCBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlOiBpbXBvcnQoJ2NsYXNzLXRyYW5zZm9ybWVyL2VzbTUvc3RvcmFnZScpLk1ldGFkYXRhU3RvcmFnZTtcblxudHJ5IHtcbiAgKHsgZGVmYXVsdE1ldGFkYXRhU3RvcmFnZSB9ID0gcmVxdWlyZSgnY2xhc3MtdHJhbnNmb3JtZXIvY2pzL3N0b3JhZ2UnKSk7XG59IGNhdGNoIHtcbiAgLy8gSWdub3JlIGVycm9yIGlmIGNsYXNzLXRyYW5zZm9ybWVyIGlzIG5vdCBhdmFpbGFibGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1ldGFkYXRhU3RvcmFnZSgpIHtcbiAgcmV0dXJuIGRlZmF1bHRNZXRhZGF0YVN0b3JhZ2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNZXRhZGF0YVN0b3JhZ2UobWV0YWRhdGFTdG9yYWdlOiBpbXBvcnQoJ2NsYXNzLXRyYW5zZm9ybWVyL2VzbTUvc3RvcmFnZScpLk1ldGFkYXRhU3RvcmFnZSkge1xuICBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlID0gbWV0YWRhdGFTdG9yYWdlO1xufVxuIl19","import { ValidationTypes } from \"class-validator\";\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\";\nimport { getMetadataStorage } from \"./default-metadata-storage\";\n// import { defaultMetadataStorage } from 'c/lass-transformer/esm5/storage';\n// setMetadataStorage(defaultMetadataStorage);\nfunction getPropType(target, property) {\n return Reflect.getMetadata('design:type', target, property);\n}\nfunction targetToSchema(type, options) {\n if (typeof type === 'function') {\n if (type.prototype === String.prototype ||\n type.prototype === Symbol.prototype) {\n return { type: 'string' };\n }\n else if (type.prototype === Number.prototype) {\n return { type: 'number' };\n }\n else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' };\n }\n return targetConstructorToSchema(type, options);\n }\n}\nconst additionalConverters = {\n [ValidationTypes.NESTED_VALIDATION]: (meta, options) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(meta.target, meta.propertyName)\n : null;\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName);\n return targetToSchema(childType, options);\n }\n },\n isDayjs: (meta) => {\n return {\n type: 'string',\n format: 'date-time', // JSON Schemaで日付型を指定\n };\n },\n};\nexport function targetConstructorToSchema(target, options = {}) {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: getMetadataStorage(),\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvaW1wbC9qc29uLXNjaGVtYS9qc29uLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixJQUFJLDBCQUEwQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFHcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsNEVBQTRFO0FBRTVFLDhDQUE4QztBQUU5QyxTQUFTLFdBQVcsQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7SUFDbkQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDN0QsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixJQUFTLEVBQ1QsT0FBWTtJQUVaLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFDRSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTO1lBQ25DLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFDbkMsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUE7UUFDM0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQTtRQUMzQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO1FBQzVCLENBQUM7UUFFRCxPQUFPLHlCQUF5QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQUU7SUFDMUIsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLElBQVMsRUFBRSxPQUFZLEVBQUUsRUFBRTtRQUMvRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsK0JBQStCO2dCQUN0RCxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLGdCQUFnQixDQUN0RCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxZQUFZLENBQ2xCO2dCQUNILENBQUMsQ0FBQyxJQUFJLENBQUE7WUFDUixNQUFNLFNBQVMsR0FBRyxRQUFRO2dCQUN4QixDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtnQkFDekIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDekQsT0FBTyxjQUFjLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBUyxFQUFlLEVBQUU7UUFDbEMsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsTUFBTSxFQUFFLFdBQVcsRUFBRSxxQkFBcUI7U0FDM0MsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQWdCLEVBQUUsVUFBNkIsRUFBRTtJQUN6RixPQUFPLDBCQUEwQixDQUFDLE1BQU0sRUFBRTtRQUN4QyxHQUFHLE9BQU87UUFDVixvQkFBb0I7UUFDcEIsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUU7S0FDdEQsQ0FBZ0IsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvblR5cGVzIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvclwiXG5pbXBvcnQgeyB0YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hIGFzIF90YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hXCJcbmltcG9ydCB7IElPcHRpb25zIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvci1qc29uc2NoZW1hL2J1aWxkL29wdGlvbnNcIjtcbmltcG9ydCB7IEpTT05TY2hlbWE3IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgZ2V0TWV0YWRhdGFTdG9yYWdlIH0gZnJvbSBcIi4vZGVmYXVsdC1tZXRhZGF0YS1zdG9yYWdlXCI7XG4vLyBpbXBvcnQgeyBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlIH0gZnJvbSAnYy9sYXNzLXRyYW5zZm9ybWVyL2VzbTUvc3RvcmFnZSc7XG5cbi8vIHNldE1ldGFkYXRhU3RvcmFnZShkZWZhdWx0TWV0YWRhdGFTdG9yYWdlKTtcblxuZnVuY3Rpb24gZ2V0UHJvcFR5cGUodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgdGFyZ2V0LCBwcm9wZXJ0eSlcbn1cblxuZnVuY3Rpb24gdGFyZ2V0VG9TY2hlbWEoXG4gIHR5cGU6IGFueSxcbiAgb3B0aW9uczogYW55XG4pOiBhbnkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlLnByb3RvdHlwZSA9PT0gU3RyaW5nLnByb3RvdHlwZSB8fFxuICAgICAgdHlwZS5wcm90b3R5cGUgPT09IFN5bWJvbC5wcm90b3R5cGVcbiAgICApIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUucHJvdG90eXBlID09PSBOdW1iZXIucHJvdG90eXBlKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnbnVtYmVyJyB9XG4gICAgfSBlbHNlIGlmICh0eXBlLnByb3RvdHlwZSA9PT0gQm9vbGVhbi5wcm90b3R5cGUpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdib29sZWFuJyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEodHlwZSwgb3B0aW9ucylcbiAgfVxufVxuXG5jb25zdCBhZGRpdGlvbmFsQ29udmVydGVycz0ge1xuICBbVmFsaWRhdGlvblR5cGVzLk5FU1RFRF9WQUxJREFUSU9OXTogKG1ldGE6IGFueSwgb3B0aW9uczogYW55KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBtZXRhLnRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgdHlwZU1ldGEgPSBvcHRpb25zLmNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2VcbiAgICAgICAgPyBvcHRpb25zLmNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2UuZmluZFR5cGVNZXRhZGF0YShcbiAgICAgICAgICAgIG1ldGEudGFyZ2V0LFxuICAgICAgICAgICAgbWV0YS5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbFxuICAgICAgY29uc3QgY2hpbGRUeXBlID0gdHlwZU1ldGFcbiAgICAgICAgPyB0eXBlTWV0YS50eXBlRnVuY3Rpb24oKVxuICAgICAgICA6IGdldFByb3BUeXBlKG1ldGEudGFyZ2V0LnByb3RvdHlwZSwgbWV0YS5wcm9wZXJ0eU5hbWUpXG4gICAgICByZXR1cm4gdGFyZ2V0VG9TY2hlbWEoY2hpbGRUeXBlLCBvcHRpb25zKVxuICAgIH1cbiAgfSxcbiAgaXNEYXlqczogKG1ldGE6IGFueSk6IEpTT05TY2hlbWE3ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnLCAvLyBKU09OIFNjaGVtYeOBp+aXpeS7mOWei+OCkuaMh+WumlxuICAgIH07XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSh0YXJnZXQ6IEZ1bmN0aW9uLCBvcHRpb25zOiBQYXJ0aWFsPElPcHRpb25zPiA9IHt9KTogSlNPTlNjaGVtYTcge1xuICByZXR1cm4gX3RhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEodGFyZ2V0LCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBhZGRpdGlvbmFsQ29udmVydGVycyxcbiAgICBjbGFzc1RyYW5zZm9ybWVyTWV0YWRhdGFTdG9yYWdlOiBnZXRNZXRhZGF0YVN0b3JhZ2UoKSxcbiAgfSkgYXMgSlNPTlNjaGVtYTc7XG59XG4iXX0=","import { targetConstructorToSchema } from '../impl/json-schema';\nconst AI_TOOLS = '[ai-tools]';\nconst AI_SYSTEM = '[ai-system]';\nexport function addTool(obj, tool) {\n obj[AI_TOOLS] = obj[AI_TOOLS] ?? [];\n obj[AI_TOOLS].push(tool);\n return obj;\n}\nexport function getTools(obj) {\n return obj[AI_TOOLS] ?? [];\n}\nexport function buildFunctionTool(params) {\n return {\n type: 'function',\n function: {\n name: params.name,\n description: params.description,\n parameters: params.parameters,\n },\n };\n}\nexport function buildToolFromSchema(name, description, schema) {\n const parameters = targetConstructorToSchema(schema);\n return buildFunctionTool({ name, description, parameters });\n}\nexport function AiFunction(params) {\n return function (target, propertyKey, descriptor) {\n // 引数の型を取得\n const args = Reflect.getMetadata('design:paramtypes', target, propertyKey);\n const tool = buildToolFromSchema(propertyKey, params?.description ?? '', args[0]);\n addTool(target, tool);\n return descriptor;\n };\n}\nexport function setAiSystemConfig(obj, config) {\n obj[AI_SYSTEM] = config;\n return obj;\n}\nexport function getAiSystemConfig(obj) {\n return obj[AI_SYSTEM];\n}\nexport function AiSystem({ model = 'gpt-4-1106-preview', instructions = ``, shots = [], }) {\n return function (target) {\n setAiSystemConfig(target, { model, instructions, shots });\n return target;\n };\n}\nexport class AiToolsAgent {\n openai;\n constructor(openai) {\n this.openai = openai;\n }\n messages = [\n { role: 'system', content: '' },\n ];\n results = [];\n get tools() {\n return getTools(this.constructor);\n }\n get config() {\n return getAiSystemConfig(this.constructor);\n }\n async completion(tools = this.tools) {\n const message = await this.openai.chat.completions.create({\n model: this.config.model,\n messages: this.messages,\n tools,\n });\n for (const call of message.choices?.[0]?.message?.tool_calls ?? []) {\n if (call.type === 'function') {\n const func = this[call.function.name];\n const result = func(JSON.parse(call.function.arguments));\n this.results.push(result);\n }\n }\n }\n async execute(message, options = {}) {\n this.messages.push({ role: 'user', content: message });\n await this.completion(options.tools);\n return this.results.at(-1);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2FueS1mdW5jL3NyYy9saWIvYWdlbnQvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsTUFBTSxRQUFRLEdBQUcsWUFBcUIsQ0FBQztBQUN2QyxNQUFNLFNBQVMsR0FBRyxhQUFzQixDQUFDO0FBRXpDLE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBMkIsRUFBRSxJQUFZO0lBQy9ELEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUEyQjtJQUNsRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUlqQztJQUNDLE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUM5QjtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVksRUFBRSxXQUFtQixFQUFFLE1BQWdCO0lBQ3JGLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBdUIsQ0FBQztJQUMzRSxPQUFPLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUs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LENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdENvbXBsZXRpb25NZXNzYWdlUGFyYW0sIEZ1bmN0aW9uUGFyYW1ldGVycywgIH0gZnJvbSBcIm9wZW5haS9yZXNvdXJjZXNcIjtcbmltcG9ydCB7IEZ1bmN0aW9uVG9vbCB9IGZyb20gXCJvcGVuYWkvcmVzb3VyY2VzL2JldGEvYXNzaXN0YW50c1wiO1xuaW1wb3J0IHsgQ2hhdENvbXBsZXRpb25DcmVhdGVQYXJhbXNCYXNlIH0gZnJvbSBcIm9wZW5haS9yZXNvdXJjZXMvY2hhdC9jb21wbGV0aW9uc1wiO1xuaW1wb3J0IHsgT3BlbkFpU2VydmljZUltcGwgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvb3BlbmFpL2ltcGwnO1xuaW1wb3J0IHsgdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSB9IGZyb20gJy4uL2ltcGwvanNvbi1zY2hlbWEnO1xuXG5jb25zdCBBSV9UT09MUyA9ICdbYWktdG9vbHNdJyBhcyBjb25zdDtcbmNvbnN0IEFJX1NZU1RFTSA9ICdbYWktc3lzdGVtXScgYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb29sKG9iajoge1tBSV9UT09MU106IG9iamVjdFtdfSwgdG9vbDogb2JqZWN0KSB7XG4gIG9ialtBSV9UT09MU10gPSBvYmpbQUlfVE9PTFNdID8/IFtdO1xuICBvYmpbQUlfVE9PTFNdLnB1c2godG9vbCk7XG4gIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb29scyhvYmo6IHtbQUlfVE9PTFNdOiBvYmplY3RbXX0pOiBhbnlbXSB7XG4gIHJldHVybiBvYmpbQUlfVE9PTFNdID8/IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGdW5jdGlvblRvb2wocGFyYW1zOiB7XG4gIG5hbWU6IHN0cmluZyxcbiAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgcGFyYW1ldGVyczogRnVuY3Rpb25QYXJhbWV0ZXJzLFxufSk6IEZ1bmN0aW9uVG9vbCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBmdW5jdGlvbjoge1xuICAgICAgbmFtZTogcGFyYW1zLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcGFyYW1zLmRlc2NyaXB0aW9uLFxuICAgICAgcGFyYW1ldGVyczogcGFyYW1zLnBhcmFtZXRlcnMsXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUb29sRnJvbVNjaGVtYShuYW1lOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHNjaGVtYTogRnVuY3Rpb24pOiBGdW5jdGlvblRvb2wge1xuICBjb25zdCBwYXJhbWV0ZXJzID0gdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYShzY2hlbWEpIGFzIEZ1bmN0aW9uUGFyYW1ldGVycztcbiAgcmV0dXJuIGJ1aWxkRnVuY3Rpb25Ub29sKHsgbmFtZSwgZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBaUZ1bmN0aW9uKHBhcmFtcz86IHtkZXNjcmlwdGlvbj86IHN0cmluZ30pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZywgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKSB7XG4gICAgLy8g5byV5pWw44Gu5Z6L44KS5Y+W5b6XXG4gICAgY29uc3QgYXJncyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjpwYXJhbXR5cGVzJywgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgY29uc3QgdG9vbCA9IGJ1aWxkVG9vbEZyb21TY2hlbWEocHJvcGVydHlLZXksIHBhcmFtcz8uZGVzY3JpcHRpb24gPz8gJycsIGFyZ3NbMF0pO1xuICAgIGFkZFRvb2wodGFyZ2V0LCB0b29sKTtcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBaVN5c3RlbUNvbmZpZyB7XG4gIG1vZGVsPzogQ2hhdENvbXBsZXRpb25DcmVhdGVQYXJhbXNCYXNlWydtb2RlbCddO1xuICBpbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG4gIHNob3RzPzoge2lucHV0OiBzdHJpbmcsIG91dHB1dDogc3RyaW5nfVtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QWlTeXN0ZW1Db25maWcob2JqOiB7W0FJX1NZU1RFTV06IEFpU3lzdGVtQ29uZmlnfSwgY29uZmlnOiBBaVN5c3RlbUNvbmZpZykge1xuICBvYmpbQUlfU1lTVEVNXSA9IGNvbmZpZztcbiAgcmV0dXJuIG9iajtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFpU3lzdGVtQ29uZmlnKG9iajoge1tBSV9TWVNURU1dOiBBaVN5c3RlbUNvbmZpZ30pOiBBaVN5c3RlbUNvbmZpZyB7XG4gIHJldHVybiBvYmpbQUlfU1lTVEVNXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFpU3lzdGVtKHtcbiAgbW9kZWwgPSAnZ3B0LTQtMTEwNi1wcmV2aWV3JyxcbiAgaW5zdHJ1Y3Rpb25zID0gYGAsXG4gIHNob3RzID0gW10sXG59OiBBaVN5c3RlbUNvbmZpZykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55KSB7XG4gICAgc2V0QWlTeXN0ZW1Db25maWcodGFyZ2V0LCB7bW9kZWwsIGluc3RydWN0aW9ucywgc2hvdHN9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQWlUb29sc0FnZW50IHtcbiAgY29uc3RydWN0b3IgKHByb3RlY3RlZCBvcGVuYWk6IE9wZW5BaVNlcnZpY2VJbXBsKSB7IH1cbiAgXG4gIG1lc3NhZ2VzOiBDaGF0Q29tcGxldGlvbk1lc3NhZ2VQYXJhbVtdID0gW1xuICAgIHsgcm9sZTogJ3N5c3RlbScgYXMgY29uc3QsIGNvbnRlbnQ6ICcnIH0sXG4gIF07XG5cbiAgcmVzdWx0czogYW55W10gPSBbXTtcblxuICBnZXQgdG9vbHMoKSB7XG4gICAgcmV0dXJuIGdldFRvb2xzKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIGdldEFpU3lzdGVtQ29uZmlnKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRpb24odG9vbHM6IGFueVtdID0gdGhpcy50b29scykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCB0aGlzLm9wZW5haS5jaGF0LmNvbXBsZXRpb25zLmNyZWF0ZSh7XG4gICAgICBtb2RlbDogdGhpcy5jb25maWcubW9kZWwhLFxuICAgICAgbWVzc2FnZXM6IHRoaXMubWVzc2FnZXMsXG4gICAgICB0b29scyxcbiAgICB9KTtcbiAgICBmb3IgKGNvbnN0IGNhbGwgb2YgbWVzc2FnZS5jaG9pY2VzPy5bMF0/Lm1lc3NhZ2U/LnRvb2xfY2FsbHMgPz8gW10pIHtcbiAgICAgIGlmIChjYWxsLnR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgZnVuYyA9ICh0aGlzIGFzIGFueSlbY2FsbC5mdW5jdGlvbi5uYW1lXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyhKU09OLnBhcnNlKGNhbGwuZnVuY3Rpb24uYXJndW1lbnRzKSk7XG4gICAgICAgIHRoaXMucmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZTxUPWFueT4obWVzc2FnZTogc3RyaW5nLCBvcHRpb25zOiB7dG9vbHM/OiBhbnlbXX0gPSB7fSk6IFByb21pc2U8VD4ge1xuICAgIHRoaXMubWVzc2FnZXMucHVzaCh7cm9sZTogJ3VzZXInLCBjb250ZW50OiBtZXNzYWdlfSk7XG4gICAgYXdhaXQgdGhpcy5jb21wbGV0aW9uKG9wdGlvbnMudG9vbHMpO1xuICAgIHJldHVybiB0aGlzLnJlc3VsdHMuYXQoLTEpIGFzIGFueTtcbiAgfVxufVxuXG4iXX0=","import { Injectable } from \"@angular/core\";\nimport { LOCAL_STORAGE } from '@nx-ddd/any-func/adapters/local-storage';\nimport CryptoJS from 'crypto-js';\nimport * as i0 from \"@angular/core\";\nexport class CacheAdapter {\n localStorage = LOCAL_STORAGE.inject();\n async get(keyOrObj) {\n const key = this.makeKey(keyOrObj);\n return this.parseJson(this.localStorage.getItem(key));\n }\n async set(keyOrObj, value) {\n const key = this.makeKey(keyOrObj);\n this.localStorage.setItem(key, this.makeJson(value));\n }\n async call(props, callback) {\n const key = this.makeKey(props);\n let value = await this.get(key);\n if (value)\n return value;\n value = await callback(props);\n await this.set(key, value);\n return value;\n }\n makeKey(keyOrObj) {\n const value = typeof keyOrObj === 'string' ? keyOrObj : JSON.stringify(keyOrObj);\n return CryptoJS.SHA256(value).toString();\n }\n makeJson(valueOrObj) {\n return JSON.stringify(valueOrObj);\n }\n parseJson(value) {\n return JSON.parse(value);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CacheAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CacheAdapter });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CacheAdapter, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9pbXBsL2FkYXB0ZXJzL2NhY2hlL2NhY2hlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDOztBQUdqQyxNQUFNLE9BQU8sWUFBWTtJQUNiLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFaEQsS0FBSyxDQUFDLEdBQUcsQ0FBSSxRQUF5QjtRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBYSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQXlCLEVBQUUsS0FBVTtRQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQWlDLEtBQVEsRUFBRSxRQUFrQztRQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFUyxPQUFPLENBQUMsUUFBeUI7UUFDekMsTUFBTSxLQUFLLEdBQUcsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakYsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFUyxRQUFRLENBQUMsVUFBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO3VHQWpDVSxZQUFZOzJHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExPQ0FMX1NUT1JBR0UgfSBmcm9tICdAbngtZGRkL2FueS1mdW5jL2FkYXB0ZXJzL2xvY2FsLXN0b3JhZ2UnO1xuaW1wb3J0IENyeXB0b0pTIGZyb20gJ2NyeXB0by1qcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZUFkYXB0ZXIge1xuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlID0gTE9DQUxfU1RPUkFHRS5pbmplY3QoKTtcblxuICBhc3luYyBnZXQ8VD4oa2V5T3JPYmo6IHN0cmluZyB8IG9iamVjdCk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkoa2V5T3JPYmopO1xuICAgIHJldHVybiB0aGlzLnBhcnNlSnNvbih0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpIGFzIFQgfCBudWxsO1xuICB9XG5cbiAgYXN5bmMgc2V0KGtleU9yT2JqOiBzdHJpbmcgfCBvYmplY3QsIHZhbHVlOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkoa2V5T3JPYmopO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLm1ha2VKc29uKHZhbHVlKSk7XG4gIH1cblxuICBhc3luYyBjYWxsPFAgZXh0ZW5kcyAoc3RyaW5nIHwgb2JqZWN0KSwgVD4ocHJvcHM6IFAsIGNhbGxiYWNrOiAocHJvcHM6IFApID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkocHJvcHMpO1xuICAgIGxldCB2YWx1ZSA9IGF3YWl0IHRoaXMuZ2V0PFQ+KGtleSk7XG4gICAgaWYgKHZhbHVlKSByZXR1cm4gdmFsdWU7XG4gICAgdmFsdWUgPSBhd2FpdCBjYWxsYmFjayhwcm9wcyk7XG4gICAgYXdhaXQgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuIHZhbHVlOyBcbiAgfVxuXG4gIHByb3RlY3RlZCBtYWtlS2V5KGtleU9yT2JqOiBzdHJpbmcgfCBvYmplY3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIGtleU9yT2JqID09PSAnc3RyaW5nJyA/IGtleU9yT2JqIDogSlNPTi5zdHJpbmdpZnkoa2V5T3JPYmopO1xuICAgIHJldHVybiBDcnlwdG9KUy5TSEEyNTYodmFsdWUpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFrZUpzb24odmFsdWVPck9iajogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWVPck9iaik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VKc29uKHZhbHVlOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgfVxufVxuIl19","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { injectOpenAiService } from '@nx-ddd/common/infrastructure/externals/openai';\nimport { provideOpenaiService } from '@nx-ddd/common/infrastructure/externals/openai/impl';\nimport { catchError, lastValueFrom, map, of, retry, switchMap, tap } from 'rxjs';\nimport pLimit from 'p-limit';\nimport { ZodSchema } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { buildFunctionTool } from '../agent';\nimport { targetConstructorToSchema } from '../impl/json-schema';\nimport { CacheAdapter } from '../impl/adapters/cache';\nimport { ValidatorAdapter } from '@nx-ddd/any-func/adapters/validator';\nimport * as i0 from \"@angular/core\";\nexport const ANY_FUNC_SERVICE = new InjectionToken('[@nx-ddd/any-func] AnyFuncService');\nexport function injectAnyFunc() {\n return inject(ANY_FUNC_SERVICE, { optional: true }) ?? {};\n}\nfunction isBrowserFile(obj) {\n return typeof File !== 'undefined' && obj instanceof File;\n}\nconst ANY_FUNC_CONFIG = new InjectionToken('[@nx-ddd/any-func] AnyFuncConfig');\nexport function provideAnyFunc(useFactory) {\n const config = useFactory();\n return [\n { provide: ANY_FUNC_SERVICE, useClass: AnyFuncService },\n { provide: ANY_FUNC_CONFIG, useFactory },\n CacheAdapter,\n provideOpenaiService(() => ({ apiKey: config.openaiApiKey, dangerouslyAllowBrowser: config.dangerouslyAllowBrowser })),\n ];\n}\nclass OpenAiMessageHelper {\n static async imageToBase64(imageFile) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result;\n resolve(base64String.split(',')[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(imageFile);\n });\n }\n static async buildFilesMessage(files) {\n return await Promise.all(files.map(async (file) => ({\n type: 'image_url',\n image_url: { url: `data:image/jpeg;base64,${await this.imageToBase64(file)}` },\n })));\n }\n}\nexport class AnyFuncService {\n openai = injectOpenAiService();\n config = inject(ANY_FUNC_CONFIG, { optional: true }) ?? { debug: false };\n cache = inject(CacheAdapter);\n validator = inject(ValidatorAdapter);\n /** @deprecated use callByJsonSchema instead */\n async jsonSchema(_input, jsonSchema, options = {}) {\n return this.callByJsonSchema(_input, jsonSchema, options);\n }\n async callByJsonSchema(_input, jsonSchema, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, validator = (data) => this.validator.validate(jsonSchema, data), } = {}) {\n for (const spec of specs) {\n const errors = await validator(spec.output);\n if (errors.length > 0) {\n throw new Error(JSON.stringify(errors, null, 2));\n }\n }\n const content = await this.parseInput(_input);\n const sortedSpecs = embeddings ? await this.sort(specs, embeddings, _input) : specs;\n const messages = [\n { role: 'system', content: instructions },\n ...(await this.buildChatMessages(sortedSpecs.slice(0, sample).reverse())),\n { role: 'user', content },\n ];\n return lastValueFrom(of(null).pipe(map(() => messages), switchMap(() => this.complete(_input, jsonSchema, messages, {\n model,\n sample,\n temperature,\n })), tap(message => messages.push(message)), switchMap(async (message) => {\n const toolCall = message.tool_calls[0];\n if (toolCall.type !== 'function') {\n throw new Error('Unexpected tool call type');\n }\n const output = JSON.parse(toolCall.function.arguments);\n console.debug('[AnyFuncService#complete] output:', output);\n const errors = await validator(output);\n console.debug('[AnyFuncService#complete] errors:', errors);\n if (errors.length > 0) {\n messages.push({\n role: 'tool',\n content: JSON.stringify(errors),\n tool_call_id: message.tool_calls[0].id,\n });\n if (this.config.debug) {\n console.debug('messages', JSON.stringify(messages, null, 2));\n }\n throw new Error(JSON.stringify(errors, null, 2));\n }\n else {\n messages.push({\n role: 'tool',\n content: JSON.stringify(output),\n tool_call_id: message.tool_calls[0].id,\n });\n if (this.config.debug) {\n console.debug('messages', JSON.stringify(messages, null, 2));\n }\n }\n return output;\n }), catchError((error) => {\n console.error(error);\n throw error;\n }), retry(maxRetry)));\n // debugPrice(model, res.usage);\n }\n async callByZod(_input, zod, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, validator = (data) => this.validator.validate(zodToJsonSchema(zod, { $refStrategy: 'none' }), data), } = {}) {\n return this.jsonSchema(_input, zodToJsonSchema(zod, { $refStrategy: 'none' }), {\n instructions,\n model,\n specs,\n embeddings,\n sample,\n temperature,\n maxRetry,\n validator,\n });\n }\n async callByClassValidator(_input, args, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, validator = (data) => this.validator.validate(targetConstructorToSchema(args), data), } = {}) {\n const parameters = targetConstructorToSchema(args);\n console.debug('[AnyFuncService#call] parameters:', parameters);\n return this.jsonSchema(_input, parameters, {\n instructions,\n model,\n specs,\n embeddings,\n sample,\n temperature,\n maxRetry,\n validator,\n });\n }\n async call(_input, args, params = {}) {\n if (args instanceof ZodSchema) {\n return this.callByZod(_input, args, params);\n }\n // class validatorか判定\n if (args instanceof Function) {\n return this.callByClassValidator(_input, args, params);\n }\n if (typeof args === 'object' && args !== null && 'type' in args && args.type === 'object') {\n return this.callByJsonSchema(_input, args, params);\n }\n throw new Error('Invalid args type');\n }\n async complete(_input, jsonSchema, messages, { model = 'gpt-4o', temperature = 0, } = {}) {\n const tool = buildFunctionTool({ name: 'function', description: '', parameters: jsonSchema });\n const props = {\n model,\n messages,\n tools: [tool],\n tool_choice: {\n type: 'function',\n function: { name: 'function' }\n },\n temperature,\n };\n const res = await this.cache.call(props, props => this.openai.chat.completions.create(props));\n return res.choices[0].message;\n }\n async buildChatMessages(specs) {\n const messages = await Promise.all(specs.map(async ({ input, output }) => {\n const parsedInput = await this.parseInput(input);\n return [\n { role: 'user', content: parsedInput },\n {\n role: 'assistant',\n content: null,\n tool_calls: [\n {\n id: 'call-example',\n type: 'function',\n function: {\n name: 'function',\n arguments: JSON.stringify(output),\n }\n }\n ],\n },\n { role: 'tool', content: 'success', tool_call_id: 'call-example' },\n ];\n }));\n return messages.flat();\n }\n async getEmbeddings(item, accessor) {\n const props = { item, model: 'text-embedding-3-small' };\n let embedding = await this.cache.get(props);\n if (embedding)\n return embedding;\n embedding = await this.openai.embeddings.create({\n model: props.model,\n input: accessor(item),\n }).then(res => res.data[0].embedding);\n await this.cache.set(props, embedding);\n return embedding;\n }\n async sort(items, accessor, target) {\n const dist = (a, b) => Math.sqrt(a.reduce((acc, v, i) => acc + (v - b[i]) ** 2, 0));\n const targetEmbeddings = await this.getEmbeddings(target, s => s);\n const limit = pLimit(10);\n const embeddings = await Promise.all(items.map(item => limit(() => this.getEmbeddings(item, accessor))));\n const items_ = items.map((item, i) => ({\n item,\n embedding: embeddings[i],\n distance: dist(embeddings[i], targetEmbeddings),\n }));\n const sorted = items_.sort((a, b) => a.distance - b.distance);\n return sorted.map(({ item }) => item);\n }\n async parseInput(input) {\n if (isBrowserFile(input)) {\n return await OpenAiMessageHelper.buildFilesMessage([input]);\n }\n else if (input === 'string') {\n return input;\n }\n else {\n return JSON.stringify(input);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AnyFuncService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AnyFuncService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AnyFuncService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWZ1bmMuc2VydmljZS5pbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9hbnktZnVuYy9zcmMvbGliL2FueS1mdW5jL2FueS1mdW5jLnNlcnZpY2UuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFHN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNoQyxPQUFPLGVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUd2RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsbUNBQW1DLENBQUMsQ0FBQztBQUV4RyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEVBQW9CLENBQUM7QUFDNUUsQ0FBQztBQUdE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Qzt1R0F0T1UsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0T3BlbkFpU2VydmljZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy9vcGVuYWknO1xuaW1wb3J0IHsgcHJvdmlkZU9wZW5haVNlcnZpY2UgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvb3BlbmFpL2ltcGwnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbGFzdFZhbHVlRnJvbSwgbWFwLCBvZiwgcmV0cnksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgcExpbWl0IGZyb20gJ3AtbGltaXQnO1xuaW1wb3J0IHR5cGUgeyBDaGF0Q29tcGxldGlvbk1lc3NhZ2VQYXJhbSwgRnVuY3Rpb25QYXJhbWV0ZXJzIH0gZnJvbSAnb3BlbmFpL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBDbGllbnRPcHRpb25zIH0gZnJvbSAnb3BlbmFpJztcbmltcG9ydCB7IFpvZFNjaGVtYSB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgem9kVG9Kc29uU2NoZW1hIGZyb20gJ3pvZC10by1qc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBidWlsZEZ1bmN0aW9uVG9vbCB9IGZyb20gJy4uL2FnZW50JztcbmltcG9ydCB7IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEgfSBmcm9tICcuLi9pbXBsL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IENhY2hlQWRhcHRlciB9IGZyb20gJy4uL2ltcGwvYWRhcHRlcnMvY2FjaGUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yQWRhcHRlciB9IGZyb20gJ0BueC1kZGQvYW55LWZ1bmMvYWRhcHRlcnMvdmFsaWRhdG9yJztcbmltcG9ydCB7IEpzb25TY2hlbWEgfSBmcm9tICdqc29uLXNjaGVtYS1saWJyYXJ5JztcblxuZXhwb3J0IGNvbnN0IEFOWV9GVU5DX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48QW55RnVuY1NlcnZpY2U+KCdbQG54LWRkZC9hbnktZnVuY10gQW55RnVuY1NlcnZpY2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFueUZ1bmMoKTogQW55RnVuY1NlcnZpY2Uge1xuICByZXR1cm4gaW5qZWN0KEFOWV9GVU5DX1NFUlZJQ0UsIHtvcHRpb25hbDogdHJ1ZX0pID8/IHt9IGFzIEFueUZ1bmNTZXJ2aWNlO1xufVxuXG5cbmZ1bmN0aW9uIGlzQnJvd3NlckZpbGUob2JqOiB1bmtub3duKTogb2JqIGlzIEZpbGUge1xuICByZXR1cm4gdHlwZW9mIEZpbGUgIT09ICd1bmRlZmluZWQnICYmIG9iaiBpbnN0YW5jZW9mIEZpbGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbE9wdGlvbnM8SSwgTywgUyBleHRlbmRzIHsgaW5wdXQ6IEksIG91dHB1dDogTyB9ID0geyBpbnB1dDogSSwgb3V0cHV0OiBPIH0+IHtcbiAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nLFxuICBtb2RlbD86IHN0cmluZyxcbiAgc3BlY3M/OiBTW10sXG4gIGVtYmVkZGluZ3M/OiBmYWxzZSB8ICgoc3BlYzogUykgPT4gc3RyaW5nKSxcbiAgc2FtcGxlPzogbnVtYmVyLFxuICB0ZW1wZXJhdHVyZT86IG51bWJlcixcbiAgbWF4UmV0cnk/OiBudW1iZXIsXG4gIHZhbGlkYXRvcj86IChvdXRwdXQ6IE8pID0+IFByb21pc2U8YW55Pixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbnlGdW5jQ29uZmlnIGV4dGVuZHMgQ2xpZW50T3B0aW9ucyB7XG4gIGRlYnVnOiBib29sZWFuO1xuICBvcGVuYWlBcGlLZXk6IHN0cmluZztcbn1cblxuY29uc3QgQU5ZX0ZVTkNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFueUZ1bmNDb25maWc+KCdbQG54LWRkZC9hbnktZnVuY10gQW55RnVuY0NvbmZpZycpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFueUZ1bmModXNlRmFjdG9yeT86ICgpID0+IEFueUZ1bmNDb25maWcpIHtcbiAgY29uc3QgY29uZmlnID0gdXNlRmFjdG9yeSgpO1xuICByZXR1cm4gW1xuICAgIHsgcHJvdmlkZTogQU5ZX0ZVTkNfU0VSVklDRSwgdXNlQ2xhc3M6IEFueUZ1bmNTZXJ2aWNlIH0sXG4gICAgeyBwcm92aWRlOiBBTllfRlVOQ19DT05GSUcsIHVzZUZhY3RvcnkgfSxcbiAgICBDYWNoZUFkYXB0ZXIsXG4gICAgcHJvdmlkZU9wZW5haVNlcnZpY2UoKCkgPT4gKHsgYXBpS2V5OiBjb25maWcub3BlbmFpQXBpS2V5LCBkYW5nZXJvdXNseUFsbG93QnJvd3NlcjogY29uZmlnLmRhbmdlcm91c2x5QWxsb3dCcm93c2VyIH0pKSxcbiAgXVxufVxuXG5jbGFzcyBPcGVuQWlNZXNzYWdlSGVscGVyIHtcbiAgc3RhdGljIGFzeW5jIGltYWdlVG9CYXNlNjQoaW1hZ2VGaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2U2NFN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICByZXNvbHZlKGJhc2U2NFN0cmluZy5zcGxpdCgnLCcpWzFdKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGltYWdlRmlsZSk7XG4gICAgfSk7XG4gIH1cbiAgICBcbiAgc3RhdGljIGFzeW5jIGJ1aWxkRmlsZXNNZXNzYWdlKGZpbGVzOiBGaWxlW10pOiBQcm9taXNlPENoYXRDb21wbGV0aW9uTWVzc2FnZVBhcmFtWydjb250ZW50J10+IHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiAoe1xuICAgICAgdHlwZTogJ2ltYWdlX3VybCcgYXMgY29uc3QsXG4gICAgICBpbWFnZV91cmw6IHsgdXJsOiBgZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwke2F3YWl0IHRoaXMuaW1hZ2VUb0Jhc2U2NChmaWxlKX1gIH0sXG4gICAgfSkpKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW55RnVuY1NlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlbmFpID0gaW5qZWN0T3BlbkFpU2VydmljZSgpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEFOWV9GVU5DX0NPTkZJRywge29wdGlvbmFsOiB0cnVlfSkgPz8geyBkZWJ1ZzogZmFsc2UgfTtcbiAgcHJvdGVjdGVkIGNhY2hlID0gaW5qZWN0KENhY2hlQWRhcHRlcik7XG4gIHByb3RlY3RlZCB2YWxpZGF0b3IgPSBpbmplY3QoVmFsaWRhdG9yQWRhcHRlcik7XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBjYWxsQnlKc29uU2NoZW1hIGluc3RlYWQgKi9cbiAgYXN5bmMganNvblNjaGVtYShfaW5wdXQ6IGFueSwganNvblNjaGVtYTogRnVuY3Rpb25QYXJhbWV0ZXJzLCBvcHRpb25zOiBDYWxsT3B0aW9uczxhbnksIGFueT4gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbEJ5SnNvblNjaGVtYShfaW5wdXQsIGpzb25TY2hlbWEsIG9wdGlvbnMpO1xuICB9XG5cbiAgYXN5bmMgY2FsbEJ5SnNvblNjaGVtYShfaW5wdXQ6IGFueSwganNvblNjaGVtYTogRnVuY3Rpb25QYXJhbWV0ZXJzLCB7XG4gICAgaW5zdHJ1Y3Rpb25zID0gJycsXG4gICAgbW9kZWwgPSAnZ3B0LTRvJyxcbiAgICBzcGVjcyA9IFtdLFxuICAgIGVtYmVkZGluZ3MgPSBmYWxzZSxcbiAgICBzYW1wbGUgPSAzLFxuICAgIHRlbXBlcmF0dXJlID0gMCxcbiAgICBtYXhSZXRyeSA9IDMsXG4gICAgdmFsaWRhdG9yID0gKGRhdGE6IGFueSkgPT4gdGhpcy52YWxpZGF0b3IudmFsaWRhdGUoanNvblNjaGVtYSwgZGF0YSksXG4gIH06IENhbGxPcHRpb25zPGFueSwgYW55PiA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBmb3IgKGNvbnN0IHNwZWMgb2Ygc3BlY3MpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IGF3YWl0IHZhbGlkYXRvcihzcGVjLm91dHB1dCk7XG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KGVycm9ycywgbnVsbCwgMikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLnBhcnNlSW5wdXQoX2lucHV0KTtcbiAgICBjb25zdCBzb3J0ZWRTcGVjcyA9IGVtYmVkZGluZ3MgPyBhd2FpdCB0aGlzLnNvcnQoc3BlY3MsIGVtYmVkZGluZ3MsIF9pbnB1dCkgOiBzcGVjcztcbiAgICBjb25zdCBtZXNzYWdlczogQ2hhdENvbXBsZXRpb25NZXNzYWdlUGFyYW1bXSA9IFtcbiAgICAgIHsgcm9sZTogJ3N5c3RlbScsIGNvbnRlbnQ6IGluc3RydWN0aW9ucyB9LFxuICAgICAgLi4uKGF3YWl0IHRoaXMuYnVpbGRDaGF0TWVzc2FnZXMoc29ydGVkU3BlY3Muc2xpY2UoMCwgc2FtcGxlKS5yZXZlcnNlKCkpKSxcbiAgICAgIHsgcm9sZTogJ3VzZXInLCBjb250ZW50IH0sXG4gICAgXTtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShvZihudWxsKS5waXBlKFxuICAgICAgbWFwKCgpID0+IG1lc3NhZ2VzKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNvbXBsZXRlKF9pbnB1dCwganNvblNjaGVtYSwgbWVzc2FnZXMsIHtcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIHNhbXBsZSxcbiAgICAgICAgdGVtcGVyYXR1cmUsXG4gICAgICB9KSksXG4gICAgICB0YXAobWVzc2FnZSA9PiAgbWVzc2FnZXMucHVzaChtZXNzYWdlKSksXG4gICAgICBzd2l0Y2hNYXAoYXN5bmMgKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3QgdG9vbENhbGwgPSBtZXNzYWdlLnRvb2xfY2FsbHMhWzBdO1xuICAgICAgICBpZiAodG9vbENhbGwudHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCB0b29sIGNhbGwgdHlwZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IEpTT04ucGFyc2UodG9vbENhbGwuZnVuY3Rpb24uYXJndW1lbnRzKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW0FueUZ1bmNTZXJ2aWNlI2NvbXBsZXRlXSBvdXRwdXQ6Jywgb3V0cHV0KTtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gYXdhaXQgdmFsaWRhdG9yKG91dHB1dCk7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoJ1tBbnlGdW5jU2VydmljZSNjb21wbGV0ZV0gZXJyb3JzOicsIGVycm9ycyk7XG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgcm9sZTogJ3Rvb2wnLFxuICAgICAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoZXJyb3JzKSxcbiAgICAgICAgICAgIHRvb2xfY2FsbF9pZDogbWVzc2FnZS50b29sX2NhbGxzIVswXS5pZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodGhpcy5jb25maWcuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ21lc3NhZ2VzJywgSlNPTi5zdHJpbmdpZnkobWVzc2FnZXMsIG51bGwsIDIpKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyb3JzLCBudWxsLCAyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgICByb2xlOiAndG9vbCcsXG4gICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShvdXRwdXQpLFxuICAgICAgICAgICAgdG9vbF9jYWxsX2lkOiBtZXNzYWdlLnRvb2xfY2FsbHMhWzBdLmlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnbWVzc2FnZXMnLCBKU09OLnN0cmluZ2lmeShtZXNzYWdlcywgbnVsbCwgMikpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICAgcmV0cnkobWF4UmV0cnkpLFxuICAgICkpO1xuICAgIC8vIGRlYnVnUHJpY2UobW9kZWwsIHJlcy51c2FnZSk7XG4gIH1cblxuICBhc3luYyBjYWxsQnlab2Q8SSwgTz4oX2lucHV0OiBJLCB6b2Q6IFpvZFNjaGVtYTxPPiwge1xuICAgIGluc3RydWN0aW9ucyA9ICcnLFxuICAgIG1vZGVsID0gJ2dwdC00bycsXG4gICAgc3BlY3MgPSBbXSxcbiAgICBlbWJlZGRpbmdzID0gZmFsc2UsXG4gICAgc2FtcGxlID0gMyxcbiAgICB0ZW1wZXJhdHVyZSA9IDAsXG4gICAgbWF4UmV0cnkgPSAzLFxuICAgIHZhbGlkYXRvciA9IChkYXRhOiBhbnkpID0+IHRoaXMudmFsaWRhdG9yLnZhbGlkYXRlKHpvZFRvSnNvblNjaGVtYSh6b2QgYXMgYW55LCB7ICRyZWZTdHJhdGVneTogJ25vbmUnIH0pLCBkYXRhKSxcbiAgfTogQ2FsbE9wdGlvbnM8SSwgTz4gPSB7fSk6IFByb21pc2U8Tz4ge1xuICAgIHJldHVybiB0aGlzLmpzb25TY2hlbWEoX2lucHV0LCB6b2RUb0pzb25TY2hlbWEoem9kIGFzIGFueSwgeyAkcmVmU3RyYXRlZ3k6ICdub25lJyB9KSwge1xuICAgICAgaW5zdHJ1Y3Rpb25zLFxuICAgICAgbW9kZWwsXG4gICAgICBzcGVjcyxcbiAgICAgIGVtYmVkZGluZ3MsXG4gICAgICBzYW1wbGUsXG4gICAgICB0ZW1wZXJhdHVyZSxcbiAgICAgIG1heFJldHJ5LFxuICAgICAgdmFsaWRhdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY2FsbEJ5Q2xhc3NWYWxpZGF0b3I8SSwgTz4oX2lucHV0OiBJLCBhcmdzOiB7bmV3ICgpOiBPfSwge1xuICAgIGluc3RydWN0aW9ucyA9ICcnLFxuICAgIG1vZGVsID0gJ2dwdC00bycsXG4gICAgc3BlY3MgPSBbXSxcbiAgICBlbWJlZGRpbmdzID0gZmFsc2UsXG4gICAgc2FtcGxlID0gMyxcbiAgICB0ZW1wZXJhdHVyZSA9IDAsXG4gICAgbWF4UmV0cnkgPSAzLFxuICAgIHZhbGlkYXRvciA9IChkYXRhOiBhbnkpID0+IHRoaXMudmFsaWRhdG9yLnZhbGlkYXRlKHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoYXJncyksIGRhdGEpLFxuICB9OiBDYWxsT3B0aW9uczxJLCBPPiA9IHt9KTogUHJvbWlzZTxPPiB7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoYXJncykgYXMgRnVuY3Rpb25QYXJhbWV0ZXJzO1xuICAgIGNvbnNvbGUuZGVidWcoJ1tBbnlGdW5jU2VydmljZSNjYWxsXSBwYXJhbWV0ZXJzOicsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiB0aGlzLmpzb25TY2hlbWEoX2lucHV0LCBwYXJhbWV0ZXJzLCB7XG4gICAgICBpbnN0cnVjdGlvbnMsXG4gICAgICBtb2RlbCxcbiAgICAgIHNwZWNzLFxuICAgICAgZW1iZWRkaW5ncyxcbiAgICAgIHNhbXBsZSxcbiAgICAgIHRlbXBlcmF0dXJlLFxuICAgICAgbWF4UmV0cnksXG4gICAgICB2YWxpZGF0b3IsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjYWxsPEksIE8+KF9pbnB1dDogSSwgYXJnczoge25ldyAoKTogT30gfCBab2RTY2hlbWE8Tz4gfCBKc29uU2NoZW1hLCBwYXJhbXM6IENhbGxPcHRpb25zPEksIE8+ID0ge30pOiBQcm9taXNlPE8+IHtcbiAgICBpZiAoYXJncyBpbnN0YW5jZW9mIFpvZFNjaGVtYSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsbEJ5Wm9kKF9pbnB1dCwgYXJncywgcGFyYW1zKTtcbiAgICB9XG4gICAgLy8gY2xhc3MgdmFsaWRhdG9y44GL5Yik5a6aXG4gICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsbEJ5Q2xhc3NWYWxpZGF0b3IoX2lucHV0LCBhcmdzLCBwYXJhbXMpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnICYmIGFyZ3MgIT09IG51bGwgJiYgJ3R5cGUnIGluIGFyZ3MgJiYgYXJncy50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsbEJ5SnNvblNjaGVtYShfaW5wdXQsIGFyZ3MsIHBhcmFtcyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhcmdzIHR5cGUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb21wbGV0ZTxJLCBPPihcbiAgICBfaW5wdXQ6IGFueSxcbiAgICBqc29uU2NoZW1hOiBGdW5jdGlvblBhcmFtZXRlcnMsXG4gICAgbWVzc2FnZXM6IENoYXRDb21wbGV0aW9uTWVzc2FnZVBhcmFtW10sXG4gICAge1xuICAgICAgbW9kZWwgPSAnZ3B0LTRvJyxcbiAgICAgIHRlbXBlcmF0dXJlID0gMCxcbiAgICB9OiBDYWxsT3B0aW9uczxJLCBPPiAmIHtmdW5jdGlvbk91dHB1dD86IG9iamVjdH0gPSB7fVxuICApIHtcbiAgICBcbiAgICBjb25zdCB0b29sID0gYnVpbGRGdW5jdGlvblRvb2woe25hbWU6ICdmdW5jdGlvbicsIGRlc2NyaXB0aW9uOiAnJywgcGFyYW1ldGVyczoganNvblNjaGVtYX0pO1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgbW9kZWwsXG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHRvb2xzOiBbIHRvb2wgXSxcbiAgICAgIHRvb2xfY2hvaWNlOiB7XG4gICAgICAgIHR5cGU6ICdmdW5jdGlvbicgYXMgY29uc3QsXG4gICAgICAgIGZ1bmN0aW9uOiB7IG5hbWU6ICdmdW5jdGlvbicgfVxuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlLFxuICAgIH07XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jYWNoZS5jYWxsKHByb3BzLCBwcm9wcyA9PiB0aGlzLm9wZW5haS5jaGF0LmNvbXBsZXRpb25zLmNyZWF0ZShwcm9wcykpO1xuICAgIHJldHVybiByZXMuY2hvaWNlc1swXS5tZXNzYWdlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkQ2hhdE1lc3NhZ2VzKHNwZWNzOiB7XG4gICAgaW5wdXQ6IGFueTtcbiAgICBvdXRwdXQ6IGFueTtcbiAgfVtdKTogUHJvbWlzZTx7cm9sZTogJ2Fzc2lzdGFudCcgfCAndXNlcicsIGNvbnRlbnQ6IHN0cmluZ31bXT4ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoc3BlY3MubWFwKGFzeW5jICh7IGlucHV0LCBvdXRwdXQgfSkgPT4ge1xuICAgICAgY29uc3QgcGFyc2VkSW5wdXQgPSBhd2FpdCB0aGlzLnBhcnNlSW5wdXQoaW5wdXQpO1xuICAgICAgcmV0dXJuIDxDaGF0Q29tcGxldGlvbk1lc3NhZ2VQYXJhbVtdPltcbiAgICAgICAgeyByb2xlOiAndXNlcicsIGNvbnRlbnQ6IHBhcnNlZElucHV0IH0sXG4gICAgICAgIHtcbiAgICAgICAgICByb2xlOiAnYXNzaXN0YW50JyxcbiAgICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICAgIHRvb2xfY2FsbHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdjYWxsLWV4YW1wbGUnLFxuICAgICAgICAgICAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgICBmdW5jdGlvbjoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICAgICAgYXJndW1lbnRzOiBKU09OLnN0cmluZ2lmeShvdXRwdXQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgeyByb2xlOiAndG9vbCcsIGNvbnRlbnQ6ICdzdWNjZXNzJywgdG9vbF9jYWxsX2lkOiAnY2FsbC1leGFtcGxlJyB9LFxuICAgICAgXTtcbiAgICB9KSlcbiAgICByZXR1cm4gbWVzc2FnZXMuZmxhdCgpIGFzIHtyb2xlOiAnYXNzaXN0YW50JyB8ICd1c2VyJywgY29udGVudDogc3RyaW5nfVtdO1xuICB9XG5cbiAgYXN5bmMgZ2V0RW1iZWRkaW5nczxUPihpdGVtOiBULCBhY2Nlc3NvcjogKGl0ZW06IFQpID0+IHN0cmluZyk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgICBjb25zdCBwcm9wcyA9IHsgaXRlbSwgbW9kZWw6ICd0ZXh0LWVtYmVkZGluZy0zLXNtYWxsJyB9O1xuICAgIGxldCBlbWJlZGRpbmcgPSBhd2FpdCB0aGlzLmNhY2hlLmdldDxudW1iZXJbXT4ocHJvcHMpO1xuICAgIGlmIChlbWJlZGRpbmcpIHJldHVybiBlbWJlZGRpbmc7XG4gICAgZW1iZWRkaW5nID0gYXdhaXQgdGhpcy5vcGVuYWkuZW1iZWRkaW5ncy5jcmVhdGUoe1xuICAgICAgbW9kZWw6IHByb3BzLm1vZGVsLFxuICAgICAgaW5wdXQ6IGFjY2Vzc29yKGl0ZW0pLFxuICAgIH0pLnRoZW4ocmVzID0+IHJlcy5kYXRhWzBdLmVtYmVkZGluZyk7XG4gICAgYXdhaXQgdGhpcy5jYWNoZS5zZXQocHJvcHMsIGVtYmVkZGluZyk7XG4gICAgcmV0dXJuIGVtYmVkZGluZztcbiAgfVxuXG4gIGFzeW5jIHNvcnQ8VD4oaXRlbXM6IFRbXSwgYWNjZXNzb3I6IChpdGVtOiBUKSA9PiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogUHJvbWlzZTxUW10+IHtcbiAgICBjb25zdCBkaXN0ID0gKGE6IG51bWJlcltdLCBiOiBudW1iZXJbXSkgPT4gTWF0aC5zcXJ0KGEucmVkdWNlKChhY2MsIHYsIGkpID0+IGFjYyArICh2IC0gYltpXSkgKiogMiwgMCkpO1xuICAgIGNvbnN0IHRhcmdldEVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmdldEVtYmVkZGluZ3ModGFyZ2V0LCBzID0+IHMpO1xuICAgIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcbiAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMubWFwKGl0ZW0gPT4gbGltaXQoKCkgPT4gdGhpcy5nZXRFbWJlZGRpbmdzKGl0ZW0sIGFjY2Vzc29yKSkpKTtcbiAgICBjb25zdCBpdGVtc18gPSBpdGVtcy5tYXAoKGl0ZW0sIGkpID0+ICh7XG4gICAgICBpdGVtLFxuICAgICAgZW1iZWRkaW5nOiBlbWJlZGRpbmdzW2ldLFxuICAgICAgZGlzdGFuY2U6IGRpc3QoZW1iZWRkaW5nc1tpXSwgdGFyZ2V0RW1iZWRkaW5ncyksXG4gICAgfSkpO1xuICAgIGNvbnN0IHNvcnRlZCA9IGl0ZW1zXy5zb3J0KChhLCBiKSA9PiBhLmRpc3RhbmNlIC0gYi5kaXN0YW5jZSk7XG4gICAgcmV0dXJuIHNvcnRlZC5tYXAoKHtpdGVtfSkgPT4gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBhcnNlSW5wdXQoaW5wdXQ6IGFueSkge1xuICAgIGlmIChpc0Jyb3dzZXJGaWxlKGlucHV0KSkge1xuICAgICAgcmV0dXJuIGF3YWl0IE9wZW5BaU1lc3NhZ2VIZWxwZXIuYnVpbGRGaWxlc01lc3NhZ2UoW2lucHV0XSk7XG4gICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGlucHV0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","// Re-export from impl to maintain backwards compatibility\nexport { ANY_FUNC_SERVICE, injectAnyFunc } from './any-func.service.impl';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWZ1bmMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvYW55LWZ1bmMvc3JjL2xpYi9hbnktZnVuYy9hbnktZnVuYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBEQUEwRDtBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZS1leHBvcnQgZnJvbSBpbXBsIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5leHBvcnQgeyBBTllfRlVOQ19TRVJWSUNFLCBpbmplY3RBbnlGdW5jIH0gZnJvbSAnLi9hbnktZnVuYy5zZXJ2aWNlLmltcGwnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWFueS1mdW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9hbnktZnVuYy9zcmMvbGliL254LWRkZC1hbnktZnVuYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["_targetConstructorToSchema"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx-ddd/any-func",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.9.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": ">=17.0.0",
|
|
6
|
-
"@nx-ddd/common": "19.
|
|
6
|
+
"@nx-ddd/common": "19.9.0",
|
|
7
7
|
"class-transformer": "^0.5.1",
|
|
8
8
|
"class-validator": "^0.14.0",
|
|
9
9
|
"class-validator-jsonschema": "^5.0.0",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"types": "./adapters/local-storage/index.d.ts",
|
|
38
38
|
"default": "./fesm2022/nx-ddd-any-func-adapters-local-storage.mjs"
|
|
39
39
|
},
|
|
40
|
-
"./adapters/local-storage-browser": {
|
|
41
|
-
"types": "./adapters/local-storage-browser/index.d.ts",
|
|
42
|
-
"default": "./fesm2022/nx-ddd-any-func-adapters-local-storage-browser.mjs"
|
|
43
|
-
},
|
|
44
40
|
"./adapters/local-storage-node": {
|
|
45
41
|
"types": "./adapters/local-storage-node/index.d.ts",
|
|
46
42
|
"default": "./fesm2022/nx-ddd-any-func-adapters-local-storage-node.mjs"
|
|
47
43
|
},
|
|
44
|
+
"./adapters/local-storage-browser": {
|
|
45
|
+
"types": "./adapters/local-storage-browser/index.d.ts",
|
|
46
|
+
"default": "./fesm2022/nx-ddd-any-func-adapters-local-storage-browser.mjs"
|
|
47
|
+
},
|
|
48
48
|
"./adapters/validator": {
|
|
49
49
|
"types": "./adapters/validator/index.d.ts",
|
|
50
50
|
"default": "./fesm2022/nx-ddd-any-func-adapters-validator.mjs"
|