@platforma-sdk/block-tools 2.1.11 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/cli.mjs +113 -71
  4. package/dist/cli.mjs.map +1 -1
  5. package/dist/cmd/index.d.ts +2 -0
  6. package/dist/cmd/index.d.ts.map +1 -1
  7. package/dist/cmd/publish.d.ts +11 -0
  8. package/dist/cmd/publish.d.ts.map +1 -0
  9. package/dist/config-B1U40s2a.js +3 -0
  10. package/dist/config-B1U40s2a.js.map +1 -0
  11. package/dist/config-YukCegnp.mjs +1587 -0
  12. package/dist/config-YukCegnp.mjs.map +1 -0
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +170 -38
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/io/folder_reader.d.ts +24 -0
  18. package/dist/io/folder_reader.d.ts.map +1 -0
  19. package/dist/io/index.d.ts +3 -0
  20. package/dist/io/index.d.ts.map +1 -0
  21. package/dist/io/storage.d.ts.map +1 -0
  22. package/dist/lib.d.ts +1 -0
  23. package/dist/lib.d.ts.map +1 -1
  24. package/dist/registry_v1/config_schema.d.ts +13 -13
  25. package/dist/registry_v1/registry.d.ts +1 -1
  26. package/dist/registry_v1/registry.d.ts.map +1 -1
  27. package/dist/registry_v1/v1_repo_schema.d.ts +1 -1
  28. package/dist/registry_v1/v1_repo_schema.d.ts.map +1 -1
  29. package/dist/v2/build_dist.d.ts +2 -1
  30. package/dist/v2/build_dist.d.ts.map +1 -1
  31. package/dist/v2/index.d.ts +1 -0
  32. package/dist/v2/index.d.ts.map +1 -1
  33. package/dist/v2/model/block_components.d.ts +170 -178
  34. package/dist/v2/model/block_components.d.ts.map +1 -1
  35. package/dist/v2/model/block_description.d.ts +2873 -0
  36. package/dist/v2/model/block_description.d.ts.map +1 -0
  37. package/dist/v2/model/{meta.d.ts → block_meta.d.ts} +555 -3
  38. package/dist/v2/model/block_meta.d.ts.map +1 -0
  39. package/dist/v2/model/content_conversion.d.ts +7 -2
  40. package/dist/v2/model/content_conversion.d.ts.map +1 -1
  41. package/dist/v2/model/index.d.ts +3 -2079
  42. package/dist/v2/model/index.d.ts.map +1 -1
  43. package/dist/v2/registry/index.d.ts +4 -0
  44. package/dist/v2/registry/index.d.ts.map +1 -0
  45. package/dist/v2/registry/registry.d.ts +16 -0
  46. package/dist/v2/registry/registry.d.ts.map +1 -0
  47. package/dist/v2/registry/registry_reader.d.ts +12 -0
  48. package/dist/v2/registry/registry_reader.d.ts.map +1 -0
  49. package/dist/v2/registry/schema_internal.d.ts +7 -0
  50. package/dist/v2/registry/schema_internal.d.ts.map +1 -0
  51. package/dist/v2/registry/schema_public.d.ts +4499 -0
  52. package/dist/v2/registry/schema_public.d.ts.map +1 -0
  53. package/package.json +8 -5
  54. package/src/cmd/build-meta.ts +2 -2
  55. package/src/cmd/index.ts +2 -0
  56. package/src/cmd/publish.ts +69 -0
  57. package/src/io/folder_reader.test.ts +21 -0
  58. package/src/io/folder_reader.ts +77 -0
  59. package/src/io/index.ts +2 -0
  60. package/src/lib.ts +1 -0
  61. package/src/registry_v1/config.ts +1 -1
  62. package/src/registry_v1/registry.test.ts +1 -1
  63. package/src/registry_v1/registry.ts +1 -1
  64. package/src/registry_v1/v1_repo_schema.ts +1 -1
  65. package/src/v2/build_dist.ts +16 -12
  66. package/src/v2/index.ts +1 -0
  67. package/src/v2/model/block_components.ts +14 -10
  68. package/src/v2/model/block_description.ts +49 -0
  69. package/src/v2/model/{meta.ts → block_meta.ts} +23 -5
  70. package/src/v2/model/content_conversion.ts +78 -10
  71. package/src/v2/model/index.ts +3 -44
  72. package/src/v2/registry/index.ts +3 -0
  73. package/src/v2/registry/registry.ts +240 -0
  74. package/src/v2/registry/registry_reader.ts +71 -0
  75. package/src/v2/registry/schema_internal.ts +13 -0
  76. package/src/v2/registry/schema_public.ts +112 -0
  77. package/dist/config-Br5DwFuM.mjs +0 -1317
  78. package/dist/config-Br5DwFuM.mjs.map +0 -1
  79. package/dist/config-DMAm68Pm.js +0 -3
  80. package/dist/config-DMAm68Pm.js.map +0 -1
  81. package/dist/lib/storage.d.ts.map +0 -1
  82. package/dist/v2/model/common.d.ts +0 -3
  83. package/dist/v2/model/common.d.ts.map +0 -1
  84. package/dist/v2/model/content_types.d.ts +0 -478
  85. package/dist/v2/model/content_types.d.ts.map +0 -1
  86. package/dist/v2/model/meta.d.ts.map +0 -1
  87. package/dist/v2/registry/schema.d.ts +0 -15
  88. package/dist/v2/registry/schema.d.ts.map +0 -1
  89. package/src/v2/model/common.ts +0 -2
  90. package/src/v2/model/content_types.ts +0 -233
  91. package/src/v2/registry/schema.ts +0 -29
  92. /package/dist/{lib → io}/storage.d.ts +0 -0
  93. /package/src/{lib → io}/storage.test.ts +0 -0
  94. /package/src/{lib → io}/storage.ts +0 -0
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var v=Object.defineProperty;var E=(i,e,t)=>e in i?v(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var n=(i,e,t)=>E(i,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@oclif/core"),c=require("node:path"),u=require("node:fs"),l=require("./config-DMAm68Pm.js"),P=require("yaml"),A=require("@milaboratories/ts-helpers-oclif"),f=class f extends a.Command{async run(){const{flags:e}=await this.parse(f),t=c.resolve(e.modulePath),s=await l.loadPackDescriptionRaw(t),d=await l.BlockPackMetaEmbed.parseAsync(l.BlockPackMetaDescription(t).parse(s.meta));await u.promises.writeFile(c.resolve(e.destination),JSON.stringify(d))}};n(f,"description","Extracts meta information from blocks package.json and outputs meta.json with embedded binary and textual information linked from the meta section."),n(f,"flags",{modulePath:a.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destination:a.Flags.string({char:"o",summary:"output meta.json file",helpValue:"<path>",required:!0})});let w=f;async function O(i){try{return await u.promises.readFile(i,"utf8")}catch(e){if(e.code==="ENOENT")return;throw e}}const p=class p extends a.Command{async run(){const{flags:e}=await this.parse(p),t=c.resolve(e.modulePath);let{model:s,platforma:d}=require(t);if(s||(s=d),!s)throw new Error('"model" export not found');const{config:r}=s;if(!r)throw new Error('Malformed "model" object, check it is created with "BlockModel" and ".done()" is executed as the call in the chain.');if(!("canRun"in r||"inputsValid"in r)||!("outputs"in r)||!("sections"in r))throw new Error('"config" has unexpected structure');const m=await O(e.sourceBundle);m!==void 0&&(r.code={type:"plain",content:m}),await u.promises.writeFile(c.resolve(e.destination),JSON.stringify(r))}};n(p,"description","Extracts and outputs block model JSON from pre-built block model module"),n(p,"flags",{modulePath:a.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),sourceBundle:a.Flags.string({char:"b",summary:"bundled model code to embed into the model for callback-based rendering to work",helpValue:"<path>",default:"./dist/bundle.js"}),destination:a.Flags.string({char:"o",summary:"output model file",helpValue:"<path>",default:"./dist/model.json"})});let y=p;const g=class g extends a.Command{async run(){const{flags:e}=await this.parse(g),t=await l.loadPackDescription(c.resolve(e.modulePath));await l.buildBlockPackDist(t,c.resolve(e.destinationPath))}};n(g,"description","Builds block pack and outputs a block pack manifest consolidating all references assets into a single folder"),n(g,"flags",{modulePath:a.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destinationPath:a.Flags.string({char:"o",summary:"output folder",helpValue:"<path>",default:"./block-pack"})});let F=g;function C(i){const e=i.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);if(e){const{src:t,destName:s}=e.groups;return{src:t,destName:s}}else return{src:i,destName:c.basename(i)}}const R=a.Flags.custom({summary:"target files to upload",helpValue:"file_path | package_name=file_path",parse:async i=>C(i)}),S=["registry","organization","package","version"],h=class h extends a.Command{async run(){const{flags:e}=await this.parse(h),t=l.PlRegPackageConfigDataShard.parse({});for(const o of S)e[o]&&(t[o]=e[o]);e.meta&&(e.meta.endsWith(".json")?t.meta=JSON.parse(await u.promises.readFile(e.meta,{encoding:"utf-8"})):e.meta.endsWith(".yaml")&&(t.meta=P.parse(await u.promises.readFile(e.meta,{encoding:"utf-8"}))));for(const o of e.file)t.files[o.destName]=o.src;const s=await l.getConfig(t);this.log(P.stringify(s.conf));const d=s.createRegistry(new A.OclifLoggerAdapter(this)),r=s.fullPackageName,m=d.constructNewPackage(r);for(const[o,k]of Object.entries(s.conf.files)){this.log(`Uploading ${k} -> ${o} ...`);const N=await u.promises.readFile(k);await m.addFile(o,N)}this.log("Uploading meta information..."),await m.writeMeta(s.conf.meta),await m.finish(),e.refresh&&await d.updateIfNeeded()}};n(h,"description","Uploads V1 package and refreshes the registry"),n(h,"flags",{registry:a.Flags.string({char:"r",summary:"full address of the registry or alias from .pl.reg",helpValue:"<address|alias>",env:"PL_REGISTRY"}),organization:a.Flags.string({char:"o",summary:"target organisation",env:"PL_PACKAGE_ORGANIZATION"}),package:a.Flags.string({char:"p",summary:"target package",env:"PL_PACKAGE_NAME"}),version:a.Flags.string({char:"v",summary:"target version",env:"PL_PACKAGE_VERSION"}),meta:a.Flags.file({char:"m",summary:"json file containing meta information to associate with tha package",exists:!0}),file:R({char:"f",summary:"package files",multiple:!0,default:[]}),refresh:a.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"})});let b=h;const x={"upload-package-v1":b,pack:F,"build-model":y,"build-meta":w};exports.COMMANDS=x;
1
+ "use strict";var S=Object.defineProperty;var A=(r,e,a)=>e in r?S(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;var n=(r,e,a)=>A(r,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@oclif/core"),l=require("node:path"),u=require("node:fs");require("zod");require("mime-types");require("tar");require("@milaboratories/resolve-helper");const c=require("./config-B1U40s2a.js"),O=require("@milaboratories/pl-model-middle-layer");require("canonicalize");const E=require("@milaboratories/ts-helpers-oclif"),N=require("yaml"),f=class f extends t.Command{async run(){const{flags:e}=await this.parse(f),a=l.resolve(e.modulePath),s=await c.loadPackDescriptionRaw(a),d=await c.BlockPackMetaEmbedAbsoluteBase64.parseAsync(c.BlockPackMetaDescription(a).parse(s.meta));await u.promises.writeFile(l.resolve(e.destination),JSON.stringify(d))}};n(f,"description","Extracts meta information from blocks package.json and outputs meta.json with embedded binary and textual information linked from the meta section."),n(f,"flags",{modulePath:t.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destination:t.Flags.string({char:"o",summary:"output meta.json file",helpValue:"<path>",required:!0})});let w=f;async function q(r){try{return await u.promises.readFile(r,"utf8")}catch(e){if(e.code==="ENOENT")return;throw e}}const g=class g extends t.Command{async run(){const{flags:e}=await this.parse(g),a=l.resolve(e.modulePath);let{model:s,platforma:d}=require(a);if(s||(s=d),!s)throw new Error('"model" export not found');const{config:i}=s;if(!i)throw new Error('Malformed "model" object, check it is created with "BlockModel" and ".done()" is executed as the call in the chain.');if(!("canRun"in i||"inputsValid"in i)||!("outputs"in i)||!("sections"in i))throw new Error('"config" has unexpected structure');const m=await q(e.sourceBundle);m!==void 0&&(i.code={type:"plain",content:m}),await u.promises.writeFile(l.resolve(e.destination),JSON.stringify(i))}};n(g,"description","Extracts and outputs block model JSON from pre-built block model module"),n(g,"flags",{modulePath:t.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),sourceBundle:t.Flags.string({char:"b",summary:"bundled model code to embed into the model for callback-based rendering to work",helpValue:"<path>",default:"./dist/bundle.js"}),destination:t.Flags.string({char:"o",summary:"output model file",helpValue:"<path>",default:"./dist/model.json"})});let k=g;const p=class p extends t.Command{async run(){const{flags:e}=await this.parse(p),a=await c.loadPackDescription(l.resolve(e.modulePath));await c.buildBlockPackDist(a,l.resolve(e.destinationPath))}};n(p,"description","Builds block pack and outputs a block pack manifest consolidating all references assets into a single folder"),n(p,"flags",{modulePath:t.Flags.string({char:"i",summary:"input module path",helpValue:"<path>",default:"."}),destinationPath:t.Flags.string({char:"o",summary:"output folder",helpValue:"<path>",default:"./block-pack"})});let F=p;const h=class h extends t.Command{async run(){const{flags:e}=await this.parse(h),a=l.resolve(e.manifest),s=O.BlockPackManifest.parse(JSON.parse(await u.promises.readFile(a,{encoding:"utf-8"}))),d=l.dirname(a);this.log(`Manifest root = ${d}`);const i=c.storageByUrl(e.registry),m=new c.BlockRegistryV2(i,new E.OclifLoggerAdapter(this));await m.publishPackage(s,async o=>Buffer.from(await u.promises.readFile(l.resolve(d,o)))),e.refresh&&await m.updateIfNeeded()}};n(h,"description","Publishes the block package and refreshes the registry (for v2 block-pack schema)"),n(h,"flags",{registry:t.Flags.string({char:"r",summary:"full address of the registry",helpValue:"<address>",env:"PL_REGISTRY",required:!0}),manifest:t.Flags.file({char:"m",summary:"manifest file path",exists:!0,default:`./block-pack/${c.ManifestFileName}`}),refresh:t.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"})});let b=h;function C(r){const e=r.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);if(e){const{src:a,destName:s}=e.groups;return{src:a,destName:s}}else return{src:r,destName:l.basename(r)}}const x=t.Flags.custom({summary:"target files to upload",helpValue:"file_path | package_name=file_path",parse:async r=>C(r)}),L=["registry","organization","package","version"],y=class y extends t.Command{async run(){const{flags:e}=await this.parse(y),a=c.PlRegPackageConfigDataShard.parse({});for(const o of L)e[o]&&(a[o]=e[o]);e.meta&&(e.meta.endsWith(".json")?a.meta=JSON.parse(await u.promises.readFile(e.meta,{encoding:"utf-8"})):e.meta.endsWith(".yaml")&&(a.meta=N.parse(await u.promises.readFile(e.meta,{encoding:"utf-8"}))));for(const o of e.file)a.files[o.destName]=o.src;const s=await c.getConfig(a);this.log(N.stringify(s.conf));const d=s.createRegistry(new E.OclifLoggerAdapter(this)),i=s.fullPackageName,m=d.constructNewPackage(i);for(const[o,v]of Object.entries(s.conf.files)){this.log(`Uploading ${v} -> ${o} ...`);const R=await u.promises.readFile(v);await m.addFile(o,R)}this.log("Uploading meta information..."),await m.writeMeta(s.conf.meta),await m.finish(),e.refresh&&await d.updateIfNeeded()}};n(y,"description","Uploads V1 package and refreshes the registry"),n(y,"flags",{registry:t.Flags.string({char:"r",summary:"full address of the registry or alias from .pl.reg",helpValue:"<address|alias>",env:"PL_REGISTRY"}),organization:t.Flags.string({char:"o",summary:"target organisation",env:"PL_PACKAGE_ORGANIZATION"}),package:t.Flags.string({char:"p",summary:"target package",env:"PL_PACKAGE_NAME"}),version:t.Flags.string({char:"v",summary:"target version",env:"PL_PACKAGE_VERSION"}),meta:t.Flags.file({char:"m",summary:"json file containing meta information to associate with tha package",exists:!0}),file:x({char:"f",summary:"package files",multiple:!0,default:[]}),refresh:t.Flags.boolean({summary:"refresh repository after adding the package",default:!0,allowNo:!0,env:"PL_REGISTRY_REFRESH"})});let P=y;const M={"upload-package-v1":P,pack:F,"build-model":k,"build-meta":w,publish:b};exports.COMMANDS=M;
2
2
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/pack-block.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbed } from '../v2/model/meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbed.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import BuildMeta from './build-meta';\nimport BuildModel from './build-model';\nimport PackBlock from './pack-block';\nimport UploadPackageV1 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'upload-package-v1': UploadPackageV1,\n 'pack': PackBlock,\n 'build-model': BuildModel,\n 'build-meta': BuildMeta,\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbed","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_PackBlock","description","loadPackDescription","buildBlockPackDist","PackBlock","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","registry","OclifLoggerAdapter","name","builder","dst","content","UploadPackageV1","COMMANDS"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/pack-block.ts","../src/cmd/publish.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbedAbsoluteBase64 } from '../v2/model/block_meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbedAbsoluteBase64.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'node:fs';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\nimport { ManifestFileName } from '../v2/registry/schema_public';\nimport { BlockPackManifest } from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io/storage';\nimport { BlockRegistryV2 } from '../v2/registry/registry';\nimport path from 'node:path';\n\nexport default class Publish extends Command {\n static description =\n 'Publishes the block package and refreshes the registry (for v2 block-pack schema)';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n manifest: Flags.file({\n char: 'm',\n summary: 'manifest file path',\n exists: true,\n default: `./block-pack/${ManifestFileName}`\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Publish);\n\n // if (flags.meta) {\n // if (flags.meta.endsWith('.json'))\n // configFromFlags.meta = JSON.parse(\n // await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n // );\n // else if (flags.meta.endsWith('.yaml'))\n // configFromFlags.meta = YAML.parse(\n // await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n // );\n // }\n\n const manifestPath = path.resolve(flags.manifest);\n const manifest = BlockPackManifest.parse(\n JSON.parse(await fs.promises.readFile(manifestPath, { encoding: 'utf-8' }))\n );\n const manifestRoot = path.dirname(manifestPath);\n\n this.log(`Manifest root = ${manifestRoot}`);\n\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n await registry.publishPackage(manifest, async (file) =>\n Buffer.from(await fs.promises.readFile(path.resolve(manifestRoot, file)))\n );\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import BuildMeta from './build-meta';\nimport BuildModel from './build-model';\nimport PackBlock from './pack-block';\nimport Publish from './publish';\nimport UploadPackageV1 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'upload-package-v1': UploadPackageV1,\n 'pack': PackBlock,\n 'build-model': BuildModel,\n 'build-meta': BuildMeta,\n 'publish': Publish,\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbedAbsoluteBase64","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_PackBlock","description","loadPackDescription","buildBlockPackDist","PackBlock","_Publish","manifestPath","manifest","BlockPackManifest","manifestRoot","storage","storageByUrl","registry","BlockRegistryV2","OclifLoggerAdapter","file","ManifestFileName","Publish","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","name","builder","dst","content","UploadPackageV1","COMMANDS"],"mappings":"slBAMqBA,EAArB,MAAqBA,UAAkBC,EAAAA,OAAQ,CAqB7C,MAAa,KAAqB,CAChC,KAAM,CAAE,MAAAC,CAAM,EAAI,MAAM,KAAK,MAAMF,CAAS,EACtCG,EAAaC,EAAK,QAAQF,EAAM,UAAU,EAC1CG,EAAiB,MAAMC,yBAAuBH,CAAU,EACxDI,EAAe,MAAMC,EAAAA,iCAAiC,WAC1DC,EAAAA,yBAAyBN,CAAU,EAAE,MAAME,EAAe,IAAI,CAAA,EAG1D,MAAAK,EAAG,SAAS,UAAUN,EAAK,QAAQF,EAAM,WAAW,EAAG,KAAK,UAAUK,CAAY,CAAC,CAC3F,CACF,EA9BEI,EADmBX,EACH,cACd,uJAGFW,EALmBX,EAKZ,QAAQ,CACb,WAAYY,QAAM,OAAO,CACvB,KAAM,IACN,QAAS,oBACT,UAAW,SACX,QAAS,GAAA,CACV,EAED,YAAaA,QAAM,OAAO,CACxB,KAAM,IACN,QAAS,wBACT,UAAW,SACX,SAAU,EAAA,CACX,CAAA,GAlBL,IAAqBC,EAArBb,ECFA,eAAec,EAAeV,EAAc,CACtC,GAAA,CACF,OAAO,MAAMM,EAAG,SAAS,SAASN,EAAM,MAAM,QACvCW,EAAY,CACf,GAAAA,EAAM,OAAS,SACV,OAEH,MAAAA,CACR,CACF,CAEA,MAAqBC,EAArB,MAAqBA,UAAmBf,EAAAA,OAAQ,CA2B9C,MAAa,KAAqB,CAChC,KAAM,CAAE,MAAAC,CAAM,EAAI,MAAM,KAAK,MAAMc,CAAU,EACvCb,EAAaC,EAAK,QAAQF,EAAM,UAAU,EAChD,GAAI,CAAE,MAAAe,EAAO,UAAAC,CAAU,EAAI,QAAQf,CAAU,EAG7C,GADKc,IAAeA,EAAAC,GAChB,CAACD,EAAa,MAAA,IAAI,MAAM,0BAA0B,EAEhD,KAAA,CAAE,OAAAE,CAAW,EAAAF,EAEnB,GAAI,CAACE,EACH,MAAM,IAAI,MACR,qHAAA,EAKF,GAAA,EAAE,WAAYA,GAAU,gBAAiBA,IACzC,EAAE,YAAaA,IACf,EAAE,aAAcA,GAEV,MAAA,IAAI,MAAM,mCAAmC,EAErD,MAAMC,EAAO,MAAMN,EAAeZ,EAAM,YAAY,EAChDkB,IAAS,SACXD,EAAO,KAAO,CACZ,KAAM,QACN,QAASC,CAAA,GAIP,MAAAV,EAAG,SAAS,UAAUN,EAAK,QAAQF,EAAM,WAAW,EAAG,KAAK,UAAUiB,CAAM,CAAC,CACrF,CACF,EA3DER,EADmBK,EACH,cACd,2EAEFL,EAJmBK,EAIZ,QAAQ,CACb,WAAYJ,QAAM,OAAO,CACvB,KAAM,IACN,QAAS,oBACT,UAAW,SACX,QAAS,GAAA,CACV,EAED,aAAcA,QAAM,OAAO,CACzB,KAAM,IACN,QAAS,kFACT,UAAW,SACX,QAAS,kBAAA,CACV,EAED,YAAaA,QAAM,OAAO,CACxB,KAAM,IACN,QAAS,oBACT,UAAW,SACX,QAAS,mBAAA,CACV,CAAA,GAxBL,IAAqBS,EAArBL,ECVA,MAAqBM,EAArB,MAAqBA,UAAkBrB,EAAAA,OAAQ,CAqB7C,MAAa,KAAqB,CAChC,KAAM,CAAE,MAAAC,CAAM,EAAI,MAAM,KAAK,MAAMoB,CAAS,EACtCC,EAAc,MAAMC,sBAAoBpB,EAAK,QAAQF,EAAM,UAAU,CAAC,EAC5E,MAAMuB,EAAAA,mBAAmBF,EAAanB,EAAK,QAAQF,EAAM,eAAe,CAAC,CAC3E,CACF,EAzBES,EADmBW,EACZ,cACL,gHAGFX,EALmBW,EAKZ,QAAQ,CACb,WAAYV,QAAM,OAAO,CACvB,KAAM,IACN,QAAS,oBACT,UAAW,SACX,QAAS,GAAA,CACV,EAED,gBAAiBA,QAAM,OAAO,CAC5B,KAAM,IACN,QAAS,gBACT,UAAW,SACX,QAAS,cAAA,CACV,CAAA,GAlBL,IAAqBc,EAArBJ,ECIA,MAAqBK,EAArB,MAAqBA,UAAgB1B,EAAAA,OAAQ,CA4B3C,MAAa,KAAqB,CAChC,KAAM,CAAE,MAAAC,CAAM,EAAI,MAAM,KAAK,MAAMyB,CAAO,EAapCC,EAAexB,EAAK,QAAQF,EAAM,QAAQ,EAC1C2B,EAAWC,EAAAA,kBAAkB,MACjC,KAAK,MAAM,MAAMpB,EAAG,SAAS,SAASkB,EAAc,CAAE,SAAU,OAAQ,CAAC,CAAC,CAAA,EAEtEG,EAAe3B,EAAK,QAAQwB,CAAY,EAEzC,KAAA,IAAI,mBAAmBG,CAAY,EAAE,EAEpC,MAAAC,EAAUC,EAAAA,aAAa/B,EAAM,QAAQ,EACrCgC,EAAW,IAAIC,kBAAgBH,EAAS,IAAII,EAAA,mBAAmB,IAAI,CAAC,EAE1E,MAAMF,EAAS,eAAeL,EAAU,MAAOQ,GAC7C,OAAO,KAAK,MAAM3B,EAAG,SAAS,SAASN,EAAK,QAAQ2B,EAAcM,CAAI,CAAC,CAAC,CAAA,EAGtEnC,EAAM,SAAe,MAAAgC,EAAS,eAAe,CACnD,CACF,EA1DEvB,EADmBgB,EACZ,cACL,qFAEFhB,EAJmBgB,EAIZ,QAAQ,CACb,SAAUf,QAAM,OAAO,CACrB,KAAM,IACN,QAAS,+BACT,UAAW,YACX,IAAK,cACL,SAAU,EAAA,CACX,EAED,SAAUA,QAAM,KAAK,CACnB,KAAM,IACN,QAAS,qBACT,OAAQ,GACR,QAAS,gBAAgB0B,EAAAA,gBAAgB,EAAA,CAC1C,EAED,QAAS1B,QAAM,QAAQ,CACrB,QAAS,8CACT,QAAS,GACT,QAAS,GACT,IAAK,qBAAA,CACN,CAAA,GAzBL,IAAqB2B,EAArBZ,ECDA,SAASa,EAAgBC,EAAyB,CAC1C,MAAAC,EAAQD,EAAI,MAAM,kCAAkC,EAC1D,GAAIC,EAAO,CACT,KAAM,CAAE,IAAAC,EAAK,SAAAC,GAAaF,EAAM,OACzB,MAAA,CAAE,IAAAC,EAAK,SAAAC,EAAS,KAEvB,OAAO,CAAE,IAAKH,EAAK,SAAUrC,EAAK,SAASqC,CAAG,EAElD,CAEa,MAAAI,EAAajC,QAAM,OAAmB,CACjD,QAAS,yBACT,UAAW,qCACX,MAAO,MAAO6B,GAAQD,EAAgBC,CAAG,CAC3C,CAAC,ECZKK,EAAwC,CAAC,WAAY,eAAgB,UAAW,SAAS,EAE1EC,EAArB,MAAqBA,UAAwB9C,EAAAA,OAAQ,CAkDnD,MAAa,KAAqB,CAChC,KAAM,CAAE,MAAAC,CAAM,EAAI,MAAM,KAAK,MAAM6C,CAAe,EAC5CC,EAA+CC,EAAAA,4BAA4B,MAAM,CAAE,CAAA,EAE9E,UAAAC,KAASJ,EAAuB5C,EAAMgD,CAAK,IAAmBF,EAAAE,CAAK,EAAIhD,EAAMgD,CAAK,GAEzFhD,EAAM,OACJA,EAAM,KAAK,SAAS,OAAO,EAC7B8C,EAAgB,KAAO,KAAK,MAC1B,MAAMtC,EAAG,SAAS,SAASR,EAAM,KAAM,CAAE,SAAU,QAAS,CAAA,EAEvDA,EAAM,KAAK,SAAS,OAAO,IAClC8C,EAAgB,KAAOG,EAAK,MAC1B,MAAMzC,EAAG,SAAS,SAASR,EAAM,KAAM,CAAE,SAAU,QAAS,CAAA,IAIvD2C,UAAAA,KAAc3C,EAAM,KAC7B8C,EAAgB,MAAMH,EAAW,QAAQ,EAAIA,EAAW,IAGpD,MAAAO,EAAO,MAAMC,YAAUL,CAAe,EAE5C,KAAK,IAAIG,EAAK,UAAUC,EAAK,IAAI,CAAC,EAElC,MAAMlB,EAAWkB,EAAK,eAAe,IAAIhB,EAAA,mBAAmB,IAAI,CAAC,EAC3DkB,EAAOF,EAAK,gBAEZG,EAAUrB,EAAS,oBAAoBoB,CAAI,EAEtC,SAAA,CAACE,EAAKb,CAAG,IAAK,OAAO,QAAQS,EAAK,KAAK,KAAK,EAAG,CACxD,KAAK,IAAI,aAAaT,CAAG,OAAOa,CAAG,MAAM,EACzC,MAAMC,EAAU,MAAM/C,EAAG,SAAS,SAASiC,CAAG,EACxC,MAAAY,EAAQ,QAAQC,EAAKC,CAAO,CACpC,CAEA,KAAK,IAAI,+BAA+B,EACxC,MAAMF,EAAQ,UAAUH,EAAK,KAAK,IAAI,EACtC,MAAMG,EAAQ,SAEVrD,EAAM,SAAe,MAAAgC,EAAS,eAAe,CACnD,CACF,EA3FEvB,EADmBoC,EACZ,cAAc,iDAErBpC,EAHmBoC,EAGZ,QAAQ,CACb,SAAUnC,QAAM,OAAO,CACrB,KAAM,IACN,QAAS,qDACT,UAAW,kBACX,IAAK,aAAA,CACN,EAED,aAAcA,QAAM,OAAO,CACzB,KAAM,IACN,QAAS,sBACT,IAAK,yBAAA,CACN,EAED,QAASA,QAAM,OAAO,CACpB,KAAM,IACN,QAAS,iBACT,IAAK,iBAAA,CACN,EAED,QAASA,QAAM,OAAO,CACpB,KAAM,IACN,QAAS,iBACT,IAAK,oBAAA,CACN,EAED,KAAMA,QAAM,KAAK,CACf,KAAM,IACN,QAAS,sEACT,OAAQ,EAAA,CACT,EAED,KAAMiC,EAAW,CACf,KAAM,IACN,QAAS,gBACT,SAAU,GACV,QAAS,CAAC,CAAA,CACX,EAED,QAASjC,QAAM,QAAQ,CACrB,QAAS,8CACT,QAAS,GACT,QAAS,GACT,IAAK,qBAAA,CACN,CAAA,GA/CL,IAAqB8C,EAArBX,ECLO,MAAMY,EAAW,CACtB,oBAAqBD,EACrB,KAAQhC,EACR,cAAeL,EACf,aAAcR,EACd,QAAW0B,CACb"}
package/dist/cli.mjs CHANGED
@@ -1,187 +1,229 @@
1
- var E = Object.defineProperty;
2
- var F = (i, e, t) => e in i ? E(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
- var n = (i, e, t) => F(i, typeof e != "symbol" ? e + "" : e, t);
4
- import { Command as g, Flags as s } from "@oclif/core";
1
+ var x = Object.defineProperty;
2
+ var A = (r, e, t) => e in r ? x(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
+ var n = (r, e, t) => A(r, typeof e != "symbol" ? e + "" : e, t);
4
+ import { Command as y, Flags as a } from "@oclif/core";
5
5
  import c from "node:path";
6
6
  import d from "node:fs";
7
- import { l as A, B as R, a as x, b as O, c as S, P as j, g as C } from "./config-Br5DwFuM.mjs";
8
- import N from "yaml";
9
- import { OclifLoggerAdapter as V } from "@milaboratories/ts-helpers-oclif";
10
- const u = class u extends g {
7
+ import "zod";
8
+ import "mime-types";
9
+ import "tar";
10
+ import "@milaboratories/resolve-helper";
11
+ import { l as S, B as O, a as V, b as j, c as C, M as I, s as L, d as G, P as M, g as T } from "./config-YukCegnp.mjs";
12
+ import { BlockPackManifest as D } from "@milaboratories/pl-model-middle-layer";
13
+ import "canonicalize";
14
+ import { OclifLoggerAdapter as R } from "@milaboratories/ts-helpers-oclif";
15
+ import E from "yaml";
16
+ const f = class f extends y {
11
17
  async run() {
12
- const { flags: e } = await this.parse(u), t = c.resolve(e.modulePath), a = await A(t), l = await R.parseAsync(
13
- x(t).parse(a.meta)
18
+ const { flags: e } = await this.parse(f), t = c.resolve(e.modulePath), s = await S(t), l = await O.parseAsync(
19
+ V(t).parse(s.meta)
14
20
  );
15
21
  await d.promises.writeFile(c.resolve(e.destination), JSON.stringify(l));
16
22
  }
17
23
  };
18
- n(u, "description", "Extracts meta information from blocks package.json and outputs meta.json with embedded binary and textual information linked from the meta section."), n(u, "flags", {
19
- modulePath: s.string({
24
+ n(f, "description", "Extracts meta information from blocks package.json and outputs meta.json with embedded binary and textual information linked from the meta section."), n(f, "flags", {
25
+ modulePath: a.string({
20
26
  char: "i",
21
27
  summary: "input module path",
22
28
  helpValue: "<path>",
23
29
  default: "."
24
30
  }),
25
- destination: s.string({
31
+ destination: a.string({
26
32
  char: "o",
27
33
  summary: "output meta.json file",
28
34
  helpValue: "<path>",
29
35
  required: !0
30
36
  })
31
37
  });
32
- let w = u;
33
- async function L(i) {
38
+ let w = f;
39
+ async function B(r) {
34
40
  try {
35
- return await d.promises.readFile(i, "utf8");
41
+ return await d.promises.readFile(r, "utf8");
36
42
  } catch (e) {
37
43
  if (e.code === "ENOENT")
38
44
  return;
39
45
  throw e;
40
46
  }
41
47
  }
42
- const f = class f extends g {
48
+ const u = class u extends y {
43
49
  async run() {
44
- const { flags: e } = await this.parse(f), t = c.resolve(e.modulePath);
45
- let { model: a, platforma: l } = require(t);
46
- if (a || (a = l), !a) throw new Error('"model" export not found');
47
- const { config: r } = a;
48
- if (!r)
50
+ const { flags: e } = await this.parse(u), t = c.resolve(e.modulePath);
51
+ let { model: s, platforma: l } = require(t);
52
+ if (s || (s = l), !s) throw new Error('"model" export not found');
53
+ const { config: i } = s;
54
+ if (!i)
49
55
  throw new Error(
50
56
  'Malformed "model" object, check it is created with "BlockModel" and ".done()" is executed as the call in the chain.'
51
57
  );
52
- if (!("canRun" in r || "inputsValid" in r) || !("outputs" in r) || !("sections" in r))
58
+ if (!("canRun" in i || "inputsValid" in i) || !("outputs" in i) || !("sections" in i))
53
59
  throw new Error('"config" has unexpected structure');
54
- const m = await L(e.sourceBundle);
55
- m !== void 0 && (r.code = {
60
+ const m = await B(e.sourceBundle);
61
+ m !== void 0 && (i.code = {
56
62
  type: "plain",
57
63
  content: m
58
- }), await d.promises.writeFile(c.resolve(e.destination), JSON.stringify(r));
64
+ }), await d.promises.writeFile(c.resolve(e.destination), JSON.stringify(i));
59
65
  }
60
66
  };
61
- n(f, "description", "Extracts and outputs block model JSON from pre-built block model module"), n(f, "flags", {
62
- modulePath: s.string({
67
+ n(u, "description", "Extracts and outputs block model JSON from pre-built block model module"), n(u, "flags", {
68
+ modulePath: a.string({
63
69
  char: "i",
64
70
  summary: "input module path",
65
71
  helpValue: "<path>",
66
72
  default: "."
67
73
  }),
68
- sourceBundle: s.string({
74
+ sourceBundle: a.string({
69
75
  char: "b",
70
76
  summary: "bundled model code to embed into the model for callback-based rendering to work",
71
77
  helpValue: "<path>",
72
78
  default: "./dist/bundle.js"
73
79
  }),
74
- destination: s.string({
80
+ destination: a.string({
75
81
  char: "o",
76
82
  summary: "output model file",
77
83
  helpValue: "<path>",
78
84
  default: "./dist/model.json"
79
85
  })
80
86
  });
81
- let y = f;
82
- const p = class p extends g {
87
+ let k = u;
88
+ const p = class p extends y {
83
89
  async run() {
84
- const { flags: e } = await this.parse(p), t = await O(c.resolve(e.modulePath));
85
- await S(t, c.resolve(e.destinationPath));
90
+ const { flags: e } = await this.parse(p), t = await j(c.resolve(e.modulePath));
91
+ await C(t, c.resolve(e.destinationPath));
86
92
  }
87
93
  };
88
94
  n(p, "description", "Builds block pack and outputs a block pack manifest consolidating all references assets into a single folder"), n(p, "flags", {
89
- modulePath: s.string({
95
+ modulePath: a.string({
90
96
  char: "i",
91
97
  summary: "input module path",
92
98
  helpValue: "<path>",
93
99
  default: "."
94
100
  }),
95
- destinationPath: s.string({
101
+ destinationPath: a.string({
96
102
  char: "o",
97
103
  summary: "output folder",
98
104
  helpValue: "<path>",
99
105
  default: "./block-pack"
100
106
  })
101
107
  });
102
- let k = p;
103
- function D(i) {
104
- const e = i.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);
108
+ let b = p;
109
+ const h = class h extends y {
110
+ async run() {
111
+ const { flags: e } = await this.parse(h), t = c.resolve(e.manifest), s = D.parse(
112
+ JSON.parse(await d.promises.readFile(t, { encoding: "utf-8" }))
113
+ ), l = c.dirname(t);
114
+ this.log(`Manifest root = ${l}`);
115
+ const i = L(e.registry), m = new G(i, new R(this));
116
+ await m.publishPackage(
117
+ s,
118
+ async (o) => Buffer.from(await d.promises.readFile(c.resolve(l, o)))
119
+ ), e.refresh && await m.updateIfNeeded();
120
+ }
121
+ };
122
+ n(h, "description", "Publishes the block package and refreshes the registry (for v2 block-pack schema)"), n(h, "flags", {
123
+ registry: a.string({
124
+ char: "r",
125
+ summary: "full address of the registry",
126
+ helpValue: "<address>",
127
+ env: "PL_REGISTRY",
128
+ required: !0
129
+ }),
130
+ manifest: a.file({
131
+ char: "m",
132
+ summary: "manifest file path",
133
+ exists: !0,
134
+ default: `./block-pack/${I}`
135
+ }),
136
+ refresh: a.boolean({
137
+ summary: "refresh repository after adding the package",
138
+ default: !0,
139
+ allowNo: !0,
140
+ env: "PL_REGISTRY_REFRESH"
141
+ })
142
+ });
143
+ let P = h;
144
+ function J(r) {
145
+ const e = r.match(/(?<destName>[^\/\\]+)=(?<src>.*)/);
105
146
  if (e) {
106
- const { src: t, destName: a } = e.groups;
107
- return { src: t, destName: a };
147
+ const { src: t, destName: s } = e.groups;
148
+ return { src: t, destName: s };
108
149
  } else
109
- return { src: i, destName: c.basename(i) };
150
+ return { src: r, destName: c.basename(r) };
110
151
  }
111
- const G = s.custom({
152
+ const Y = a.custom({
112
153
  summary: "target files to upload",
113
154
  helpValue: "file_path | package_name=file_path",
114
- parse: async (i) => D(i)
115
- }), I = ["registry", "organization", "package", "version"], h = class h extends g {
155
+ parse: async (r) => J(r)
156
+ }), $ = ["registry", "organization", "package", "version"], g = class g extends y {
116
157
  async run() {
117
- const { flags: e } = await this.parse(h), t = j.parse({});
118
- for (const o of I) e[o] && (t[o] = e[o]);
158
+ const { flags: e } = await this.parse(g), t = M.parse({});
159
+ for (const o of $) e[o] && (t[o] = e[o]);
119
160
  e.meta && (e.meta.endsWith(".json") ? t.meta = JSON.parse(
120
161
  await d.promises.readFile(e.meta, { encoding: "utf-8" })
121
- ) : e.meta.endsWith(".yaml") && (t.meta = N.parse(
162
+ ) : e.meta.endsWith(".yaml") && (t.meta = E.parse(
122
163
  await d.promises.readFile(e.meta, { encoding: "utf-8" })
123
164
  )));
124
165
  for (const o of e.file)
125
166
  t.files[o.destName] = o.src;
126
- const a = await C(t);
127
- this.log(N.stringify(a.conf));
128
- const l = a.createRegistry(new V(this)), r = a.fullPackageName, m = l.constructNewPackage(r);
129
- for (const [o, P] of Object.entries(a.conf.files)) {
130
- this.log(`Uploading ${P} -> ${o} ...`);
131
- const v = await d.promises.readFile(P);
132
- await m.addFile(o, v);
167
+ const s = await T(t);
168
+ this.log(E.stringify(s.conf));
169
+ const l = s.createRegistry(new R(this)), i = s.fullPackageName, m = l.constructNewPackage(i);
170
+ for (const [o, N] of Object.entries(s.conf.files)) {
171
+ this.log(`Uploading ${N} -> ${o} ...`);
172
+ const F = await d.promises.readFile(N);
173
+ await m.addFile(o, F);
133
174
  }
134
- this.log("Uploading meta information..."), await m.writeMeta(a.conf.meta), await m.finish(), e.refresh && await l.updateIfNeeded();
175
+ this.log("Uploading meta information..."), await m.writeMeta(s.conf.meta), await m.finish(), e.refresh && await l.updateIfNeeded();
135
176
  }
136
177
  };
137
- n(h, "description", "Uploads V1 package and refreshes the registry"), n(h, "flags", {
138
- registry: s.string({
178
+ n(g, "description", "Uploads V1 package and refreshes the registry"), n(g, "flags", {
179
+ registry: a.string({
139
180
  char: "r",
140
181
  summary: "full address of the registry or alias from .pl.reg",
141
182
  helpValue: "<address|alias>",
142
183
  env: "PL_REGISTRY"
143
184
  }),
144
- organization: s.string({
185
+ organization: a.string({
145
186
  char: "o",
146
187
  summary: "target organisation",
147
188
  env: "PL_PACKAGE_ORGANIZATION"
148
189
  }),
149
- package: s.string({
190
+ package: a.string({
150
191
  char: "p",
151
192
  summary: "target package",
152
193
  env: "PL_PACKAGE_NAME"
153
194
  }),
154
- version: s.string({
195
+ version: a.string({
155
196
  char: "v",
156
197
  summary: "target version",
157
198
  env: "PL_PACKAGE_VERSION"
158
199
  }),
159
- meta: s.file({
200
+ meta: a.file({
160
201
  char: "m",
161
202
  summary: "json file containing meta information to associate with tha package",
162
203
  exists: !0
163
204
  }),
164
- file: G({
205
+ file: Y({
165
206
  char: "f",
166
207
  summary: "package files",
167
208
  multiple: !0,
168
209
  default: []
169
210
  }),
170
- refresh: s.boolean({
211
+ refresh: a.boolean({
171
212
  summary: "refresh repository after adding the package",
172
213
  default: !0,
173
214
  allowNo: !0,
174
215
  env: "PL_REGISTRY_REFRESH"
175
216
  })
176
217
  });
177
- let b = h;
178
- const W = {
179
- "upload-package-v1": b,
180
- pack: k,
181
- "build-model": y,
182
- "build-meta": w
218
+ let v = g;
219
+ const se = {
220
+ "upload-package-v1": v,
221
+ pack: b,
222
+ "build-model": k,
223
+ "build-meta": w,
224
+ publish: P
183
225
  };
184
226
  export {
185
- W as COMMANDS
227
+ se as COMMANDS
186
228
  };
187
229
  //# sourceMappingURL=cli.mjs.map
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/pack-block.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbed } from '../v2/model/meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbed.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import BuildMeta from './build-meta';\nimport BuildModel from './build-model';\nimport PackBlock from './pack-block';\nimport UploadPackageV1 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'upload-package-v1': UploadPackageV1,\n 'pack': PackBlock,\n 'build-model': BuildModel,\n 'build-meta': BuildMeta,\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbed","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_PackBlock","description","loadPackDescription","buildBlockPackDist","PackBlock","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","registry","OclifLoggerAdapter","name","builder","dst","content","UploadPackageV1","COMMANDS"],"mappings":"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"}
1
+ {"version":3,"file":"cli.mjs","sources":["../src/cmd/build-meta.ts","../src/cmd/build-model.ts","../src/cmd/pack-block.ts","../src/cmd/publish.ts","../src/registry_v1/flags.ts","../src/cmd/upload-package-v1.ts","../src/cmd/index.ts"],"sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport path from 'path';\nimport fs from 'fs';\nimport { loadPackDescriptionRaw } from '../v2';\nimport { BlockPackMetaDescription, BlockPackMetaEmbedAbsoluteBase64 } from '../v2/model/block_meta';\n\nexport default class BuildMeta extends Command {\n static override description =\n 'Extracts meta information from blocks package.json and outputs meta.json with embedded binary ' +\n 'and textual information linked from the meta section.';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output meta.json file',\n helpValue: '<path>',\n required: true\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildMeta);\n const modulePath = path.resolve(flags.modulePath);\n const descriptionRaw = await loadPackDescriptionRaw(modulePath);\n const metaEmbedded = await BlockPackMetaEmbedAbsoluteBase64.parseAsync(\n BlockPackMetaDescription(modulePath).parse(descriptionRaw.meta)\n );\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(metaEmbedded));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'fs';\nimport path from 'path';\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, 'utf8');\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport default class BuildModel extends Command {\n static override description =\n 'Extracts and outputs block model JSON from pre-built block model module';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n sourceBundle: Flags.string({\n char: 'b',\n summary: 'bundled model code to embed into the model for callback-based rendering to work',\n helpValue: '<path>',\n default: './dist/bundle.js'\n }),\n\n destination: Flags.string({\n char: 'o',\n summary: 'output model file',\n helpValue: '<path>',\n default: './dist/model.json'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(BuildModel);\n const modulePath = path.resolve(flags.modulePath); // i.e. folder with package.json file\n let { model, platforma } = require(modulePath);\n\n if (!model) model = platforma;\n if (!model) throw new Error('\"model\" export not found');\n\n const { config } = model;\n\n if (!config)\n throw new Error(\n 'Malformed \"model\" object, check it is created with \"BlockModel\" ' +\n 'and \".done()\" is executed as the call in the chain.'\n );\n\n if (\n !('canRun' in config || 'inputsValid' in config) ||\n !('outputs' in config) ||\n !('sections' in config)\n )\n throw new Error('\"config\" has unexpected structure');\n\n const code = await getFileContent(flags.sourceBundle);\n if (code !== undefined) {\n config.code = {\n type: 'plain',\n content: code\n };\n }\n\n await fs.promises.writeFile(path.resolve(flags.destination), JSON.stringify(config));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport { loadPackDescription } from '../v2/source_package';\nimport path from 'path';\nimport { buildBlockPackDist } from '../v2/build_dist';\n\nexport default class PackBlock extends Command {\n static description =\n 'Builds block pack and outputs a block pack manifest consolidating all ' +\n 'references assets into a single folder';\n\n static flags = {\n modulePath: Flags.string({\n char: 'i',\n summary: 'input module path',\n helpValue: '<path>',\n default: '.'\n }),\n\n destinationPath: Flags.string({\n char: 'o',\n summary: 'output folder',\n helpValue: '<path>',\n default: './block-pack'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(PackBlock);\n const description = await loadPackDescription(path.resolve(flags.modulePath));\n await buildBlockPackDist(description, path.resolve(flags.destinationPath));\n }\n}\n","import { Command, Flags } from '@oclif/core';\nimport fs from 'node:fs';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\nimport { ManifestFileName } from '../v2/registry/schema_public';\nimport { BlockPackManifest } from '@milaboratories/pl-model-middle-layer';\nimport { storageByUrl } from '../io/storage';\nimport { BlockRegistryV2 } from '../v2/registry/registry';\nimport path from 'node:path';\n\nexport default class Publish extends Command {\n static description =\n 'Publishes the block package and refreshes the registry (for v2 block-pack schema)';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry',\n helpValue: '<address>',\n env: 'PL_REGISTRY',\n required: true\n }),\n\n manifest: Flags.file({\n char: 'm',\n summary: 'manifest file path',\n exists: true,\n default: `./block-pack/${ManifestFileName}`\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Publish);\n\n // if (flags.meta) {\n // if (flags.meta.endsWith('.json'))\n // configFromFlags.meta = JSON.parse(\n // await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n // );\n // else if (flags.meta.endsWith('.yaml'))\n // configFromFlags.meta = YAML.parse(\n // await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n // );\n // }\n\n const manifestPath = path.resolve(flags.manifest);\n const manifest = BlockPackManifest.parse(\n JSON.parse(await fs.promises.readFile(manifestPath, { encoding: 'utf-8' }))\n );\n const manifestRoot = path.dirname(manifestPath);\n\n this.log(`Manifest root = ${manifestRoot}`);\n\n const storage = storageByUrl(flags.registry);\n const registry = new BlockRegistryV2(storage, new OclifLoggerAdapter(this));\n\n await registry.publishPackage(manifest, async (file) =>\n Buffer.from(await fs.promises.readFile(path.resolve(manifestRoot, file)))\n );\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import { Flags } from '@oclif/core';\nimport path from 'node:path';\n\nexport interface TargetFile {\n src: string;\n destName: string;\n}\n\nfunction parseTargetFile(arg: string): TargetFile {\n const match = arg.match(/(?<destName>[^\\/\\\\]+)=(?<src>.*)/);\n if (match) {\n const { src, destName } = match.groups!;\n return { src, destName };\n } else {\n return { src: arg, destName: path.basename(arg) };\n }\n}\n\nexport const targetFile = Flags.custom<TargetFile>({\n summary: 'target files to upload',\n helpValue: 'file_path | package_name=file_path',\n parse: async (arg) => parseTargetFile(arg)\n});\n","import { Command, Flags } from '@oclif/core';\nimport { getConfig } from '../registry_v1/config';\nimport { targetFile } from '../registry_v1/flags';\nimport fs from 'node:fs';\nimport YAML from 'yaml';\nimport { PlRegPackageConfigDataShard } from '../registry_v1/config_schema';\nimport { OclifLoggerAdapter } from '@milaboratories/ts-helpers-oclif';\n\ntype BasicConfigField = keyof PlRegPackageConfigDataShard &\n ('registry' | 'organization' | 'package' | 'version');\nconst BasicConfigFields: BasicConfigField[] = ['registry', 'organization', 'package', 'version'];\n\nexport default class UploadPackageV1 extends Command {\n static description = 'Uploads V1 package and refreshes the registry';\n\n static flags = {\n registry: Flags.string({\n char: 'r',\n summary: 'full address of the registry or alias from .pl.reg',\n helpValue: '<address|alias>',\n env: 'PL_REGISTRY'\n }),\n\n organization: Flags.string({\n char: 'o',\n summary: 'target organisation',\n env: 'PL_PACKAGE_ORGANIZATION'\n }),\n\n package: Flags.string({\n char: 'p',\n summary: 'target package',\n env: 'PL_PACKAGE_NAME'\n }),\n\n version: Flags.string({\n char: 'v',\n summary: 'target version',\n env: 'PL_PACKAGE_VERSION'\n }),\n\n meta: Flags.file({\n char: 'm',\n summary: 'json file containing meta information to associate with tha package',\n exists: true\n }),\n\n file: targetFile({\n char: 'f',\n summary: 'package files',\n multiple: true,\n default: []\n }),\n\n refresh: Flags.boolean({\n summary: 'refresh repository after adding the package',\n default: true,\n allowNo: true,\n env: 'PL_REGISTRY_REFRESH'\n })\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(UploadPackageV1);\n const configFromFlags: PlRegPackageConfigDataShard = PlRegPackageConfigDataShard.parse({});\n\n for (const field of BasicConfigFields) if (flags[field]) configFromFlags[field] = flags[field];\n\n if (flags.meta) {\n if (flags.meta.endsWith('.json'))\n configFromFlags.meta = JSON.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n else if (flags.meta.endsWith('.yaml'))\n configFromFlags.meta = YAML.parse(\n await fs.promises.readFile(flags.meta, { encoding: 'utf-8' })\n );\n }\n\n for (const targetFile of flags.file) {\n configFromFlags.files[targetFile.destName] = targetFile.src;\n }\n\n const conf = await getConfig(configFromFlags);\n\n this.log(YAML.stringify(conf.conf));\n\n const registry = conf.createRegistry(new OclifLoggerAdapter(this));\n const name = conf.fullPackageName;\n\n const builder = registry.constructNewPackage(name);\n\n for (const [dst, src] of Object.entries(conf.conf.files)) {\n this.log(`Uploading ${src} -> ${dst} ...`);\n const content = await fs.promises.readFile(src);\n await builder.addFile(dst, content);\n }\n\n this.log(`Uploading meta information...`);\n await builder.writeMeta(conf.conf.meta);\n await builder.finish();\n\n if (flags.refresh) await registry.updateIfNeeded();\n }\n}\n","import BuildMeta from './build-meta';\nimport BuildModel from './build-model';\nimport PackBlock from './pack-block';\nimport Publish from './publish';\nimport UploadPackageV1 from './upload-package-v1';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'upload-package-v1': UploadPackageV1,\n 'pack': PackBlock,\n 'build-model': BuildModel,\n 'build-meta': BuildMeta,\n 'publish': Publish,\n};\n"],"names":["_BuildMeta","Command","flags","modulePath","path","descriptionRaw","loadPackDescriptionRaw","metaEmbedded","BlockPackMetaEmbedAbsoluteBase64","BlockPackMetaDescription","fs","__publicField","Flags","BuildMeta","getFileContent","error","_BuildModel","model","platforma","config","code","BuildModel","_PackBlock","description","loadPackDescription","buildBlockPackDist","PackBlock","_Publish","manifestPath","manifest","BlockPackManifest","manifestRoot","storage","storageByUrl","registry","BlockRegistryV2","OclifLoggerAdapter","file","ManifestFileName","Publish","parseTargetFile","arg","match","src","destName","targetFile","BasicConfigFields","_UploadPackageV1","configFromFlags","PlRegPackageConfigDataShard","field","YAML","conf","getConfig","name","builder","dst","content","UploadPackageV1","COMMANDS"],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { default as BuildMeta } from './build-meta';
2
2
  import { default as BuildModel } from './build-model';
3
3
  import { default as PackBlock } from './pack-block';
4
+ import { default as Publish } from './publish';
4
5
  import { default as UploadPackageV1 } from './upload-package-v1';
5
6
  export declare const COMMANDS: {
6
7
  'upload-package-v1': typeof UploadPackageV1;
7
8
  pack: typeof PackBlock;
8
9
  'build-model': typeof BuildModel;
9
10
  'build-meta': typeof BuildMeta;
11
+ publish: typeof Publish;
10
12
  };
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Publish extends Command {
3
+ static description: string;
4
+ static flags: {
5
+ registry: import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
6
+ manifest: import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
7
+ refresh: import('@oclif/core/interfaces').BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/cmd/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAS7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SACoE;IAEtF,MAAM,CAAC,KAAK;;;;MAsBV;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+BlC"}